From ec6a9a7cc1624e185d4b63ffc6f90c423d34a02d Mon Sep 17 00:00:00 2001
From: Jan Dittberner 
Date: Sun, 23 Jul 2023 10:26:43 +0200
Subject: [PATCH 1/2] Add disk usage details for mail and web
Addresses #10
---
 docs/changelog.rst                            |   2 +
 .../locale/de/LC_MESSAGES/django.po           | 138 ++++++++++--------
 .../0008_extend_disk_usage_model.py           |  53 +++++++
 gnuviechadmin/hostingpackages/models.py       |  21 ++-
 ...omerhostingpackage_disk_usage_details.html |  52 +++++--
 gnuviechadmin/hostingpackages/views.py        |  28 +++-
 6 files changed, 214 insertions(+), 80 deletions(-)
 create mode 100644 gnuviechadmin/hostingpackages/migrations/0008_extend_disk_usage_model.py
diff --git a/docs/changelog.rst b/docs/changelog.rst
index c6c7fb8..cc631c9 100644
--- a/docs/changelog.rst
+++ b/docs/changelog.rst
@@ -1,6 +1,8 @@
 Changelog
 =========
 
+* :feature:`10` add disk usage details for mail and web
+
 * :release:`0.14.4 <2023-07-22>`
 * :bug:`-` add customer to disk space detail view
 
diff --git a/gnuviechadmin/hostingpackages/locale/de/LC_MESSAGES/django.po b/gnuviechadmin/hostingpackages/locale/de/LC_MESSAGES/django.po
index 91d0df9..81f8ea8 100644
--- a/gnuviechadmin/hostingpackages/locale/de/LC_MESSAGES/django.po
+++ b/gnuviechadmin/hostingpackages/locale/de/LC_MESSAGES/django.po
@@ -7,8 +7,8 @@ msgid ""
 msgstr ""
 "Project-Id-Version: gnuviechadmin hostingpackages\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2023-07-22 20:06+0200\n"
-"PO-Revision-Date: 2023-07-22 20:06+0200\n"
+"POT-Creation-Date: 2023-07-23 10:23+0200\n"
+"PO-Revision-Date: 2023-07-23 10:24+0200\n"
 "Last-Translator: Jan Dittberner \n"
 "Language-Team: Jan Dittberner \n"
 "Language: de\n"
@@ -167,78 +167,100 @@ msgstr "Kundenhostingpakete"
 msgid "{name} for {customer}"
 msgstr "{name} für {customer}"
 
-#: hostingpackages/models.py:419 hostingpackages/models.py:446
-#: hostingpackages/models.py:511
+#: hostingpackages/models.py:421 hostingpackages/models.py:448
+#: hostingpackages/models.py:513
 msgid "hosting package"
 msgstr "Hostingpaket"
 
-#: hostingpackages/models.py:424
+#: hostingpackages/models.py:426
 msgid "hosting domain"
 msgstr "Hostingdomain"
 
-#: hostingpackages/models.py:451
+#: hostingpackages/models.py:453
 msgid "customer hosting option"
 msgstr "kundenspezifische Hostingoption"
 
-#: hostingpackages/models.py:452
+#: hostingpackages/models.py:454
 msgid "customer hosting options"
 msgstr "kundenspezifische Hostingoptionen"
 
-#: hostingpackages/models.py:464
+#: hostingpackages/models.py:466
 msgid "disk space option template"
 msgstr "Speicherplatzoptionsvorlage"
 
-#: hostingpackages/models.py:466
+#: hostingpackages/models.py:468
 msgid "The disk space option template that this disk space option is based on"
 msgstr ""
 "Die Speicherplatzoptionsvorlage auf der diese Speicherplatzoption aufgebaut "
 "ist"
 
-#: hostingpackages/models.py:481
+#: hostingpackages/models.py:483
 msgid "user database option template"
 msgstr "Nutzerdatenbankoptionsvorlage"
 
