From 5f4884e83d4d1a2ec18991a7b1e99ed18e93aeea Mon Sep 17 00:00:00 2001 From: zty Date: Wed, 12 Jun 2024 10:46:58 +0800 Subject: [PATCH] =?UTF-8?q?fix:=20edu/model=20=E3=80=81serializers?= =?UTF-8?q?=E3=80=81view=20=E5=88=A0=E5=87=8F=E5=8F=82=E4=B8=8E=E9=83=A8?= =?UTF-8?q?=E9=97=A8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- apps/edu/models.py | 1 - apps/edu/serializers.py | 2 +- apps/edu/views.py | 24 +++++++++++++++++++++--- 3 files changed, 22 insertions(+), 5 deletions(-) diff --git a/apps/edu/models.py b/apps/edu/models.py index 9f9bec24..cee77945 100644 --- a/apps/edu/models.py +++ b/apps/edu/models.py @@ -19,7 +19,6 @@ class Train(CommonADModel): duration = models.PositiveIntegerField(verbose_name='时长', default=0, help_text='单位:s', editable=False) description = models.TextField(verbose_name='内容描述', default='', blank=True) is_public = models.BooleanField('是否公开', default=False) - attend_departs = models.ManyToManyField(Dept, verbose_name='参与部门', blank=True) files = models.ManyToManyField(File, verbose_name='附件', blank=True) class Meta: diff --git a/apps/edu/serializers.py b/apps/edu/serializers.py index 3bce6b4a..3fbcf15f 100644 --- a/apps/edu/serializers.py +++ b/apps/edu/serializers.py @@ -185,7 +185,7 @@ class ExamRecordSubmitSerializer(serializers.ModelSerializer): model = ExamRecord fields = ['detail'] -class ExamTrainingSerializer(CustomModelSerializer): +class TrainingSerializer(CustomModelSerializer): class Meta: model = Train diff --git a/apps/edu/views.py b/apps/edu/views.py index 070dab31..2f4c1101 100644 --- a/apps/edu/views.py +++ b/apps/edu/views.py @@ -5,10 +5,10 @@ from rest_framework.exceptions import ParseError from rest_framework.decorators import action from rest_framework.serializers import Serializer from django.db import transaction -from .models import Questioncat, Question, Paper, PaperQuestion, Exam, ExamRecord, AnswerDetail +from .models import Questioncat, Question, Paper, PaperQuestion, Exam, ExamRecord, AnswerDetail, Train from .serializers import (QuestioncatSerializer, QuestionSerializer, ExamSerializer, ExamRecordInitSerizlier, ExamRecordSerializer, ExamRecordDetailSerializer, ExamRecordSubmitSerializer, - PaperSerializer, PaperListSerializer, PaperPatchSerializer, ExamDetailSerializer) + PaperSerializer, PaperListSerializer, PaperPatchSerializer, ExamDetailSerializer, TrainingSerializer) from django.utils import timezone from rest_framework.response import Response from rest_framework.permissions import IsAuthenticated @@ -194,4 +194,22 @@ class ExamRecordViewSet(ListModelMixin, DestroyModelMixin, RetrieveModelMixin, C er.end_time = now er.is_submited = True er.save() - return Response(ExamRecordSerializer(er).data) \ No newline at end of file + return Response(ExamRecordSerializer(er).data) + + +class TrainRecordViewSet(ListModelMixin, DestroyModelMixin, RetrieveModelMixin, CustomGenericViewSet): + ''' + 培训记录 + ''' + perms_map = {"get": "*", "delete": "train.delete"} + queryset = Train.objects.all() + serializer_class = TrainingSerializer + search_fields = ('create_by__name', 'create_by__username', 'name') + + def get_queryset(self): + qs = super().get_queryset() + if has_perm(self.request.user, ["train.view"]): + return qs + return qs.filter(create_by=self.request.user) + +