models.py 4.2 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273
  1. # coding=utf-8
  2. from django.db import models
  3. from django.utils import timezone
  4. from django.conf import settings
  5. from apps.foundation.models import Subject
  6. from apps.examination.examquestion.models import ExamQuestion
  7. class ExamPaper(models.Model):
  8. MOCK = 1
  9. FORMAL = 2
  10. RANDOM = 3
  11. TYPE_CHOICES = (
  12. (MOCK, u'模拟试卷'),
  13. (FORMAL, u'正式试卷'),
  14. (RANDOM, u'随机试卷'),
  15. )
  16. TYPE_JSON = [{'id': item[0], 'value': item[1]} for item in TYPE_CHOICES]
  17. name = models.CharField(max_length=200, verbose_name=u"名称")
  18. subject = models.ForeignKey(Subject, verbose_name=u"科目", on_delete=models.PROTECT)
  19. type = models.PositiveSmallIntegerField(choices=TYPE_CHOICES, verbose_name=u"类型")
  20. passline = models.IntegerField(verbose_name=u'及格线')
  21. desc = models.TextField(verbose_name=u"备注", null=True, blank=True)
  22. single_simple_count = models.IntegerField(verbose_name=u'简单单选题数量', default=0)
  23. multiple_simple_count = models.IntegerField(verbose_name=u'简单多选题数量', default=0)
  24. fill_simple_count = models.IntegerField(verbose_name=u'简单填空题数量', default=0)
  25. judgment_simple_count = models.IntegerField(verbose_name=u'简单判断题数量', default=0)
  26. single_mid_count = models.IntegerField(verbose_name=u'中等单选题数量', default=0)
  27. multiple_mid_count = models.IntegerField(verbose_name=u'中等多选题数量', default=0)
  28. fill_mid_count = models.IntegerField(verbose_name=u'中等填空题数量', default=0)
  29. judgment_mid_count = models.IntegerField(verbose_name=u'中等判断题数量', default=0)
  30. single_hard_count = models.IntegerField(verbose_name=u'困难单选题数量', default=0)
  31. multiple_hard_count = models.IntegerField(verbose_name=u'困难多选题数量', default=0)
  32. fill_hard_count = models.IntegerField(verbose_name=u'困难填空题数量', default=0)
  33. judgment_hard_count = models.IntegerField(verbose_name=u'困难判断题数量', default=0)
  34. single_scores = models.IntegerField(verbose_name=u'单选题单题分数', default=0)
  35. multiple_scores = models.IntegerField(verbose_name=u'多选题单题分数', default=0)
  36. fill_scores = models.IntegerField(verbose_name=u'填空题单题分数', default=0)
  37. judgment_scores = models.IntegerField(verbose_name=u'判断题单题分数', default=0)
  38. single_total_count = models.IntegerField(verbose_name=u'单选题总数量', default=0, editable=False)
  39. multiple_total_count = models.IntegerField(verbose_name=u'多选题总数量', default=0, editable=False)
  40. fill_total_count = models.IntegerField(verbose_name=u'填空题总数量', default=0, editable=False)
  41. judgment_total_count = models.IntegerField(verbose_name=u'判断题总数量', default=0, editable=False)
  42. single_total_scores = models.IntegerField(verbose_name=u'单选题总分数', default=0, editable=False)
  43. multiple_total_scores = models.IntegerField(verbose_name=u'多选题总分数', default=0, editable=False)
  44. fill_total_scores = models.IntegerField(verbose_name=u'填空题总分数', default=0, editable=False)
  45. judgment_total_scores = models.IntegerField(verbose_name=u'判断题总分数', default=0, editable=False)
  46. question_total_count = models.IntegerField(verbose_name=u'试题总数量', default=0, editable=False)
  47. question_total_scores = models.IntegerField(verbose_name=u'试题总分数', default=0, editable=False)
  48. create_user = models.ForeignKey(settings.AUTH_USER_MODEL, verbose_name=u'添加人', editable=False, on_delete=models.PROTECT)
  49. create_time = models.DateTimeField(verbose_name=u"添加时间", default=timezone.now, editable=False)
  50. delete = models.BooleanField(verbose_name=u'删除', default=False, editable=False)
  51. class Meta:
  52. db_table = "exam_paper"
  53. ordering = ['-id']
  54. verbose_name = u"试卷管理"
  55. default_permissions = ()
  56. class ExamPaperDetail(models.Model):
  57. main = models.ForeignKey(ExamPaper, verbose_name=u"试卷", on_delete=models.PROTECT)
  58. question = models.ForeignKey(ExamQuestion, verbose_name=u"试题", on_delete=models.PROTECT)
  59. class Meta:
  60. db_table = "exam_paper_detail"
  61. ordering = ['-id']
  62. verbose_name = u"试卷管理"
  63. default_permissions = ()