parent
f21987158b
commit
ec6a9a7cc1
6 changed files with 214 additions and 80 deletions
|
@ -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,
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue