resource.py 2.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990
  1. from django.contrib.auth import get_user_model
  2. from django.db import models
  3. from tickets.models import Ticket
  4. from dbsynce.docs.database.resource import Resource as HelpTexts
  5. from dbsynce.docs.verbose_names.resource import Resource as VerboseName
  6. from core.settings_vars import METASERVICE_ID
  7. from dbsynce.lib import dicts
  8. import core.settings_vars as sv
  9. class Resource(models.Model):
  10. """
  11. Resource/Список ресурсов – автомобили/дома/объекты сервиса
  12. """
  13. # ID METASERVICE
  14. id_metaservice = models.PositiveIntegerField(
  15. default=METASERVICE_ID,
  16. verbose_name = VerboseName.id_metaservice,
  17. help_text=HelpTexts.id_metaservice,
  18. )
  19. # DATA
  20. resource_type = models.CharField(
  21. max_length=10,
  22. choices = list(dicts.resource_type_by_code.items()),
  23. verbose_name = VerboseName.resource_type,
  24. help_text=HelpTexts.resource_type,
  25. )
  26. requirements = models.CharField(
  27. max_length=50,
  28. default=sv.MIN_RESOURCE_REQUIREMENTS,
  29. verbose_name = VerboseName.requirements,
  30. help_text=HelpTexts.requirements,
  31. )
  32. status = models.CharField(
  33. max_length=1,
  34. default="1",
  35. choices = list(dicts.activity_status_by_code.items()),
  36. verbose_name = VerboseName.status,
  37. help_text=HelpTexts.status,
  38. )
  39. # OTHER
  40. is_global = models.CharField(
  41. max_length=1,
  42. default="1",
  43. choices = list(dicts.is_global_by_code.items()),
  44. verbose_name = VerboseName.is_global,
  45. help_text=HelpTexts.is_global,
  46. )
  47. is_visible = models.CharField(
  48. max_length=1,
  49. default="1",
  50. choices = list(dicts.is_visible_by_code.items()),
  51. verbose_name = VerboseName.is_visible,
  52. help_text=HelpTexts.is_visible,
  53. )
  54. # FK
  55. ticket_status = models.ForeignKey(
  56. Ticket,
  57. on_delete=models.SET_NULL,
  58. blank=True,
  59. null=True,
  60. verbose_name = VerboseName.ticket_status,
  61. help_text=HelpTexts.ticket_status,
  62. )
  63. user = models.ForeignKey(
  64. get_user_model(),
  65. blank=True,
  66. null=True,
  67. on_delete=models.DO_NOTHING,
  68. verbose_name = VerboseName.user,
  69. help_text=HelpTexts.user,
  70. )
  71. def deactivate(self):
  72. self.status = "1"
  73. self.save()
  74. def activate(self):
  75. self.status = "0"
  76. self.save()
  77. class Meta:
  78. db_table = "resource"
  79. verbose_name = "Ресурс"
  80. verbose_name_plural = "Ресурсы"