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