models.py 1.9 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950
  1. from django.db import models
  2. from apps.tenant.models import Tenant
  3. from django.db.models import Q
  4. from django.conf import settings
  5. class Option(models.Model):
  6. REPAIRS_TYPE =1
  7. JOB_TYPE = 2
  8. EQUIPMENT_TYPE = 3
  9. FAULT_CAUSE = 4
  10. EQUIPMENT_SUPPLIER = 5
  11. TYPE_CHOICES = (
  12. (REPAIRS_TYPE, u'报修类型'),
  13. (JOB_TYPE, u'职位分类'),
  14. (EQUIPMENT_TYPE, u'设备分类'),
  15. (FAULT_CAUSE, u'故障原因'),
  16. (EQUIPMENT_SUPPLIER, u'设备供应商')
  17. )
  18. tenant = models.ForeignKey(Tenant, verbose_name=u'租户', on_delete=models.PROTECT, editable=False)
  19. type = models.PositiveSmallIntegerField(choices=TYPE_CHOICES, verbose_name=u"类别")
  20. name = models.CharField(verbose_name=u'名称', max_length=100)
  21. sort = models.PositiveSmallIntegerField(verbose_name=u'排序', help_text=u'越小越靠前', default=0)
  22. notes = models.CharField(max_length=500, verbose_name=u"备注",null=True)
  23. enable = models.BooleanField(verbose_name=u"在用", default=True)
  24. delete = models.BooleanField(verbose_name=u"删除", default=False, editable=False)
  25. create_user = models.ForeignKey(settings.AUTH_USER_MODEL, verbose_name=u"创建人", on_delete=models.PROTECT,
  26. editable=False)
  27. class Meta:
  28. db_table = 'system_option'
  29. verbose_name = u"系统选项"
  30. ordering = ['type', 'sort', ]
  31. index_together = (
  32. 'type',
  33. 'name',
  34. )
  35. default_permissions = ()
  36. permissions = [
  37. ('browse_option', u'查看'),
  38. ('add_option', u'添加'),
  39. ('delete_option', u'删除'),
  40. ]
  41. @staticmethod
  42. def is_exist(tenant, type, name, exclude_id=None):
  43. rows = Option.objects.filter(tenant=tenant, type=type, name=name, delete=False)
  44. if exclude_id:
  45. rows = rows.filter(~Q(id=exclude_id))
  46. return rows.count()