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

1from django.urls import include, path 

2 

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) 

77 

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] 

120 

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] 

162 

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] 

296 

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]