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'