Coverage for portality / constants.py: 100%

113 statements  

« prev     ^ index     » next       coverage.py v7.13.5, created at 2026-05-05 00:09 +0100

1# ~~Constants:Config~~ 

2 

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" 

14 

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] 

27 

28APPLICATION_TYPE_UPDATE_REQUEST = "update_request" 

29APPLICATION_TYPE_NEW_APPLICATION = "new_application" 

30 

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)" 

35 

36PROVENANCE_STATUS_REJECTED = "status:rejected" 

37PROVENANCE_STATUS_ACCEPTED = "status:accepted" 

38 

39LOCK_APPLICATION = "suggestion" 

40LOCK_JOURNAL = "journal" 

41 

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" 

47 

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" 

75 

76 

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" 

88 

89NOTIFICATION_CLASSIFICATION_STATUS = "alert" 

90NOTIFICATION_CLASSIFICATION_STATUS_CHANGE = "status_change" 

91NOTIFICATION_CLASSIFICATION_ASSIGN = "assign" 

92NOTIFICATION_CLASSIFICATION_CREATE = "create" 

93NOTIFICATION_CLASSIFICATION_FINISHED = "finished" 

94 

95BACKGROUND_JOB_FINISHED = "bg:job_finished" 

96 

97PROCESS__QUICK_REJECT = "quick_reject" 

98 

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" 

112 

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 

115 

116 

117CRON_NEVER = {"month": "2", "day": "31", "day_of_week": "*", "hour": "*", "minute": "*"} 

118 

119# ~~-> BackgroundTask:Monitoring~~ 

120# BackgroundJob.status 

121BGJOB_STATUS_QUEUED = 'queued' 

122BGJOB_STATUS_PROCESSING = 'processing' 

123BGJOB_STATUS_ERROR = 'error' 

124BGJOB_STATUS_COMPLETE = 'complete' 

125 

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" 

134 

135# Background monitor status 

136BG_STATUS_STABLE = 'stable' 

137BG_STATUS_UNSTABLE = 'unstable' 

138 

139ERROR_RECORD_ARTICLE = "article" 

140ERROR_RECORD_JOURNAL = "journal" 

141ERROR_410_WITHDRAWN = "withdrawn" 

142ERROR_410_TOMBSTONE = "tombstone" 

143 

144 

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) 

151 

152 

153class FileUploadStatus(ConstantList): 

154 Processed = 'processed' 

155 Failed = 'failed' 

156 Incoming = 'incoming' 

157 Validated = 'validated' 

158 

159 

160class BgjobOutcomeStatus(ConstantList): 

161 Pending = 'pending' 

162 Success = 'success' 

163 Fail = 'fail' 

164 

165 

166class BaseArticlesUploadStatus(ConstantList): 

167 Processed = 'processed' 

168 

169 

170# Storage scopes 

171STORE__SCOPE__PUBLIC_DATA_DUMP = "public_data_dump" 

172STORE__SCOPE__JOURNAL_CSV = "journal_csv" 

173 

174# OAI 

175SUBJECTS_SCHEMA = "LCC:" 

176 

177# Extra params 

178EXPARAM_EDITING_USER = 'editing_user'