From a9c8e7da4d483cf3196802bd55032023b1008df4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=9B=B9=E5=89=8D=E6=98=8E?= <909355014@qq.com> Date: Mon, 6 Jun 2022 13:29:43 +0800 Subject: [PATCH 1/7] =?UTF-8?q?=E6=96=B0=E5=A2=9E=E8=83=BD=E5=8A=9B?= =?UTF-8?q?=E5=A2=9E=E5=8A=A0=E5=A4=9A=E4=B8=AA=E6=95=B0=E9=87=8F=E5=AD=97?= =?UTF-8?q?=E6=AE=B5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../migrations/0033_auto_20220606_1323.py | 33 +++++++++++++++++++ server/apps/ability/models.py | 5 ++- server/apps/ability/serializers_qtask.py | 2 +- server/apps/vod/views.py | 4 +-- 4 files changed, 40 insertions(+), 4 deletions(-) create mode 100644 server/apps/ability/migrations/0033_auto_20220606_1323.py diff --git a/server/apps/ability/migrations/0033_auto_20220606_1323.py b/server/apps/ability/migrations/0033_auto_20220606_1323.py new file mode 100644 index 0000000..dc1ca9c --- /dev/null +++ b/server/apps/ability/migrations/0033_auto_20220606_1323.py @@ -0,0 +1,33 @@ +# Generated by Django 3.0.5 on 2022-06-06 05:23 + +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ('ability', '0032_auto_20220519_0924'), + ] + + operations = [ + migrations.AddField( + model_name='qaction', + name='num2', + field=models.PositiveIntegerField(blank=True, null=True, verbose_name='新增参数数量'), + ), + migrations.AddField( + model_name='qaction', + name='num3', + field=models.PositiveIntegerField(blank=True, null=True, verbose_name='新增方法标准数量'), + ), + migrations.AddField( + model_name='qaction', + name='num4', + field=models.PositiveIntegerField(blank=True, null=True, verbose_name='新增产品标准数量'), + ), + migrations.AlterField( + model_name='qaction', + name='num', + field=models.PositiveIntegerField(blank=True, null=True, verbose_name='新增对象数量'), + ), + ] diff --git a/server/apps/ability/models.py b/server/apps/ability/models.py index fce4ce5..ba9fd8a 100644 --- a/server/apps/ability/models.py +++ b/server/apps/ability/models.py @@ -204,7 +204,10 @@ class QAction(CommonBModel): on_delete=models.CASCADE, related_name='quali_atype') afield = models.ForeignKey(Dict, null=True, blank=True, verbose_name='所属领域', on_delete=models.CASCADE, related_name='quali_afield') - num = models.PositiveIntegerField('新增能力数量', null=True, blank=True) + num = models.PositiveIntegerField('新增对象数量', null=True, blank=True) + num2 = models.PositiveIntegerField('新增参数数量', null=True, blank=True) + num3 = models.PositiveIntegerField('新增方法标准数量', null=True, blank=True) + num4 = models.PositiveIntegerField('新增产品标准数量', null=True, blank=True) qtask = models.ForeignKey(QTask, on_delete=models.CASCADE) value1 = JSONField('值1', null=True, blank=True, default=dict) value2 = JSONField('值2', null=True, blank=True, default=dict) diff --git a/server/apps/ability/serializers_qtask.py b/server/apps/ability/serializers_qtask.py index c827508..a984138 100644 --- a/server/apps/ability/serializers_qtask.py +++ b/server/apps/ability/serializers_qtask.py @@ -144,7 +144,7 @@ class QActionQualiUpdateSerializer(serializers.ModelSerializer): class QActionACreateSerializer(serializers.ModelSerializer): class Meta: model = QAction - fields = ['atype', 'afield', 'file', 'num', 'qtask'] + fields = ['atype', 'afield', 'file', 'num', 'qtask', 'num2', 'num3', 'num4'] extra_kwargs = {'atype': {'required': True}, 'afield': {'required': True}, 'file': {'required': True}} def create(self, validated_data): diff --git a/server/apps/vod/views.py b/server/apps/vod/views.py index ee11e4c..89d1687 100644 --- a/server/apps/vod/views.py +++ b/server/apps/vod/views.py @@ -48,8 +48,8 @@ class VideoViewSet(PageOrNot, CreateUpdateModelAMixin, ModelViewSet): search_fields = ['name', 'category__name', 'description'] # filterset_fields = ['category'] serializer_class = VideoSerializer - ordering_fields = ['create_time', 'sort_str', 'views', 'viewsp'] - ordering = ['sort_str', '-create_time'] + ordering_fields = ['category__sort', 'sort_str', 'views', 'viewsp'] + ordering = ['category__sort', 'sort_str'] def get_serializer_class(self): if self.action in ['list', 'retrieve']: From f54906b32871c5c9eaac95d34ec13261483682d3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=9B=B9=E5=89=8D=E6=98=8E?= <909355014@qq.com> Date: Mon, 6 Jun 2022 13:42:42 +0800 Subject: [PATCH 2/7] =?UTF-8?q?quali=E5=A2=9E=E5=8A=A0file=E5=AD=97?= =?UTF-8?q?=E6=AE=B5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../ability/migrations/0034_quali_file.py | 20 +++++++++++++++++++ server/apps/ability/models.py | 2 ++ server/apps/ability/serializers_qtask.py | 11 +++++++--- server/apps/ability/views_qtask.py | 2 +- 4 files changed, 31 insertions(+), 4 deletions(-) create mode 100644 server/apps/ability/migrations/0034_quali_file.py diff --git a/server/apps/ability/migrations/0034_quali_file.py b/server/apps/ability/migrations/0034_quali_file.py new file mode 100644 index 0000000..607f617 --- /dev/null +++ b/server/apps/ability/migrations/0034_quali_file.py @@ -0,0 +1,20 @@ +# Generated by Django 3.0.5 on 2022-06-06 05:40 + +from django.db import migrations, models +import django.db.models.deletion + + +class Migration(migrations.Migration): + + dependencies = [ + ('system', '0021_auto_20220530_1520'), + ('ability', '0033_auto_20220606_1323'), + ] + + operations = [ + migrations.AddField( + model_name='quali', + name='file', + field=models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, to='system.File', verbose_name='关联文件'), + ), + ] diff --git a/server/apps/ability/models.py b/server/apps/ability/models.py index ba9fd8a..432b6ad 100644 --- a/server/apps/ability/models.py +++ b/server/apps/ability/models.py @@ -158,6 +158,8 @@ class Quali(CommonAModel): qualilib = models.ForeignKey(QualiLib, verbose_name='关联资质库', null=True, blank=True, on_delete=models.SET_NULL) end_date = models.DateField('截至日期', null=True, blank=True) + file = models.ForeignKey(File, null=True, blank=True, verbose_name='关联文件', on_delete=models.CASCADE) + class QTask(CommonBModel): diff --git a/server/apps/ability/serializers_qtask.py b/server/apps/ability/serializers_qtask.py index a984138..35832ae 100644 --- a/server/apps/ability/serializers_qtask.py +++ b/server/apps/ability/serializers_qtask.py @@ -1,6 +1,6 @@ from rest_framework import serializers -from apps.system.models import City, Organization, Province +from apps.system.models import City, File, Organization, Province from .models import QAction, QActionItem, QOrg, QTask, Quali, QualiLib from django.db import transaction from apps.system.serializers import CitySerializer, FileSimpleSerializer, OrganizationSimpleSerializer, DictSerializer, UserSimpleSerializer @@ -17,6 +17,7 @@ class QualiListSerializer(serializers.ModelSerializer): city_name = serializers.CharField(source='city.name', read_only=True) org_ = OrganizationSimpleSerializer(source='org', read_only=True) citys_ = CitySerializer(source='citys', many=True, read_only=True) + file_ = FileSimpleSerializer(source='file', read_only=True) class Meta: model = Quali fields = '__all__' @@ -99,7 +100,7 @@ class QualiCreateSerializer(serializers.ModelSerializer): citys = serializers.ListField(child=serializers.IntegerField(), label='城市ID列表') class Meta: model = Quali - fields = ['name', 'type', 'grade', 'scope', 'level', 'province', 'city', 'description', 'citys'] + fields = ['name', 'type', 'grade', 'scope', 'level', 'province', 'city', 'description', 'citys', 'file'] class QualiUpdateSerializer(serializers.ModelSerializer): @@ -107,7 +108,7 @@ class QualiUpdateSerializer(serializers.ModelSerializer): id = serializers.IntegerField(label='修改资质的ID') class Meta: model = Quali - fields = ['scope', 'level', 'description', 'id', 'citys'] + fields = ['scope', 'level', 'description', 'id', 'citys', 'file'] class QualiSerializer(serializers.ModelSerializer): class Meta: @@ -129,6 +130,8 @@ class QActionQualiCreateSerializer(serializers.ModelSerializer): value2['province'] = value2['province'].id if value2['city']: value2['city'] = value2['city'].id + if value2['file']: + value2['file'] = value2['file'].id return super().create(validated_data) class QActionQualiUpdateSerializer(serializers.ModelSerializer): @@ -174,4 +177,6 @@ class QActionDetailSerializer(serializers.ModelSerializer): value2['city_name'] = City.objects.get(id=value2['city']).name if value2.get('citys', None): value2['citys_'] = CitySerializer(instance=City.objects.filter(id__in=value2['citys']), many=True).data + if value2.get('file', None): + value2['file_'] = FileSimpleSerializer(instance=File.objects.get(id=value2['file'])).data return value2 \ No newline at end of file diff --git a/server/apps/ability/views_qtask.py b/server/apps/ability/views_qtask.py index 56d5966..605218b 100644 --- a/server/apps/ability/views_qtask.py +++ b/server/apps/ability/views_qtask.py @@ -22,7 +22,7 @@ class QualiLibViewSet(PageOrNot, ListModelMixin, GenericViewSet): class QualiViewSet(ListModelMixin, RetrieveModelMixin, GenericViewSet): perms_map = {'get': '*'} - queryset = Quali.objects.select_related('org', 'province', 'city').prefetch_related('citys') + queryset = Quali.objects.select_related('org', 'province', 'city', 'file').prefetch_related('citys') serializer_class = QualiListSerializer search_fields = ['name', 'type', 'grade', 'scope', 'level', 'description'] ordering = ['org', 'org__sort', 'create_time'] From 76882a3d8312470ad16bececb3528aaba29c4aca Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=9B=B9=E5=89=8D=E6=98=8E?= <909355014@qq.com> Date: Mon, 6 Jun 2022 13:52:32 +0800 Subject: [PATCH 3/7] =?UTF-8?q?serializer=20=E5=A2=9E=E5=8A=A0end=5Fdate?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- server/apps/ability/serializers_qtask.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/server/apps/ability/serializers_qtask.py b/server/apps/ability/serializers_qtask.py index 35832ae..5af04f3 100644 --- a/server/apps/ability/serializers_qtask.py +++ b/server/apps/ability/serializers_qtask.py @@ -100,7 +100,7 @@ class QualiCreateSerializer(serializers.ModelSerializer): citys = serializers.ListField(child=serializers.IntegerField(), label='城市ID列表') class Meta: model = Quali - fields = ['name', 'type', 'grade', 'scope', 'level', 'province', 'city', 'description', 'citys', 'file'] + fields = ['name', 'type', 'grade', 'scope', 'level', 'province', 'city', 'description', 'citys', 'file', 'end_date'] class QualiUpdateSerializer(serializers.ModelSerializer): @@ -108,7 +108,7 @@ class QualiUpdateSerializer(serializers.ModelSerializer): id = serializers.IntegerField(label='修改资质的ID') class Meta: model = Quali - fields = ['scope', 'level', 'description', 'id', 'citys', 'file'] + fields = ['scope', 'level', 'description', 'id', 'citys', 'file', 'end_date'] class QualiSerializer(serializers.ModelSerializer): class Meta: From a9b00f638f2bd9a77ae29250d2ee1a83a28d91d3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=9B=B9=E5=89=8D=E6=98=8E?= <909355014@qq.com> Date: Mon, 6 Jun 2022 14:07:25 +0800 Subject: [PATCH 4/7] qaction quali update bug --- server/apps/ability/serializers_qtask.py | 3 +++ 1 file changed, 3 insertions(+) diff --git a/server/apps/ability/serializers_qtask.py b/server/apps/ability/serializers_qtask.py index 5af04f3..7976e24 100644 --- a/server/apps/ability/serializers_qtask.py +++ b/server/apps/ability/serializers_qtask.py @@ -142,6 +142,9 @@ class QActionQualiUpdateSerializer(serializers.ModelSerializer): def create(self, validated_data): validated_data['action'] = 'quali:update' + value2 = validated_data['value2'] + if value2['file']: + value2['file'] = value2['file'].id return super().create(validated_data) class QActionACreateSerializer(serializers.ModelSerializer): From c5070eee2e90d7ac32e1a3404ab98a901e6dc316 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=9B=B9=E5=89=8D=E6=98=8E?= <909355014@qq.com> Date: Mon, 6 Jun 2022 14:57:08 +0800 Subject: [PATCH 5/7] =?UTF-8?q?qaction=20detail=20=E6=8E=A5=E5=8F=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- server/apps/ability/serializers_qtask.py | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/server/apps/ability/serializers_qtask.py b/server/apps/ability/serializers_qtask.py index 7976e24..0aadaec 100644 --- a/server/apps/ability/serializers_qtask.py +++ b/server/apps/ability/serializers_qtask.py @@ -167,6 +167,11 @@ class QActionItemSerializer(serializers.ModelSerializer): class QActionDetailSerializer(serializers.ModelSerializer): update_detail = QActionItemSerializer(source='items_qaction', many=True, read_only=True) value2 = serializers.SerializerMethodField() + quali_name = serializers.CharField(source='quali.name', read_only=True) + atype_name = serializers.CharField(source='atype.name', read_only=True) + afield_name = serializers.CharField(source='afield.name', read_only=True) + file_ = FileSimpleSerializer(source='file', read_only=True) + create_by_ = UserSimpleSerializer(source='create_by', read_only=True) class Meta: model = QAction fields ='__all__' From bad4e27c0ddf9891980109b8d2f04aa1807693b8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=9B=B9=E5=89=8D=E6=98=8E?= <909355014@qq.com> Date: Mon, 6 Jun 2022 15:24:13 +0800 Subject: [PATCH 6/7] qualiupdate bug --- server/apps/ability/serializers_qtask.py | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/server/apps/ability/serializers_qtask.py b/server/apps/ability/serializers_qtask.py index 0aadaec..c9dd333 100644 --- a/server/apps/ability/serializers_qtask.py +++ b/server/apps/ability/serializers_qtask.py @@ -126,11 +126,11 @@ class QActionQualiCreateSerializer(serializers.ModelSerializer): if validated_data['value2']['type'] in ['CMA', 'CNAS']: validated_data['value2']['name'] = validated_data['value2']['type'] value2 = validated_data['value2'] - if value2['province']: + if value2.get('province', None): value2['province'] = value2['province'].id - if value2['city']: + if value2.get('city', None): value2['city'] = value2['city'].id - if value2['file']: + if value2.get('file', None): value2['file'] = value2['file'].id return super().create(validated_data) @@ -143,7 +143,7 @@ class QActionQualiUpdateSerializer(serializers.ModelSerializer): def create(self, validated_data): validated_data['action'] = 'quali:update' value2 = validated_data['value2'] - if value2['file']: + if value2.get('file', None): value2['file'] = value2['file'].id return super().create(validated_data) From 32ddaeacae5a2ee2ec3b89594c77d31fc39ae363 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=9B=B9=E5=89=8D=E6=98=8E?= <909355014@qq.com> Date: Mon, 6 Jun 2022 15:32:54 +0800 Subject: [PATCH 7/7] =?UTF-8?q?=E5=B0=9D=E8=AF=95=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- server/apps/ability/serializers_qtask.py | 23 +++++++++++------------ 1 file changed, 11 insertions(+), 12 deletions(-) diff --git a/server/apps/ability/serializers_qtask.py b/server/apps/ability/serializers_qtask.py index c9dd333..9561466 100644 --- a/server/apps/ability/serializers_qtask.py +++ b/server/apps/ability/serializers_qtask.py @@ -123,15 +123,16 @@ class QActionQualiCreateSerializer(serializers.ModelSerializer): def create(self, validated_data): validated_data['action'] = 'quali:create' - if validated_data['value2']['type'] in ['CMA', 'CNAS']: - validated_data['value2']['name'] = validated_data['value2']['type'] - value2 = validated_data['value2'] - if value2.get('province', None): - value2['province'] = value2['province'].id - if value2.get('city', None): - value2['city'] = value2['city'].id - if value2.get('file', None): - value2['file'] = value2['file'].id + value2 = self.data['value2'] + if value2['type'] in ['CMA', 'CNAS']: + value2['name'] = value2['type'] + validated_data['value2'] = value2 + # if value2.get('province', None): + # value2['province'] = value2['province'].id + # if value2.get('city', None): + # value2['city'] = value2['city'].id + # if value2.get('file', None): + # value2['file'] = value2['file'].id return super().create(validated_data) class QActionQualiUpdateSerializer(serializers.ModelSerializer): @@ -142,9 +143,7 @@ class QActionQualiUpdateSerializer(serializers.ModelSerializer): def create(self, validated_data): validated_data['action'] = 'quali:update' - value2 = validated_data['value2'] - if value2.get('file', None): - value2['file'] = value2['file'].id + validated_data['value2'] = self.data['value2'] return super().create(validated_data) class QActionACreateSerializer(serializers.ModelSerializer):