From b9342f78017d26cf52b97841b0b3628b2b58e64f Mon Sep 17 00:00:00 2001 From: Antoine Nguyen Date: Wed, 15 Feb 2017 15:41:57 +0100 Subject: [PATCH] Display domain quota usage. see #1030 --- modoboa/admin/forms/account.py | 3 +- modoboa/admin/models/domain.py | 7 ++ .../admin/templates/admin/domain_detail.html | 91 +++++++++++++------ 3 files changed, 70 insertions(+), 31 deletions(-) diff --git a/modoboa/admin/forms/account.py b/modoboa/admin/forms/account.py index bf6963664..fd9b1035b 100644 --- a/modoboa/admin/forms/account.py +++ b/modoboa/admin/forms/account.py @@ -197,7 +197,8 @@ class AccountFormMail(forms.Form, DynamicForm): help_text=_("Quota in MB for this mailbox. Define a custom value or " "use domain's default one. Leave empty to define an " "unlimited value (not allowed for domain " - "administrators).") + "administrators)."), + widget=forms.widgets.TextInput(attrs={"class": "form-control"}) ) quota_act = forms.BooleanField(required=False) aliases = lib_fields.UTF8AndEmptyUserEmailField( diff --git a/modoboa/admin/models/domain.py b/modoboa/admin/models/domain.py index 3032fab66..2eeb83e49 100644 --- a/modoboa/admin/models/domain.py +++ b/modoboa/admin/models/domain.py @@ -167,6 +167,13 @@ class Domain(AdminObject): return self.mailbox_set.aggregate( total=models.Sum("quota"))["total"] + @cached_property + def quota_usage_in_percent(self): + """Return quota usage in percent.""" + if not self.quota_usage: + return 0 + return int(self.quota_usage / float(self.quota) * 100) + def add_admin(self, account): """Add a new administrator to this domain. diff --git a/modoboa/admin/templates/admin/domain_detail.html b/modoboa/admin/templates/admin/domain_detail.html index 349c9e3c4..0299af528 100644 --- a/modoboa/admin/templates/admin/domain_detail.html +++ b/modoboa/admin/templates/admin/domain_detail.html @@ -20,21 +20,50 @@

{% trans "Summary" %}

-
+ {% if enable_mx_checks or enable_dnsbl_checks %} -
- {% trans "DNS status" %} - {% include "admin/_domain_dnschecks_status.html" %} -
+ + + + {% endif %} -
- {% trans "Creation date" %}{{ domain.creation }} -
-
{% trans "Last modification date" %}{{ domain.last_modification }}
-
{% trans "Domain aliases" %}{{ domain.domainalias_count }}
-
{% trans "Mailboxes" %}{{ domain.mailbox_count }}
-
{% trans "Mailbox aliases" %}{{ domain.mbalias_count }}
- + + + + + + + + + + + + + + + + + + + + + + + + + {% if domain.quota %} + + + + + {% endif %} + + + + +
{% trans "DNS status" %} + {% include "admin/_domain_dnschecks_status.html" %} +
{% trans "Creation date" %}{{ domain.creation }}
{% trans "Last modification date" %}{{ domain.last_modification }}
{% trans "Domain aliases" %}{{ domain.domainalias_count }}
{% trans "Mailboxes" %}{{ domain.mailbox_count }}
{% trans "Mailbox aliases" %}{{ domain.mbalias_count }}
{% trans "Quota" %}{{ domain.quota }} {% trans "MB" %}
{% trans "Usage" %}{% include "common/progressbar.html" with id="quotabar" value=domain.quota_usage_in_percent %}
{% trans "Default mailbox quota" %}{{ domain.default_mailbox_quota }} {% trans "MB" %}
{% if object.domainalias_set.exists %} @@ -58,24 +87,26 @@

{% trans "Administrators" %}

-
- +
+ - {% for da in domain.admins %} - - - - - - {% empty %} - - {% endfor %} -
{% trans "Username" %}{% trans "Name" %}
{{ da.username }}{{ da.fullname }} - {% if perms.admin.change_domain %} - - {% endif %} -
{% trans "No domain administrator defined yet." %}
-
+ + + {% for da in domain.admins %} + + {{ da.username }} + {{ da.fullname }} + + {% if perms.admin.change_domain %} + + {% endif %} + + + {% empty %} + {% trans "No domain administrator defined yet." %} + {% endfor %} + +
{% for template in templates.right %}