service_category.py 3.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108
  1. from django.db import models
  2. from tickets.models import Ticket
  3. from dbsynce.docs.database.service_category import ServiceCategory as HelpTexts
  4. from dbsynce.docs.verbose_names.service_category import ServiceCategory as VerboseName
  5. from core.settings_vars import METASERVICE_ID
  6. from dbsynce.lib import dicts
  7. import core.settings_vars as sv
  8. class ServiceCategory(models.Model):
  9. """
  10. Перечень типов услуг
  11. """
  12. # ID METASERVICE
  13. id_metaservice = models.PositiveIntegerField(
  14. default=METASERVICE_ID,
  15. verbose_name = VerboseName.id_metaservice,
  16. help_text=HelpTexts.id_metaservice,
  17. )
  18. # DATA
  19. codename = models.CharField(
  20. max_length=30,
  21. verbose_name = VerboseName.codename,
  22. help_text=HelpTexts.codename,
  23. )
  24. requirements = models.CharField(
  25. max_length=50,
  26. #TODO fix default value!
  27. default=sv.MIN_SERVICE_CATEGORY_REQUIREMENTS,
  28. verbose_name = VerboseName.requirements,
  29. help_text=HelpTexts.requirements,
  30. )
  31. status = models.CharField(
  32. max_length=1,
  33. default="1",
  34. choices = list(dicts.activity_status_by_code.items()),
  35. #choices = list(dicts.activity_status.items()),
  36. verbose_name = VerboseName.status,
  37. help_text=HelpTexts.status,
  38. )
  39. caption = models.CharField(
  40. max_length=255,
  41. verbose_name = VerboseName.caption,
  42. help_text=HelpTexts.caption,
  43. )
  44. description = models.TextField(
  45. blank=True,
  46. verbose_name = VerboseName.description,
  47. help_text=HelpTexts.description,
  48. )
  49. link_agreement = models.CharField(
  50. max_length=400,
  51. verbose_name = VerboseName.link_agreement,
  52. help_text=HelpTexts.link_agreement,
  53. )
  54. price_type = models.CharField(
  55. max_length=1,
  56. choices = list(dicts.price_type_by_code.items()),
  57. verbose_name = VerboseName.price_type,
  58. help_text=HelpTexts.price_type,
  59. )
  60. metaservice_comission = models.FloatField(
  61. verbose_name = VerboseName.metaservice_comission,
  62. help_text=HelpTexts.metaservice_comission,
  63. )
  64. # OTHER
  65. is_global = models.CharField(
  66. max_length=1,
  67. default="f",
  68. choices = list(dicts.is_global_by_code.items()),
  69. verbose_name = VerboseName.is_global,
  70. help_text=HelpTexts.is_global,
  71. )
  72. is_visible = models.CharField(
  73. max_length=1,
  74. default="f",
  75. choices = list(dicts.is_visible_by_code.items()),
  76. verbose_name = VerboseName.is_visible,
  77. help_text=HelpTexts.is_visible,
  78. )
  79. # FK
  80. ticket_status = models.ForeignKey(
  81. Ticket,
  82. on_delete=models.DO_NOTHING,
  83. null=True,
  84. verbose_name = VerboseName.ticket_status,
  85. help_text=HelpTexts.ticket_status,
  86. )
  87. def deactivate(self):
  88. self.status = "1"
  89. self.save()
  90. def activate(self):
  91. self.status = "0"
  92. self.save()
  93. class Meta:
  94. db_table = "service_category"
  95. verbose_name = "Тип услуги"
  96. verbose_name_plural = "Типы услуг"