forms.py 3.9 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091
  1. from django.utils.translation import ugettext_lazy as _
  2. from django import forms
  3. from mptt.forms import TreeNodeChoiceField
  4. from misago.forms import Form
  5. from misago.forums.models import Forum
  6. class CategoryForm(Form):
  7. parent = TreeNodeChoiceField(queryset=Forum.tree.get(token='root').get_descendants(include_self=True),level_indicator=u'- - ')
  8. name = forms.CharField(max_length=255)
  9. description = forms.CharField(widget=forms.Textarea,required=False)
  10. template = forms.ChoiceField(choices=(
  11. ('rows', _('One forum per row')),
  12. ('fifty', _('Two forums per row')),
  13. ('thirty', _('Three forums per row')),
  14. ))
  15. layout = (
  16. (
  17. _("Category Options"),
  18. (
  19. ('parent', {'label': _("Category Parent")}),
  20. ('name', {'label': _("Category Name")}),
  21. ('description', {'label': _("Category Description")}),
  22. ('template', {'label': _("Category Layout")}),
  23. ),
  24. ),
  25. )
  26. class ForumForm(Form):
  27. parent = TreeNodeChoiceField(queryset=Forum.tree.get(token='root').get_descendants(),level_indicator=u'- - ')
  28. name = forms.CharField(max_length=255)
  29. description = forms.CharField(widget=forms.Textarea,required=False)
  30. template = forms.ChoiceField(choices=(
  31. ('rows', _('One forum per row')),
  32. ('fifty', _('Two forums per row')),
  33. ('thirty', _('Three forums per row')),
  34. ))
  35. prune_start = forms.IntegerField(min_value=0,initial=0)
  36. prune_last = forms.IntegerField(min_value=0,initial=0)
  37. layout = (
  38. (
  39. _("Forum Options"),
  40. (
  41. ('parent', {'label': _("Forum Parent")}),
  42. ('name', {'label': _("Forum Name")}),
  43. ('description', {'label': _("Forum Description")}),
  44. ('template', {'label': _("Subforums Layout")}),
  45. ),
  46. ),
  47. (
  48. _("Prune Forum"),
  49. (
  50. ('prune_start', {'label': _("Delete threads with first post older than"), 'help_text': _('Enter number of days since topic start after which topic will be deleted or zero to don\'t delete topics.')}),
  51. ('prune_last', {'label': _("Delete threads with last post older than"), 'help_text': _('Enter number of days since since last reply in topic after which topic will be deleted or zero to don\'t delete topics.')}),
  52. ),
  53. ),
  54. )
  55. class RedirectForm(Form):
  56. parent = TreeNodeChoiceField(queryset=Forum.tree.get(token='root').get_descendants(),level_indicator=u'- - ')
  57. name = forms.CharField(max_length=255)
  58. description = forms.CharField(widget=forms.Textarea,required=False)
  59. redirect = forms.URLField(max_length=255)
  60. layout = (
  61. (
  62. _("Redirect Options"),
  63. (
  64. ('parent', {'label': _("Redirect Parent")}),
  65. ('name', {'label': _("Redirect Name")}),
  66. ('redirect', {'label': _("Redirect URL")}),
  67. ('description', {'label': _("Redirect Description")}),
  68. ),
  69. ),
  70. )
  71. class DeleteForm(Form):
  72. parent = TreeNodeChoiceField(queryset=Forum.tree.get(token='root').get_descendants(),required=False,empty_label=_("Remove with forum"),level_indicator=u'- - ')
  73. layout = (
  74. (
  75. _("Delete Options"),
  76. (
  77. ('parent', {'label': _("Move deleted Forum contents to")}),
  78. ),
  79. ),
  80. )