-#: hostingpackages/models.py:483
+#: hostingpackages/models.py:485
 msgid "The user database option template that this database option is based on"
 msgstr ""
 "Die Nutzerdatenbankoptionsvorlage auf der diese Datenbankoption aufgebaut ist"
 
-#: hostingpackages/models.py:498
+#: hostingpackages/models.py:500
 msgid "mailbox option template"
 msgstr "Postfachoptionsvorlage"
 
-#: hostingpackages/models.py:499
+#: hostingpackages/models.py:501
 msgid "The mailbox option template that this mailbox option is based on"
 msgstr "Die Postfachoptionsvorlage auf der diese Postfachoption aufgebaut ist"
 
-#: hostingpackages/models.py:512
+#: hostingpackages/models.py:514
 msgid "The hosting package"
 msgstr "Das Hostingpaket"
 
-#: hostingpackages/models.py:516
+#: hostingpackages/models.py:518
 msgid "data source"
 msgstr "Datenquelle"
 
-#: hostingpackages/models.py:517
-msgid "disk"
-msgstr "Festplatte"
+#: hostingpackages/models.py:520
+#: hostingpackages/templates/hostingpackages/customerhostingpackage_detail.html:202
+#: hostingpackages/templates/hostingpackages/customerhostingpackage_disk_usage_details.html:42
+msgid "Mailbox"
+msgstr "Postfach"
 
-#: hostingpackages/models.py:517
-msgid "mysql"
-msgstr "MySQL"
+#: hostingpackages/models.py:521
+msgid "Website"
+msgstr "Webauftritt"
 
-#: hostingpackages/models.py:517
-msgid "pgsql"
-msgstr "PostgreSQL"
+#: hostingpackages/models.py:522
+msgid "MariaDB database"
+msgstr "MariaDB-Datenbank"
 
-#: hostingpackages/models.py:519
+#: hostingpackages/models.py:523
+msgid "PostgreSQL database"
+msgstr "PostgreSQL-Datenbank"
+
+#: hostingpackages/models.py:526
 msgid "data item"
 msgstr "Dateneinheit"
 
-#: hostingpackages/models.py:521
+#: hostingpackages/models.py:528
 msgid "space used in KiB"
 msgstr "genutzter Platz in KiB"
 
+#: hostingpackages/models.py:532
+msgid "mail address"
+msgstr "E-Mailadresse"
+
+#: hostingpackages/models.py:533
+msgid "Assigned mail address"
+msgstr "Zugeordnete E-Mailadresse"
+
+#: hostingpackages/models.py:539
+msgid "website"
+msgstr "Webauftritt"
+
+#: hostingpackages/models.py:540
+msgid "Assigned web site"
+msgstr "Zugeordneter Webauftritt"
+
 #: hostingpackages/templates/hostingpackages/add_hosting_option.html:4
 #: hostingpackages/templates/hostingpackages/add_hosting_option.html:7
 #, python-format
@@ -266,20 +288,19 @@ msgstr "OS-Nutzer"
 
 #: hostingpackages/templates/hostingpackages/customerhostingpackage_admin_list.html:14
 #: hostingpackages/templates/hostingpackages/customerhostingpackage_detail.html:40
-#: hostingpackages/views.py:183
+#: hostingpackages/views.py:184
 msgid "Disk space"
 msgstr "Speicherplatz"
 
 #: hostingpackages/templates/hostingpackages/customerhostingpackage_admin_list.html:15
 #: hostingpackages/templates/hostingpackages/customerhostingpackage_detail.html:54
-#: hostingpackages/templates/hostingpackages/customerhostingpackage_disk_usage_details.html:48
-#: hostingpackages/views.py:190
+#: hostingpackages/views.py:191
 msgid "Mailboxes"
 msgstr "Postfächer"
 
 #: hostingpackages/templates/hostingpackages/customerhostingpackage_admin_list.html:16
 #: hostingpackages/templates/hostingpackages/customerhostingpackage_detail.html:239
-#: hostingpackages/views.py:197
+#: hostingpackages/views.py:198
 msgid "Databases"
 msgstr "Datenbanken"
 
