models.py 3.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172
  1. # coding=utf-8
  2. from django.db import models
  3. from django.utils import timezone
  4. from django.conf import settings
  5. from utils.exceptions import CustomError
  6. from apps.foundation.models import Chapter
  7. class KnowledgeBase(models.Model):
  8. chapter = models.ForeignKey(Chapter, verbose_name=u"章节", on_delete=models.PROTECT)
  9. name = models.CharField(max_length=200, verbose_name=u"名称")
  10. feature = models.TextField(verbose_name=u"识别特征")
  11. desc = models.TextField(verbose_name=u"备注", null=True, blank=True)
  12. create_user = models.ForeignKey(settings.AUTH_USER_MODEL, verbose_name=u'录入人',related_name='knowledge_base_user', editable=False, on_delete=models.PROTECT)
  13. create_time = models.DateTimeField(verbose_name=u"录入时间", default=timezone.now, editable=False)
  14. delete = models.BooleanField(verbose_name=u'删除', default=False, editable=False)
  15. class Meta:
  16. db_table = "knowledge_base"
  17. ordering = ['-id']
  18. verbose_name = u"知识管理"
  19. default_permissions = ()
  20. class KnowledgeBaseFeedback(models.Model):
  21. NAME = 1
  22. FEATURE = 2
  23. IMG = 3
  24. OTHER = 4
  25. TYPE_CHOICES = (
  26. (NAME, u'名称错误'),
  27. (FEATURE, u'特征错误'),
  28. (IMG, u'图片错误'),
  29. (OTHER, u'其它'),
  30. )
  31. TYPE_JSON = [{'id': item[0], 'value': item[1]} for item in TYPE_CHOICES]
  32. UNTREATED = 1
  33. PROCESSED = 2
  34. STATUS_CHOICES = (
  35. (UNTREATED, u'未处理'),
  36. (PROCESSED, u'已处理'),
  37. )
  38. STATUS_JSON = [{'id': item[0], 'value': item[1]} for item in STATUS_CHOICES]
  39. main = models.ForeignKey(KnowledgeBase, verbose_name=u"知识", on_delete=models.PROTECT)
  40. type = models.PositiveSmallIntegerField(choices=TYPE_CHOICES, verbose_name=u"错误类型")
  41. desc = models.TextField(verbose_name=u"错误描述", null=True, blank=True)
  42. create_user = models.ForeignKey(settings.AUTH_USER_MODEL, verbose_name=u'反馈人', editable=False, on_delete=models.PROTECT, related_name='knowledge_base_feedback_create_usr_id')
  43. create_time = models.DateTimeField(verbose_name=u"反馈时间", default=timezone.now, editable=False)
  44. status = models.PositiveSmallIntegerField(choices=STATUS_CHOICES, verbose_name=u'处理状态', default=UNTREATED)
  45. process_user = models.ForeignKey(settings.AUTH_USER_MODEL, verbose_name=u"处理人", on_delete=models.PROTECT, null=True, related_name='knowledge_base_feedback_process_usr_id')
  46. process_time = models.DateTimeField(verbose_name=u'处理时间', null=True)
  47. class Meta:
  48. db_table = "knowledge_base_feedback"
  49. ordering = ['-id']
  50. verbose_name = u"错误反馈"
  51. default_permissions = ()
  52. @staticmethod
  53. def getById(id):
  54. instance = KnowledgeBaseFeedback.objects.filter(pk=id).first()
  55. if not instance:
  56. raise CustomError(u'未找到相应的错误反馈')
  57. return instance
  58. def process(self, user):
  59. self.process_user = user
  60. self.status = KnowledgeBaseFeedback.PROCESSED
  61. self.process_time = timezone.now()