mirror of
https://github.com/jwinterm/modoboa.git
synced 2026-10-18 05:51:26 +02:00
I forgot those files (see #392)
This commit is contained in:
@@ -13,10 +13,11 @@ class ModoExtension(object):
|
||||
considered as valid.
|
||||
"""
|
||||
name = None
|
||||
version = "0.1"
|
||||
version = None
|
||||
description = ""
|
||||
url = None
|
||||
needs_media = False
|
||||
always_active = False
|
||||
|
||||
def infos(self):
|
||||
return dict(name=self.name, label=self.label, version=self.version,
|
||||
@@ -38,8 +39,8 @@ class ExtensionsPool(object):
|
||||
def __init__(self):
|
||||
self.extensions = dict()
|
||||
|
||||
def register_extension(self, ext):
|
||||
self.extensions[ext.name] = dict(cls=ext)
|
||||
def register_extension(self, ext, show=True):
|
||||
self.extensions[ext.name] = dict(cls=ext, show=show)
|
||||
|
||||
def get_extension(self, name):
|
||||
if not name in self.extensions:
|
||||
@@ -58,14 +59,14 @@ class ExtensionsPool(object):
|
||||
result = []
|
||||
for extname, extdef in self.extensions.iteritems():
|
||||
extinstance = self.get_extension(extname)
|
||||
try:
|
||||
ext = Extension.objects.get(name=extname)
|
||||
if ext is None:
|
||||
if not extinstance.always_active:
|
||||
try:
|
||||
ext = Extension.objects.get(name=extname)
|
||||
if not ext.enabled:
|
||||
continue
|
||||
except Extension.DoesNotExist:
|
||||
continue
|
||||
if ext.enabled:
|
||||
extinstance.load()
|
||||
except Extension.DoesNotExist:
|
||||
pass
|
||||
extinstance.load()
|
||||
try:
|
||||
baseurl = extinstance.url if extinstance.url is not None else extname
|
||||
result += [(r'^%s/' % (baseurl),
|
||||
@@ -78,6 +79,8 @@ class ExtensionsPool(object):
|
||||
def list_all(self):
|
||||
result = []
|
||||
for extname, extdef in self.extensions.iteritems():
|
||||
if not extdef["show"]:
|
||||
continue
|
||||
infos = extdef["instance"].infos()
|
||||
infos["id"] = extname
|
||||
result += [infos]
|
||||
|
||||
@@ -0,0 +1,92 @@
|
||||
# coding: utf-8
|
||||
from django.utils.translation import ugettext_lazy as _
|
||||
from django import forms
|
||||
from modoboa.lib.parameters import AdminParametersForm
|
||||
from modoboa.lib.formutils import SeparatorField, YesNoField
|
||||
|
||||
|
||||
class ParametersForm(AdminParametersForm):
|
||||
app = "amavis"
|
||||
|
||||
max_messages_age = forms.IntegerField(
|
||||
label=_("Maximum message age"),
|
||||
initial=14,
|
||||
help_text=_("Quarantine messages maximum age (in days) before deletion")
|
||||
)
|
||||
|
||||
sep1 = SeparatorField(label=_("Messages releasing"))
|
||||
|
||||
released_msgs_cleanup = YesNoField(
|
||||
label=_("Remove released messages"),
|
||||
initial="no",
|
||||
help_text=_("Remove messages marked as released while cleaning up the database")
|
||||
)
|
||||
|
||||
am_pdp_mode = forms.ChoiceField(
|
||||
label=_("Amavis connection mode"),
|
||||
choices=[("inet", "inet"), ("unix", "unix")],
|
||||
initial="unix",
|
||||
help_text=_("Mode used to access the PDP server")
|
||||
)
|
||||
|
||||
am_pdp_host = forms.CharField(
|
||||
label=_("PDP server address"),
|
||||
initial="localhost",
|
||||
help_text=_("PDP server address (if inet mode)")
|
||||
)
|
||||
|
||||
am_pdp_port = forms.IntegerField(
|
||||
label=_("PDP server port"),
|
||||
initial=9998,
|
||||
help_text=_("PDP server port (if inet mode)")
|
||||
)
|
||||
|
||||
am_pdp_socket = forms.CharField(
|
||||
label=_("PDP server socket"),
|
||||
initial="/var/amavis/amavisd.sock",
|
||||
help_text=_("Path to the PDP server socket (if unix mode)")
|
||||
)
|
||||
|
||||
check_requests_interval = forms.IntegerField(
|
||||
label=_("Check requests interval"),
|
||||
initial=30,
|
||||
help_text=_("Interval between two release requests checks")
|
||||
)
|
||||
|
||||
user_can_release = YesNoField(
|
||||
label=_("Allow direct release"),
|
||||
initial="no",
|
||||
help_text=_("Allow users to directly release their messages")
|
||||
)
|
||||
|
||||
self_service = YesNoField(
|
||||
label=_("Enable self-service mode"),
|
||||
initial="no",
|
||||
help_text=_("Activate the 'self-service' mode")
|
||||
)
|
||||
|
||||
notifications_sender = forms.EmailField(
|
||||
label=_("Notifications sender"),
|
||||
initial="notification@modoboa.org",
|
||||
help_text=_("The e-mail address used to send notitications")
|
||||
)
|
||||
|
||||
# Visibility rules
|
||||
def visibility_am_pdp_host(self):
|
||||
return "am_pdp_mode=inet"
|
||||
|
||||
def visibility_am_pdp_port(self):
|
||||
return "am_pdp_mode=inet"
|
||||
|
||||
def visibility_am_pdp_socket(self):
|
||||
return "am_pdp_mode=unix"
|
||||
|
||||
|
||||
class UserSettings(UserParametersForm):
|
||||
app = "amavis"
|
||||
|
||||
messages_per_page = forms.IntegerField(
|
||||
initial=40,
|
||||
label=_("Number of displayed emails per page"),
|
||||
help_text=_("Set the maximum number of messages displayed in a page")
|
||||
)
|
||||
Reference in New Issue
Block a user