This commit is contained in:
caoqianming 2024-06-18 17:54:53 +08:00
commit de6c57b5c9
4 changed files with 24 additions and 6 deletions

View File

@ -19,7 +19,6 @@ class Train(CommonADModel):
duration = models.PositiveIntegerField(verbose_name='时长', default=0, help_text='单位:s', editable=False) duration = models.PositiveIntegerField(verbose_name='时长', default=0, help_text='单位:s', editable=False)
description = models.TextField(verbose_name='内容描述', default='', blank=True) description = models.TextField(verbose_name='内容描述', default='', blank=True)
is_public = models.BooleanField('是否公开', default=False) is_public = models.BooleanField('是否公开', default=False)
attend_departs = models.ManyToManyField(Dept, verbose_name='参与部门', blank=True)
files = models.ManyToManyField(File, verbose_name='附件', blank=True) files = models.ManyToManyField(File, verbose_name='附件', blank=True)
class Meta: class Meta:

View File

@ -185,7 +185,7 @@ class ExamRecordSubmitSerializer(serializers.ModelSerializer):
model = ExamRecord model = ExamRecord
fields = ['detail'] fields = ['detail']
class ExamTrainingSerializer(CustomModelSerializer): class TrainingSerializer(CustomModelSerializer):
class Meta: class Meta:
model = Train model = Train

View File

@ -1,6 +1,6 @@
from django.urls import path, include from django.urls import path, include
from rest_framework.routers import DefaultRouter from rest_framework.routers import DefaultRouter
from apps.edu.views import QuestioncatViewSet, QuestionViewSet, PaperViewSet, ExamViewSet, ExamRecordViewSet from apps.edu.views import QuestioncatViewSet, QuestionViewSet, PaperViewSet, ExamViewSet, ExamRecordViewSet, TrainRecordViewSet
API_BASE_URL = 'api/edu/' API_BASE_URL = 'api/edu/'
HTML_BASE_URL = 'edu/' HTML_BASE_URL = 'edu/'
@ -11,6 +11,7 @@ router.register('question', QuestionViewSet, basename='question')
router.register('paper', PaperViewSet, basename='paper') router.register('paper', PaperViewSet, basename='paper')
router.register('exam', ExamViewSet, basename='exam') router.register('exam', ExamViewSet, basename='exam')
router.register('examrecord', ExamRecordViewSet, basename='examrecord') router.register('examrecord', ExamRecordViewSet, basename='examrecord')
router.register('training', TrainRecordViewSet, basename='examrecord')
urlpatterns = [ urlpatterns = [
path(API_BASE_URL, include(router.urls)), path(API_BASE_URL, include(router.urls)),
] ]

View File

@ -5,10 +5,10 @@ from rest_framework.exceptions import ParseError
from rest_framework.decorators import action from rest_framework.decorators import action
from rest_framework.serializers import Serializer from rest_framework.serializers import Serializer
from django.db import transaction 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, from .serializers import (QuestioncatSerializer, QuestionSerializer, ExamSerializer,
ExamRecordInitSerizlier, ExamRecordSerializer, ExamRecordDetailSerializer, ExamRecordSubmitSerializer, ExamRecordInitSerizlier, ExamRecordSerializer, ExamRecordDetailSerializer, ExamRecordSubmitSerializer,
PaperSerializer, PaperListSerializer, PaperPatchSerializer, ExamDetailSerializer) PaperSerializer, PaperListSerializer, PaperPatchSerializer, ExamDetailSerializer, TrainingSerializer)
from django.utils import timezone from django.utils import timezone
from rest_framework.response import Response from rest_framework.response import Response
from rest_framework.permissions import IsAuthenticated from rest_framework.permissions import IsAuthenticated
@ -195,3 +195,21 @@ class ExamRecordViewSet(ListModelMixin, DestroyModelMixin, RetrieveModelMixin, C
er.is_submited = True er.is_submited = True
er.save() er.save()
return Response(ExamRecordSerializer(er).data) return Response(ExamRecordSerializer(er).data)
class TrainRecordViewSet(CustomModelViewSet):
'''
培训记录
'''
perms_map = {"get": "*", "delete": "train.delete","post": "train.create","put": "train.update"}
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)