From 50c21292a93be74e0ef125e16511d5bba6c5f509 Mon Sep 17 00:00:00 2001 From: caoqianming Date: Tue, 18 Nov 2025 09:46:25 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20base=20workflow=E6=B7=BB=E5=8A=A0?= =?UTF-8?q?=E5=88=86=E7=B1=BB=E5=AD=97=E6=AE=B5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- apps/wf/migrations/0005_workflow_cate.py | 18 ++++++++++++++++++ apps/wf/models.py | 1 + apps/wf/views.py | 11 +++++++++-- 3 files changed, 28 insertions(+), 2 deletions(-) create mode 100644 apps/wf/migrations/0005_workflow_cate.py diff --git a/apps/wf/migrations/0005_workflow_cate.py b/apps/wf/migrations/0005_workflow_cate.py new file mode 100644 index 00000000..b3197302 --- /dev/null +++ b/apps/wf/migrations/0005_workflow_cate.py @@ -0,0 +1,18 @@ +# Generated by Django 3.2.12 on 2025-11-18 01:44 + +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ('wf', '0004_workflow_view_path2'), + ] + + operations = [ + migrations.AddField( + model_name='workflow', + name='cate', + field=models.CharField(blank=True, max_length=50, null=True, verbose_name='分类'), + ), + ] diff --git a/apps/wf/models.py b/apps/wf/models.py index 522b61bc..90c0cb4a 100755 --- a/apps/wf/models.py +++ b/apps/wf/models.py @@ -9,6 +9,7 @@ class Workflow(CommonAModel): TN:工作流 """ name = models.CharField('名称', max_length=50) + cate = models.CharField('分类', max_length=50, null=True, blank=True) key = models.CharField('工作流标识', unique=True, max_length=20, null=True, blank=True) sn_prefix = models.CharField('流水号前缀', max_length=50, default='hb') description = models.CharField('描述', max_length=200, null=True, blank=True) diff --git a/apps/wf/views.py b/apps/wf/views.py index 748b78b0..ddc7cf4b 100755 --- a/apps/wf/views.py +++ b/apps/wf/views.py @@ -60,11 +60,18 @@ class WorkflowKeyInitView(APIView): class WorkflowViewSet(CustomModelViewSet): queryset = Workflow.objects.all() serializer_class = WorkflowSerializer - search_fields = ['name', 'description'] - filterset_fields = [] + search_fields = ['name', 'description', 'key'] + filterset_fields = ['key', 'cate'] ordering_fields = ['create_time'] ordering = ['key', '-create_time'] + @action(methods=['get'], detail=True, perms_map={'get': '*'}) + def cates(self, request, pk=None): + """ + 工作流分类 + """ + return Response(Workflow.objects.filter(cate__isnull=False).values_list('cate', flat=True).distinct()) + @action(methods=['get'], detail=True, perms_map={'get': 'workflow.update'}, pagination_class=None, serializer_class=StateSerializer) def states(self, request, pk=None):