diff --git a/modoboa/admin/handlers.py b/modoboa/admin/handlers.py index 4787cd343..1d75e8c53 100644 --- a/modoboa/admin/handlers.py +++ b/modoboa/admin/handlers.py @@ -300,3 +300,26 @@ def grant_access_to_all_objects(sender, account, role, **kwargs): account, model.objects.all(), ContentType.objects.get_for_model(model) ) + + +@receiver(core_signals.extra_admin_dashboard_widgets) +def add_widgets_to_admin_dashboard(sender, user, **kwargs): + """Add admin widgets to dashboard.""" + if user.is_superuser: + context = { + "domains_counter": models.Domain.objects.count(), + "domain_aliases_counter": models.DomainAlias.objects.count(), + "identities_counter": ( + core_models.User.objects.count() + + models.Alias.objects.filter(internal=False).count()), + } + template = "admin/_global_statistics_widget.html" + else: + context = { + "domains": models.Domain.objects.get_for_admin(user)} + template = "admin/_per_domain_statistics_widget.html" + return [{ + "column": "right", + "template": template, + "context": context + }] diff --git a/modoboa/admin/templates/admin/_global_statistics_widget.html b/modoboa/admin/templates/admin/_global_statistics_widget.html new file mode 100644 index 000000000..61dfe9ef8 --- /dev/null +++ b/modoboa/admin/templates/admin/_global_statistics_widget.html @@ -0,0 +1,20 @@ +{% load i18n %} + +
| {% trans "Type" %} | +{% trans "Quantity" %} | +
|---|---|
| {% trans "Domains" %} | {{ domains_counter }} | +
| {% trans "Domain aliases" %} | {{ domain_aliases_counter }} | +
| {% trans "Identities" %} | {{ identities_counter }} | +
| {% trans "Domain" %} | +{% trans "Identities" %} | +
|---|---|
| {{ domain.name }} | +{{ domain.identities_count }} | +
| {% trans "Type" %} | -{% trans "Quantity" %} | -
|---|---|
| {% trans "Domains" %} | {{ domains_counter }} | -
| {% trans "Domain aliases" %} | {{ domain_aliases_counter }} | -
| {% trans "Identities" %} | {{ identities_counter }} | -
| {% trans "Domain" %} | -{% trans "Identities" %} | -
|---|---|
| {{ domain.name }} | {{ domain.identities_count }} | -
| {{ post.title }} | +{{ post.published|date:"DATE_FORMAT" }} | +
| {{ post.title }} | -{{ post.published|date:"DATE_FORMAT" }} | -