diff --git a/server/apps/edu/migrations/0007_alter_certificate_examrecord.py b/server/apps/edu/migrations/0007_alter_certificate_examrecord.py new file mode 100644 index 0000000..1dccbf5 --- /dev/null +++ b/server/apps/edu/migrations/0007_alter_certificate_examrecord.py @@ -0,0 +1,20 @@ +# Generated by Django 3.2.12 on 2024-06-04 09:28 + +from django.db import migrations, models +import django.db.models.deletion + + +class Migration(migrations.Migration): + + dependencies = [ + ('exam', '0001_initial'), + ('edu', '0006_certificate_examrecord'), + ] + + operations = [ + migrations.AlterField( + model_name='certificate', + name='examrecord', + field=models.OneToOneField(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, related_name='cert_er', to='exam.examrecord'), + ), + ] diff --git a/server/apps/edu/models.py b/server/apps/edu/models.py index 840aa01..a1b2901 100644 --- a/server/apps/edu/models.py +++ b/server/apps/edu/models.py @@ -29,4 +29,4 @@ class Certificate(CommonADModel): 培训结束日期 = models.DateField(null=True, blank=True) 发证日期 = models.DateField(null=True, blank=True) 证书地址 = models.CharField(max_length=100, null=True, blank=True) - examrecord = models.ForeignKey('exam.ExamRecord', on_delete=models.CASCADE, null=True, blank=True) + examrecord = models.OneToOneField('exam.ExamRecord', on_delete=models.CASCADE, null=True, blank=True, related_name='cert_er') diff --git a/server/apps/exam/filters.py b/server/apps/exam/filters.py index 9d85eae..a6143f2 100644 --- a/server/apps/exam/filters.py +++ b/server/apps/exam/filters.py @@ -11,6 +11,7 @@ class ExamRecordFilter(filters.FilterSet): 'is_pass': ['exact'], 'type': ['exact'], 'is_submited': ['exact'], + 'exam': ['exact'] } def filter_is_my(self, queryset, name, value): if value: diff --git a/server/apps/exam/serializers.py b/server/apps/exam/serializers.py index 7e88e59..769e4a8 100644 --- a/server/apps/exam/serializers.py +++ b/server/apps/exam/serializers.py @@ -132,6 +132,8 @@ class ExamRecordListSerializer(serializers.ModelSerializer): source='exam.name', read_only=True) blong_dept_name = serializers.CharField( source='belong_dept.name', read_only=True) + cert_number = serializers.CharField(source='cert_er.证书编号', read_only=True) + cert_path = serializers.CharField(source='cert_er.证书地址', read_only=True) class Meta: model = ExamRecord exclude = ('detail',) diff --git a/server/apps/exam/views.py b/server/apps/exam/views.py index bd2a2bb..6fb7995 100644 --- a/server/apps/exam/views.py +++ b/server/apps/exam/views.py @@ -533,7 +533,7 @@ class ExamRecordViewSet(ListModelMixin, DestroyModelMixin, RetrieveModelMixin, G 考试记录列表和详情 """ perms_map = {'get': '*', 'post': '*', 'delete':'examrecord'} - queryset = ExamRecord.objects.select_related('create_by') + queryset = ExamRecord.objects.select_related('create_by', 'cert_er') serializer_class = ExamRecordListSerializer ordering_fields = ['create_time', 'score', 'took', 'update_time', 'belong_dept'] ordering = ['-update_time'] @@ -641,6 +641,7 @@ class ExamRecordViewSet(ListModelMixin, DestroyModelMixin, RetrieveModelMixin, G data_dict = { '姓名': request.user.name, '证书编号': 'CTCZL'+ current_date, + '证书方案': '202312', '单位名称': request.user.dept.name, '所属单位': '国检测试控股集团'+request.user.dept.name, '发证日期': current_date, diff --git a/server/apps/information/migrations/0048_alter_qualification_change_date.py b/server/apps/information/migrations/0048_alter_qualification_change_date.py new file mode 100644 index 0000000..77efc1e --- /dev/null +++ b/server/apps/information/migrations/0048_alter_qualification_change_date.py @@ -0,0 +1,20 @@ +# Generated by Django 3.2.12 on 2024-06-04 09:28 + +import datetime +from django.db import migrations, models +from django.utils.timezone import utc + + +class Migration(migrations.Migration): + + dependencies = [ + ('information', '0047_alter_qualification_change_date'), + ] + + operations = [ + migrations.AlterField( + model_name='qualification', + name='change_date', + field=models.DateField(blank=True, default=datetime.datetime(2024, 6, 4, 9, 28, 52, 579869, tzinfo=utc), null=True, verbose_name='变更日期'), + ), + ]