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