@@ -355,7 +376,7 @@ msgstr ""
 "%(disk_space)s für Ihr Hostingpaket"
 
 #: hostingpackages/templates/hostingpackages/customerhostingpackage_detail.html:45
-#: hostingpackages/templates/hostingpackages/customerhostingpackage_disk_usage_details.html:27
+#: hostingpackages/templates/hostingpackages/customerhostingpackage_disk_usage_details.html:28
 #, python-format
 msgid "%(used_space)s of %(disk_space)s (%(space_level_percent)s%%)"
 msgstr "%(used_space)s von %(disk_space)s (%(space_level_percent)s%%)"
@@ -369,7 +390,7 @@ msgid "Details"
 msgstr "Details"
 
 #: hostingpackages/templates/hostingpackages/customerhostingpackage_detail.html:49
-#: hostingpackages/templates/hostingpackages/customerhostingpackage_disk_usage_details.html:31
+#: hostingpackages/templates/hostingpackages/customerhostingpackage_disk_usage_details.html:32
 #, python-format
 msgid ""
 "The package contributes %(package_space)s the difference comes from disk "
@@ -525,10 +546,6 @@ msgstr "Domain hinzufügen"
 msgid "E-Mail-Accounts"
 msgstr "E-Mail-Konten"
 
-#: hostingpackages/templates/hostingpackages/customerhostingpackage_detail.html:202
-msgid "Mailbox"
-msgstr "Postfach"
-
 #: hostingpackages/templates/hostingpackages/customerhostingpackage_detail.html:204
 #: hostingpackages/templates/hostingpackages/customerhostingpackage_detail.html:216
 msgid "Active"
@@ -603,7 +620,7 @@ msgstr "Speicherplatznutzung Ihres Hostingpakets %(package)s"
 msgid "Disk usage of Hosting Package %(package)s of %(full_name)s"
 msgstr "Speicherplatznutzung des Hostingpakets %(package)s von %(full_name)s"
 
-#: hostingpackages/templates/hostingpackages/customerhostingpackage_disk_usage_details.html:16
+#: hostingpackages/templates/hostingpackages/customerhostingpackage_disk_usage_details.html:17
 #, python-format
 msgid ""
 "Disk usage of Hosting Package %(package)s"
@@ -611,7 +628,7 @@ msgstr ""
 "Speicherplatznutzung des Hostingpakets %(package)s"
 
-#: hostingpackages/templates/hostingpackages/customerhostingpackage_disk_usage_details.html:22
+#: hostingpackages/templates/hostingpackages/customerhostingpackage_disk_usage_details.html:23
 #, python-format
 msgid ""
 "You use %(used_space)s of the reserved disk space of %(disk_space)s for your "
@@ -620,42 +637,43 @@ msgstr ""
 "Sie nutzen %(used_space)s des reservierten Speicherplatzes von "
 "%(disk_space)s für Ihr Hostingpaket."
 
-#: hostingpackages/templates/hostingpackages/customerhostingpackage_disk_usage_details.html:35
+#: hostingpackages/templates/hostingpackages/customerhostingpackage_disk_usage_details.html:36
 msgid "Breakdown by usage"
 msgstr "Aufgliederung nach Nutzung"
 
-#: hostingpackages/templates/hostingpackages/customerhostingpackage_disk_usage_details.html:37
-msgid "Regular file system usage"
-msgstr "Reguläre Dateisystemnutzung"
+#: hostingpackages/templates/hostingpackages/customerhostingpackage_disk_usage_details.html:38
+msgid "Mailbox usage"
+msgstr "Postfachnutzung"
 
-#: hostingpackages/templates/hostingpackages/customerhostingpackage_disk_usage_details.html:41
-msgid "Origin"
-msgstr "Quelle"
+#: hostingpackages/templates/hostingpackages/customerhostingpackage_disk_usage_details.html:43
+msgid "Primary email address"
+msgstr "Primäre E-Mailadresse"
 
