Merge branch 'master' of https://e.coding.net/ctcdevteam/cma_search
This commit is contained in:
commit
1bcdff9146
|
@ -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='新增对象数量'),
|
||||
),
|
||||
]
|
|
@ -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='关联文件'),
|
||||
),
|
||||
]
|
|
@ -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):
|
||||
|
@ -204,7 +206,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)
|
||||
|
|
|
@ -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', 'end_date']
|
||||
|
||||
|
||||
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', 'end_date']
|
||||
|
||||
class QualiSerializer(serializers.ModelSerializer):
|
||||
class Meta:
|
||||
|
@ -122,13 +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['province']:
|
||||
value2['province'] = value2['province'].id
|
||||
if value2['city']:
|
||||
value2['city'] = value2['city'].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):
|
||||
|
@ -139,12 +143,13 @@ class QActionQualiUpdateSerializer(serializers.ModelSerializer):
|
|||
|
||||
def create(self, validated_data):
|
||||
validated_data['action'] = 'quali:update'
|
||||
validated_data['value2'] = self.data['value2']
|
||||
return super().create(validated_data)
|
||||
|
||||
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):
|
||||
|
@ -161,6 +166,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__'
|
||||
|
@ -174,4 +184,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
|
|
@ -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']
|
||||
|
|
|
@ -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']:
|
||||
|
|
Loading…
Reference in New Issue