mirror of
https://github.com/jwinterm/modoboa.git
synced 2026-10-17 05:41:25 +02:00
Useless import statements removed.
This commit is contained in:
@@ -3,7 +3,6 @@ from django import forms
|
||||
from django.conf import settings
|
||||
from django.utils.translation import ugettext as _, ugettext_lazy
|
||||
from modoboa.lib.formutils import YesNoField, SeparatorField, InlineRadioSelect
|
||||
from modoboa.lib.sysutils import exec_cmd
|
||||
from modoboa.lib.cryptutils import random_key
|
||||
from modoboa.lib import parameters
|
||||
|
||||
@@ -202,7 +201,7 @@ class GeneralParametersForm(parameters.AdminParametersForm):
|
||||
required_fields = ["ldap_search_base", "ldap_search_filter"]
|
||||
else:
|
||||
required_fields = ["ldap_user_dn_template"]
|
||||
|
||||
|
||||
for f in required_fields:
|
||||
if not f in cleaned_data or cleaned_data[f] == u'':
|
||||
self._errors[f] = self.error_class([_("This field is required")])
|
||||
@@ -214,7 +213,6 @@ class GeneralParametersForm(parameters.AdminParametersForm):
|
||||
|
||||
Doing so, we can use the django_auth_ldap module.
|
||||
"""
|
||||
from django.conf import settings
|
||||
try:
|
||||
import ldap
|
||||
from django_auth_ldap.config import LDAPSearch
|
||||
@@ -268,9 +266,9 @@ class UserSettings(parameters.UserParametersForm):
|
||||
lang = forms.ChoiceField(
|
||||
initial=translate_language_code(settings.LANGUAGE_CODE),
|
||||
label=ugettext_lazy("Prefered language"),
|
||||
choices=[("cs", "čeština"), ("de", "deutsch"),
|
||||
choices=[("cs", "čeština"), ("de", "deutsch"),
|
||||
("en", "english"), ("es", "español"),
|
||||
("fr", "français"), ("it", "italiano"),
|
||||
("pt", "português"), ("sv", "svenska"),],
|
||||
("pt", "português"), ("sv", "svenska")],
|
||||
help_text=ugettext_lazy("Prefered language to display pages")
|
||||
)
|
||||
|
||||
@@ -1,6 +1,3 @@
|
||||
import os
|
||||
import sys
|
||||
import re
|
||||
from django.conf import settings
|
||||
from django.conf.urls import include
|
||||
|
||||
|
||||
@@ -6,7 +6,6 @@ import base64
|
||||
from random import Random
|
||||
import reversion
|
||||
from django.db import models
|
||||
from django.db.models import Q
|
||||
from django.dispatch import receiver
|
||||
from django.utils import timezone
|
||||
from django.utils.translation import ugettext as _, ugettext_lazy
|
||||
@@ -16,7 +15,6 @@ from django.contrib.contenttypes import generic
|
||||
from django.contrib.auth.models import (
|
||||
UserManager, Group, AbstractBaseUser, PermissionsMixin
|
||||
)
|
||||
from django.contrib.contenttypes.models import ContentType
|
||||
from modoboa.lib import events, md5crypt, parameters
|
||||
from modoboa.lib.exceptions import PermDeniedException
|
||||
from modoboa.lib.sysutils import exec_cmd
|
||||
@@ -172,7 +170,8 @@ class User(AbstractBaseUser, PermissionsMixin):
|
||||
@property
|
||||
def tags(self):
|
||||
return [{"name": "account", "label": _("account"), "type": "idt"},
|
||||
{"name": self.group, "label": self.group, "type": "grp", "color": "info"}]
|
||||
{"name": self.group, "label": self.group,
|
||||
"type": "grp", "color": "info"}]
|
||||
|
||||
@property
|
||||
def fullname(self):
|
||||
@@ -313,7 +312,7 @@ class User(AbstractBaseUser, PermissionsMixin):
|
||||
|
||||
"account", loginname, password, first name, last name, enabled, group, address[, domain, ...]
|
||||
|
||||
:param user:
|
||||
:param user: a ``core.User`` instance
|
||||
:param row: a list containing the expected information
|
||||
:param crypt_password:
|
||||
"""
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
from django.utils.translation import ugettext as _, ugettext_lazy
|
||||
from django.utils.translation import ugettext_lazy
|
||||
from modoboa.lib import tables
|
||||
|
||||
|
||||
@@ -6,7 +6,9 @@ class ExtensionsTable(tables.Table):
|
||||
idkey = "id"
|
||||
selection = tables.SelectionColumn("selection", width="4%", header=False)
|
||||
label = tables.Column("label", label=ugettext_lazy("Name"), width="15%")
|
||||
version = tables.Column("version", label=ugettext_lazy("Version"), width="6%")
|
||||
version = tables.Column(
|
||||
"version", label=ugettext_lazy("Version"), width="6%"
|
||||
)
|
||||
descr = tables.Column("description", label=ugettext_lazy("Description"))
|
||||
|
||||
|
||||
cols_order = ["selection", "label", "version", "descr"]
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
from django.conf.urls import patterns, url
|
||||
from django.conf.urls import patterns
|
||||
|
||||
|
||||
urlpatterns = patterns(
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
from django.shortcuts import render
|
||||
from django.utils.translation import ugettext as _
|
||||
from django.contrib.auth.decorators import login_required, user_passes_test
|
||||
from django.contrib.auth.decorators import login_required
|
||||
from modoboa.lib import events, parameters
|
||||
from modoboa.lib.webutils import (
|
||||
ajax_simple_response, _render_to_string
|
||||
|
||||
@@ -1,5 +1,4 @@
|
||||
# coding: utf-8
|
||||
from django.conf import settings
|
||||
from django.core.urlresolvers import reverse
|
||||
from django.utils.translation import ugettext_lazy as _
|
||||
from django.template.loader import render_to_string
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
from django import forms
|
||||
from django.utils.translation import ugettext_lazy
|
||||
from modoboa.lib.formutils import YesNoField, SeparatorField, InlineRadioSelect
|
||||
from modoboa.lib.formutils import YesNoField, SeparatorField
|
||||
from modoboa.lib.sysutils import exec_cmd
|
||||
from modoboa.lib import parameters
|
||||
|
||||
|
||||
@@ -1,5 +1,4 @@
|
||||
import factory
|
||||
from django.contrib.auth.models import Group
|
||||
from . import models
|
||||
|
||||
|
||||
|
||||
@@ -1,6 +1,5 @@
|
||||
# coding: utf-8
|
||||
from django import forms
|
||||
from django.contrib.auth.models import Group
|
||||
from django.utils.translation import ugettext as _, ugettext_lazy
|
||||
from django.http import QueryDict
|
||||
from modoboa.lib import events, parameters
|
||||
@@ -10,9 +9,7 @@ from modoboa.lib.permissions import get_account_roles
|
||||
from modoboa.lib.formutils import (
|
||||
DomainNameField, YesNoField, DynamicForm, TabForms
|
||||
)
|
||||
from modoboa.lib.exceptions import PermDeniedException
|
||||
from modoboa.core.models import User
|
||||
from modoboa.extensions.admin.templatetags.admin_tags import gender
|
||||
from modoboa.extensions.admin.exceptions import AdminError, BadDestination
|
||||
from modoboa.extensions.admin.models import (
|
||||
Domain, DomainAlias, Mailbox, Alias, Quota
|
||||
@@ -547,7 +544,7 @@ class AccountFormMail(forms.Form, DynamicForm):
|
||||
if not user.can_access(domain):
|
||||
raise PermDeniedException
|
||||
try:
|
||||
mb = Mailbox.objects.get(address=locpart, domain=domain)
|
||||
Mailbox.objects.get(address=locpart, domain=domain)
|
||||
except Mailbox.DoesNotExist:
|
||||
pass
|
||||
else:
|
||||
@@ -725,7 +722,7 @@ class ForwardForm(forms.Form):
|
||||
if not local_part or not domname or not len(domname):
|
||||
raise BadDestination("Invalid mailbox syntax for %s" % d)
|
||||
try:
|
||||
mb = Domain.objects.get(name=domname)
|
||||
Domain.objects.get(name=domname)
|
||||
except Domain.DoesNotExist:
|
||||
self.dests += [d]
|
||||
else:
|
||||
|
||||
@@ -4,7 +4,7 @@ from django.db.models.manager import Manager
|
||||
from django.utils.translation import ugettext as _, ugettext_lazy
|
||||
from django.contrib.contenttypes import generic
|
||||
from modoboa.lib import events, parameters
|
||||
from modoboa.core.models import ObjectAccess
|
||||
from modoboa.core.models import User, ObjectAccess
|
||||
from modoboa.extensions.admin.exceptions import AdminError
|
||||
from .base import DatesAware
|
||||
|
||||
|
||||
@@ -1,10 +1,9 @@
|
||||
import re
|
||||
from django import template
|
||||
from django.template.loader import render_to_string
|
||||
from django.utils.translation import ugettext as _, ugettext_lazy
|
||||
from django.core.urlresolvers import reverse
|
||||
from modoboa.lib import events
|
||||
from modoboa.lib.webutils import static_url, render_actions
|
||||
from modoboa.lib.webutils import render_actions
|
||||
from modoboa.lib.templatetags.lib_tags import render_link
|
||||
|
||||
register = template.Library()
|
||||
|
||||
@@ -12,10 +12,11 @@ TODO:
|
||||
from django.core.urlresolvers import reverse
|
||||
from django.core.files.base import ContentFile
|
||||
from modoboa.core.models import User
|
||||
from modoboa.core.factories import UserFactory, GroupFactory
|
||||
from modoboa.core.factories import UserFactory
|
||||
from modoboa.lib.tests import ModoTestCase
|
||||
from modoboa.extensions.admin.lib import *
|
||||
from modoboa.extensions.admin.models import *
|
||||
from modoboa.extensions.admin.models import (
|
||||
Domain, Mailbox, Alias, DomainAlias
|
||||
)
|
||||
from . import factories
|
||||
|
||||
|
||||
|
||||
@@ -3,7 +3,7 @@ from django.utils.translation import ugettext as _, ungettext
|
||||
from django.shortcuts import render
|
||||
from django.core.urlresolvers import reverse
|
||||
from django.contrib.auth.decorators import (
|
||||
login_required, permission_required, user_passes_test
|
||||
login_required, permission_required
|
||||
)
|
||||
from modoboa.lib import events
|
||||
from modoboa.lib.webutils import ajax_response, ajax_simple_response
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
from django.http import HttpResponse, HttpResponseRedirect
|
||||
from django.http import HttpResponseRedirect
|
||||
from django.utils.translation import ugettext as _, ungettext
|
||||
from django.core.urlresolvers import reverse
|
||||
from django.db import transaction
|
||||
@@ -10,7 +10,7 @@ from django.contrib.auth.decorators import (
|
||||
)
|
||||
from modoboa.lib import parameters, events
|
||||
from modoboa.lib.webutils import (
|
||||
ajax_simple_response, ajax_response, _render_to_string
|
||||
ajax_simple_response, _render_to_string
|
||||
)
|
||||
from modoboa.lib.formutils import CreationWizard
|
||||
from modoboa.lib.exceptions import PermDeniedException
|
||||
@@ -59,7 +59,9 @@ def _domains(request):
|
||||
def domains(request, tplname="admin/domains.html"):
|
||||
if not request.user.has_perm("admin.view_domains"):
|
||||
if request.user.has_perm("admin.view_mailboxes"):
|
||||
return HttpResponseRedirect(reverse(identities))
|
||||
return HttpResponseRedirect(
|
||||
reverse('modoboa.extensions.admin.views.identity.identities')
|
||||
)
|
||||
return HttpResponseRedirect(reverse("modoboa.core.views.user.index"))
|
||||
return render(request, tplname, {"selection": "domains"})
|
||||
|
||||
|
||||
@@ -4,8 +4,7 @@ from rfc6266 import build_header
|
||||
from django.http import HttpResponse
|
||||
from django.shortcuts import render
|
||||
from django.core.urlresolvers import reverse
|
||||
from django.db import transaction
|
||||
from django.utils.translation import ugettext as _, ungettext
|
||||
from django.utils.translation import ugettext as _
|
||||
from django.contrib.auth.decorators import (
|
||||
login_required, permission_required, user_passes_test
|
||||
)
|
||||
|
||||
@@ -8,11 +8,13 @@ from django.contrib.auth.decorators import (
|
||||
from django.views.decorators.csrf import ensure_csrf_cookie
|
||||
from modoboa.lib import parameters, events
|
||||
from modoboa.lib.exceptions import PermDeniedException
|
||||
from modoboa.lib.webutils import ajax_simple_response, _render_to_string
|
||||
from modoboa.lib.webutils import (
|
||||
ajax_simple_response, _render_to_string, ajax_response
|
||||
)
|
||||
from modoboa.lib.formutils import CreationWizard
|
||||
from modoboa.lib.templatetags.lib_tags import pagination_bar
|
||||
from modoboa.core.models import User
|
||||
from modoboa.extensions.admin.models import Mailbox
|
||||
from modoboa.extensions.admin.models import Mailbox, Domain
|
||||
from modoboa.extensions.admin.lib import (
|
||||
get_sort_order, get_listing_page, get_identities
|
||||
)
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
import csv
|
||||
from django.utils.translation import ugettext as _, ungettext
|
||||
from django.utils.translation import ugettext as _
|
||||
from django.shortcuts import render
|
||||
from django.core.urlresolvers import reverse
|
||||
from django.db import transaction, IntegrityError
|
||||
|
||||
@@ -55,7 +55,7 @@ def forward(request, tplname='admin/forward.html'):
|
||||
if al is not None:
|
||||
form.fields["dest"].initial = al.extmboxes
|
||||
try:
|
||||
selfmb = al.mboxes.get(pk=mb.id)
|
||||
al.mboxes.get(pk=mb.id)
|
||||
except Mailbox.DoesNotExist:
|
||||
pass
|
||||
else:
|
||||
|
||||
@@ -33,7 +33,7 @@ class Amavis(ModoExtension):
|
||||
|
||||
for dom in Domain.objects.all():
|
||||
try:
|
||||
u = Users.objects.get(email="@%s" % dom.name)
|
||||
Users.objects.get(email="@%s" % dom.name)
|
||||
except Users.DoesNotExist:
|
||||
p = Policy.objects.create(policy_name=dom.name)
|
||||
Users.objects.create(email="@%s" % dom.name, fullname=dom.name,
|
||||
|
||||
@@ -1,5 +1,4 @@
|
||||
# coding: utf-8
|
||||
from django.utils.translation import ugettext_lazy as _
|
||||
from django import forms
|
||||
from models import Policy, Users
|
||||
from modoboa.lib.formutils import InlineRadioSelect
|
||||
@@ -20,7 +19,7 @@ class DomainPolicyForm(forms.ModelForm):
|
||||
'spam_kill_level': forms.TextInput(attrs={'class': 'span1'}),
|
||||
'spam_subject_tag2': forms.TextInput(attrs={'class': 'span2'}),
|
||||
'bypass_banned_checks': InlineRadioSelect(),
|
||||
}
|
||||
}
|
||||
|
||||
def __init__(self, *args, **kwargs):
|
||||
if "instance" in kwargs:
|
||||
@@ -28,7 +27,7 @@ class DomainPolicyForm(forms.ModelForm):
|
||||
try:
|
||||
policy = Users.objects.get(email="@%s" % self.domain.name).policy
|
||||
kwargs["instance"] = policy
|
||||
except (Users.DoesNotExist, Policy.DoesNotExist), e:
|
||||
except (Users.DoesNotExist, Policy.DoesNotExist):
|
||||
del kwargs["instance"]
|
||||
super(DomainPolicyForm, self).__init__(*args, **kwargs)
|
||||
for f in self.fields.keys():
|
||||
|
||||
@@ -6,10 +6,8 @@ import string
|
||||
from functools import wraps
|
||||
from django.core.urlresolvers import reverse
|
||||
from django.utils.translation import ugettext as _
|
||||
from django.db.models import Q
|
||||
from modoboa.lib import parameters
|
||||
from modoboa.lib.exceptions import ModoboaException
|
||||
from .models import Msgrcpt
|
||||
|
||||
|
||||
def selfservice(ssfunc=None):
|
||||
@@ -30,7 +28,9 @@ 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.views.index"))
|
||||
return redirect_to_login(
|
||||
reverse("modoboa.extensions.amavis.views.index")
|
||||
)
|
||||
return ssfunc(request, *args, **kwargs)
|
||||
return wrapped_f
|
||||
return decorator
|
||||
@@ -50,7 +50,9 @@ class AMrelease(object):
|
||||
self.sock = socket.socket(socket.AF_UNIX, socket.SOCK_STREAM)
|
||||
self.sock.connect(path)
|
||||
except socket.error, err:
|
||||
raise ModoboaException(_("Connection to amavis failed: %s" % str(err)))
|
||||
raise ModoboaException(
|
||||
_("Connection to amavis failed: %s" % str(err))
|
||||
)
|
||||
|
||||
def decode(self, answer):
|
||||
def repl(match):
|
||||
|
||||
@@ -1,8 +1,5 @@
|
||||
#!/usr/bin/env python
|
||||
# coding: utf-8
|
||||
|
||||
import sys
|
||||
import os
|
||||
from optparse import make_option
|
||||
from django.core.management.base import BaseCommand, CommandError
|
||||
from django.template.loader import render_to_string
|
||||
|
||||
@@ -10,7 +10,7 @@
|
||||
# Original Amavis version : 2.6.2
|
||||
|
||||
from django.db import models
|
||||
from django.utils.translation import ugettext as _, ugettext_lazy
|
||||
from django.utils.translation import ugettext_lazy
|
||||
|
||||
|
||||
class Maddr(models.Model):
|
||||
|
||||
@@ -1,15 +1,16 @@
|
||||
# coding: utf-8
|
||||
|
||||
import re
|
||||
from datetime import datetime
|
||||
from django.utils.translation import ugettext as _, ugettext_lazy
|
||||
from django.template.loader import render_to_string
|
||||
from django.utils.translation import ugettext_lazy
|
||||
from django.db.models import Q
|
||||
from modoboa.lib import tables
|
||||
from modoboa.lib.webutils import static_url
|
||||
from modoboa.lib.email_listing import MBconnector, EmailListing
|
||||
from modoboa.lib.emailutils import *
|
||||
from modoboa.lib.emailutils import Email
|
||||
from modoboa.lib.dbutils import db_type
|
||||
from modoboa.extensions.admin.models import Domain
|
||||
from models import *
|
||||
from .models import Quarantine, Msgrcpt
|
||||
|
||||
|
||||
class Qtable(tables.Table):
|
||||
|
||||
@@ -1,112 +1,113 @@
|
||||
from django import template
|
||||
from django.template.loader import render_to_string
|
||||
from django.template import Template, Context
|
||||
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
|
||||
|
||||
register = template.Library()
|
||||
|
||||
|
||||
@register.simple_tag
|
||||
def viewm_menu(user, mail_id, rcpt):
|
||||
entries = [
|
||||
{"name" : "release",
|
||||
"img" : "icon-white icon-ok",
|
||||
"class" : "btn-success",
|
||||
"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.views.delete, args=[mail_id]) \
|
||||
+ ("?rcpt=%s" % rcpt if rcpt else ""),
|
||||
"label" : _("Delete")},
|
||||
{"name" : "headers",
|
||||
"url" : reverse(amavis.views.viewheaders, args=[mail_id]),
|
||||
"label" : _("View full headers")},
|
||||
]
|
||||
{"name": "release",
|
||||
"img": "icon-white icon-ok",
|
||||
"class": "btn-success",
|
||||
"url": reverse('modoboa.extensions.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('modoboa.extensions.amavis.views.delete', args=[mail_id])
|
||||
+ ("?rcpt=%s" % rcpt if rcpt else ""),
|
||||
"label": _("Delete")},
|
||||
{"name": "headers",
|
||||
"url": reverse('modoboa.extensions.amavis.views.viewheaders', args=[mail_id]),
|
||||
"label": _("View full headers")},
|
||||
]
|
||||
|
||||
menu = render_to_string('common/buttons_list.html',
|
||||
{"entries" : entries, "extraclasses" : "pull-left"})
|
||||
|
||||
entries = [{"name" : "close",
|
||||
"url" : "javascript:history.go(-1);",
|
||||
"img" : "icon-remove"}]
|
||||
menu += render_to_string('common/buttons_list.html',
|
||||
{"entries" : entries, "extraclasses" : "pull-right"})
|
||||
menu = render_to_string('common/buttons_list.html',
|
||||
{"entries": entries, "extraclasses": "pull-left"})
|
||||
|
||||
entries = [{"name": "close",
|
||||
"url": "javascript:history.go(-1);",
|
||||
"img": "icon-remove"}]
|
||||
menu += render_to_string(
|
||||
'common/buttons_list.html',
|
||||
{"entries": entries, "extraclasses": "pull-right"}
|
||||
)
|
||||
|
||||
return menu
|
||||
|
||||
|
||||
@register.simple_tag
|
||||
def viewm_menu_simple(user, mail_id, rcpt, secret_id=""):
|
||||
entries = [
|
||||
{"name" : "release",
|
||||
"img" : "icon-white icon-ok",
|
||||
"class" : "btn-success",
|
||||
"url" : reverse(amavis.views.release, args=[mail_id]) \
|
||||
{"name": "release",
|
||||
"img": "icon-white icon-ok",
|
||||
"class": "btn-success",
|
||||
"url": reverse('modoboa.extensions.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.views.delete, args=[mail_id]) \
|
||||
"label": _("Release")},
|
||||
{"name": "delete",
|
||||
"img": "icon-white icon-trash",
|
||||
"class": "btn-danger",
|
||||
"url": reverse('modoboa.extensions.amavis.views.delete', args=[mail_id]) \
|
||||
+ "?rcpt=%s" % rcpt \
|
||||
+ ("&secret_id=%s" % secret_id if secret_id != "" else ""),
|
||||
"label" : _("Delete")},
|
||||
]
|
||||
"label": _("Delete")},
|
||||
]
|
||||
|
||||
return render_to_string('common/buttons_list.html',
|
||||
{"entries": entries})
|
||||
|
||||
return render_to_string('common/buttons_list.html',
|
||||
{"entries" : entries})
|
||||
|
||||
@register.simple_tag
|
||||
def quar_menu(user):
|
||||
entries = [
|
||||
{"name" : "release-multi",
|
||||
"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.views.process),
|
||||
"label" : _("Delete")},
|
||||
{"name" : "select",
|
||||
"url" : "",
|
||||
"label" : _("Content Class"),
|
||||
"menu" : [
|
||||
{"name" : "selectmsgs",
|
||||
"url" : "",
|
||||
"label" : _("Nothing")},
|
||||
{"name" : "selectmsgs",
|
||||
"url" : "S",
|
||||
"label" : _("Spam")},
|
||||
{"name" : "selectmsgs",
|
||||
"url" : "V",
|
||||
"label" : _("Virus")},
|
||||
{"name" : "selectmsgs",
|
||||
"url" : "H",
|
||||
"label" : _("Bad header")},
|
||||
{"name" : "selectmsgs",
|
||||
"url" : "M",
|
||||
"label" : _("Bad MIME")}
|
||||
]
|
||||
}
|
||||
]
|
||||
{"name": "release-multi",
|
||||
"url": reverse('modoboa.extensions.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('modoboa.extensions.amavis.views.process'),
|
||||
"label": _("Delete")},
|
||||
{"name": "select",
|
||||
"url": "",
|
||||
"label": _("Content Class"),
|
||||
"menu": [
|
||||
{"name": "selectmsgs",
|
||||
"url": "",
|
||||
"label": _("Nothing")},
|
||||
{"name": "selectmsgs",
|
||||
"url": "S",
|
||||
"label": _("Spam")},
|
||||
{"name": "selectmsgs",
|
||||
"url": "V",
|
||||
"label": _("Virus")},
|
||||
{"name": "selectmsgs",
|
||||
"url": "H",
|
||||
"label": _("Bad header")},
|
||||
{"name": "selectmsgs",
|
||||
"url": "M",
|
||||
"label": _("Bad MIME")}
|
||||
]}
|
||||
]
|
||||
|
||||
if user.group != 'SimpleUsers':
|
||||
extraopts = [{"name" : "to", "label" : _("To")}]
|
||||
extraopts = [{"name": "to", "label": _("To")}]
|
||||
else:
|
||||
extraopts = []
|
||||
extracontent = render_to_string('common/email_searchbar.html', {
|
||||
"STATIC_URL" : settings.STATIC_URL,
|
||||
"extraopts" : extraopts
|
||||
})
|
||||
"STATIC_URL": settings.STATIC_URL,
|
||||
"extraopts": extraopts
|
||||
})
|
||||
|
||||
return render_to_string('common/buttons_list.html', dict(
|
||||
entries=entries, extracontent=extracontent
|
||||
))
|
||||
entries=entries, extracontent=extracontent
|
||||
))
|
||||
|
||||
@@ -19,6 +19,7 @@ from modoboa.extensions.admin.models import Mailbox, Domain
|
||||
from templatetags.amavis_tags import quar_menu, viewm_menu
|
||||
from .lib import selfservice, AMrelease
|
||||
from .sql_listing import SQLlisting, SQLemail, get_wrapper
|
||||
from .models import Msgrcpt
|
||||
|
||||
|
||||
def __back_to_listing(request):
|
||||
|
||||
@@ -8,12 +8,10 @@ from django.contrib.auth.models import Permission, Group
|
||||
from django.db import IntegrityError
|
||||
from django.contrib.contenttypes.models import ContentType
|
||||
from django.utils.translation import ugettext as _, ugettext_lazy
|
||||
from django.core.urlresolvers import reverse
|
||||
from modoboa.lib import events, parameters
|
||||
from modoboa.core.extensions import ModoExtension, exts_pool
|
||||
from .forms import ResourcePoolForm
|
||||
import controls
|
||||
import views
|
||||
|
||||
|
||||
class Limits(ModoExtension):
|
||||
|
||||
@@ -4,7 +4,6 @@
|
||||
-------------------------------
|
||||
|
||||
"""
|
||||
from django.contrib.auth.models import Group
|
||||
from django.utils.translation import ugettext as _
|
||||
from modoboa.lib.exceptions import ModoboaException
|
||||
|
||||
|
||||
@@ -1,10 +1,7 @@
|
||||
# coding: utf-8
|
||||
|
||||
from django.db import models
|
||||
from django.contrib.contenttypes import generic
|
||||
from django.utils.translation import ugettext as _, ugettext_lazy
|
||||
from modoboa.lib import parameters
|
||||
from modoboa.core.models import User
|
||||
from django.conf import settings
|
||||
|
||||
limits_tpl = [
|
||||
|
||||
@@ -6,8 +6,7 @@ This module provides a way to integrate Modoboa auto-reply
|
||||
functionality into Postfix.
|
||||
|
||||
"""
|
||||
from django.core.urlresolvers import reverse
|
||||
from django.utils.translation import ugettext as _, ugettext_lazy
|
||||
from django.utils.translation import ugettext_lazy
|
||||
from modoboa.lib import events, parameters
|
||||
from modoboa.core.extensions import ModoExtension, exts_pool
|
||||
from .models import Transport, Alias
|
||||
@@ -24,7 +23,7 @@ class PostfixAutoreply(ModoExtension):
|
||||
|
||||
for dom in Domain.objects.all():
|
||||
try:
|
||||
trans = Transport.objects.get(domain="autoreply.%s" % dom.name)
|
||||
Transport.objects.get(domain="autoreply.%s" % dom.name)
|
||||
except Transport.DoesNotExist:
|
||||
onCreateDomain(None, dom)
|
||||
else:
|
||||
@@ -32,7 +31,7 @@ class PostfixAutoreply(ModoExtension):
|
||||
|
||||
for mb in dom.mailbox_set.all():
|
||||
try:
|
||||
alias = Alias.objects.get(full_address=mb.full_address)
|
||||
Alias.objects.get(full_address=mb.full_address)
|
||||
except Alias.DoesNotExist:
|
||||
onCreateMailbox(None, mb)
|
||||
|
||||
|
||||
@@ -1,7 +1,6 @@
|
||||
from django.db import models
|
||||
from django.utils.translation import ugettext_lazy as _
|
||||
from modoboa.extensions.admin.models import Domain, Mailbox
|
||||
|
||||
from modoboa.extensions.admin.models import Mailbox
|
||||
|
||||
|
||||
class Transport(models.Model):
|
||||
|
||||
@@ -2,7 +2,7 @@ from django import template
|
||||
from django.template.loader import render_to_string
|
||||
from django.utils.translation import ugettext as _
|
||||
from django.core.urlresolvers import reverse
|
||||
from modoboa.lib.webutils import render_actions, static_url
|
||||
from modoboa.lib.webutils import render_actions
|
||||
|
||||
register = template.Library()
|
||||
|
||||
|
||||
@@ -8,10 +8,9 @@ from django.contrib.auth.decorators import login_required
|
||||
from django.utils.translation import ugettext as _
|
||||
from django.core.urlresolvers import reverse
|
||||
from modoboa.lib import parameters
|
||||
from modoboa.lib.webutils import _render_to_string, _render_error, \
|
||||
from modoboa.lib.webutils import _render_error, \
|
||||
ajax_response, ajax_simple_response
|
||||
from modoboa.lib.connections import ConnectionError
|
||||
from modoboa.lib.cryptutils import get_password
|
||||
from modoboa.extensions.admin.lib import needs_mailbox
|
||||
from .lib import SieveClient, SieveClientError
|
||||
from .forms import (
|
||||
|
||||
@@ -1,9 +1,7 @@
|
||||
# coding: utf-8
|
||||
|
||||
import sys
|
||||
import os
|
||||
import time
|
||||
import datetime
|
||||
from django.utils.translation import ugettext as _, ugettext_lazy
|
||||
from modoboa.lib import parameters
|
||||
|
||||
|
||||
@@ -23,7 +23,7 @@ import os
|
||||
import re
|
||||
import rrdtool
|
||||
import string
|
||||
from django.core.management.base import BaseCommand, CommandError
|
||||
from django.core.management.base import BaseCommand
|
||||
from optparse import make_option
|
||||
from modoboa.lib import parameters
|
||||
from modoboa.extensions.admin.models import Domain
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
from django.conf.urls import patterns, include, url
|
||||
|
||||
urlpatterns = patterns('modoboa.extensions.stats.views',
|
||||
url(r'^$', 'index', name='fullindex'),
|
||||
url(r'^graphs/$', "graphs"),
|
||||
)
|
||||
from django.conf.urls import patterns, url
|
||||
|
||||
|
||||
urlpatterns = patterns(
|
||||
'modoboa.extensions.stats.views',
|
||||
url(r'^$', 'index', name='fullindex'),
|
||||
url(r'^graphs/$', "graphs"),
|
||||
)
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
# coding: utf-8
|
||||
from django.shortcuts import render
|
||||
from django.utils.translation import ugettext as _, ugettext_lazy
|
||||
from django.utils.translation import ugettext as _
|
||||
from django.contrib.auth.decorators import (
|
||||
login_required, user_passes_test, permission_required
|
||||
)
|
||||
@@ -10,7 +10,7 @@ from modoboa.lib.webutils import (
|
||||
_render_to_string, ajax_simple_response
|
||||
)
|
||||
from modoboa.extensions.admin.models import (
|
||||
Domain, Mailbox
|
||||
Domain
|
||||
)
|
||||
from modoboa.extensions.stats.grapher import periods, str2Time, Grapher
|
||||
|
||||
|
||||
@@ -11,7 +11,6 @@ import time
|
||||
from functools import wraps
|
||||
from django.utils.translation import ugettext as _
|
||||
from modoboa.lib import parameters
|
||||
from modoboa.lib import imap_utf7
|
||||
from modoboa.lib.connections import ConnectionsManager
|
||||
from modoboa.lib.webutils import static_url
|
||||
from exceptions import ImapError, WebmailError
|
||||
|
||||
@@ -1,7 +1,6 @@
|
||||
# coding: utf-8
|
||||
import os
|
||||
import re
|
||||
import time
|
||||
from datetime import datetime, timedelta
|
||||
import email
|
||||
import lxml
|
||||
|
||||
@@ -22,7 +22,7 @@ from .lib import (
|
||||
decode_payload, AttachmentUploadHandler,
|
||||
save_attachment, ImapListing, EmailSignature,
|
||||
clean_attachments, set_compose_session, send_mail,
|
||||
ImapEmail, ReplyModifier, ForwardModifier
|
||||
ImapEmail
|
||||
)
|
||||
from templatetags import webmail_tags
|
||||
|
||||
|
||||
@@ -1,17 +1,9 @@
|
||||
# -*- coding: utf-8 -*-
|
||||
import time
|
||||
import re
|
||||
import os
|
||||
import time
|
||||
import random
|
||||
import hashlib
|
||||
import lxml.html
|
||||
from lxml import etree
|
||||
from django.conf import settings
|
||||
from django.template.loader import render_to_string
|
||||
from django.template import Template, Context
|
||||
from django.utils.translation import ugettext as _
|
||||
from modoboa.lib.emailutils import decode
|
||||
|
||||
attached_map = {}
|
||||
|
||||
|
||||
@@ -6,7 +6,6 @@ import smtplib
|
||||
from email.header import Header, decode_header
|
||||
from email.mime.text import MIMEText
|
||||
from email.utils import make_msgid, formatdate, parseaddr
|
||||
from django.template import Template, Context
|
||||
from django.template.loader import render_to_string
|
||||
from django.conf import settings
|
||||
import u2u_decode
|
||||
|
||||
@@ -33,9 +33,7 @@ Extracted from `this blog
|
||||
one instance to another.
|
||||
|
||||
"""
|
||||
import sys
|
||||
import ldap
|
||||
import re
|
||||
import base64
|
||||
import hashlib
|
||||
import string
|
||||
|
||||
@@ -8,10 +8,8 @@ will be available and modifiable directly from the web interface.
|
||||
|
||||
Only super users will be able to access this part of the web interface.
|
||||
"""
|
||||
|
||||
import inspect
|
||||
import re
|
||||
import copy
|
||||
from django import forms
|
||||
from exceptions import ModoboaException
|
||||
|
||||
|
||||
@@ -1,5 +1,4 @@
|
||||
# coding: utf-8
|
||||
from functools import wraps
|
||||
from django.contrib.contenttypes.models import ContentType
|
||||
from django.utils.translation import ugettext as _
|
||||
from django.db import IntegrityError
|
||||
|
||||
@@ -5,7 +5,6 @@ This module extra functions/shortcuts to communicate with the system
|
||||
(executing commands, etc.)
|
||||
"""
|
||||
import subprocess
|
||||
from modoboa.lib import parameters
|
||||
|
||||
|
||||
def exec_cmd(cmd, sudo_user=None, **kwargs):
|
||||
|
||||
@@ -9,11 +9,9 @@ output (using standard tags like <table> and co.).
|
||||
|
||||
"""
|
||||
import inspect
|
||||
import lxml
|
||||
from django.core.urlresolvers import reverse
|
||||
from django.utils.translation import ugettext as _
|
||||
from django.template import Template, RequestContext, Context
|
||||
from django.template.loader import render_to_string
|
||||
from templatetags.lib_tags import render_link
|
||||
|
||||
|
||||
|
||||
@@ -1,14 +1,9 @@
|
||||
# coding: utf-8
|
||||
from datetime import datetime
|
||||
from django import template
|
||||
from django.contrib import messages
|
||||
from django.template import Template, Context
|
||||
from django.template.loader import render_to_string
|
||||
from django.core.urlresolvers import reverse
|
||||
from django.utils.translation import ugettext as _, ugettext_lazy
|
||||
from modoboa.lib import events
|
||||
from modoboa.lib.sysutils import exec_cmd
|
||||
from modoboa.lib.webutils import static_url
|
||||
from django.utils.translation import ugettext_lazy
|
||||
from modoboa.lib.formutils import SeparatorField
|
||||
|
||||
register = template.Library()
|
||||
|
||||
@@ -1,5 +1,4 @@
|
||||
# coding: utf-8
|
||||
import unittest
|
||||
from django.test import TestCase
|
||||
from django.test.client import Client
|
||||
from django.utils import simplejson
|
||||
@@ -9,7 +8,7 @@ from modoboa.lib import parameters
|
||||
|
||||
|
||||
class ModoTestCase(TestCase):
|
||||
|
||||
|
||||
def setUp(self, username="admin", password="password"):
|
||||
self.clt = Client()
|
||||
self.assertEqual(self.clt.login(username=username, password=password), True)
|
||||
|
||||
@@ -3,7 +3,6 @@
|
||||
"""
|
||||
This module contains extra functions/shortcuts used to render HTML.
|
||||
"""
|
||||
import os
|
||||
import sys
|
||||
import re
|
||||
from django.http import HttpResponse, HttpResponseRedirect
|
||||
|
||||
+1
-1
@@ -1,4 +1,4 @@
|
||||
from django.conf.urls import patterns, include, url
|
||||
from django.conf.urls import patterns, include
|
||||
from django.conf import settings
|
||||
from modoboa.core.extensions import exts_pool
|
||||
from modoboa.lib import parameters, events
|
||||
|
||||
Reference in New Issue
Block a user