def get_secondary_form(self, preview_form, request, content): action = preview_form.cleaned_data['preview_action'] form = None form_action = None if action == 'new-reply': Form = utils.conditionally_captchatize(request, forms.NewPostForm) thread = preview_form.cleaned_data['thread'] form_action = reverse('new-reply', kwargs={'thread_id': thread.pk}) form = Form(request.POST, author=request.user) elif action == 'edit-post': post = preview_form.cleaned_data['post'] form_action = reverse('edit-post', kwargs={'post_id': post.pk}) form = forms.EditPostForm(request.POST) elif action == 'new-thread': forum = preview_form.cleaned_data['forum'] form_action = reverse('new-thread', kwargs={'forum_id': forum.pk}) Form = utils.conditionally_captchatize(request, forms.NewThreadForm) form = Form(request.POST, author=request.user) elif action == 'compose-pm': form_action = reverse('compose-pm') form = forms.NewPrivateMessageForm(request.POST, author=request.user) return (form_action, form)
def GET(self, request): initials = {} if 'replyto' in request.GET: rt = get_object_or_404(PrivateMessage, pk=request.GET['replyto']) if rt.inbox != request.user: raise PermissionDenied('You can\'t quote that!') if rt.subject.startswith(('re:', 'RE:')): initials['subject'] = rt.subject else: initials['subject'] = 're: ' + rt.subject initials['to'] = rt.sender.username initials['content'] = rt.quote_content() elif 'to' in request.GET: recipient = get_object_or_404(Poster, pk=request.GET['to']) initials['to'] = recipient.username form = forms.NewPrivateMessageForm(author=request.user, initial=initials) ctx = { 'form': form } ctx.update(self.ctx_defaults) return render(request, 'private_messages/compose.html', ctx)
def POST(self, request): form = forms.NewPrivateMessageForm(request.POST, author=request.user) if form.is_valid(): form.save() return HttpResponseRedirect(reverse('inbox')) else: ctx = { 'form': form } ctx.update(self.ctx_defaults) return render(request, 'private_messages/compose.html', ctx)