diff --git a/stories/writingtogether/templates/writingtogether/story_part.html b/stories/writingtogether/templates/writingtogether/story_part.html new file mode 100644 index 0000000..0dd732e --- /dev/null +++ b/stories/writingtogether/templates/writingtogether/story_part.html @@ -0,0 +1,16 @@ + + + + + Title + + + +
+ {% csrf_token %} + {{ form.as_p }} + +
+ + + \ No newline at end of file diff --git a/stories/writingtogether/urls.py b/stories/writingtogether/urls.py index 337c0d1..ccb2f63 100644 --- a/stories/writingtogether/urls.py +++ b/stories/writingtogether/urls.py @@ -7,6 +7,7 @@ app_name = 'writing' urlpatterns = [ path('', views.IndexView.as_view(), name='index'), path('/', views.DetailView.as_view(), name='detail'), - path('create', views.StoryRoundCreate.as_view(), name='create_story_round'), - path('//', views.StoryPartCreate, name='create_story_part'), + path('create/', views.StoryRoundCreate.as_view(), name='create_story_round'), + path('open////', views.StoryPartUpdate.as_view(), name='update_story_part'), + path('open//', views.RedirectToNextOpenPart.as_view(), name='redirect_story_part'), ] diff --git a/stories/writingtogether/views.py b/stories/writingtogether/views.py index e709d2b..4207023 100644 --- a/stories/writingtogether/views.py +++ b/stories/writingtogether/views.py @@ -1,10 +1,11 @@ from django import forms from django.http import HttpResponseRedirect -from django.shortcuts import render +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 +from django.views.generic import CreateView, UpdateView, RedirectView from writingtogether.models import Story, StoryPart, StoryRound, Participant @@ -50,12 +51,28 @@ class StoryUpdate(UpdateView): fields = ['name'] -class StoryPartCreate(CreateView): +class StoryPartUpdate(UpdateView): model = StoryPart fields = ['text'] + template_name = 'writingtogether/story_part.html' - def form_valid(self, form): - form.instance.created_by = self.request.user - form.instance.previous_part_id = self.kwargs['previous'] - form.instance.part_of_id = self.kwargs['pk'] - return super().form_valid(form) + #def form_valid(self, form): + # form.instance.created_by = self.request.user + # form.instance.previous_part_id = self.kwargs['previous'] + # form.instance.part_of_id = self.kwargs['story_pk'] + # return super().form_valid(form) + + +class RedirectToNextOpenPart(RedirectView): + permanent = False + query_string = True + pattern_name = 'writing:update_story_part' + + def get_redirect_url(self, *args, **kwargs): + story_round = get_object_or_404(StoryRound, pk=kwargs['story_round_pk']) + + story_part = story_round.get_next_story_part(user=self.request.user) + + kwargs['story_pk'] = story_part.part_of.pk + kwargs['story_part_pk'] = story_part.pk + return super().get_redirect_url(*args, **kwargs)