choices.py 3.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184
  1. from utilities.choices import ButtonColorChoices, ChoiceSet
  2. #
  3. # CustomFields
  4. #
  5. class CustomFieldTypeChoices(ChoiceSet):
  6. TYPE_TEXT = 'text'
  7. TYPE_LONGTEXT = 'longtext'
  8. TYPE_INTEGER = 'integer'
  9. TYPE_DECIMAL = 'decimal'
  10. TYPE_BOOLEAN = 'boolean'
  11. TYPE_DATE = 'date'
  12. TYPE_URL = 'url'
  13. TYPE_JSON = 'json'
  14. TYPE_SELECT = 'select'
  15. TYPE_MULTISELECT = 'multiselect'
  16. TYPE_OBJECT = 'object'
  17. TYPE_MULTIOBJECT = 'multiobject'
  18. CHOICES = (
  19. (TYPE_TEXT, 'Text'),
  20. (TYPE_LONGTEXT, 'Text (long)'),
  21. (TYPE_INTEGER, 'Integer'),
  22. (TYPE_DECIMAL, 'Decimal'),
  23. (TYPE_BOOLEAN, 'Boolean (true/false)'),
  24. (TYPE_DATE, 'Date'),
  25. (TYPE_URL, 'URL'),
  26. (TYPE_JSON, 'JSON'),
  27. (TYPE_SELECT, 'Selection'),
  28. (TYPE_MULTISELECT, 'Multiple selection'),
  29. (TYPE_OBJECT, 'Object'),
  30. (TYPE_MULTIOBJECT, 'Multiple objects'),
  31. )
  32. class CustomFieldFilterLogicChoices(ChoiceSet):
  33. FILTER_DISABLED = 'disabled'
  34. FILTER_LOOSE = 'loose'
  35. FILTER_EXACT = 'exact'
  36. CHOICES = (
  37. (FILTER_DISABLED, 'Disabled'),
  38. (FILTER_LOOSE, 'Loose'),
  39. (FILTER_EXACT, 'Exact'),
  40. )
  41. class CustomFieldVisibilityChoices(ChoiceSet):
  42. VISIBILITY_READ_WRITE = 'read-write'
  43. VISIBILITY_READ_ONLY = 'read-only'
  44. VISIBILITY_HIDDEN = 'hidden'
  45. CHOICES = (
  46. (VISIBILITY_READ_WRITE, 'Read/Write'),
  47. (VISIBILITY_READ_ONLY, 'Read-only'),
  48. (VISIBILITY_HIDDEN, 'Hidden'),
  49. )
  50. #
  51. # CustomLinks
  52. #
  53. class CustomLinkButtonClassChoices(ButtonColorChoices):
  54. LINK = 'ghost-dark'
  55. CHOICES = (
  56. *ButtonColorChoices.CHOICES,
  57. (LINK, 'Link'),
  58. )
  59. #
  60. # ObjectChanges
  61. #
  62. class ObjectChangeActionChoices(ChoiceSet):
  63. ACTION_CREATE = 'create'
  64. ACTION_UPDATE = 'update'
  65. ACTION_DELETE = 'delete'
  66. CHOICES = (
  67. (ACTION_CREATE, 'Created', 'green'),
  68. (ACTION_UPDATE, 'Updated', 'blue'),
  69. (ACTION_DELETE, 'Deleted', 'red'),
  70. )
  71. #
  72. # Jounral entries
  73. #
  74. class JournalEntryKindChoices(ChoiceSet):
  75. key = 'JournalEntry.kind'
  76. KIND_INFO = 'info'
  77. KIND_SUCCESS = 'success'
  78. KIND_WARNING = 'warning'
  79. KIND_DANGER = 'danger'
  80. CHOICES = [
  81. (KIND_INFO, 'Info', 'cyan'),
  82. (KIND_SUCCESS, 'Success', 'green'),
  83. (KIND_WARNING, 'Warning', 'yellow'),
  84. (KIND_DANGER, 'Danger', 'red'),
  85. ]
  86. #
  87. # Log Levels for Reports and Scripts
  88. #
  89. class LogLevelChoices(ChoiceSet):
  90. LOG_DEFAULT = 'default'
  91. LOG_SUCCESS = 'success'
  92. LOG_INFO = 'info'
  93. LOG_WARNING = 'warning'
  94. LOG_FAILURE = 'failure'
  95. CHOICES = (
  96. (LOG_DEFAULT, 'Default', 'gray'),
  97. (LOG_SUCCESS, 'Success', 'green'),
  98. (LOG_INFO, 'Info', 'cyan'),
  99. (LOG_WARNING, 'Warning', 'yellow'),
  100. (LOG_FAILURE, 'Failure', 'red'),
  101. )
  102. #
  103. # Job results
  104. #
  105. class JobResultStatusChoices(ChoiceSet):
  106. STATUS_PENDING = 'pending'
  107. STATUS_SCHEDULED = 'scheduled'
  108. STATUS_RUNNING = 'running'
  109. STATUS_COMPLETED = 'completed'
  110. STATUS_ERRORED = 'errored'
  111. STATUS_FAILED = 'failed'
  112. CHOICES = (
  113. (STATUS_PENDING, 'Pending'),
  114. (STATUS_SCHEDULED, 'Scheduled'),
  115. (STATUS_RUNNING, 'Running'),
  116. (STATUS_COMPLETED, 'Completed'),
  117. (STATUS_ERRORED, 'Errored'),
  118. (STATUS_FAILED, 'Failed'),
  119. )
  120. TERMINAL_STATE_CHOICES = (
  121. STATUS_COMPLETED,
  122. STATUS_ERRORED,
  123. STATUS_FAILED,
  124. )
  125. #
  126. # Webhooks
  127. #
  128. class WebhookHttpMethodChoices(ChoiceSet):
  129. METHOD_GET = 'GET'
  130. METHOD_POST = 'POST'
  131. METHOD_PUT = 'PUT'
  132. METHOD_PATCH = 'PATCH'
  133. METHOD_DELETE = 'DELETE'
  134. CHOICES = (
  135. (METHOD_GET, 'GET'),
  136. (METHOD_POST, 'POST'),
  137. (METHOD_PUT, 'PUT'),
  138. (METHOD_PATCH, 'PATCH'),
  139. (METHOD_DELETE, 'DELETE'),
  140. )