Coverage for portality / constants.py: 100%
113 statements
« prev ^ index » next coverage.py v7.13.5, created at 2026-05-05 00:09 +0100
« prev ^ index » next coverage.py v7.13.5, created at 2026-05-05 00:09 +0100
1# ~~Constants:Config~~
3# ~~-> ApplicationStatuses:Config~~
4APPLICATION_STATUS_ACCEPTED = "accepted"
5APPLICATION_STATUS_REJECTED = "rejected"
6APPLICATION_STATUS_UPDATE_REQUEST = "update_request"
7APPLICATION_STATUS_REVISIONS_REQUIRED = "revisions_required"
8APPLICATION_STATUS_PENDING = "pending"
9APPLICATION_STATUS_IN_PROGRESS = "in progress"
10APPLICATION_STATUS_COMPLETED = "completed"
11APPLICATION_STATUS_ON_HOLD = "on hold"
12APPLICATION_STATUS_READY = "ready"
13APPLICATION_STATUS_POST_SUBMISSION_REVIEW = "post_submission_review"
15APPLICATION_STATUSES_ALL = [
16 APPLICATION_STATUS_ACCEPTED,
17 APPLICATION_STATUS_REJECTED,
18 APPLICATION_STATUS_UPDATE_REQUEST,
19 APPLICATION_STATUS_REVISIONS_REQUIRED,
20 APPLICATION_STATUS_PENDING,
21 APPLICATION_STATUS_IN_PROGRESS,
22 APPLICATION_STATUS_COMPLETED,
23 APPLICATION_STATUS_ON_HOLD,
24 APPLICATION_STATUS_READY,
25 APPLICATION_STATUS_POST_SUBMISSION_REVIEW
26]
28APPLICATION_TYPE_UPDATE_REQUEST = "update_request"
29APPLICATION_TYPE_NEW_APPLICATION = "new_application"
31INDEX_RECORD_TYPE_UPDATE_REQUEST_UNFINISHED = "Update Request (in progress)"
32INDEX_RECORD_TYPE_UPDATE_REQUEST_FINISHED = "Update Request (finished)"
33INDEX_RECORD_TYPE_NEW_APPLICATION_UNFINISHED = "Application (in progress)"
34INDEX_RECORD_TYPE_NEW_APPLICATION_FINISHED = "Application (finished)"
36PROVENANCE_STATUS_REJECTED = "status:rejected"
37PROVENANCE_STATUS_ACCEPTED = "status:accepted"
39LOCK_APPLICATION = "suggestion"
40LOCK_JOURNAL = "journal"
42IDENT_TYPE_DOI = "doi"
43IDENT_TYPE_PISSN = "pissn"
44IDENT_TYPE_EISSN = "eissn"
45ALLOWED_ARTICLE_IDENT_TYPES = [IDENT_TYPE_DOI, IDENT_TYPE_PISSN, IDENT_TYPE_EISSN]
46LINK_TYPE_FULLTEXT = "fulltext"
48# ~~-> Todo:Service~~
49TODO_ASSIGNED_TO_ME = "todo_assigned_to_me"
50TODO_MANED_STALLED = "todo_maned_stalled"
51TODO_MANED_FOLLOW_UP_OLD = "todo_maned_follow_up_old"
52TODO_MANED_READY = "todo_maned_ready"
53TODO_MANED_COMPLETED = "todo_maned_completed"
54TODO_MANED_ASSIGN_PENDING = "todo_maned_assign_pending"
55TODO_MANED_LAST_MONTH_UPDATE_REQUEST = "todo_maned_last_month_update_request"
56TODO_MANED_NEW_UPDATE_REQUEST = "todo_maned_new_update_request"
57TODO_MANED_ON_HOLD = "todo_maned_on_hold"
58TODO_EDITOR_STALLED = "todo_editor_stalled"
59TODO_EDITOR_FOLLOW_UP_OLD = "todo_editor_follow_up_old"
60TODO_EDITOR_COMPLETED = "todo_editor_completed"
61TODO_EDITOR_ASSIGN_PENDING = "todo_editor_assign_pending"
62TODO_EDITOR_ASSIGN_PENDING_LOW_PRIORITY = "todo_editor_assign_pending_low_priority"
63TODO_ASSOCIATE_PROGRESS_STALLED = "todo_associate_progress_stalled"
64TODO_ASSOCIATE_FOLLOW_UP_OLD = "todo_associate_follow_up_old"
65TODO_ASSOCIATE_START_PENDING = "todo_associate_start_pending"
66TODO_ASSOCIATE_ALL_APPLICATIONS = "todo_associate_all_applications"
67# TODO_URGENT_FLAGS_ALL = "todo_urgent_flags_all"
68# TODO_URGENT_FLAGS_NEW_APPLICATIONS = "todo_urgent_flags_new_applications"
69# TODO_URGENT_FLAGS_UPDATE_REQUESTS = "todo_urgent_flags_update_requests"
70# TODO_URGENT_FLAGS_ONHOLD = "todo_urgent_flags_onhold"
71# TODO_REGULAR_FLAGS_ALL = "todo_regular_flags_all"
72# TODO_REGULAR_FLAGS_NEW_APPLICATIONS = "todo_regular_flags_new_applications"
73# TODO_REGULAR_FLAGS_UPDATE_REQUESTS = "todo_regular_flags_update_requests"
74# TODO_REGULAR_FLAGS_ONHOLD = "todo_regular_flags_onhold"
77EVENT_ACCOUNT_CREATED = "account:created"
78EVENT_ACCOUNT_PASSWORD_RESET = "account:password_reset"
79EVENT_APPLICATION_STATUS = "application:status"
80EVENT_APPLICATION_ASSED_ASSIGNED = "application:assed:assigned"
81EVENT_APPLICATION_CREATED = "application:created"
82EVENT_APPLICATION_UR_SUBMITTED = "application:ur_submitted"
83EVENT_APPLICATION_EDITOR_GROUP_ASSIGNED = "application:editor_group:assigned"
84EVENT_JOURNAL_ASSED_ASSIGNED = "journal:assed:assigned"
85EVENT_JOURNAL_EDITOR_GROUP_ASSIGNED = "journal:editor_group:assigned"
86EVENT_JOURNAL_DISCONTINUING_SOON = "journal:discontinuing_soon"
87EVENT_ARTICLE_SAVE = "article:save"
89NOTIFICATION_CLASSIFICATION_STATUS = "alert"
90NOTIFICATION_CLASSIFICATION_STATUS_CHANGE = "status_change"
91NOTIFICATION_CLASSIFICATION_ASSIGN = "assign"
92NOTIFICATION_CLASSIFICATION_CREATE = "create"
93NOTIFICATION_CLASSIFICATION_FINISHED = "finished"
95BACKGROUND_JOB_FINISHED = "bg:job_finished"
97PROCESS__QUICK_REJECT = "quick_reject"
99# Roles
100ROLE_ADMIN = "admin"
101ROLE_PUBLISHER = "publisher"
102ROLE_EDITOR = "editor"
103ROLE_ASSOCIATE_EDITOR = 'associate_editor'
104ROLE_PUBLIC_DATA_DUMP = "public_data_dump"
105ROLE_PUBLISHER_JOURNAL_CSV = "journal_csv"
106ROLE_PUBLISHER_PRESERVATION = "preservation"
107ROLE_API = "api"
108ROLE_PREMIUM = "premium"
109ROLE_PREMIUM_OAI = "premium_oai"
110ROLE_PREMIUM_PDD = "premium_pdd"
111ROLE_PREMIUM_CSV = "premium_csv"
113# TODO add ultra_bulk_delete and refactor view to use constants
114ROLE_ADMIN_REPORT_WITH_NOTES = "ultra_admin_reports_with_notes" # MUST start with ultra_ so that superusers don't gain
117CRON_NEVER = {"month": "2", "day": "31", "day_of_week": "*", "hour": "*", "minute": "*"}
119# ~~-> BackgroundTask:Monitoring~~
120# BackgroundJob.status
121BGJOB_STATUS_QUEUED = 'queued'
122BGJOB_STATUS_PROCESSING = 'processing'
123BGJOB_STATUS_ERROR = 'error'
124BGJOB_STATUS_COMPLETE = 'complete'
126# BackgroundJob.queue_id
127# ~~->BackgroundTasks:Feature~~
128BGJOB_QUEUE_ID_LONG = 'long_running'
129BGJOB_QUEUE_ID_MAIN = 'main_queue'
130BGJOB_QUEUE_ID_UNKNOWN = 'unknown'
131BGJOB_QUEUE_ID_EVENTS = "events"
132BGJOB_QUEUE_ID_SCHEDULED_SHORT = "scheduled_short"
133BGJOB_QUEUE_ID_SCHEDULED_LONG = "scheduled_long"
135# Background monitor status
136BG_STATUS_STABLE = 'stable'
137BG_STATUS_UNSTABLE = 'unstable'
139ERROR_RECORD_ARTICLE = "article"
140ERROR_RECORD_JOURNAL = "journal"
141ERROR_410_WITHDRAWN = "withdrawn"
142ERROR_410_TOMBSTONE = "tombstone"
145class ConstantList:
146 @classmethod
147 def all_constants(cls):
148 att_names = cls.__dict__
149 att_names = (i for i in att_names if not (i.startswith('__') and i.endswith('__')))
150 return (getattr(cls, n) for n in att_names)
153class FileUploadStatus(ConstantList):
154 Processed = 'processed'
155 Failed = 'failed'
156 Incoming = 'incoming'
157 Validated = 'validated'
160class BgjobOutcomeStatus(ConstantList):
161 Pending = 'pending'
162 Success = 'success'
163 Fail = 'fail'
166class BaseArticlesUploadStatus(ConstantList):
167 Processed = 'processed'
170# Storage scopes
171STORE__SCOPE__PUBLIC_DATA_DUMP = "public_data_dump"
172STORE__SCOPE__JOURNAL_CSV = "journal_csv"
174# OAI
175SUBJECTS_SCHEMA = "LCC:"
177# Extra params
178EXPARAM_EDITING_USER = 'editing_user'