Browse Source

Move threads settings to view

rafalp 6 years ago
parent
commit
17d5467b90

+ 11 - 1
misago/conf/admin/__init__.py

@@ -5,6 +5,7 @@ from .views import index
 from .views import (
     ChangeCaptchaSettingsView,
     ChangeGeneralSettingsView,
+    ChangeThreadsSettingsView,
     ChangeUsersSettingsView,
 )
 
@@ -22,6 +23,9 @@ class MisagoAdminExtension:
             r"^general/", "general", "settings", ChangeGeneralSettingsView.as_view()
         )
         urlpatterns.single_pattern(
+            r"^threads/", "threads", "settings", ChangeThreadsSettingsView.as_view()
+        )
+        urlpatterns.single_pattern(
             r"^users/", "users", "settings", ChangeUsersSettingsView.as_view()
         )
 
@@ -39,7 +43,6 @@ class MisagoAdminExtension:
             parent="settings",
             namespace="general",
         )
-
         site.add_node(
             name=_("Users"),
             description=_(
@@ -58,3 +61,10 @@ class MisagoAdminExtension:
             namespace="captcha",
             after="users:index",
         )
+        site.add_node(
+            name=_("Threads"),
+            description=_("Those settings control threads and posts."),
+            parent="settings",
+            namespace="threads",
+            after="captcha:index",
+        )

+ 22 - 0
misago/conf/admin/forms.py

@@ -155,6 +155,28 @@ class ChangeGeneralSettingsForm(ChangeSettingsForm):
     )
 
 
+class ChangeThreadsSettingsForm(ChangeSettingsForm):
+    settings = [
+        "post_length_max",
+        "post_length_min",
+        "thread_title_length_max",
+        "thread_title_length_min",
+    ]
+
+    post_length_max = forms.IntegerField(
+        label=_("Maximum allowed post length"), min_value=0
+    )
+    post_length_min = forms.IntegerField(
+        label=_("Minimum required post length"), min_value=1
+    )
+    thread_title_length_max = forms.IntegerField(
+        label=_("Maximum allowed thread title length"), min_value=2, max_value=255
+    )
+    thread_title_length_min = forms.IntegerField(
+        label=_("Minimum required thread title length"), min_value=2, max_value=255
+    )
+
+
 class ChangeUsersSettingsForm(ChangeSettingsForm):
     settings = [
         "account_activation",

+ 5 - 0
misago/conf/admin/tests/test_change_settings_view.py

@@ -85,6 +85,11 @@ def test_general_settings_form_renders(admin_client):
     assert response.status_code == 200
 
 
+def test_threads_settings_form_renders(admin_client):
+    response = admin_client.get(reverse("misago:admin:settings:threads:index"))
+    assert response.status_code == 200
+
+
 def test_users_settings_form_renders(admin_client):
     response = admin_client.get(reverse("misago:admin:settings:users:index"))
     assert response.status_code == 200

+ 6 - 0
misago/conf/admin/views.py

@@ -8,6 +8,7 @@ from ..models import Setting
 from .forms import (
     ChangeCaptchaSettingsForm,
     ChangeGeneralSettingsForm,
+    ChangeThreadsSettingsForm,
     ChangeUsersSettingsForm,
 )
 
@@ -64,6 +65,11 @@ class ChangeGeneralSettingsView(ChangeSettingsView):
     template_name = "misago/admin/conf/general_settings.html"
 
 
+class ChangeThreadsSettingsView(ChangeSettingsView):
+    form = ChangeThreadsSettingsForm
+    template_name = "misago/admin/conf/threads_settings.html"
+
+
 class ChangeUsersSettingsView(ChangeSettingsView):
     form = ChangeUsersSettingsForm
     template_name = "misago/admin/conf/users_settings.html"

+ 24 - 0
misago/templates/misago/admin/conf/threads_settings.html

@@ -0,0 +1,24 @@
+{% extends "misago/admin/conf/form.html" %}
+{% load i18n misago_admin_form %}
+
+
+{% block form-body %}
+<div class="form-fieldset">
+  <fieldset>
+    <legend>{% trans "Threads" %}</legend>
+
+    {% form_row form.thread_title_length_min %}
+    {% form_row form.thread_title_length_max %}
+    
+  </fieldset>
+</div>
+<div class="form-fieldset">
+  <fieldset>
+    <legend>{% trans "Posts" %}</legend>
+
+    {% form_row form.post_length_min %}
+    {% form_row form.post_length_max %}
+
+  </fieldset>
+</div>
+{% endblock form-body %}