Coverage for src / mesh / urls.py: 100%
15 statements
« prev ^ index » next coverage.py v7.13.1, created at 2026-08-11 09:47 +0000
« prev ^ index » next coverage.py v7.13.1, created at 2026-08-11 09:47 +0000
1from django.urls import include, path
3from mesh.views.views_editorial import (
4 AssignEditorAPIView,
5 AssignEditorView,
6 EditorialDecisionCreateView,
7 EditorialDecisionUpdateView,
8 SendToReviewView,
9)
10from mesh.views.views_file import (
11 EditorialDecisionFileView,
12 ReviewAdditionalFileView,
13 ReviewFileAccessAPIView,
14 VersionAdditionalFileView,
15 VersionMainFileView,
16)
17from mesh.views.views_home import HomeView
18from mesh.views.views_journal_section import JournalSectionEditView, JournalSectionListView
19from mesh.views.views_review import (
20 ReviewAcceptView,
21 ReviewAutoCreateView,
22 ReviewConfirmView,
23 ReviewCreateView,
24 ReviewDeclineView,
25 ReviewDetails,
26 ReviewFileAccessUpdate,
27 ReviewSubmitView,
28)
29from mesh.views.views_reviewer import (
30 ReviewerDeleteView,
31 ReviewerEditAPIView,
32 ReviewerListView,
33 SuggestionAPIView,
34 SuggestionView,
35)
36from mesh.views.views_role import RoleSwitchView
37from mesh.views.views_submission import (
38 SubmissionDetailsView,
39 SubmissionFiltersAPIView,
40 SubmissionInListAPIView,
41 SubmissionListView,
42 SubmissionLogView,
43 SubmissionNotesAPIView,
44 SubmissionTableAPIView,
45 SubmissionTableTestView,
46 SubmissionTooltipView,
47)
48from mesh.views.views_submission_edit import (
49 SubmissionAuthorView,
50 SubmissionConfirmView,
51 SubmissionCreateView,
52 SubmissionDeleteView,
53 SubmissionEditArticleMetadataView,
54 SubmissionEditArticleMetadataVuejsAPIView,
55 SubmissionInfoView,
56 SubmissionPreprintUpdateView,
57 SubmissionResumeView,
58 SubmissionVersionCreateView,
59 SubmissionVersionUpdateView,
60)
61from mesh.views.views_user import (
62 CloseImpersonateSessionView,
63 InitImpersonateSessionView,
64 TokenLoginView,
65)
67reviews_urlpatterns = [
68 path(
69 "",
70 ReviewDetails.as_view(),
71 name="review_details",
72 ),
73 path(
74 "accept/",
75 ReviewAcceptView.as_view(),
76 name="review_accept",
77 ),
78 path(
79 "decline/",
80 ReviewDeclineView.as_view(),
81 name="review_decline",
82 ),
83 path(
84 "update/",
85 ReviewSubmitView.as_view(),
86 name="review_update",
87 ),
88 path(
89 "confirm/",
90 ReviewConfirmView.as_view(),
91 name="review_confirm",
92 ),
93 path(
94 "files_access_update/",
95 ReviewFileAccessUpdate.as_view(),
96 name="review_file_access_update",
97 ),
98 path(
99 "files_access_update_api/<str:file_identifier>",
100 ReviewFileAccessAPIView.as_view(),
101 name="review_file_access_update_api",
102 ),
103 path(
104 "file/<str:file_identifier>",
105 ReviewAdditionalFileView.as_view(),
106 name="serve_review_file",
107 ),
108]
110versions_urlpatterns = [
111 path(
112 "",
113 SubmissionVersionUpdateView.as_view(),
114 name="submission_version_update",
115 ),
116 path(
117 "review/new/",
118 ReviewCreateView.as_view(),
119 name="review_create",
120 ),
121 path(
122 "review_auto/new/",
123 ReviewAutoCreateView.as_view(),
124 name="review_auto_create",
125 ),
126 path(
127 "decision/update/",
128 EditorialDecisionUpdateView.as_view(),
129 name="editorial_decision_update",
130 ),
131 path(
132 "review/<int:review_pk>/",
133 include(reviews_urlpatterns),
134 ),
135 path(
136 "file/<str:file_identifier>",
137 VersionMainFileView.as_view(),
138 name="serve_submission_version_main_file",
139 ),
140 path(
141 "additional_file/<str:file_identifier>",
142 VersionAdditionalFileView.as_view(),
143 name="serve_submission_version_additional_file",
144 ),
145 path(
146 "decision/file/<str:file_identifier>",
147 EditorialDecisionFileView.as_view(),
148 name="serve_decision_file",
149 ),
150]
153submissions_urlpatterns = [
154 path(
155 "",
156 SubmissionDetailsView.as_view(),
157 name="submission_details",
158 ),
159 path(
160 "update/",
161 SubmissionEditArticleMetadataView.as_view(),
162 name="submission_edit_article_metadata",
163 ),
164 path(
165 "update_preprint/",
166 SubmissionPreprintUpdateView.as_view(),
167 name="submission_update_preprint",
168 ),
169 path(
170 "update_info/",
171 SubmissionInfoView.as_view(),
172 name="submission_info_update",
173 ),
174 path(
175 "resume/",
176 SubmissionResumeView.as_view(),
177 name="submission_resume",
178 ),
179 path(
180 "delete/",
181 SubmissionDeleteView.as_view(),
182 name="submission_delete",
183 ),
184 path(
185 "submit/confirm/",
186 SubmissionConfirmView.as_view(),
187 name="submission_confirm",
188 ),
189 path(
190 "authors/",
191 SubmissionAuthorView.as_view(),
192 name="submission_authors",
193 ),
194 path("log/", SubmissionLogView.as_view(), name="submission_log"),
195 path(
196 "editors/",
197 AssignEditorView.as_view(),
198 name="submission_editors",
199 ),
200 path(
201 "fetch/<path:row_id>/",
202 SubmissionInListAPIView.as_view(),
203 name="api_fetch_submission",
204 ),
205 path(
206 "assign-editor-async/",
207 AssignEditorAPIView.as_view(),
208 name="async_assign_editor",
209 ),
210 path(
211 "api-submission-notes/",
212 SubmissionNotesAPIView.as_view(),
213 name="async_submission_notes",
214 ),
215 # Editorial
216 path(
217 "to-review/",
218 SendToReviewView.as_view(),
219 name="submission_start_review_process",
220 ),
221 path(
222 "decision",
223 EditorialDecisionCreateView.as_view(),
224 name="editorial_decision_create",
225 ),
226 path(
227 "reviewer_shortlist",
228 SuggestionView.as_view(),
229 name="submission_shortlist",
230 ),
231 path(
232 "add_reviewer_to_shortlist/<int:user_pk>/<str:user_type>",
233 SuggestionAPIView.as_view(),
234 {"action": "add"},
235 name="submission_add_reviewer_to_shortlist",
236 ),
237 path(
238 "remove_reviewer_from_shortlist/<int:user_pk>/<str:user_type>",
239 SuggestionAPIView.as_view(),
240 {"action": "remove"},
241 name="submission_remove_reviewer_from_shortlist",
242 ),
243 # Versions
244 path(
245 "version/new/",
246 SubmissionVersionCreateView.as_view(),
247 name="submission_version_create",
248 ),
249 path(
250 "versions/<int:version_pk>/",
251 include(versions_urlpatterns),
252 ),
253 path("login-token/", TokenLoginView.as_view(), name="token_login"),
254]
256urlpatterns = [
257 path("", HomeView.as_view(), name="home"),
258 # Submission views
259 path("submissions/", SubmissionListView.as_view(), name="submission_list"),
260 path(
261 "submissions/list/",
262 SubmissionListView.as_view(),
263 {"tab": "all"},
264 name="submission_list_all",
265 ),
266 path(
267 "submissions/state/",
268 SubmissionListView.as_view(),
269 {"tab": "state"},
270 name="submission_list_state",
271 ),
272 path(
273 "submissions/filters/",
274 SubmissionFiltersAPIView.as_view(),
275 name="submission_filters_api",
276 ),
277 path(
278 "submissions/api/",
279 SubmissionTableAPIView.as_view(),
280 name="submission_table_api",
281 ),
282 path(
283 "tooltip/<int:submission_pk>",
284 SubmissionTooltipView.as_view(),
285 name="submission_tooltip",
286 ),
287 path(
288 "submissions/test-ssr/",
289 SubmissionTableTestView.as_view(),
290 name="submission_table_test",
291 ),
292 path("submissions/new/", SubmissionCreateView.as_view(), name="submission_create"),
293 path(
294 "submissions/<int:submission_pk>/",
295 include(submissions_urlpatterns),
296 ),
297 path(
298 "submissions/ojs_id/<int:ojsid>/",
299 SubmissionDetailsView.as_view(),
300 name="submission_details_ojsid",
301 ),
302 path(
303 "api-article-edit/<int:submission_pk>/",
304 SubmissionEditArticleMetadataVuejsAPIView.as_view(),
305 name="submission_update_vuejs",
306 ),
307 # path(
308 # "api-article-edit/new",
309 # SubmissionCreateVuejsAPIView.as_view(),
310 # name="submission_create_vuejs",
311 # ),
312 # Role & user views
313 path("role_switch/", RoleSwitchView.as_view(), name="role_switch"),
314 path("impersonate/", InitImpersonateSessionView.as_view(), name="impersonate_init"),
315 path(
316 "impersonate/close/",
317 CloseImpersonateSessionView.as_view(),
318 name="impersonate_close",
319 ),
320 # Submission journal_sections
321 path(
322 "journal_sections/",
323 JournalSectionListView.as_view(),
324 name="journal_section_list",
325 ),
326 path(
327 "journal_sections/<int:pk>/update/",
328 JournalSectionEditView.as_view(),
329 name="submission_journal_section_update",
330 ),
331 # Reviewer views
332 path("reviewers/", ReviewerListView.as_view(), name="reviewer_list"),
333 path(
334 "reviewer/<int:pk>/delete/",
335 ReviewerDeleteView.as_view(),
336 name="reviewer_delete",
337 ),
338 path(
339 "reviewer/<int:pk>/<int:row_number>/async_edit/<str:user_type>",
340 ReviewerEditAPIView.as_view(),
341 name="async_reviewer_edit",
342 ),
343]