I forgot those files (see #392)

This commit is contained in:
Antoine Nguyen
2013-04-06 16:20:47 +02:00
parent 679cda71af
commit 46bb767954
2 changed files with 105 additions and 10 deletions
+13 -10
View File
@@ -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]
+92
View File
@@ -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")
)