def edit_signature(request): if not request.user.acl['can_have_signature']: raise Http404() if request.method == "GET": read_user_notification(request.user, 'usercp_signature_%s' % request.user.pk) form = EditSignatureForm(instance=request.user) if not request.user.is_signature_locked and request.method == 'POST': form = EditSignatureForm(request.POST, instance=request.user) if form.is_valid(): set_user_signature( request, request.user, form.cleaned_data['signature']) request.user.save(update_fields=[ 'signature', 'signature_parsed', 'signature_checksum' ]) if form.cleaned_data['signature']: messages.success(request, _("Your signature has been edited.")) else: message = _("Your signature has been cleared.") messages.success(request, message) return redirect('misago:usercp_edit_signature') acl = request.user.acl editor = Editor(form['signature'], allow_blocks=acl['allow_signature_blocks'], allow_links=acl['allow_signature_links'], allow_images=acl['allow_signature_images']) return render(request, 'misago/usercp/edit_signature.html', {'form': form, 'editor': editor})
def make_form(self): initial_data = {'title': self.thread.title, 'post': self.post.original} if self.mode == EDIT: is_first_post = self.post.id == self.thread.first_post_id if is_first_post and can_edit_thread(self.user, self.thread): FormType = ThreadForm else: FormType = ReplyForm elif self.mode == START: FormType = ThreadForm else: FormType = ReplyForm if FormType == ThreadForm: if self.request.method == 'POST': form = FormType(self.thread, self.post, self.request, self.request.POST) else: form = FormType(self.thread, self.post, self.request, initial=initial_data) else: if self.request.method == 'POST': form = FormType(self.post, self.request, self.request.POST) else: form = FormType(self.post, self.request, initial=initial_data) form.post_editor = Editor(form['post'], has_preview=True) return form
def make_form(self): initial_data = {'title': self.thread.title, 'post': self.post.original} if self.mode == START: if self.request.method == 'POST': form = ThreadForm(self.thread, self.post, self.request.POST) else: form = ThreadForm(self.thread, self.post, initial=initial_data) else: if self.request.method == 'POST': form = ReplyForm(self.post, self.request.POST) else: form = ReplyForm(self.post, initial=initial_data) form.post_editor = Editor(form['post']) return form
def moderate_signature(request, user): return_path = moderation_return_path(request, user) form = ModerateSignatureForm(instance=user) if request.method == 'POST': form = ModerateSignatureForm(request.POST, instance=user) if form.is_valid(): set_user_signature(request, user, form.cleaned_data['signature']) user.save(update_fields=( 'signature', 'signature_parsed', 'signature_checksum', 'is_signature_locked', 'signature_lock_user_message', 'signature_lock_staff_message' )) message = _("%(user)s's signature has been moderated.") message = message % {'user': user.username} messages.success(request, message) notify_user(user, _("%(user)s has moderated your signature."), reverse('misago:usercp_edit_signature'), "usercp_signature_%s" % user.pk, formats={'user': request.user.username}, sender=request.user) if 'stay' not in request.POST: return redirect(return_path) acl = user.acl editor = Editor(form['signature'], allow_blocks=acl['allow_signature_blocks'], allow_links=acl['allow_signature_links'], allow_images=acl['allow_signature_images']) return render(request, 'misago/modusers/signature.html', { 'profile': user, 'form': form, 'editor': editor, 'return_path': return_path })