From 9222e2ecdfbca57224f9d62c91634cf235bddd62 Mon Sep 17 00:00:00 2001 From: zty Date: Fri, 17 May 2024 16:33:05 +0800 Subject: [PATCH] =?UTF-8?q?fix:=E5=AE=89=E9=83=A8=E9=97=A8=E5=92=8C?= =?UTF-8?q?=E5=88=86=E6=95=B0=E8=BF=9B=E8=A1=8C=E6=8E=92=E5=BA=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../migrations/0008_examrecord_belong_dept.py | 20 +++++++++++++++++++ server/apps/exam/models.py | 4 ++-- server/apps/exam/serializers.py | 7 +++++-- server/apps/exam/views.py | 6 ++++-- .../0041_alter_qualification_change_date.py | 20 +++++++++++++++++++ 5 files changed, 51 insertions(+), 6 deletions(-) create mode 100644 server/apps/exam/migrations/0008_examrecord_belong_dept.py create mode 100644 server/apps/information/migrations/0041_alter_qualification_change_date.py diff --git a/server/apps/exam/migrations/0008_examrecord_belong_dept.py b/server/apps/exam/migrations/0008_examrecord_belong_dept.py new file mode 100644 index 0000000..ea60e58 --- /dev/null +++ b/server/apps/exam/migrations/0008_examrecord_belong_dept.py @@ -0,0 +1,20 @@ +# Generated by Django 3.2.12 on 2024-05-17 07:45 + +from django.db import migrations, models +import django.db.models.deletion + + +class Migration(migrations.Migration): + + dependencies = [ + ('system', '0023_alter_user_first_name'), + ('exam', '0007_auto_20240514_1439'), + ] + + operations = [ + migrations.AddField( + model_name='examrecord', + name='belong_dept', + field=models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='examrecord_belong_dept', to='system.organization', verbose_name='所属部门'), + ), + ] diff --git a/server/apps/exam/models.py b/server/apps/exam/models.py index 0fbb69d..d58be8b 100644 --- a/server/apps/exam/models.py +++ b/server/apps/exam/models.py @@ -1,5 +1,5 @@ from django.db import models -from apps.system.models import CommonAModel +from apps.system.models import CommonAModel, CommonBModel from django.contrib.postgres.fields import JSONField from utils.model import BaseModel from apps.edu.models import Course @@ -98,7 +98,7 @@ class Exam(CommonAModel): return self.name -class ExamRecord(CommonAModel): +class ExamRecord(CommonBModel): ''' 考试记录表 ''' diff --git a/server/apps/exam/serializers.py b/server/apps/exam/serializers.py index 03dc455..7e88e59 100644 --- a/server/apps/exam/serializers.py +++ b/server/apps/exam/serializers.py @@ -91,7 +91,7 @@ class ExamListSerializer(ModelSerializer): class Meta: model = Exam fields = '__all__' - + #参与考试的 数量 def get_user_count(self, obj): total_user_count = 0 @@ -128,7 +128,10 @@ class ExamRecordListSerializer(serializers.ModelSerializer): took_format = serializers.SerializerMethodField() create_by_name = serializers.CharField( source='create_by.name', read_only=True) - + exam_name = serializers.CharField( + source='exam.name', read_only=True) + blong_dept_name = serializers.CharField( + source='belong_dept.name', read_only=True) class Meta: model = ExamRecord exclude = ('detail',) diff --git a/server/apps/exam/views.py b/server/apps/exam/views.py index df883f6..b14d694 100644 --- a/server/apps/exam/views.py +++ b/server/apps/exam/views.py @@ -349,11 +349,13 @@ class ExamRecordViewSet(ListModelMixin, DestroyModelMixin, RetrieveModelMixin, G perms_map = {'get': '*', 'post': '*', 'delete':'examrecord'} queryset = ExamRecord.objects.select_related('create_by') serializer_class = ExamRecordListSerializer - ordering_fields = ['create_time', 'score', 'took', 'update_time'] + ordering_fields = ['create_time', 'score', 'took', 'update_time', 'belong_dept'] ordering = ['-update_time'] - search_fields = ('create_by__name', 'create_by__username') + search_fields = ('create_by__name', 'create_by__username', 'exam__name', 'belong_dept__name') filterset_class = ExamRecordFilter + # 排序 + def get_serializer_class(self): if self.action == 'retrieve': return ExamRecordDetailSerializer diff --git a/server/apps/information/migrations/0041_alter_qualification_change_date.py b/server/apps/information/migrations/0041_alter_qualification_change_date.py new file mode 100644 index 0000000..65cdcc0 --- /dev/null +++ b/server/apps/information/migrations/0041_alter_qualification_change_date.py @@ -0,0 +1,20 @@ +# Generated by Django 3.2.12 on 2024-05-17 07:45 + +import datetime +from django.db import migrations, models +from django.utils.timezone import utc + + +class Migration(migrations.Migration): + + dependencies = [ + ('information', '0040_alter_qualification_change_date'), + ] + + operations = [ + migrations.AlterField( + model_name='qualification', + name='change_date', + field=models.DateField(blank=True, default=datetime.datetime(2024, 5, 17, 7, 45, 18, 898106, tzinfo=utc), null=True, verbose_name='变更日期'), + ), + ]