PEP8 fixes

This commit is contained in:
Antoine Nguyen
2015-01-15 11:43:17 +01:00
parent 6b57c0ad02
commit d4317b270e
7 changed files with 79 additions and 41 deletions
+17 -7
View File
@@ -1,42 +1,52 @@
"""Custom settings."""
from django import forms
from django.utils.translation import ugettext_lazy as _
from modoboa.lib.parameters import AdminParametersForm
from modoboa.lib.form_utils import SeparatorField
from modoboa.lib.parameters import AdminParametersForm
class ParametersForm(AdminParametersForm):
app = "limits"
defv_sep = SeparatorField(label=_("Default limits"))
deflt_domain_admins_limit = forms.IntegerField(
label=_("Domain admins"),
initial=0,
help_text=_("Maximum number of allowed domain administrators for a new administrator"),
help_text=_(
"Maximum number of allowed domain administrators for a new "
"administrator"
),
widget=forms.widgets.TextInput(attrs={"class": "col-md-1 form-control"})
)
deflt_domains_limit = forms.IntegerField(
label=_("Domains"),
initial=0,
help_text=_("Maximum number of allowed domains for a new administrator"),
help_text=_(
"Maximum number of allowed domains for a new administrator"),
widget=forms.widgets.TextInput(attrs={"class": "col-md-1 form-control"})
)
deflt_domain_aliases_limit = forms.IntegerField(
label=_("Domain aliases"),
initial=0,
help_text=_("Maximum number of allowed domain aliases for a new administrator"),
help_text=_(
"Maximum number of allowed domain aliases for a new administrator"),
widget=forms.widgets.TextInput(attrs={"class": "col-md-1 form-control"})
)
deflt_mailboxes_limit = forms.IntegerField(
label=_("Mailboxes"),
initial=0,
help_text=_("Maximum number of allowed mailboxes for a new administrator"),
help_text=_(
"Maximum number of allowed mailboxes for a new administrator"),
widget=forms.widgets.TextInput(attrs={"class": "col-md-1 form-control"})
)
deflt_mailbox_aliases_limit = forms.IntegerField(
label=_("Mailbox aliases"),
initial=0,
help_text=_("Maximum number of allowed aliases for a new administrator"),
help_text=_(
"Maximum number of allowed aliases for a new administrator"),
widget=forms.widgets.TextInput(attrs={"class": "col-md-1 form-control"})
)
+5 -5
View File
@@ -4,10 +4,10 @@
----------------------------------------------------------------------------
"""
from modoboa.lib import events
from modoboa.lib.permissions import get_object_owner
from .lib import LimitReached, inc_limit_usage, dec_limit_usage
from .models import LimitTemplates, LimitsPool
from modoboa.lib import events
from modoboa.lib.permissions import get_object_owner
def check_limit(user, lname, count=1):
@@ -124,7 +124,7 @@ def can_create_new_object(user, objtype, count=1):
@events.observe("AccountCreated")
def create_pool(user):
owner = get_object_owner(user)
if not owner.group in ['SuperAdmins', 'Resellers']:
if owner.group not in ['SuperAdmins', 'Resellers']:
return
if user.group == 'DomainAdmins':
@@ -177,7 +177,7 @@ def on_account_modified(old, new):
p.save()
p.create_limits(owner)
if not new.group in ["DomainAdmins", "Resellers"]:
if new.group not in ["DomainAdmins", "Resellers"]:
move_pool_resource(owner, new)
if old.oldgroup == "DomainAdmins":
@@ -193,7 +193,7 @@ def on_account_modified(old, new):
@events.observe("AccountDeleted")
def on_account_deleted(account, byuser, **kwargs):
owner = get_object_owner(account)
if not owner.group in ["SuperAdmins", "Resellers"]:
if owner.group not in ["SuperAdmins", "Resellers"]:
return
move_pool_resource(owner, account)
+15 -7
View File
@@ -1,9 +1,13 @@
# coding: utf-8
"""Custom forms."""
from django import forms
from django.utils.translation import ugettext as _, ugettext_lazy
from modoboa.lib import parameters
from .models import LimitTemplates
from django.utils.translation import ugettext as _
from .lib import BadLimitValue, UnsufficientResource
from .models import LimitTemplates
from modoboa.lib import parameters
class ResourcePoolForm(forms.Form):
@@ -15,7 +19,9 @@ class ResourcePoolForm(forms.Form):
del kwargs["instance"]
super(ResourcePoolForm, self).__init__(*args, **kwargs)
for tpl in LimitTemplates().templates:
if len(tpl) > 3 and self.account is not None and self.account.group != tpl[3]:
if len(tpl) <= 3:
continue
if self.account is not None and self.account.group != tpl[3]:
continue
self.fields[tpl[0]] = forms.IntegerField(
label=tpl[1], help_text=tpl[2]
@@ -31,7 +37,7 @@ class ResourcePoolForm(forms.Form):
def clean(self):
cleaned_data = super(ResourcePoolForm, self).clean()
for lname in self.fields.keys():
if not lname in self._errors and cleaned_data[lname] < -1:
if lname not in self._errors and cleaned_data[lname] < -1:
self._errors[lname] = self.error_class([_('Invalid limit')])
del cleaned_data[lname]
return cleaned_data
@@ -42,7 +48,9 @@ class ResourcePoolForm(forms.Form):
# The following lines will become useless in a near
# future.
if self.fields[lname].initial == -2:
self.fields[lname].initial = parameters.get_admin("DEFLT_%s" % lname.upper())
self.fields[lname].initial = parameters.get_admin(
"DEFLT_%s" %
lname.upper())
def allocate_from_pool(self, limit, pool):
"""Allocate resource using an existing pool.
@@ -76,7 +84,7 @@ class ResourcePoolForm(forms.Form):
owner = get_object_owner(self.account)
for ltpl in LimitTemplates().templates:
if not ltpl[0] in self.cleaned_data:
if ltpl[0] not in self.cleaned_data:
continue
l = self.account.limitspool.limit_set.get(name=ltpl[0])
if not owner.is_superuser:
@@ -1,7 +1,10 @@
"""General event callbacks."""
from django.utils.translation import ugettext as _
from modoboa.lib import events
from modoboa.extensions.limits.models import LimitTemplates
from modoboa.extensions.limits.forms import ResourcePoolForm
from modoboa.extensions.limits.models import LimitTemplates
from modoboa.lib import events
@events.observe("GetExtraRoles")
@@ -37,10 +40,10 @@ def display_pool_usage(user, target, currentpage):
@events.observe("ExtraAccountForm")
def extra_account_form(user, account=None):
if not user.group in ["SuperAdmins", "Resellers"]:
if user.group not in ["SuperAdmins", "Resellers"]:
return []
if account is not None and \
not account.group in ["Resellers", "DomainAdmins"]:
account.group not in ["Resellers", "DomainAdmins"]:
return []
return [
+18 -9
View File
@@ -1,10 +1,13 @@
# coding: utf-8
"""Models for the limits extensions."""
from django.conf import settings
from django.db import models
from django.utils.translation import ugettext as _, ugettext_lazy
from modoboa.lib import parameters
from modoboa.lib import parameters, events
from modoboa.lib.singleton import Singleton
from django.conf import settings
from modoboa.lib import events
class LimitTemplates(Singleton):
@@ -12,23 +15,27 @@ class LimitTemplates(Singleton):
def __init__(self):
self.__templates = [
("domain_admins_limit", ugettext_lazy("Domain admins"),
ugettext_lazy("Maximum number of domain administrators this user can create"),
ugettext_lazy("Maximum number of domain administrators this user "
"can create"),
'Resellers'),
("domains_limit", ugettext_lazy("Domains"),
ugettext_lazy("Maximum number of domains this user can create"),
'Resellers'),
("domain_aliases_limit", ugettext_lazy("Domain aliases"),
ugettext_lazy("Maximum number of domain aliases this user can create"),
ugettext_lazy(
"Maximum number of domain aliases this user can create"),
'Resellers'),
("mailboxes_limit", ugettext_lazy("Mailboxes"),
ugettext_lazy("Maximum number of mailboxes this user can create")),
("mailbox_aliases_limit", ugettext_lazy("Mailbox aliases"),
ugettext_lazy("Maximum number of mailbox aliases this user can create"))
ugettext_lazy("Maximum number of mailbox aliases this user "
"can create"))
]
@property
def templates(self):
return self.__templates + events.raiseQueryEvent('GetExtraLimitTemplates')
return self.__templates + \
events.raiseQueryEvent('GetExtraLimitTemplates')
class LimitsPool(models.Model):
@@ -47,8 +54,10 @@ class LimitsPool(models.Model):
try:
Limit.objects.get(name=ltpl[0], pool=self)
except Limit.DoesNotExist:
maxvalue = int(parameters.get_admin("DEFLT_%s" % ltpl[0].upper())) \
maxvalue = (
int(parameters.get_admin("DEFLT_%s" % ltpl[0].upper()))
if creator.is_superuser else 0
)
Limit.objects.create(
name=ltpl[0], pool=self, maxvalue=maxvalue
)
+16 -8
View File
@@ -1,13 +1,16 @@
"""Test cases for the limits extension."""
from django.core.urlresolvers import reverse
from modoboa.lib.tests import ExtTestCase
from modoboa.lib import parameters
from modoboa.core.models import User
from modoboa.core.factories import UserFactory
from modoboa.core.models import User
from modoboa.extensions.admin.factories import (
populate_database
)
from modoboa.extensions.admin.models import Alias, Domain
from modoboa.extensions.limits.models import LimitTemplates
from modoboa.lib import parameters
from modoboa.lib.tests import ExtTestCase
class PermissionsTestCase(ExtTestCase):
@@ -142,8 +145,8 @@ class DomainAdminTestCase(ResourceTestCase):
resp = self._create_alias('alias3@test.com', status=403)
self._check_limit('mailbox_aliases', 2, 2)
self.ajax_post(
reverse('admin:alias_delete') + '?selection=%d' \
% Alias.objects.get(address='alias2', domain__name='test.com').id,
reverse('admin:alias_delete') + '?selection=%d'
% Alias.objects.get(address='alias2', domain__name='test.com').id,
{}
)
self._check_limit('mailbox_aliases', 1, 2)
@@ -206,10 +209,14 @@ class ResellerTestCase(ResourceTestCase):
self._check_limit('domain_admins', 1, 2)
self._create_account('admin2@domain.tld', role='DomainAdmins')
self._check_limit('domain_admins', 2, 2)
resp = self._create_account('admin3@domain.tld', role='DomainAdmins', status=400)
resp = self._create_account(
'admin3@domain.tld',
role='DomainAdmins',
status=400)
self.assertEqual(
resp['form_errors']['role'][0],
'Select a valid choice. DomainAdmins is not one of the available choices.'
'Select a valid choice. DomainAdmins is not one of the available '
'choices.'
)
self._check_limit('domain_admins', 2, 2)
@@ -227,7 +234,8 @@ class ResellerTestCase(ResourceTestCase):
)
self.assertEqual(
resp['form_errors']['role'][0],
'Select a valid choice. DomainAdmins is not one of the available choices.'
'Select a valid choice. DomainAdmins is not one of the available '
'choices.'
)
self._check_limit('domain_admins', 2, 2)
+1 -1
View File
@@ -3,4 +3,4 @@ from django.conf.urls import patterns
urlpatterns = patterns(
'modoboa.extensions.limits.views',
)
)