models.py 1.7 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344
  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. FAULT_CAUSE = 2
  8. TYPE_CHOICES = (
  9. (REPAIRS_TYPE, u'报修类型'),
  10. (FAULT_CAUSE, u'故障原因'),
  11. )
  12. tenant = models.ForeignKey(Tenant, verbose_name=u'企业', on_delete=models.PROTECT, editable=False)
  13. type = models.PositiveSmallIntegerField(choices=TYPE_CHOICES, verbose_name=u"类别")
  14. name = models.CharField(verbose_name=u'名称', max_length=100)
  15. sort = models.PositiveSmallIntegerField(verbose_name=u'排序', help_text=u'越小越靠前', default=0)
  16. notes = models.CharField(max_length=500, verbose_name=u"备注",null=True)
  17. enable = models.BooleanField(verbose_name=u"在用", default=True)
  18. delete = models.BooleanField(verbose_name=u"删除", default=False, editable=False)
  19. create_user = models.ForeignKey(settings.AUTH_USER_MODEL, verbose_name=u"创建人", on_delete=models.PROTECT,
  20. editable=False)
  21. class Meta:
  22. db_table = 'system_option'
  23. verbose_name = u"系统选项"
  24. ordering = ['type', 'sort', ]
  25. index_together = (
  26. 'type',
  27. 'name',
  28. )
  29. default_permissions = ()
  30. permissions = [
  31. ('browse_option', u'查看'),
  32. ('add_option', u'添加'),
  33. ('delete_option', u'删除'),
  34. ]
  35. @staticmethod
  36. def is_exist(tenant, type, name, exclude_id=None):
  37. rows = Option.objects.filter(tenant=tenant, type=type, name=name, delete=False)
  38. if exclude_id:
  39. rows = rows.filter(~Q(id=exclude_id))
  40. return rows.count()