-#: hostingpackages/templates/hostingpackages/customerhostingpackage_disk_usage_details.html:42
-#: hostingpackages/templates/hostingpackages/customerhostingpackage_disk_usage_details.html:61
-#: hostingpackages/templates/hostingpackages/customerhostingpackage_disk_usage_details.html:78
+#: hostingpackages/templates/hostingpackages/customerhostingpackage_disk_usage_details.html:44
+#: hostingpackages/templates/hostingpackages/customerhostingpackage_disk_usage_details.html:64
+#: hostingpackages/templates/hostingpackages/customerhostingpackage_disk_usage_details.html:83
+#: hostingpackages/templates/hostingpackages/customerhostingpackage_disk_usage_details.html:102
 msgid "Used space"
 msgstr "Genutzter Speicherplatz"
 
-#: hostingpackages/templates/hostingpackages/customerhostingpackage_disk_usage_details.html:47
-msgid "Website data"
-msgstr "Webseiten-Daten"
+#: hostingpackages/templates/hostingpackages/customerhostingpackage_disk_usage_details.html:59
+msgid "Website usage"
+msgstr "Nutzung für Webauftritte"
 
-#: hostingpackages/templates/hostingpackages/customerhostingpackage_disk_usage_details.html:48
-msgid "Other"
-msgstr "Sonstiges"
+#: hostingpackages/templates/hostingpackages/customerhostingpackage_disk_usage_details.html:63
+msgid "Website / Directory"
+msgstr "Webauftritt / Verzeichnis"
 
-#: hostingpackages/templates/hostingpackages/customerhostingpackage_disk_usage_details.html:56
+#: hostingpackages/templates/hostingpackages/customerhostingpackage_disk_usage_details.html:78
 msgid "MySQL/MariaDB database usage"
 msgstr "MySQL/MariaDB-Datenbanknutzung"
 
-#: hostingpackages/templates/hostingpackages/customerhostingpackage_disk_usage_details.html:60
-#: hostingpackages/templates/hostingpackages/customerhostingpackage_disk_usage_details.html:77
+#: hostingpackages/templates/hostingpackages/customerhostingpackage_disk_usage_details.html:82
+#: hostingpackages/templates/hostingpackages/customerhostingpackage_disk_usage_details.html:101
 msgid "Database"
 msgstr "Datenbank"
 
-#: hostingpackages/templates/hostingpackages/customerhostingpackage_disk_usage_details.html:73
+#: hostingpackages/templates/hostingpackages/customerhostingpackage_disk_usage_details.html:97
 msgid "PostgreSQL database usage"
 msgstr "PostgreSQL-Datenbanknutzung"
 
@@ -668,12 +686,12 @@ msgstr ""
 "Wählen Sie eine neue Option für das Hostingpaket %(package)s des Kunden "
 "%(full_name)s"
 
-#: hostingpackages/views.py:62 hostingpackages/views.py:96
+#: hostingpackages/views.py:63 hostingpackages/views.py:97
 #, python-brace-format
 msgid "Started setup of new hosting package {name}."
 msgstr "Einrichtung des Hostingpakets {name} wurde gestartet."
 
-#: hostingpackages/views.py:271
+#: hostingpackages/views.py:272
 #, python-brace-format
 msgid "Successfully added option {option} to hosting package {package}."
 msgstr "Option {option} erfolgreich zum Hostingpaket {package} hinzugefügt."
