123456789101112131415161718192021222324252627282930313233343536373839 |
- from django.utils.translation import ugettext_lazy as _
- from misago.core import forms
- from misago.forums.forms import ForumChoiceField
- class MoveThreadsBaseForm(forms.Form):
- def __init__(self, *args, **kwargs):
- self.forum = kwargs.pop('forum')
- super(MoveThreadsBaseForm, self).__init__(*args, **kwargs)
- def clean(self):
- data = super(MoveThreadsBaseForm, self).clean()
- new_forum = data.get('new_forum')
- if new_forum:
- if new_forum.is_category:
- message = _("You can't move threads to category.")
- raise forms.ValidationError(message)
- if new_forum.is_redirect:
- message = _("You can't move threads to redirect.")
- raise forms.ValidationError(message)
- if new_forum.pk == self.forum.pk:
- message = _("New forum is same as current one.")
- raise forms.ValidationError(message)
- else:
- raise forms.ValidationError(_("You have to select forum."))
- return data
- def MoveThreadsForm(*args, **kwargs):
- user = kwargs.pop('user')
- label = kwargs.pop('label', _("Move threads to forum"))
- forum_field = ForumChoiceField(label=label, acl=user.acl, empty_label=None)
- FormType = type("FinalMoveThreadsForm", (MoveThreadsBaseForm,), {
- 'new_forum': forum_field,
- })
- return FormType(*args, **kwargs)
|