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='关联资质库',
|
qualilib = models.ForeignKey(QualiLib, verbose_name='关联资质库',
|
||||||
null=True, blank=True, on_delete=models.SET_NULL)
|
null=True, blank=True, on_delete=models.SET_NULL)
|
||||||
end_date = models.DateField('截至日期', null=True, blank=True)
|
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):
|
class QTask(CommonBModel):
|
||||||
|
@ -204,7 +206,10 @@ class QAction(CommonBModel):
|
||||||
on_delete=models.CASCADE, related_name='quali_atype')
|
on_delete=models.CASCADE, related_name='quali_atype')
|
||||||
afield = models.ForeignKey(Dict, null=True, blank=True, verbose_name='所属领域',
|
afield = models.ForeignKey(Dict, null=True, blank=True, verbose_name='所属领域',
|
||||||
on_delete=models.CASCADE, related_name='quali_afield')
|
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)
|
qtask = models.ForeignKey(QTask, on_delete=models.CASCADE)
|
||||||
value1 = JSONField('值1', null=True, blank=True, default=dict)
|
value1 = JSONField('值1', null=True, blank=True, default=dict)
|
||||||
value2 = JSONField('值2', 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 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 .models import QAction, QActionItem, QOrg, QTask, Quali, QualiLib
|
||||||
from django.db import transaction
|
from django.db import transaction
|
||||||
from apps.system.serializers import CitySerializer, FileSimpleSerializer, OrganizationSimpleSerializer, DictSerializer, UserSimpleSerializer
|
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)
|
city_name = serializers.CharField(source='city.name', read_only=True)
|
||||||
org_ = OrganizationSimpleSerializer(source='org', read_only=True)
|
org_ = OrganizationSimpleSerializer(source='org', read_only=True)
|
||||||
citys_ = CitySerializer(source='citys', many=True, read_only=True)
|
citys_ = CitySerializer(source='citys', many=True, read_only=True)
|
||||||
|
file_ = FileSimpleSerializer(source='file', read_only=True)
|
||||||
class Meta:
|
class Meta:
|
||||||
model = Quali
|
model = Quali
|
||||||
fields = '__all__'
|
fields = '__all__'
|
||||||
|
@ -99,7 +100,7 @@ class QualiCreateSerializer(serializers.ModelSerializer):
|
||||||
citys = serializers.ListField(child=serializers.IntegerField(), label='城市ID列表')
|
citys = serializers.ListField(child=serializers.IntegerField(), label='城市ID列表')
|
||||||
class Meta:
|
class Meta:
|
||||||
model = Quali
|
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):
|
class QualiUpdateSerializer(serializers.ModelSerializer):
|
||||||
|
@ -107,7 +108,7 @@ class QualiUpdateSerializer(serializers.ModelSerializer):
|
||||||
id = serializers.IntegerField(label='修改资质的ID')
|
id = serializers.IntegerField(label='修改资质的ID')
|
||||||
class Meta:
|
class Meta:
|
||||||
model = Quali
|
model = Quali
|
||||||
fields = ['scope', 'level', 'description', 'id', 'citys']
|
fields = ['scope', 'level', 'description', 'id', 'citys', 'file', 'end_date']
|
||||||
|
|
||||||
class QualiSerializer(serializers.ModelSerializer):
|
class QualiSerializer(serializers.ModelSerializer):
|
||||||
class Meta:
|
class Meta:
|
||||||
|
@ -122,13 +123,16 @@ class QActionQualiCreateSerializer(serializers.ModelSerializer):
|
||||||
|
|
||||||
def create(self, validated_data):
|
def create(self, validated_data):
|
||||||
validated_data['action'] = 'quali:create'
|
validated_data['action'] = 'quali:create'
|
||||||
if validated_data['value2']['type'] in ['CMA', 'CNAS']:
|
value2 = self.data['value2']
|
||||||
validated_data['value2']['name'] = validated_data['value2']['type']
|
if value2['type'] in ['CMA', 'CNAS']:
|
||||||
value2 = validated_data['value2']
|
value2['name'] = value2['type']
|
||||||
if value2['province']:
|
validated_data['value2'] = value2
|
||||||
value2['province'] = value2['province'].id
|
# if value2.get('province', None):
|
||||||
if value2['city']:
|
# value2['province'] = value2['province'].id
|
||||||
value2['city'] = value2['city'].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)
|
return super().create(validated_data)
|
||||||
|
|
||||||
class QActionQualiUpdateSerializer(serializers.ModelSerializer):
|
class QActionQualiUpdateSerializer(serializers.ModelSerializer):
|
||||||
|
@ -139,12 +143,13 @@ class QActionQualiUpdateSerializer(serializers.ModelSerializer):
|
||||||
|
|
||||||
def create(self, validated_data):
|
def create(self, validated_data):
|
||||||
validated_data['action'] = 'quali:update'
|
validated_data['action'] = 'quali:update'
|
||||||
|
validated_data['value2'] = self.data['value2']
|
||||||
return super().create(validated_data)
|
return super().create(validated_data)
|
||||||
|
|
||||||
class QActionACreateSerializer(serializers.ModelSerializer):
|
class QActionACreateSerializer(serializers.ModelSerializer):
|
||||||
class Meta:
|
class Meta:
|
||||||
model = QAction
|
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}}
|
extra_kwargs = {'atype': {'required': True}, 'afield': {'required': True}, 'file': {'required': True}}
|
||||||
|
|
||||||
def create(self, validated_data):
|
def create(self, validated_data):
|
||||||
|
@ -161,6 +166,11 @@ class QActionItemSerializer(serializers.ModelSerializer):
|
||||||
class QActionDetailSerializer(serializers.ModelSerializer):
|
class QActionDetailSerializer(serializers.ModelSerializer):
|
||||||
update_detail = QActionItemSerializer(source='items_qaction', many=True, read_only=True)
|
update_detail = QActionItemSerializer(source='items_qaction', many=True, read_only=True)
|
||||||
value2 = serializers.SerializerMethodField()
|
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:
|
class Meta:
|
||||||
model = QAction
|
model = QAction
|
||||||
fields ='__all__'
|
fields ='__all__'
|
||||||
|
@ -174,4 +184,6 @@ class QActionDetailSerializer(serializers.ModelSerializer):
|
||||||
value2['city_name'] = City.objects.get(id=value2['city']).name
|
value2['city_name'] = City.objects.get(id=value2['city']).name
|
||||||
if value2.get('citys', None):
|
if value2.get('citys', None):
|
||||||
value2['citys_'] = CitySerializer(instance=City.objects.filter(id__in=value2['citys']), many=True).data
|
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
|
return value2
|
|
@ -22,7 +22,7 @@ class QualiLibViewSet(PageOrNot, ListModelMixin, GenericViewSet):
|
||||||
|
|
||||||
class QualiViewSet(ListModelMixin, RetrieveModelMixin, GenericViewSet):
|
class QualiViewSet(ListModelMixin, RetrieveModelMixin, GenericViewSet):
|
||||||
perms_map = {'get': '*'}
|
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
|
serializer_class = QualiListSerializer
|
||||||
search_fields = ['name', 'type', 'grade', 'scope', 'level', 'description']
|
search_fields = ['name', 'type', 'grade', 'scope', 'level', 'description']
|
||||||
ordering = ['org', 'org__sort', 'create_time']
|
ordering = ['org', 'org__sort', 'create_time']
|
||||||
|
|
|
@ -48,8 +48,8 @@ class VideoViewSet(PageOrNot, CreateUpdateModelAMixin, ModelViewSet):
|
||||||
search_fields = ['name', 'category__name', 'description']
|
search_fields = ['name', 'category__name', 'description']
|
||||||
# filterset_fields = ['category']
|
# filterset_fields = ['category']
|
||||||
serializer_class = VideoSerializer
|
serializer_class = VideoSerializer
|
||||||
ordering_fields = ['create_time', 'sort_str', 'views', 'viewsp']
|
ordering_fields = ['category__sort', 'sort_str', 'views', 'viewsp']
|
||||||
ordering = ['sort_str', '-create_time']
|
ordering = ['category__sort', 'sort_str']
|
||||||
|
|
||||||
def get_serializer_class(self):
|
def get_serializer_class(self):
|
||||||
if self.action in ['list', 'retrieve']:
|
if self.action in ['list', 'retrieve']:
|
||||||
|
|
Loading…
Reference in New Issue