diff --git a/stories/writingtogether/models.py b/stories/writingtogether/models.py
index 0031bb1..ede2d36 100644
--- a/stories/writingtogether/models.py
+++ b/stories/writingtogether/models.py
@@ -65,4 +65,4 @@ class StoryPart(models.Model):
@property
def finished(self):
- return self.text
+ return bool(self.text)
diff --git a/stories/writingtogether/templates/writingtogether/wait_for_others.html b/stories/writingtogether/templates/writingtogether/wait_for_others.html
new file mode 100644
index 0000000..bbdc0a4
--- /dev/null
+++ b/stories/writingtogether/templates/writingtogether/wait_for_others.html
@@ -0,0 +1,13 @@
+
+
+
+
+
+
+
+Die nächste Runde ist noch nicht bereit.
+Klick hier um zu prüfen, ob die anderen fertig sind:
+
nächste Runde
+
+
+
\ No newline at end of file
diff --git a/stories/writingtogether/urls.py b/stories/writingtogether/urls.py
index ff29a68..7a4ba9f 100644
--- a/stories/writingtogether/urls.py
+++ b/stories/writingtogether/urls.py
@@ -9,5 +9,6 @@ urlpatterns = [
path('/', views.DetailView.as_view(), name='detail'),
path('create/', views.StoryRoundCreate.as_view(), name='create_story_round'),
path('open////', views.StoryPartUpdate.as_view(), name='update_story_part'),
+ path('open//waiting/', views.WaitForOthersView.as_view(), name='wait_for_others'),
path('open//', views.RedirectToNextOpenPart.as_view(), name='redirect_story_part'),
]
diff --git a/stories/writingtogether/views.py b/stories/writingtogether/views.py
index e16c535..6316b1a 100644
--- a/stories/writingtogether/views.py
+++ b/stories/writingtogether/views.py
@@ -5,13 +5,11 @@ from django.shortcuts import render, get_object_or_404
# Create your views here.
from django.urls import reverse_lazy, reverse
-from django.views import generic
-from django.views.generic import CreateView, UpdateView, RedirectView
-
+from django.views.generic import CreateView, UpdateView, RedirectView, DetailView, ListView
from writingtogether.models import Story, StoryPart, StoryRound
-class IndexView(LoginRequiredMixin, generic.ListView):
+class IndexView(LoginRequiredMixin, ListView):
template_name = 'writingtogether/index.html'
context_object_name = 'open_story_round_list'
@@ -20,7 +18,7 @@ class IndexView(LoginRequiredMixin, generic.ListView):
return StoryRound.objects.order_by('-created')[:5]
-class DetailView(LoginRequiredMixin, generic.DetailView):
+class StoryRoundDetailView(LoginRequiredMixin, DetailView):
model = StoryRound
template_name = 'writingtogether/detail.html'
@@ -92,6 +90,15 @@ class RedirectToNextOpenPart(LoginRequiredMixin, RedirectView):
story_part = story_round.get_next_story_part(user=self.request.user)
- kwargs['story_pk'] = story_part.part_of.pk
- kwargs['pk'] = story_part.pk
+ if story_part.finished:
+ self.pattern_name = 'writing:wait_for_others'
+ kwargs['pk'] = kwargs.pop('story_round_pk')
+ else:
+ kwargs['story_pk'] = story_part.part_of.pk
+ kwargs['pk'] = story_part.pk
return super().get_redirect_url(*args, **kwargs)
+
+
+class WaitForOthersView(LoginRequiredMixin, DetailView):
+ model = StoryRound
+ template_name = 'writingtogether/wait_for_others.html'