51 lines
2.4 KiB
Python
51 lines
2.4 KiB
Python
from django.db import models
|
|
from rbac.models import SoftCommonModel, CommonModel
|
|
from django.contrib.postgres.fields import JSONField, ArrayField
|
|
from question.models import Questioncat, Question
|
|
from crm.models import Consumer
|
|
from .models_paper import WorkScope, Paper
|
|
|
|
|
|
class ExamTest(CommonModel):
|
|
'''
|
|
考试记录表
|
|
'''
|
|
type_choices = (
|
|
('自助模考', '自助模考'),
|
|
('押卷模考', '押卷模考'),
|
|
)
|
|
name = models.CharField(max_length=200, verbose_name='名称')
|
|
type = models.CharField(max_length=50, default='自助模考',choices = type_choices, verbose_name='考试类型')
|
|
limit = models.IntegerField(default=0, verbose_name='限时(分钟)')
|
|
workscope = models.ForeignKey(WorkScope, on_delete=models.SET_NULL, verbose_name='工作类别', null=True, blank=True)
|
|
paper = models.ForeignKey(Paper, on_delete=models.SET_NULL, verbose_name='所用试卷', null=True, blank=True)
|
|
consumer = models.ForeignKey(Consumer, on_delete=models.CASCADE, verbose_name='模考人')
|
|
total_score = models.FloatField(default=0, verbose_name='总分')
|
|
score = models.FloatField(default=0, verbose_name='得分')
|
|
took = models.IntegerField(default=0, verbose_name='耗时(秒)')
|
|
start_time = models.DateTimeField(verbose_name='开始答题时间')
|
|
end_time = models.DateTimeField(verbose_name='结束答题时间')
|
|
detail = models.ManyToManyField(Question, related_name='答题记录', through='AnswerDetail')
|
|
is_pass = models.BooleanField(default=True, verbose_name='是否通过')
|
|
class Meta:
|
|
verbose_name = '模拟考试'
|
|
verbose_name_plural = verbose_name
|
|
|
|
|
|
class AnswerDetail(SoftCommonModel):
|
|
examtest = models.ForeignKey(ExamTest, on_delete=models.CASCADE)
|
|
question = models.ForeignKey(Question, on_delete=models.CASCADE)
|
|
user_answer = JSONField(null=True,blank=True)
|
|
score = models.FloatField(default=0, verbose_name='本题得分')
|
|
is_right = models.BooleanField(default=False, verbose_name='是否正确')
|
|
class Meta:
|
|
verbose_name = '答题记录'
|
|
verbose_name_plural = verbose_name
|
|
|
|
|
|
class Banner(CommonModel):
|
|
name = models.CharField(max_length=200, verbose_name='名称')
|
|
path = models.CharField(max_length=1000, null=True, blank=True, verbose_name='图片地址')
|
|
url = models.CharField(max_length=1000, null=True, blank=True, verbose_name='链接地址')
|
|
sort = models.IntegerField(default=1, verbose_name='排序数字')
|