Coverage for src/mesh/urls.py: 100%
12 statements
« prev ^ index » next coverage.py v7.9.0, created at 2026-02-04 09:42 +0000
« prev ^ index » next coverage.py v7.9.0, created at 2026-02-04 09:42 +0000
1from django.urls import path, re_path
3from .views.views_editorial import (
4 AssignEditorAPIView,
5 AssignEditorView,
6 EditorialDecisionCreateView,
7 EditorialDecisionUpdateView,
8 SendToReviewView,
9)
10from .views.views_file import FileServingView
11from .views.views_home import HomeView
12from .views.views_journal_section import JournalSectionEditView, JournalSectionListView
13from .views.views_review import (
14 ReviewAcceptView,
15 ReviewAutoCreateView,
16 ReviewConfirmView,
17 ReviewCreateView,
18 ReviewDeclineView,
19 ReviewDetails,
20 ReviewFileAccessAPIView,
21 ReviewFileAccessUpdate,
22 ReviewSubmitView,
23)
24from .views.views_reviewer import (
25 ReviewerDeleteView,
26 ReviewerEditAPIView,
27 ReviewerListView,
28 SuggestionAPIView,
29 SuggestionView,
30)
31from .views.views_role import RoleSwitchView
32from .views.views_submission import (
33 AllSubmissionsListView,
34 DoneSubmissionListView,
35 SubmissionDetailsView,
36 SubmissionInListAPIView,
37 SubmissionListView,
38 SubmissionLogView,
39 SubmissionNotesAPIView,
40 SubmissionsByStateListView,
41)
42from .views.views_submission_edit import (
43 SubmissionAuthorView,
44 SubmissionConfirmView,
45 SubmissionCreateView,
46 SubmissionDeleteView,
47 SubmissionEditArticleMetadataView,
48 SubmissionEditArticleMetadataVuejsAPIView,
49 SubmissionInfoView,
50 SubmissionPreprintUpdateView,
51 SubmissionResumeView,
52 SubmissionVersionCreateView,
53 SubmissionVersionUpdateView,
54)
55from .views.views_user import (
56 CloseImpersonateSessionView,
57 InitImpersonateSessionView,
58 TokenLoginView,
59)
61urlpatterns = [
62 path("", HomeView.as_view(), name="home"),
63 # Submission views
64 path("submissions/", SubmissionListView.as_view(), name="submission_list"),
65 path(
66 "submissions/list/",
67 AllSubmissionsListView.as_view(),
68 name="submission_list_all",
69 ),
70 path(
71 "submissions/state/",
72 SubmissionsByStateListView.as_view(),
73 name="submission_list_state",
74 ),
75 path(
76 "submissions/done/",
77 DoneSubmissionListView.as_view(),
78 name="submission_list_done",
79 ),
80 path("submissions/new/", SubmissionCreateView.as_view(), name="submission_create"),
81 path(
82 "submissions/<int:pk>/update_preprint/",
83 SubmissionPreprintUpdateView.as_view(),
84 name="submission_update_preprint",
85 ),
86 path(
87 "submissions/update/<int:pk>/",
88 SubmissionEditArticleMetadataView.as_view(),
89 name="submission_edit_article_metadata",
90 ),
91 path(
92 "api-article-edit/<int:pk>/",
93 SubmissionEditArticleMetadataVuejsAPIView.as_view(),
94 name="submission_update_vuejs",
95 ),
96 # path(
97 # "api-article-edit/new",
98 # SubmissionCreateVuejsAPIView.as_view(),
99 # name="submission_create_vuejs",
100 # ),
101 path(
102 "submissions/<int:pk>/update_info/",
103 SubmissionInfoView.as_view(),
104 name="submission_info_update",
105 ),
106 path(
107 "submissions/<int:pk>/resume/",
108 SubmissionResumeView.as_view(),
109 name="submission_resume",
110 ),
111 path(
112 "submissions/<int:pk>/delete/",
113 SubmissionDeleteView.as_view(),
114 name="submission_delete",
115 ),
116 path(
117 "submission/<int:pk>/submit/confirm/",
118 SubmissionConfirmView.as_view(),
119 name="submission_confirm",
120 ),
121 path(
122 "submissions/<int:pk>/authors/",
123 SubmissionAuthorView.as_view(),
124 name="submission_authors",
125 ),
126 path(
127 "submissions/<int:pk>/",
128 SubmissionDetailsView.as_view(),
129 name="submission_details",
130 ),
131 path(
132 "submissions/<int:submission_pk>/version/new/",
133 SubmissionVersionCreateView.as_view(),
134 name="submission_version_create",
135 ),
136 path(
137 "versions/<int:pk>/",
138 SubmissionVersionUpdateView.as_view(),
139 name="submission_version_update",
140 ),
141 path("submissions/<int:pk>/log/", SubmissionLogView.as_view(), name="submission_log"),
142 path(
143 "submissions/<int:pk>/editors/",
144 AssignEditorView.as_view(),
145 name="submission_editors",
146 ),
147 path(
148 "submission/<int:pk>/fetch/<path:row_id>/",
149 SubmissionInListAPIView.as_view(),
150 name="api_fetch_submission",
151 ),
152 path(
153 "submission/<int:pk>/assign-editor-async/",
154 AssignEditorAPIView.as_view(),
155 name="async_assign_editor",
156 ),
157 path(
158 "submission/<int:pk>/api-submission-notes/",
159 SubmissionNotesAPIView.as_view(),
160 name="async_submission_notes",
161 ),
162 # Review views
163 path(
164 "versions/<int:version_pk>/review/new/",
165 ReviewCreateView.as_view(),
166 name="review_create",
167 ),
168 path(
169 "versions/<int:version_pk>/review_auto/new/",
170 ReviewAutoCreateView.as_view(),
171 name="review_auto_create",
172 ),
173 path("reviews/<int:pk>/", ReviewDetails.as_view(), name="review_details"),
174 path("reviews/<int:pk>/accept/", ReviewAcceptView.as_view(), name="review_accept"),
175 path("reviews/<int:pk>/decline/", ReviewDeclineView.as_view(), name="review_decline"),
176 path("reviews/<int:pk>/update/", ReviewSubmitView.as_view(), name="review_update"),
177 path("reviews/<int:pk>/confirm/", ReviewConfirmView.as_view(), name="review_confirm"),
178 path(
179 "reviews/<int:pk>/files_access_update/",
180 ReviewFileAccessUpdate.as_view(),
181 name="review_file_access_update",
182 ),
183 path(
184 "reviews/files_access_update_api/<int:pk>",
185 ReviewFileAccessAPIView.as_view(),
186 name="review_file_access_update_api",
187 ),
188 # Editorial views
189 path(
190 "submissions/<int:pk>/to-review/",
191 SendToReviewView.as_view(),
192 name="submission_start_review_process",
193 ),
194 path(
195 "submissions/<int:submission_pk>/decision/new/",
196 EditorialDecisionCreateView.as_view(),
197 name="editorial_decision_create",
198 ),
199 path(
200 "decisions/<int:pk>/update/",
201 EditorialDecisionUpdateView.as_view(),
202 name="editorial_decision_update",
203 ),
204 # Role & user views
205 path("role_switch/", RoleSwitchView.as_view(), name="role_switch"),
206 path("impersonate/", InitImpersonateSessionView.as_view(), name="impersonate_init"),
207 path(
208 "impersonate/close/",
209 CloseImpersonateSessionView.as_view(),
210 name="impersonate_close",
211 ),
212 path("login-token/", TokenLoginView.as_view(), name="token_login"),
213 # Submission journal_sections
214 path(
215 "journal_sections/",
216 JournalSectionListView.as_view(),
217 name="journal_section_list",
218 ),
219 path(
220 "journal_sections/<int:pk>/update/",
221 JournalSectionEditView.as_view(),
222 name="submission_journal_section_update",
223 ),
224 # File views
225 re_path(
226 r"^files/(?P<file_identifier>[A-z0-9-_=]+)$",
227 FileServingView.as_view(),
228 name="serve_protected_file",
229 ),
230 # Reviewer views
231 path("reviewers/", ReviewerListView.as_view(), name="reviewer_list"),
232 path(
233 "reviewer/<int:pk>/delete/",
234 ReviewerDeleteView.as_view(),
235 name="reviewer_delete",
236 ),
237 path(
238 "reviewer/<int:pk>/<int:row_number>/async_edit/<str:user_type>",
239 ReviewerEditAPIView.as_view(),
240 name="async_reviewer_edit",
241 ),
242 path(
243 "submission/<int:pk>/reviewer_shortlist",
244 SuggestionView.as_view(),
245 name="submission_shortlist",
246 ),
247 path(
248 "submission/<int:pk>/add_reviewer_to_shortlist/<int:user_pk>/<str:user_type>",
249 SuggestionAPIView.as_view(),
250 {"action": "add"},
251 name="submission_add_reviewer_to_shortlist",
252 ),
253 path(
254 "submission/<int:pk>/remove_reviewer_from_shortlist/<int:user_pk>/<str:user_type>",
255 SuggestionAPIView.as_view(),
256 {"action": "remove"},
257 name="submission_remove_reviewer_from_shortlist",
258 ),
259]