参加考试

This commit is contained in:
caoqianming 2021-03-16 21:38:39 +08:00
parent 9554132a66
commit ea27424e60
2 changed files with 32 additions and 1 deletions

View File

@ -74,6 +74,7 @@ class Consumer(CommonModel):
ID_number1 = models.CharField('身份证号', max_length=100, null=True, blank=True)
create_admin = models.ForeignKey(UserProfile, on_delete=models.SET_NULL, null=True, blank=True, related_name='consumer_create_admin')
deptname = models.CharField('所在部门', max_length=100, null=True, blank=True)
exceed_date = models.DateField('账号过期', null=True, blank=True)

View File

@ -28,7 +28,7 @@ from .serializers import (
ExamTestListSerializer, MoniTestSerializer, PaperDetailSerializer,
PaperQuestionsCreateSerializer, PaperSerializer, TestRuleSerializer,
WorkScopeSerializer, ExamCreateUpdateSerializer, ExamListSerializer)
from django.utils import timezone
# Create your views here.
class ExamViewSet(ModelViewSet):
@ -72,6 +72,36 @@ class ExamViewSet(ModelViewSet):
return Response(status=status.HTTP_204_NO_CONTENT)
@action(methods=['post'], detail = False,perms_map=[{'get':'exam_attend'}])
def attend(self, request, *args, **kwargs):
"""
参加考试
"""
if request.user.role.name in ['游客', '注册用户']:
return Response({'error':'无权参加考试,请联系老师'})
if request.data.get('deptname', None):
request.user.deptname = request.data['deptname']
request.user.save()
if request.data.get('code', None):
code = request.data.get('code')
now = timezone.now()
try:
exam = Exam.objects.get(code=code, opentime__lt=now, closetime__gt=now)
return Response({'exam':exam.pk})
except:
return Response({'error':'考试编号错误'})
return Response({'error':'操作失败'})
@action(methods=['post'], detail = True,perms_map=[{'get':'exam_init'}])
def init(self, request, *args, **kwargs):
"""
生成考试卷
"""
obj = self.get_object()
pass
class AnswerDetailView(APIView):
authentication_classes = []
permission_classes = []