Renaming *amavis_quarantine* to *amavis*.

fixes #269
This commit is contained in:
Antoine Nguyen
2012-06-20 11:52:41 +02:00
parent 4a72436e67
commit 4c589a3348
23 changed files with 70 additions and 70 deletions
+6 -2
View File
@@ -432,11 +432,15 @@ class AccountFormGeneral(forms.ModelForm):
class AccountFormMail(forms.Form, DynamicForm):
email = forms.EmailField(label=ugettext_lazy("E-mail"), required=False)
quota = forms.IntegerField(label=ugettext_lazy("Quota"), required=False)
quota = forms.IntegerField(
label=ugettext_lazy("Quota"),
required=False,
help_text=_("Quota in MB for this mailbox. Leave empty to use the value defined at domain level.")
)
aliases = forms.EmailField(
label=ugettext_lazy("Alias(es)"),
required=False,
help_text=ugettext_lazy("Alias(es) of this mailbox")
help_text=ugettext_lazy("Alias(es) of this mailbox. Indicate only one address per input, press ENTER to add a new input.")
)
def __init__(self, *args, **kwargs):
+2 -6
View File
@@ -8,8 +8,6 @@ from modoboa.lib.webutils import static_url
@events.observe("UserMenuDisplay")
def menu(target, user):
import views
if target != "top_menu_middle":
return []
if not user.has_mailbox:
@@ -22,12 +20,10 @@ def menu(target, user):
"menu" : [
{"name" : "sendvirus",
"label" : _("Send virus"),
"img" : static_url("pics/send-receive.png"),
"url" : reverse(views.send_virus)},
"url" : reverse("modoboa.demo.views.send_virus")},
{"name" : "sendspam",
"label" : _("Send spam"),
"img" : static_url("pics/send-receive.png"),
"url" : reverse(views.send_spam)}
"url" : reverse("modoboa.demo.views.send_spam")}
]
}
]
@@ -10,10 +10,10 @@ from modoboa.lib import events, parameters
from modoboa.extensions import ModoExtension, exts_pool
class AmavisQuarantine(ModoExtension):
name = "amavis_quarantine"
label = "Amavis quarantine"
name = "amavis"
label = "Amavis frontend"
version = "1.0"
description = ugettext_lazy("Simple amavis quarantine management tool")
description = ugettext_lazy("Simple amavis management frontend")
url = "quarantine"
def init(self):
@@ -76,7 +76,7 @@ class AmavisQuarantine(ModoExtension):
def destroy(self):
events.unregister("UserMenuDisplay", menu)
parameters.unregister_app("amavis_quarantine")
parameters.unregister_app("amavis")
exts_pool.register_extension(AmavisQuarantine)
@@ -88,7 +88,7 @@ def menu(target, user):
return [
{"name" : "quarantine",
"label" : _("Quarantine"),
"url" : reverse('modoboa.extensions.amavis_quarantine.views.index')}
"url" : reverse('modoboa.extensions.amavis.views.index')}
]
return []
@@ -161,7 +161,7 @@ $(document).ready(function() {
});
});
</script>""")
url = reverse("modoboa.extensions.amavis_quarantine.views.nbrequests")
url = reverse("modoboa.extensions.amavis.views.nbrequests")
interval = int(parameters.get_admin("CHECK_REQUESTS_INTERVAL")) * 1000
return [tpl.render(Context(dict(url=url, interval=interval, text=_("pending requests"))))]
@@ -174,7 +174,7 @@ def display_requests(user):
return []
nbrequests = get_nb_requests(user)
url = reverse("modoboa.extensions.amavis_quarantine.views.index")
url = reverse("modoboa.extensions.amavis.views.index")
url += "#listing/?viewrequests=1"
tpl = Template('<div class="btn-group {{ css }}"><a id="nbrequests" href="{{ url }}" class="btn btn-danger">{{ label }}</a></div>')
css = "hidden" if nbrequests == 0 else ""
@@ -2,10 +2,10 @@
# -*- coding: utf-8 -*-
import time
from modoboa.extensions.amavis_quarantine.models import *
from modoboa.extensions.amavis.models import *
if __name__ == "__main__":
from modoboa.extensions import amavis_quarantine
from modoboa.extensions import amavis
from modoboa.lib import parameters
from optparse import OptionParser
@@ -20,14 +20,14 @@ if __name__ == "__main__":
l.setLevel(logging.DEBUG)
l.addHandler(logging.StreamHandler())
amavis_quarantine.load()
amavis.load()
max_messages_age = int(parameters.get_admin("MAX_MESSAGES_AGE",
app="amavis_quarantine"))
app="amavis"))
flags = ['D']
if parameters.get_admin("RELEASED_MSGS_CLEANUP",
app="amavis_quarantine") == "yes":
app="amavis") == "yes":
flags += ['R']
print "Deleting marked messages..."
+30
View File
@@ -0,0 +1,30 @@
class AmavisRouter(object):
"""A router to control all database operations on models in
the amavis application"""
def db_for_read(self, model, **hints):
"Point all operations on amavis models to 'amavis'"
if model._meta.app_label == 'amavis':
return 'amavis'
return None
def db_for_write(self, model, **hints):
"Point all operations on amavis models to 'amavis'"
if model._meta.app_label == 'amavis':
return 'amavis'
return None
def allow_relation(self, obj1, obj2, **hints):
"Allow any relation if a model in amavis is involved"
if obj1._meta.app_label == 'amavis' \
or obj2._meta.app_label == 'amavis':
return True
return None
def allow_syncdb(self, db, model):
"Make sure the amavis app only appears on the 'amavis' db"
if db == 'amavis':
return model._meta.app_label == 'amavis'
elif model._meta.app_label == 'amavis':
return False
return None
@@ -27,7 +27,7 @@ def selfservice(ssfunc=None):
return f(request, *args, **kwargs)
if parameters.get_admin("SELF_SERVICE") == "no":
from django.contrib.auth.views import redirect_to_login
return redirect_to_login(reverse("modoboa.extensions.amavis_quarantine.views.index"))
return redirect_to_login(reverse("modoboa.extensions.amavis.views.index"))
return ssfunc(request, *args, **kwargs)
return wrapped_f
return decorator
@@ -81,7 +81,7 @@ class SQLconnector(MBconnector):
return emails
class SQLlisting(EmailListing):
tpl = "amavis_quarantine/index.html"
tpl = "amavis/index.html"
tbltype = Qtable
deflocation = "listing/"
defcallback = "updatelisting"
@@ -123,7 +123,7 @@ class SQLemail(Email):
return ""
def render_headers(self, **kwargs):
return render_to_string("amavis_quarantine/mailheaders.html", {
return render_to_string("amavis/mailheaders.html", {
"qtype" : self.qtype, "qreason" : self.qreason,
"headers" : self.headers,
})
@@ -1,11 +1,11 @@
{% extends "fixed.html" %}{% load i18n %}
{% block pagetitle %}{% trans "Quarantine management" %}{% endblock %}
{% block html_head %}
<link rel="stylesheet" type="text/css" href="{{ STATIC_URL }}amavis_quarantine/css/quarantine.css" />
<link rel="stylesheet" type="text/css" href="{{ STATIC_URL }}amavis/css/quarantine.css" />
<script type="text/javascript" src="{{ STATIC_URL }}js/jquery.htmltable.js"></script>
<script type="text/javascript" src="{{ STATIC_URL }}js/history.js"></script>
<script type="text/javascript" src="{{ STATIC_URL }}js/searchbar.js"></script>
<script type="text/javascript" src="{{ STATIC_URL }}amavis_quarantine/js/quarantine.js"></script>
<script type="text/javascript" src="{{ STATIC_URL }}amavis/js/quarantine.js"></script>
<script type="text/javascript">
$(document).ready(function() {
var qm = new Quarantine({
@@ -6,12 +6,12 @@
<link rel="icon" type="image/png" href="{{ STATIC_URL }}css/logo-icon.png" />
<link rel="stylesheet" type="text/css" href="{{ STATIC_URL }}css/bootstrap.css" />
<link rel="stylesheet" type="text/css" href="{{ STATIC_URL }}css/bootstrap-responsive.css" />
<link rel="stylesheet" type="text/css" href="{{ STATIC_URL }}amavis_quarantine/css/selfservice.css" />
<link rel="stylesheet" type="text/css" href="{{ STATIC_URL }}amavis/css/selfservice.css" />
<script src="{{ STATIC_URL }}js/jquery.js" type="text/javascript"></script>
<script src="{{ STATIC_URL }}js/bootstrap.js" type="text/javascript"></script>
<script src="{{ STATIC_URL }}js/global.js" type="text/javascript"></script>
<script src="{{ STATIC_URL }}js/notify.js" type="text/javascript"></script>
<script src="{{ STATIC_URL }}amavis_quarantine/js/selfservice.js" type="text/javascript"></script>
<script src="{{ STATIC_URL }}amavis/js/selfservice.js" type="text/javascript"></script>
{% url django.views.i18n.javascript_catalog as catalog_url %}
<script type="text/javascript" src="{{ catalog_url }}"></script>
<script type="text/javascript">
@@ -5,7 +5,7 @@ from django.utils.translation import ugettext as _
from django.core.urlresolvers import reverse
from django.conf import settings
from modoboa.lib.webutils import static_url
from modoboa.extensions import amavis_quarantine
from modoboa.extensions import amavis
register = template.Library()
@@ -15,17 +15,17 @@ def viewm_menu(user, mail_id, rcpt):
{"name" : "release",
"img" : "icon-white icon-ok",
"class" : "btn-success",
"url" : reverse(amavis_quarantine.views.release, args=[mail_id]) \
"url" : reverse(amavis.views.release, args=[mail_id]) \
+ ("?rcpt=%s" % rcpt if rcpt else ""),
"label" : _("Release")},
{"name" : "delete",
"class" : "btn-danger",
"img" : "icon-white icon-trash",
"url" : reverse(amavis_quarantine.views.delete, args=[mail_id]) \
"url" : reverse(amavis.views.delete, args=[mail_id]) \
+ ("?rcpt=%s" % rcpt if rcpt else ""),
"label" : _("Delete")},
{"name" : "headers",
"url" : reverse(amavis_quarantine.views.viewheaders, args=[mail_id]),
"url" : reverse(amavis.views.viewheaders, args=[mail_id]),
"label" : _("View full headers")},
]
@@ -46,14 +46,14 @@ def viewm_menu_simple(user, mail_id, rcpt, secret_id=""):
{"name" : "release",
"img" : "icon-white icon-ok",
"class" : "btn-success",
"url" : reverse(amavis_quarantine.views.release, args=[mail_id]) \
"url" : reverse(amavis.views.release, args=[mail_id]) \
+ ("?rcpt=%s" % rcpt \
+ (("&secret_id=%s" % secret_id) if secret_id != "" else "")),
"label" : _("Release")},
{"name" : "delete",
"img" : "icon-white icon-trash",
"class" : "btn-danger",
"url" : reverse(amavis_quarantine.views.delete, args=[mail_id]) \
"url" : reverse(amavis.views.delete, args=[mail_id]) \
+ "?rcpt=%s" % rcpt \
+ ("&secret_id=%s" % secret_id if secret_id != "" else ""),
"label" : _("Delete")},
@@ -66,14 +66,14 @@ def viewm_menu_simple(user, mail_id, rcpt, secret_id=""):
def quar_menu(user):
entries = [
{"name" : "release-multi",
"url" : reverse(amavis_quarantine.views.process),
"url" : reverse(amavis.views.process),
"img" : "icon-white icon-ok",
"class" : "btn-success",
"label" : _("Release")},
{"name" : "delete-multi",
"img" : "icon-white icon-trash",
"class" : "btn-danger",
"url" : reverse(amavis_quarantine.views.process),
"url" : reverse(amavis.views.process),
"label" : _("Delete")},
{"name" : "select",
"url" : "",
@@ -1,7 +1,7 @@
from django.conf.urls.defaults import *
urlpatterns = patterns(
'modoboa.extensions.amavis_quarantine.views',
'modoboa.extensions.amavis.views',
(r'^$', 'index'),
(r'^listing/$', '_listing'),
(r'^getmailcontent/(?P<mail_id>[\w\-\+]+)/$', 'getmailcontent'),
@@ -107,7 +107,7 @@ def _listing(request):
@login_required
def index(request):
return _render(request, "amavis_quarantine/index.html", dict(
return _render(request, "amavis/index.html", dict(
deflocation="listing/", defcallback="listing_cb", selection="quarantine"
))
@@ -141,13 +141,13 @@ def getmailcontent(request, mail_id):
})
def viewmail_selfservice(request, mail_id,
tplname="amavis_quarantine/viewmail_selfservice.html"):
tplname="amavis/viewmail_selfservice.html"):
rcpt = request.GET.get("rcpt", None)
secret_id = request.GET.get("secret_id", "")
if rcpt is None:
raise Http404
content = Template("""
<iframe src="{% url modoboa.extensions.amavis_quarantine.views.getmailcontent mail_id %}" id="mailcontent"></iframe>
<iframe src="{% url modoboa.extensions.amavis.views.getmailcontent mail_id %}" id="mailcontent"></iframe>
""").render(Context(dict(mail_id=mail_id)))
return _render(request, tplname, dict(
@@ -181,7 +181,7 @@ def viewheaders(request, mail_id):
for qm in Quarantine.objects.filter(mail=mail_id):
content += qm.mail_text
msg = email.message_from_string(content)
return _render(request, 'amavis_quarantine/viewheader.html', {
return _render(request, 'amavis/viewheader.html', {
"headers" : msg.items()
})
@@ -1,30 +0,0 @@
class AmavisRouter(object):
"""A router to control all database operations on models in
the amavis_quarantine application"""
def db_for_read(self, model, **hints):
"Point all operations on amavis_quarantine models to 'amavis'"
if model._meta.app_label == 'amavis_quarantine':
return 'amavis'
return None
def db_for_write(self, model, **hints):
"Point all operations on amavis_quarantine models to 'amavis'"
if model._meta.app_label == 'amavis_quarantine':
return 'amavis'
return None
def allow_relation(self, obj1, obj2, **hints):
"Allow any relation if a model in amavis_quarantine is involved"
if obj1._meta.app_label == 'amavis_quarantine' \
or obj2._meta.app_label == 'amavis_quarantine':
return True
return None
def allow_syncdb(self, db, model):
"Make sure the amavis_quarantine app only appears on the 'amavis' db"
if db == 'amavis':
return model._meta.app_label == 'amavis_quarantine'
elif model._meta.app_label == 'amavis_quarantine':
return False
return None