示例#1
0
文件: usercp.py 项目: jinchaoh/Misago
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})
示例#2
0
文件: reply.py 项目: pombreda/Misago
    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
示例#3
0
文件: reply.py 项目: Bashar/Misago
    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
示例#4
0
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
    })