choices.py 4.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216
  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_DATETIME = 'datetime'
  13. TYPE_URL = 'url'
  14. TYPE_JSON = 'json'
  15. TYPE_SELECT = 'select'
  16. TYPE_MULTISELECT = 'multiselect'
  17. TYPE_OBJECT = 'object'
  18. TYPE_MULTIOBJECT = 'multiobject'
  19. CHOICES = (
  20. (TYPE_TEXT, 'Text'),
  21. (TYPE_LONGTEXT, 'Text (long)'),
  22. (TYPE_INTEGER, 'Integer'),
  23. (TYPE_DECIMAL, 'Decimal'),
  24. (TYPE_BOOLEAN, 'Boolean (true/false)'),
  25. (TYPE_DATE, 'Date'),
  26. (TYPE_DATETIME, 'Date & time'),
  27. (TYPE_URL, 'URL'),
  28. (TYPE_JSON, 'JSON'),
  29. (TYPE_SELECT, 'Selection'),
  30. (TYPE_MULTISELECT, 'Multiple selection'),
  31. (TYPE_OBJECT, 'Object'),
  32. (TYPE_MULTIOBJECT, 'Multiple objects'),
  33. )
  34. class CustomFieldFilterLogicChoices(ChoiceSet):
  35. FILTER_DISABLED = 'disabled'
  36. FILTER_LOOSE = 'loose'
  37. FILTER_EXACT = 'exact'
  38. CHOICES = (
  39. (FILTER_DISABLED, 'Disabled'),
  40. (FILTER_LOOSE, 'Loose'),
  41. (FILTER_EXACT, 'Exact'),
  42. )
  43. class CustomFieldVisibilityChoices(ChoiceSet):
  44. VISIBILITY_READ_WRITE = 'read-write'
  45. VISIBILITY_READ_ONLY = 'read-only'
  46. VISIBILITY_HIDDEN = 'hidden'
  47. VISIBILITY_HIDDEN_IFUNSET = 'hidden-ifunset'
  48. CHOICES = (
  49. (VISIBILITY_READ_WRITE, 'Read/Write'),
  50. (VISIBILITY_READ_ONLY, 'Read-only'),
  51. (VISIBILITY_HIDDEN, 'Hidden'),
  52. (VISIBILITY_HIDDEN_IFUNSET, 'Hidden (if unset)'),
  53. )
  54. #
  55. # CustomLinks
  56. #
  57. class CustomLinkButtonClassChoices(ButtonColorChoices):
  58. LINK = 'ghost-dark'
  59. CHOICES = (
  60. *ButtonColorChoices.CHOICES,
  61. (LINK, 'Link'),
  62. )
  63. #
  64. # ObjectChanges
  65. #
  66. class ObjectChangeActionChoices(ChoiceSet):
  67. ACTION_CREATE = 'create'
  68. ACTION_UPDATE = 'update'
  69. ACTION_DELETE = 'delete'
  70. CHOICES = (
  71. (ACTION_CREATE, 'Created', 'green'),
  72. (ACTION_UPDATE, 'Updated', 'blue'),
  73. (ACTION_DELETE, 'Deleted', 'red'),
  74. )
  75. #
  76. # Jounral entries
  77. #
  78. class JournalEntryKindChoices(ChoiceSet):
  79. key = 'JournalEntry.kind'
  80. KIND_INFO = 'info'
  81. KIND_SUCCESS = 'success'
  82. KIND_WARNING = 'warning'
  83. KIND_DANGER = 'danger'
  84. CHOICES = [
  85. (KIND_INFO, 'Info', 'cyan'),
  86. (KIND_SUCCESS, 'Success', 'green'),
  87. (KIND_WARNING, 'Warning', 'yellow'),
  88. (KIND_DANGER, 'Danger', 'red'),
  89. ]
  90. #
  91. # Reports and Scripts
  92. #
  93. class LogLevelChoices(ChoiceSet):
  94. LOG_DEFAULT = 'default'
  95. LOG_SUCCESS = 'success'
  96. LOG_INFO = 'info'
  97. LOG_WARNING = 'warning'
  98. LOG_FAILURE = 'failure'
  99. CHOICES = (
  100. (LOG_DEFAULT, 'Default', 'gray'),
  101. (LOG_SUCCESS, 'Success', 'green'),
  102. (LOG_INFO, 'Info', 'cyan'),
  103. (LOG_WARNING, 'Warning', 'yellow'),
  104. (LOG_FAILURE, 'Failure', 'red'),
  105. )
  106. class DurationChoices(ChoiceSet):
  107. CHOICES = (
  108. (60, 'Hourly'),
  109. (720, '12 hours'),
  110. (1440, 'Daily'),
  111. (10080, 'Weekly'),
  112. (43200, '30 days'),
  113. )
  114. #
  115. # Job results
  116. #
  117. class JobResultStatusChoices(ChoiceSet):
  118. STATUS_PENDING = 'pending'
  119. STATUS_SCHEDULED = 'scheduled'
  120. STATUS_RUNNING = 'running'
  121. STATUS_COMPLETED = 'completed'
  122. STATUS_ERRORED = 'errored'
  123. STATUS_FAILED = 'failed'
  124. CHOICES = (
  125. (STATUS_PENDING, 'Pending', 'cyan'),
  126. (STATUS_SCHEDULED, 'Scheduled', 'gray'),
  127. (STATUS_RUNNING, 'Running', 'blue'),
  128. (STATUS_COMPLETED, 'Completed', 'green'),
  129. (STATUS_ERRORED, 'Errored', 'red'),
  130. (STATUS_FAILED, 'Failed', 'red'),
  131. )
  132. TERMINAL_STATE_CHOICES = (
  133. STATUS_COMPLETED,
  134. STATUS_ERRORED,
  135. STATUS_FAILED,
  136. )
  137. #
  138. # Webhooks
  139. #
  140. class WebhookHttpMethodChoices(ChoiceSet):
  141. METHOD_GET = 'GET'
  142. METHOD_POST = 'POST'
  143. METHOD_PUT = 'PUT'
  144. METHOD_PATCH = 'PATCH'
  145. METHOD_DELETE = 'DELETE'
  146. CHOICES = (
  147. (METHOD_GET, 'GET'),
  148. (METHOD_POST, 'POST'),
  149. (METHOD_PUT, 'PUT'),
  150. (METHOD_PATCH, 'PATCH'),
  151. (METHOD_DELETE, 'DELETE'),
  152. )
  153. #
  154. # Staging
  155. #
  156. class ChangeActionChoices(ChoiceSet):
  157. ACTION_CREATE = 'create'
  158. ACTION_UPDATE = 'update'
  159. ACTION_DELETE = 'delete'
  160. CHOICES = (
  161. (ACTION_CREATE, 'Create'),
  162. (ACTION_UPDATE, 'Update'),
  163. (ACTION_DELETE, 'Delete'),
  164. )