hotfix (dataset): implement reject to reviewer functionality for editors

- Added "rejected_to_reviewer" state to the `ServerStates` enum.
- Implemented routes and controller actions (`rejectToReviewer`, `rejectToReviewerUpdate`) for editors to reject datasets back to reviewers with a rejection note.
- Added UI elements (button) in the editor dataset index and publish views to trigger the "reject to reviewer" action.
- Updated the reviewer dataset index view to display datasets in the "rejected_to_reviewer" state and show the editor's rejection note.
- Modified the reviewer dataset review page to allow reviewers to view and accept datasets that have been rejected back to them by editors.
- Updated the database migration to include the "rejected_to_reviewer" state in the `documents_server_state_check` constraint.
- Updated dependencies (pinia, redis).
This commit is contained in:
Kaimbacher 2025-05-02 14:35:58 +02:00
parent c245c8e97d
commit be6b38d0a3
15 changed files with 1647 additions and 404 deletions

View file

@ -392,7 +392,16 @@ router
.as('editor.file.download')
.where('id', router.matchers.number())
.use([middleware.auth(), middleware.can(['dataset-editor-update'])]);
router
.get('dataset/:id/rejectToReviewer', [EditorDatasetController, 'rejectToReviewer'])
.as('editor.dataset.rejectToReviewer')
.where('id', router.matchers.number())
.use([middleware.auth(), middleware.can(['dataset-editor-reject'])]);
router
.put('dataset/:id/rejectToReviewer', [EditorDatasetController, 'rejectToReviewerUpdate'])
.as('editor.dataset.rejectToReviewerUpdate')
.where('id', router.matchers.number())
.use([middleware.auth(), middleware.can(['dataset-editor-reject'])]);
router
.get('dataset/:id/publish', [EditorDatasetController, 'publish'])
.as('editor.dataset.publish')
@ -437,6 +446,11 @@ router
.as('reviewer.dataset.reviewUpdate')
.where('id', router.matchers.number())
.use([middleware.auth(), middleware.can(['dataset-review'])]);
router
.get('/file/download/:id', [ReviewerDatasetController, 'download'])
.as('reviewer.file.download')
.where('id', router.matchers.number())
.use([middleware.auth(), middleware.can(['dataset-review'])]);
router
.get('dataset/:id/reject', [ReviewerDatasetController, 'reject'])
.as('reviewer.dataset.reject')