models.py 1.7 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647
  1. from django.db import models
  2. from django.db.models import Q
  3. from django.conf import settings
  4. class Option(models.Model):
  5. CUSTOMER_SOURCE =1
  6. CATEGORY = 2
  7. POTENTIAL_LEVEL = 3
  8. STAGE_PROGRESS = 4
  9. TYPE_CHOICES = (
  10. (CUSTOMER_SOURCE, u'客户来源'),
  11. (CATEGORY, u'项目类别'),
  12. (POTENTIAL_LEVEL, u'潜客级别'),
  13. (STAGE_PROGRESS, u'阶段进度'),
  14. )
  15. type = models.PositiveSmallIntegerField(choices=TYPE_CHOICES, verbose_name=u"类别")
  16. name = models.CharField(verbose_name=u'名称', max_length=100)
  17. sort = models.PositiveSmallIntegerField(verbose_name=u'排序', help_text=u'越小越靠前', default=1)
  18. notes = models.CharField(max_length=500, verbose_name=u"备注",null=True)
  19. enable = models.BooleanField(verbose_name=u"在用", default=True)
  20. create_user = models.ForeignKey(settings.AUTH_USER_MODEL, verbose_name=u"创建人", on_delete=models.PROTECT,
  21. editable=False)
  22. track_day = models.IntegerField(verbose_name=u"跟踪天数", null=True)
  23. end_stage = models.BooleanField(verbose_name=u"是否最终阶段", default=False)
  24. class Meta:
  25. db_table = 'system_option'
  26. verbose_name = u"自定义项"
  27. ordering = ['type', 'sort', ]
  28. index_together = (
  29. 'type',
  30. 'name',
  31. )
  32. default_permissions = ()
  33. permissions = [
  34. ('browse_option', u'查看'),
  35. ('add_option', u'添加'),
  36. ('delete_option', u'删除'),
  37. ]
  38. @staticmethod
  39. def is_exist(type, name, exclude_id=None):
  40. rows = Option.objects.filter(type=type, name=name)
  41. if exclude_id:
  42. rows = rows.filter(~Q(id=exclude_id))
  43. return rows.count()