From 826cb8c8b16475c9cfcc38809aaaf0cb0b97280f Mon Sep 17 00:00:00 2001 From: caoqianming Date: Mon, 26 Feb 2024 15:22:14 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20count=5Fstate=E7=BB=9F=E8=AE=A1?= =?UTF-8?q?=E6=95=B0=E6=8D=AE=E5=A2=9E=E5=8A=A0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- apps/em/admin.py | 8 +++++++- apps/em/models.py | 3 +++ apps/em/views.py | 2 ++ 3 files changed, 12 insertions(+), 1 deletion(-) diff --git a/apps/em/admin.py b/apps/em/admin.py index 78ef7551..099b66ea 100644 --- a/apps/em/admin.py +++ b/apps/em/admin.py @@ -1,5 +1,5 @@ from django.contrib import admin -from apps.em.models import Ecate +from apps.em.models import Ecate, Equipment # Register your models here. @@ -7,3 +7,9 @@ from apps.em.models import Ecate class EcateAdmin(admin.ModelAdmin): list_display = ('id', 'name', 'code', 'type', 'is_for_safe', 'is_for_enp', 'is_car') + + +@admin.register(Equipment) +class EquipmentAdmin(admin.ModelAdmin): + list_display = ('id', 'name', 'type', + 'cate', 'state', 'is_online', 'running_state') diff --git a/apps/em/models.py b/apps/em/models.py index 03a50416..d73f0b1f 100644 --- a/apps/em/models.py +++ b/apps/em/models.py @@ -32,6 +32,9 @@ class Ecate(CommonADModel): is_for_enp = models.BooleanField('是否用于环保', default=False) is_car = models.BooleanField('是否为车辆', default=False) + def __str__(self): + return f'{self.name}|{self.code}' + class Equipment(CommonBModel): """ diff --git a/apps/em/views.py b/apps/em/views.py index 1ae7ab13..cbaec5ff 100644 --- a/apps/em/views.py +++ b/apps/em/views.py @@ -70,6 +70,7 @@ class EquipmentViewSet(CustomModelViewSet): """ queryset = self.filter_queryset(self.get_queryset()) result = queryset.aggregate( + count=Count('id'), count_online=Count( Case(When(is_online=1, then=1), output_field=IntegerField())), count_offline=Count( @@ -86,6 +87,7 @@ class EquipmentViewSet(CustomModelViewSet): Case(When(running_state=50, then=1), output_field=IntegerField())) ) json_result = { + 'count': result['count'], 'count_online': result['count_online'], 'count_offline': result['count_offline'], 'count_running': result['count_running'],