diff --git a/gnuviechadmin/hostingpackages/migrations/0008_extend_disk_usage_model.py b/gnuviechadmin/hostingpackages/migrations/0008_extend_disk_usage_model.py
new file mode 100644
index 0000000..2d7148b
--- /dev/null
+++ b/gnuviechadmin/hostingpackages/migrations/0008_extend_disk_usage_model.py
@@ -0,0 +1,53 @@
+# Generated by Django 4.2.3 on 2023-07-23 07:24
+
+from django.db import migrations, models
+import django.db.models.deletion
+
+
+class Migration(migrations.Migration):
+    dependencies = [
+        ("managemails", "0004_auto_20150125_1825"),
+        ("websites", "0001_initial"),
+        ("hostingpackages", "0007_add_disk_usage_table"),
+    ]
+
+    operations = [
+        migrations.AddField(
+            model_name="customerpackagediskusage",
+            name="email_address",
+            field=models.ForeignKey(
+                help_text="Assigned mail address",
+                null=True,
+                on_delete=django.db.models.deletion.CASCADE,
+                to="managemails.mailaddress",
+                verbose_name="mail address",
+            ),
+        ),
+        migrations.AddField(
+            model_name="customerpackagediskusage",
+            name="website",
+            field=models.ForeignKey(
+                help_text="Assigned web site",
+                null=True,
+                on_delete=django.db.models.deletion.CASCADE,
+                to="websites.website",
+                verbose_name="website",
+            ),
+        ),
+        migrations.RunSQL(
+            "DELETE FROM hostingpackages_customerpackagediskusage WHERE source='disk'"
+        ),
+        migrations.AlterField(
+            model_name="customerpackagediskusage",
+            name="source",
+            field=models.CharField(
+                choices=[
+                    ("mail", "Mailbox"),
+                    ("web", "Website"),
+                    ("mysql", "MariaDB database"),
+                    ("pgsql", "PostgreSQL database"),
+                ],
+                verbose_name="data source",
+            ),
+        ),
+    ]
diff --git a/gnuviechadmin/hostingpackages/models.py b/gnuviechadmin/hostingpackages/models.py
index 5565a2f..faebf2f 100644
--- a/gnuviechadmin/hostingpackages/models.py
+++ b/gnuviechadmin/hostingpackages/models.py
@@ -516,12 +516,31 @@ class CustomerPackageDiskUsage(TimeStampedModel):
     )
     source = models.CharField(
         verbose_name=_("data source"),
-        choices=(("disk", _("disk")), ("mysql", _("mysql")), ("pgsql", _("pgsql"))),
+        choices=(
+            ("mail", _("Mailbox")),
+            ("web", _("Website")),
+            ("mysql", _("MariaDB database")),
+            ("pgsql", _("PostgreSQL database")),
+        ),
     )
     item = models.CharField(verbose_name=_("data item"))
     used_kb = models.PositiveBigIntegerField(
         verbose_name=_("space used in KiB"), default=0
     )
+    email_address = models.ForeignKey(
+        "managemails.MailAddress",
+        verbose_name=_("mail address"),
+        help_text=_("Assigned mail address"),
+        on_delete=models.CASCADE,
+        null=True,
+    )
+    website = models.ForeignKey(
+        "websites.Website",
+        verbose_name=_("website"),
+        help_text=_("Assigned web site"),
+        on_delete=models.CASCADE,
+        null=True,
+    )
 
     class Meta:
         unique_together = ("package", "source", "item")
diff --git a/gnuviechadmin/hostingpackages/templates/hostingpackages/customerhostingpackage_disk_usage_details.html b/gnuviechadmin/hostingpackages/templates/hostingpackages/customerhostingpackage_disk_usage_details.html
index 275debe..8ba2ceb 100644
--- a/gnuviechadmin/hostingpackages/templates/hostingpackages/customerhostingpackage_disk_usage_details.html
+++ b/gnuviechadmin/hostingpackages/templates/hostingpackages/customerhostingpackage_disk_usage_details.html
@@ -13,9 +13,10 @@
     {% endif %}
 {% endspaceless %}{% endblock title %}
 
-{% block page_title %}{% blocktranslate with package=hostingpackage.name package_url=hostingpackage.get_absolute_url trimmed %}
-    Disk usage of Hosting Package {{ package }}
-{% endblocktranslate %}{% endblock page_title %}
+{% block page_title %}
+    {% blocktranslate with package=hostingpackage.name package_url=hostingpackage.get_absolute_url trimmed %}
+        Disk usage of Hosting Package {{ package }}
+    {% endblocktranslate %}{% endblock page_title %}
 
 {% block content %}
     {% with used_space=hostingpackage.get_used_disk_space_sum|filesizeformat disk_space=hostingpackage.get_disk_space|filesizeformat package_space=hostingpackage.get_package_space|filesizeformat space_level=hostingpackage.space_level %}
@@ -33,57 +34,82 @@ The package contributes {{ package_space }} the difference comes from disk space
 {% endblocktranslate %}">
         
         {% trans "Breakdown by usage" %}
-        {% if disk_usage %}
-            {% trans "Regular file system usage" %}
-            
+        {% if mail_usage %}
+            {% trans "Mailbox usage" %}
+            
                 
                 
-                    | {% translate "Origin" %}+ | {% translate "Mailbox" %}+ | {% translate "Primary email address" %} | {% translate "Used space" %} | 
                 
-                {% for line in disk_usage %}
+                
+                {% for line in mail_usage %}
                     
-                        | {% if line.item == "web" %}{% translate "Website data" %}{% elif line.item == "mail" %}
-                            {% translate "Mailboxes" %}{% elif line.item == "other" %}{% translate "Other" %}{% else %}
-                            {{ line.item }}{% endif %}+ | {{ line.item }}+ | {% if line.email_address %}{{ line.email_address }}{% else %}-{% endif %} | {{ line.size_in_bytes|filesizeformat }} | 
                 {% endfor %}
+                
+            
+        {% endif %}
+        {% if web_usage %}
+            {% trans "Website usage" %}
+            
+                
+                
+                    | {% translate "Website / Directory" %}+ | {% translate "Used space" %}+ | 
+                
+                
+                {% for line in web_usage %}
+                    
+                        | {{ line.item }}+ | {{ line.size_in_bytes|filesizeformat }}+ | 
+                {% endfor %}
+                
             
         {% endif %}
         {% if mysql_usage %}
             {% trans "MySQL/MariaDB database usage" %}
-            
+            
                 
                 
                     | {% translate "Database" %} | {% translate "Used space" %} | 
                 
+                
                 {% for line in mysql_usage %}
                     
                         | {{ line.item }} | {{ line.size_in_bytes|filesizeformat }} | 
                 {% endfor %}
+                
             
         {% endif %}
         {% if pgsql_usage %}
             {% trans "PostgreSQL database usage" %}
-            
+            
                 
                 
                     | {% translate "Database" %} | {% translate "Used space" %} | 
                 
+                
                 {% for line in pgsql_usage %}
                     
                         | {{ line.item }} | {{ line.size_in_bytes|filesizeformat }} | 
                 {% endfor %}
+                
             
         {% endif %}
     {% endwith %}
diff --git a/gnuviechadmin/hostingpackages/views.py b/gnuviechadmin/hostingpackages/views.py
index 86b0b21..ea5b4ac 100644
--- a/gnuviechadmin/hostingpackages/views.py
+++ b/gnuviechadmin/hostingpackages/views.py
@@ -24,6 +24,7 @@ from rest_framework.views import APIView
 
 from gvacommon.viewmixins import StaffOrSelfLoginRequiredMixin
 
+from managemails.models import Mailbox
 from .forms import (
     AddDiskspaceOptionForm,
     AddMailboxOptionForm,
@@ -40,7 +41,7 @@ from .models import (
 )
 from .serializers import DiskUsageSerializer
 
-logger = logging.getLogger("gnuviechadmin.hostingpackages")
+logger = logging.getLogger(__name__)
 
 
 class CreateHostingPackage(PermissionRequiredMixin, CreateView):
@@ -290,6 +291,7 @@ class UploadCustomerPackageDiskUsage(APIView):
     def post(self, request: rest_framework.request.Request, format=None):
         if request.content_type != "application/json":
             return Response("Unacceptable", status=http.HTTPStatus.BAD_REQUEST)
+
         for row in request.data:
             user = row["user"]
             for key in row:
@@ -310,13 +312,22 @@ class UploadCustomerPackageDiskUsage(APIView):
                                 item=item,
                             )
                             metric.used_kb = size
