general.py 3.0 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394
  1. from django import forms
  2. from django.utils.translation import gettext_lazy as _
  3. from ....admin.forms import YesNoSwitch
  4. from .base import ChangeSettingsForm
  5. class ChangeGeneralSettingsForm(ChangeSettingsForm):
  6. settings = [
  7. "forum_name",
  8. "forum_address",
  9. "index_header",
  10. "index_title",
  11. "index_meta_description",
  12. "logo",
  13. "logo_small",
  14. "logo_text",
  15. "forum_footnote",
  16. "email_footer",
  17. ]
  18. forum_name = forms.CharField(label=_("Forum name"), min_length=2, max_length=255)
  19. forum_address = forms.URLField(label=_("Forum address"), max_length=255)
  20. index_header = forms.CharField(
  21. label=_("Header text"),
  22. help_text=_("This text will replace forum name in page header."),
  23. max_length=255,
  24. required=False,
  25. )
  26. index_title = forms.CharField(label=_("Page title"), max_length=255, required=False)
  27. index_meta_description = forms.CharField(
  28. label=_("Meta Description"),
  29. help_text=_(
  30. "Short description of your forum that search and social sites may "
  31. "display next to link to your forum's index."
  32. ),
  33. max_length=255,
  34. required=False,
  35. )
  36. logo = forms.ImageField(
  37. label=_("Logo"),
  38. help_text=_("Image that will displayed in forum navbar."),
  39. required=False,
  40. )
  41. logo_delete = forms.BooleanField(label=_("Delete current logo"), required=False)
  42. logo_small = forms.ImageField(
  43. label=_("Small logo"),
  44. help_text=_(
  45. "Image that will be displayed in compact forum navbar. "
  46. "When set, it will replace icon pointing to forum index."
  47. ),
  48. required=False,
  49. )
  50. logo_small_delete = forms.BooleanField(
  51. label=_("Delete current small logo"), required=False
  52. )
  53. logo_text = forms.CharField(
  54. label=_("Text"),
  55. help_text=_(
  56. "Text displayed in forum navbar. If logo image was uploaded, text will "
  57. "be displayed right next to it. Never displayed by the compact navbar."
  58. ),
  59. max_length=255,
  60. required=False,
  61. )
  62. forum_footnote = forms.CharField(
  63. label=_("Forum footnote"),
  64. help_text=_("Short message displayed in forum footer."),
  65. max_length=300,
  66. required=False,
  67. )
  68. email_footer = forms.CharField(
  69. label=_("E-mails footer"),
  70. help_text=_(
  71. "Optional short message included at the end of e-mails sent by forum."
  72. ),
  73. max_length=255,
  74. required=False,
  75. )
  76. def __init__(self, *args, **kwargs):
  77. super().__init__(*args, **kwargs)
  78. address = self.request.build_absolute_uri("/")
  79. self["forum_address"].help_text = _(
  80. "Misago uses this setting to build links in e-mails sent to site "
  81. 'users. Address under which site is running appears to be "%(address)s".'
  82. ) % {"address": address}
  83. def clean_forum_address(self):
  84. return self.cleaned_data["forum_address"].lower()