+
+
+ Statistics
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/modoboa/maillog/api/v2/serializers.py b/modoboa/maillog/api/v2/serializers.py
index 3d45c627d..d61601a93 100644
--- a/modoboa/maillog/api/v2/serializers.py
+++ b/modoboa/maillog/api/v2/serializers.py
@@ -75,3 +75,12 @@ class MaillogSerializer(serializers.ModelSerializer):
"size", "status"
)
model = models.Maillog
+
+
+class MaillogGlobalParemetersSerializer(serializers.Serializer):
+ """A serializer for global parameters."""
+
+ logfile = serializers.CharField(default="/var/log/mail.log")
+ rrd_rootdir = serializers.CharField(default="/tmp/modoboa")
+ greylist = serializers.BooleanField(default=False)
+ enable_domain_limits = serializers.BooleanField(default=False)
diff --git a/modoboa/maillog/apps.py b/modoboa/maillog/apps.py
index c4f62c1a5..bcb8215d4 100644
--- a/modoboa/maillog/apps.py
+++ b/modoboa/maillog/apps.py
@@ -1,8 +1,44 @@
"""AppConfig for stats."""
-from django.apps import AppConfig
+import collections
-from .forms import load_settings
+from django.apps import AppConfig
+from django.utils.translation import gettext, gettext_lazy as _
+
+
+GLOBAL_PARAMETERS_STRUCT = collections.OrderedDict([
+ ("general", {
+ "label": _("General"),
+ "params": collections.OrderedDict([
+ ("logfile", {
+ "label": _("Path to the log file"),
+ "help_text": _("Path to log file used to collect statistics")
+ }),
+ ("rrd_rootdir", {
+ "label": _("Directory to store RRD files"),
+ "help_text": _("Path to directory where RRD files are stored")
+ }),
+ ("greylist", {
+ "label": _("Show greylisted messages"),
+ "help_text": _("Differentiate between hard and soft rejects (greylisting)")
+ })
+ ])
+ })
+])
+
+
+def load_maillog_settings():
+ """Load app settings."""
+ from modoboa.maillog import forms
+ from modoboa.maillog.api.v2 import serializers
+ from modoboa.parameters import tools as param_tools
+
+ param_tools.registry.add(
+ "global", forms.ParametersForm, gettext("Statistics"))
+ param_tools.registry.add2(
+ "global", "maillog", gettext("Statistics"), GLOBAL_PARAMETERS_STRUCT,
+ serializers.MaillogGlobalParemetersSerializer
+ )
class MaillogConfig(AppConfig):
@@ -12,5 +48,5 @@ class MaillogConfig(AppConfig):
verbose_name = "Modoboa graphical statistics"
def ready(self):
- load_settings()
+ load_maillog_settings()
from . import handlers
diff --git a/modoboa/maillog/forms.py b/modoboa/maillog/forms.py
index 240546199..a7f386d05 100644
--- a/modoboa/maillog/forms.py
+++ b/modoboa/maillog/forms.py
@@ -49,11 +49,3 @@ class ParametersForm(param_forms.AdminParametersForm):
test_mode = getattr(settings, "RRDTOOL_TEST_MODE", False)
if rrd_version < required_version and not test_mode:
del self.fields["greylist"]
-
-
-def load_settings():
- """Load app settings."""
- from modoboa.parameters import tools as param_tools
-
- param_tools.registry.add(
- "global", ParametersForm, gettext_lazy("Statistics"))