add wait for others view

This commit is contained in:
Gesche 2021-05-05 22:18:45 +02:00
parent e5275db8e8
commit 0d0cc2eeb5
4 changed files with 29 additions and 8 deletions

View File

@ -65,4 +65,4 @@ class StoryPart(models.Model):
@property
def finished(self):
return self.text
return bool(self.text)

View File

@ -0,0 +1,13 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title></title>
</head>
<body>
<div>Die nächste Runde ist noch nicht bereit.</div>
<div>Klick hier um zu prüfen, ob die anderen fertig sind:
<a href="{% url 'writing:redirect_story_part' story_round_pk=object.pk %}">nächste Runde</a>
</div>
</body>
</html>

View File

@ -9,5 +9,6 @@ urlpatterns = [
path('<int:pk>/', views.DetailView.as_view(), name='detail'),
path('create/', views.StoryRoundCreate.as_view(), name='create_story_round'),
path('open/<int:story_round_pk>/<int:story_pk>/<int:pk>/', views.StoryPartUpdate.as_view(), name='update_story_part'),
path('open/<int:pk>/waiting/', views.WaitForOthersView.as_view(), name='wait_for_others'),
path('open/<int:story_round_pk>/', views.RedirectToNextOpenPart.as_view(), name='redirect_story_part'),
]

View File

@ -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)
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'