2
0

choices.py 4.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203
  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. CHOICES = (
  48. (VISIBILITY_READ_WRITE, 'Read/Write'),
  49. (VISIBILITY_READ_ONLY, 'Read-only'),
  50. (VISIBILITY_HIDDEN, 'Hidden'),
  51. )
  52. #
  53. # CustomLinks
  54. #
  55. class CustomLinkButtonClassChoices(ButtonColorChoices):
  56. LINK = 'ghost-dark'
  57. CHOICES = (
  58. *ButtonColorChoices.CHOICES,
  59. (LINK, 'Link'),
  60. )
  61. #
  62. # ObjectChanges
  63. #
  64. class ObjectChangeActionChoices(ChoiceSet):
  65. ACTION_CREATE = 'create'
  66. ACTION_UPDATE = 'update'
  67. ACTION_DELETE = 'delete'
  68. CHOICES = (
  69. (ACTION_CREATE, 'Created', 'green'),
  70. (ACTION_UPDATE, 'Updated', 'blue'),
  71. (ACTION_DELETE, 'Deleted', 'red'),
  72. )
  73. #
  74. # Jounral entries
  75. #
  76. class JournalEntryKindChoices(ChoiceSet):
  77. key = 'JournalEntry.kind'
  78. KIND_INFO = 'info'
  79. KIND_SUCCESS = 'success'
  80. KIND_WARNING = 'warning'
  81. KIND_DANGER = 'danger'
  82. CHOICES = [
  83. (KIND_INFO, 'Info', 'cyan'),
  84. (KIND_SUCCESS, 'Success', 'green'),
  85. (KIND_WARNING, 'Warning', 'yellow'),
  86. (KIND_DANGER, 'Danger', 'red'),
  87. ]
  88. #
  89. # Log Levels for Reports and Scripts
  90. #
  91. class LogLevelChoices(ChoiceSet):
  92. LOG_DEFAULT = 'default'
  93. LOG_SUCCESS = 'success'
  94. LOG_INFO = 'info'
  95. LOG_WARNING = 'warning'
  96. LOG_FAILURE = 'failure'
  97. CHOICES = (
  98. (LOG_DEFAULT, 'Default', 'gray'),
  99. (LOG_SUCCESS, 'Success', 'green'),
  100. (LOG_INFO, 'Info', 'cyan'),
  101. (LOG_WARNING, 'Warning', 'yellow'),
  102. (LOG_FAILURE, 'Failure', 'red'),
  103. )
  104. #
  105. # Job results
  106. #
  107. class JobResultStatusChoices(ChoiceSet):
  108. STATUS_PENDING = 'pending'
  109. STATUS_SCHEDULED = 'scheduled'
  110. STATUS_RUNNING = 'running'
  111. STATUS_COMPLETED = 'completed'
  112. STATUS_ERRORED = 'errored'
  113. STATUS_FAILED = 'failed'
  114. CHOICES = (
  115. (STATUS_PENDING, 'Pending', 'cyan'),
  116. (STATUS_SCHEDULED, 'Scheduled', 'gray'),
  117. (STATUS_RUNNING, 'Running', 'blue'),
  118. (STATUS_COMPLETED, 'Completed', 'green'),
  119. (STATUS_ERRORED, 'Errored', 'red'),
  120. (STATUS_FAILED, 'Failed', 'red'),
  121. )
  122. TERMINAL_STATE_CHOICES = (
  123. STATUS_COMPLETED,
  124. STATUS_ERRORED,
  125. STATUS_FAILED,
  126. )
  127. #
  128. # Webhooks
  129. #
  130. class WebhookHttpMethodChoices(ChoiceSet):
  131. METHOD_GET = 'GET'
  132. METHOD_POST = 'POST'
  133. METHOD_PUT = 'PUT'
  134. METHOD_PATCH = 'PATCH'
  135. METHOD_DELETE = 'DELETE'
  136. CHOICES = (
  137. (METHOD_GET, 'GET'),
  138. (METHOD_POST, 'POST'),
  139. (METHOD_PUT, 'PUT'),
  140. (METHOD_PATCH, 'PATCH'),
  141. (METHOD_DELETE, 'DELETE'),
  142. )
  143. #
  144. # Staging
  145. #
  146. class ChangeActionChoices(ChoiceSet):
  147. ACTION_CREATE = 'create'
  148. ACTION_UPDATE = 'update'
  149. ACTION_DELETE = 'delete'
  150. CHOICES = (
  151. (ACTION_CREATE, 'Create'),
  152. (ACTION_UPDATE, 'Update'),
  153. (ACTION_DELETE, 'Delete'),
  154. )