1from utilities.choices import ChoiceSet
2
3
4#
5# CustomFields
6#
7
8class CustomFieldTypeChoices(ChoiceSet):
9
10    TYPE_TEXT = 'text'
11    TYPE_INTEGER = 'integer'
12    TYPE_BOOLEAN = 'boolean'
13    TYPE_DATE = 'date'
14    TYPE_URL = 'url'
15    TYPE_SELECT = 'select'
16    TYPE_MULTISELECT = 'multiselect'
17
18    CHOICES = (
19        (TYPE_TEXT, 'Text'),
20        (TYPE_INTEGER, 'Integer'),
21        (TYPE_BOOLEAN, 'Boolean (true/false)'),
22        (TYPE_DATE, 'Date'),
23        (TYPE_URL, 'URL'),
24        (TYPE_SELECT, 'Selection'),
25        (TYPE_MULTISELECT, 'Multiple selection'),
26    )
27
28
29class CustomFieldFilterLogicChoices(ChoiceSet):
30
31    FILTER_DISABLED = 'disabled'
32    FILTER_LOOSE = 'loose'
33    FILTER_EXACT = 'exact'
34
35    CHOICES = (
36        (FILTER_DISABLED, 'Disabled'),
37        (FILTER_LOOSE, 'Loose'),
38        (FILTER_EXACT, 'Exact'),
39    )
40
41
42#
43# CustomLinks
44#
45
46class CustomLinkButtonClassChoices(ChoiceSet):
47
48    CLASS_DEFAULT = 'outline-dark'
49    CLASS_LINK = 'ghost-dark'
50    CLASS_BLUE = 'blue'
51    CLASS_INDIGO = 'indigo'
52    CLASS_PURPLE = 'purple'
53    CLASS_PINK = 'pink'
54    CLASS_RED = 'red'
55    CLASS_ORANGE = 'orange'
56    CLASS_YELLOW = 'yellow'
57    CLASS_GREEN = 'green'
58    CLASS_TEAL = 'teal'
59    CLASS_CYAN = 'cyan'
60    CLASS_GRAY = 'secondary'
61
62    CHOICES = (
63        (CLASS_DEFAULT, 'Default'),
64        (CLASS_LINK, 'Link'),
65        (CLASS_BLUE, 'Blue'),
66        (CLASS_INDIGO, 'Indigo'),
67        (CLASS_PURPLE, 'Purple'),
68        (CLASS_PINK, 'Pink'),
69        (CLASS_RED, 'Red'),
70        (CLASS_ORANGE, 'Orange'),
71        (CLASS_YELLOW, 'Yellow'),
72        (CLASS_GREEN, 'Green'),
73        (CLASS_TEAL, 'Teal'),
74        (CLASS_CYAN, 'Cyan'),
75        (CLASS_GRAY, 'Gray'),
76    )
77
78#
79# ObjectChanges
80#
81
82
83class ObjectChangeActionChoices(ChoiceSet):
84
85    ACTION_CREATE = 'create'
86    ACTION_UPDATE = 'update'
87    ACTION_DELETE = 'delete'
88
89    CHOICES = (
90        (ACTION_CREATE, 'Created'),
91        (ACTION_UPDATE, 'Updated'),
92        (ACTION_DELETE, 'Deleted'),
93    )
94
95    CSS_CLASSES = {
96        ACTION_CREATE: 'success',
97        ACTION_UPDATE: 'primary',
98        ACTION_DELETE: 'danger',
99    }
100
101
102#
103# Jounral entries
104#
105
106class JournalEntryKindChoices(ChoiceSet):
107
108    KIND_INFO = 'info'
109    KIND_SUCCESS = 'success'
110    KIND_WARNING = 'warning'
111    KIND_DANGER = 'danger'
112
113    CHOICES = (
114        (KIND_INFO, 'Info'),
115        (KIND_SUCCESS, 'Success'),
116        (KIND_WARNING, 'Warning'),
117        (KIND_DANGER, 'Danger'),
118    )
119
120    CSS_CLASSES = {
121        KIND_INFO: 'info',
122        KIND_SUCCESS: 'success',
123        KIND_WARNING: 'warning',
124        KIND_DANGER: 'danger',
125    }
126
127
128#
129# Log Levels for Reports and Scripts
130#
131
132class LogLevelChoices(ChoiceSet):
133
134    LOG_DEFAULT = 'default'
135    LOG_SUCCESS = 'success'
136    LOG_INFO = 'info'
137    LOG_WARNING = 'warning'
138    LOG_FAILURE = 'failure'
139
140    CHOICES = (
141        (LOG_DEFAULT, 'Default'),
142        (LOG_SUCCESS, 'Success'),
143        (LOG_INFO, 'Info'),
144        (LOG_WARNING, 'Warning'),
145        (LOG_FAILURE, 'Failure'),
146    )
147
148    CSS_CLASSES = {
149        LOG_DEFAULT: 'secondary',
150        LOG_SUCCESS: 'success',
151        LOG_INFO: 'info',
152        LOG_WARNING: 'warning',
153        LOG_FAILURE: 'danger',
154    }
155
156
157#
158# Job results
159#
160
161class JobResultStatusChoices(ChoiceSet):
162
163    STATUS_PENDING = 'pending'
164    STATUS_RUNNING = 'running'
165    STATUS_COMPLETED = 'completed'
166    STATUS_ERRORED = 'errored'
167    STATUS_FAILED = 'failed'
168
169    CHOICES = (
170        (STATUS_PENDING, 'Pending'),
171        (STATUS_RUNNING, 'Running'),
172        (STATUS_COMPLETED, 'Completed'),
173        (STATUS_ERRORED, 'Errored'),
174        (STATUS_FAILED, 'Failed'),
175    )
176
177    TERMINAL_STATE_CHOICES = (
178        STATUS_COMPLETED,
179        STATUS_ERRORED,
180        STATUS_FAILED,
181    )
182
183
184#
185# Webhooks
186#
187
188class WebhookHttpMethodChoices(ChoiceSet):
189
190    METHOD_GET = 'GET'
191    METHOD_POST = 'POST'
192    METHOD_PUT = 'PUT'
193    METHOD_PATCH = 'PATCH'
194    METHOD_DELETE = 'DELETE'
195
196    CHOICES = (
197        (METHOD_GET, 'GET'),
198        (METHOD_POST, 'POST'),
199        (METHOD_PUT, 'PUT'),
200        (METHOD_PATCH, 'PATCH'),
201        (METHOD_DELETE, 'DELETE'),
202    )
203