+
+                            if key == "mail":
+                                try:
+                                    ma_mb = package.mailboxes.get(username=item).mailaddressmailbox_set.first()
+                                    if ma_mb:
+                                        metric.email_address_id = ma_mb.mailaddress_id
+                                except Mailbox.DoesNotExist:
+                                    logger.warning("mail box %s does not exist", item)
+
                             metric.save()
                         except CustomerHostingPackage.DoesNotExist:
                             logger.warning(
                                 "hosting package for user %s does not exist", user
                             )
 
-        logger.info("usage date submitted by %s", request.user)
+        logger.info("usage data submitted by %s", request.user)
 
         return Response("Accepted", status=http.HTTPStatus.ACCEPTED)
 
@@ -342,13 +353,17 @@ class CustomerHostingPackageDiskUsageDetails(StaffOrSelfLoginRequiredMixin, Deta
     def get_context_data(self, **kwargs):
         context_data = super().get_context_data(**kwargs)
 
-        disk_usage, mysql_usage, pgsql_usage = [], [], []
+        mail_usage, web_usage, mysql_usage, pgsql_usage = [], [], [], []
 
         for usage in self.get_object().customerpackagediskusage_set.order_by(
             "-used_kb"
         ):
-            if usage.source == "disk":
-                disk_usage.append(usage)
+            if usage.used_kb <= 0:
+                continue
+            if usage.source == "mail":
+                mail_usage.append(usage)
+            elif usage.source == "web":
+                web_usage.append(usage)
             elif usage.source == "mysql":
                 mysql_usage.append(usage)
             elif usage.source == "pgsql":
@@ -357,7 +372,8 @@ class CustomerHostingPackageDiskUsageDetails(StaffOrSelfLoginRequiredMixin, Deta
         context_data.update(
             {
                 "customer": self.get_customer_object(),
-                "disk_usage": disk_usage,
+                "mail_usage": mail_usage,
+                "web_usage": web_usage,
                 "mysql_usage": mysql_usage,
                 "pgsql_usage": pgsql_usage,
             }
From 4b74f5d04b67961ca39932f6185fe3c17200a88f Mon Sep 17 00:00:00 2001
From: Jan Dittberner 
Date: Sun, 23 Jul 2023 10:28:00 +0200
Subject: [PATCH 2/2] Release 0.15.0
---
 docs/changelog.rst                      | 1 +
 gnuviechadmin/gnuviechadmin/__init__.py | 2 +-
 pyproject.toml                          | 2 +-
 3 files changed, 3 insertions(+), 2 deletions(-)
diff --git a/docs/changelog.rst b/docs/changelog.rst
index cc631c9..89721cb 100644
--- a/docs/changelog.rst
+++ b/docs/changelog.rst
@@ -1,6 +1,7 @@
 Changelog
 =========
 
+* :release:`0.15.0 <2023-07-23>
 * :feature:`10` add disk usage details for mail and web
 
 * :release:`0.14.4 <2023-07-22>`
diff --git a/gnuviechadmin/gnuviechadmin/__init__.py b/gnuviechadmin/gnuviechadmin/__init__.py
index 4cf17fe..d1d1bd2 100644
--- a/gnuviechadmin/gnuviechadmin/__init__.py
+++ b/gnuviechadmin/gnuviechadmin/__init__.py
@@ -1,4 +1,4 @@
 # import celery_app to initialize it
 from gnuviechadmin.celery import app as celery_app  # NOQA
 
-__version__ = "0.14.4"
+__version__ = "0.15.0"
diff --git a/pyproject.toml b/pyproject.toml
index 229a81d..48a9242 100644
--- a/pyproject.toml
+++ b/pyproject.toml
@@ -1,6 +1,6 @@
 [tool.poetry]
 name = "gva"
-version = "0.14.4"
+version = "0.15.0"
 description = "gnuviechadmin web interface"
 authors = ["Jan Dittberner "]
 license = "AGPL-3+"