From 7277fc7b5cff3f77e007a18b2502f3490d2607d3 Mon Sep 17 00:00:00 2001 From: Gesche Gierse Date: Wed, 5 May 2021 22:54:21 +0200 Subject: [PATCH] add finished view --- stories/writingtogether/models.py | 2 +- .../templates/writingtogether/finished.html | 20 +++++++++++++++++++ .../templates/writingtogether/story_part.html | 4 ++++ stories/writingtogether/urls.py | 1 + stories/writingtogether/views.py | 12 ++++++++++- 5 files changed, 37 insertions(+), 2 deletions(-) create mode 100644 stories/writingtogether/templates/writingtogether/finished.html diff --git a/stories/writingtogether/models.py b/stories/writingtogether/models.py index dde9a1d..9e93cce 100644 --- a/stories/writingtogether/models.py +++ b/stories/writingtogether/models.py @@ -70,7 +70,7 @@ class StoryPart(models.Model): user = models.ForeignKey(User, on_delete=CASCADE) previous_part = models.ForeignKey('StoryPart', on_delete=CASCADE, null=True, blank=True) text = models.TextField(null=True, blank=True) - part_of = models.ForeignKey('Story', on_delete=CASCADE) + part_of = models.ForeignKey('Story', on_delete=CASCADE, related_name='parts') turn_number = models.IntegerField() @property diff --git a/stories/writingtogether/templates/writingtogether/finished.html b/stories/writingtogether/templates/writingtogether/finished.html new file mode 100644 index 0000000..8425d25 --- /dev/null +++ b/stories/writingtogether/templates/writingtogether/finished.html @@ -0,0 +1,20 @@ + + + + + + + +

Fertig!

+ +{% for story in stories %} + {% for story_part in story.parts.all %} + +
{{ story_part.text }} ({{ story_part.user }})
+ {% endfor %} +
+
+{% endfor %} + + + \ No newline at end of file diff --git a/stories/writingtogether/templates/writingtogether/story_part.html b/stories/writingtogether/templates/writingtogether/story_part.html index 2d72b8b..19963e5 100644 --- a/stories/writingtogether/templates/writingtogether/story_part.html +++ b/stories/writingtogether/templates/writingtogether/story_part.html @@ -6,6 +6,10 @@

Runde {{ current_round }} / {{ total_rounds }}

+ +{% if previous_part %} +
Letzter Satz: {{ previous_part.text }}
+{% endif %}
{% csrf_token %} {{ form.as_p }} diff --git a/stories/writingtogether/urls.py b/stories/writingtogether/urls.py index 7a4ba9f..f11c476 100644 --- a/stories/writingtogether/urls.py +++ b/stories/writingtogether/urls.py @@ -11,4 +11,5 @@ urlpatterns = [ 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'), + path('finished//', views.RoundFinishedView.as_view(), name ='finished'), ] diff --git a/stories/writingtogether/views.py b/stories/writingtogether/views.py index 7e191a0..7e243ed 100644 --- a/stories/writingtogether/views.py +++ b/stories/writingtogether/views.py @@ -67,7 +67,8 @@ class StoryPartUpdate(LoginRequiredMixin, UpdateView): context = super(StoryPartUpdate, self).get_context_data(**kwargs) context.update({ 'current_round': self.object.turn_number + 1, - 'total_rounds': self.object.part_of.part_of_round.number_of_rounds + 'total_rounds': self.object.part_of.part_of_round.number_of_rounds, + 'previous_part': self.object.previous_part, }) context.update(self.kwargs) return context @@ -110,3 +111,12 @@ class RedirectToNextOpenPart(LoginRequiredMixin, RedirectView): class WaitForOthersView(LoginRequiredMixin, DetailView): model = StoryRound template_name = 'writingtogether/wait_for_others.html' + + +class RoundFinishedView(LoginRequiredMixin, ListView): + model = Story + context_object_name = 'stories' + template_name = 'writingtogether/finished.html' + + def get_queryset(self): + return Story.objects.filter(part_of_round_id=self.kwargs['pk']).prefetch_related('parts') \ No newline at end of file