choices.py 2.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105
  1. from django.utils.translation import gettext_lazy as _
  2. from utilities.choices import ChoiceSet
  3. #
  4. # Data sources
  5. #
  6. class DataSourceStatusChoices(ChoiceSet):
  7. NEW = 'new'
  8. QUEUED = 'queued'
  9. SYNCING = 'syncing'
  10. COMPLETED = 'completed'
  11. FAILED = 'failed'
  12. CHOICES = (
  13. (NEW, _('New'), 'blue'),
  14. (QUEUED, _('Queued'), 'orange'),
  15. (SYNCING, _('Syncing'), 'cyan'),
  16. (COMPLETED, _('Completed'), 'green'),
  17. (FAILED, _('Failed'), 'red'),
  18. )
  19. #
  20. # Managed files
  21. #
  22. class ManagedFileRootPathChoices(ChoiceSet):
  23. SCRIPTS = 'scripts' # settings.SCRIPTS_ROOT
  24. REPORTS = 'reports' # settings.REPORTS_ROOT
  25. CHOICES = (
  26. (SCRIPTS, _('Scripts')),
  27. (REPORTS, _('Reports')),
  28. )
  29. #
  30. # Jobs
  31. #
  32. class JobStatusChoices(ChoiceSet):
  33. STATUS_PENDING = 'pending'
  34. STATUS_SCHEDULED = 'scheduled'
  35. STATUS_RUNNING = 'running'
  36. STATUS_COMPLETED = 'completed'
  37. STATUS_ERRORED = 'errored'
  38. STATUS_FAILED = 'failed'
  39. CHOICES = (
  40. (STATUS_PENDING, _('Pending'), 'cyan'),
  41. (STATUS_SCHEDULED, _('Scheduled'), 'gray'),
  42. (STATUS_RUNNING, _('Running'), 'blue'),
  43. (STATUS_COMPLETED, _('Completed'), 'green'),
  44. (STATUS_ERRORED, _('Errored'), 'red'),
  45. (STATUS_FAILED, _('Failed'), 'red'),
  46. )
  47. ENQUEUED_STATE_CHOICES = (
  48. STATUS_PENDING,
  49. STATUS_SCHEDULED,
  50. STATUS_RUNNING,
  51. )
  52. TERMINAL_STATE_CHOICES = (
  53. STATUS_COMPLETED,
  54. STATUS_ERRORED,
  55. STATUS_FAILED,
  56. )
  57. class JobIntervalChoices(ChoiceSet):
  58. INTERVAL_MINUTELY = 1
  59. INTERVAL_HOURLY = 60
  60. INTERVAL_DAILY = 60 * 24
  61. INTERVAL_WEEKLY = 60 * 24 * 7
  62. CHOICES = (
  63. (INTERVAL_MINUTELY, _('Minutely')),
  64. (INTERVAL_HOURLY, _('Hourly')),
  65. (INTERVAL_HOURLY * 12, _('12 hours')),
  66. (INTERVAL_DAILY, _('Daily')),
  67. (INTERVAL_WEEKLY, _('Weekly')),
  68. (INTERVAL_DAILY * 30, _('30 days')),
  69. )
  70. #
  71. # ObjectChanges
  72. #
  73. class ObjectChangeActionChoices(ChoiceSet):
  74. ACTION_CREATE = 'create'
  75. ACTION_UPDATE = 'update'
  76. ACTION_DELETE = 'delete'
  77. CHOICES = (
  78. (ACTION_CREATE, _('Created'), 'green'),
  79. (ACTION_UPDATE, _('Updated'), 'blue'),
  80. (ACTION_DELETE, _('Deleted'), 'red'),
  81. )