From 299b6f6f4639109a86005cd5bd903d0827cf6bf7 Mon Sep 17 00:00:00 2001 From: Antoine Nguyen Date: Wed, 5 Jul 2017 21:20:37 +0200 Subject: [PATCH] admin: fixed domain quota display when db not ready. see #1174 --- modoboa/admin/models/mailbox.py | 6 ++++-- modoboa/admin/tests/test_domain.py | 7 +++++++ 2 files changed, 11 insertions(+), 2 deletions(-) diff --git a/modoboa/admin/models/mailbox.py b/modoboa/admin/models/mailbox.py index a7e7eb0d6..a3929a555 100644 --- a/modoboa/admin/models/mailbox.py +++ b/modoboa/admin/models/mailbox.py @@ -31,8 +31,10 @@ class QuotaManager(models.Manager): """Return current usage for domain.""" qset = self.get_queryset().filter( username__endswith="@{}".format(domain.name)) - result = qset.aggregate(usage=models.Sum("bytes")) - return result.get("usage", 0) + result = qset.aggregate(usage=models.Sum("bytes")).get("usage", 0) + if result is None: + result = 0 + return result class Quota(models.Model): diff --git a/modoboa/admin/tests/test_domain.py b/modoboa/admin/tests/test_domain.py index 9c05b6d86..999d8fcd2 100644 --- a/modoboa/admin/tests/test_domain.py +++ b/modoboa/admin/tests/test_domain.py @@ -257,6 +257,13 @@ class DomainTestCase(ModoTestCase): self.assertEqual(response.status_code, 200) self.assertNotIn("Usage", response.content.decode()) + # Try with a fresh domain (see #1174) + domain = factories.DomainFactory(name="simpson.com", quota=100) + url = reverse("admin:domain_detail", args=[domain.pk]) + response = self.client.get(url) + self.assertEqual(response.status_code, 200) + self.assertIn("Usage", response.content.decode()) + def test_statitics_widget(self): """Test statistics display in dashboard.""" url = reverse("core:dashboard")