zesje issueshttps://gitlab.kwant-project.org/zesje/zesje/-/issues2022-06-03T14:30:54Zhttps://gitlab.kwant-project.org/zesje/zesje/-/issues/653Detach image from page2022-06-03T14:30:54ZAdriĆ LabayDetach image from pageSee #481 for reference.See #481 for reference.Image Processing Pipelinehttps://gitlab.kwant-project.org/zesje/zesje/-/issues/578Option to cancel processing a pdf2023-10-24T07:36:24ZStefan HugtenburgOption to cancel processing a pdfIf we notice that a pdf has issues (e.g. the scanner thought they are A3 size), we would like the option to cancel the processing of the scan so as to not waste time on it :)
E.g.:
![image](/uploads/943edb16b70273aff944ff307dcedd25/ima...If we notice that a pdf has issues (e.g. the scanner thought they are A3 size), we would like the option to cancel the processing of the scan so as to not waste time on it :)
E.g.:
![image](/uploads/943edb16b70273aff944ff307dcedd25/image.png)Image Processing Pipelinehttps://gitlab.kwant-project.org/zesje/zesje/-/issues/530Improve UI for multi-page solutions2022-03-30T14:24:25ZAnton AkhmerovImprove UI for multi-page solutionsI seem to remember that we discussed this library: https://www.npmjs.com/package/react-image
Related #140I seem to remember that we discussed this library: https://www.npmjs.com/package/react-image
Related #140Unstructured examshttps://gitlab.kwant-project.org/zesje/zesje/-/issues/513Improve handling of missing pages in unstructured exams2020-06-28T16:27:24ZAnton AkhmerovImprove handling of missing pages in unstructured examsRight now a copy id is shown, but doesn't allow to easily determine where the problem occurred (one needs to go to /students and check which student got that copy).Right now a copy id is shown, but doesn't allow to easily determine where the problem occurred (one needs to go to /students and check which student got that copy).Unstructured examshttps://gitlab.kwant-project.org/zesje/zesje/-/issues/512Update signature view for unstructured exams2020-06-18T13:10:27ZAnton AkhmerovUpdate signature view for unstructured examsThe following discussion from !297 should be addressed:
- [ ] @Hugo started a [discussion](https://gitlab.kwant-project.org/zesje/zesje/-/merge_requests/297#note_44395): (+6 comments)
> The student verification view should be adju...The following discussion from !297 should be addressed:
- [ ] @Hugo started a [discussion](https://gitlab.kwant-project.org/zesje/zesje/-/merge_requests/297#note_44395): (+6 comments)
> The student verification view should be adjusted for unstructured exams.Unstructured examshttps://gitlab.kwant-project.org/zesje/zesje/-/issues/510Return total students for each course2020-06-18T12:57:58ZShashank AnandReturn total students for each courseAs part of the get request to the courses endpoint, the total number of students per course should also be returned.As part of the get request to the courses endpoint, the total number of students per course should also be returned.Multitenancyhttps://gitlab.kwant-project.org/zesje/zesje/-/issues/498Write tests for the course resource, and modify existing tests to use course_id2020-06-16T06:19:50ZShashank AnandWrite tests for the course resource, and modify existing tests to use course_idMany existing tests will inevitable fail after all changes are performed. These failing tests should be fixed by modifying them to use course_id as well. Also new tests will have to be written for the course REST apiMany existing tests will inevitable fail after all changes are performed. These failing tests should be fixed by modifying them to use course_id as well. Also new tests will have to be written for the course REST apiMultitenancyhttps://gitlab.kwant-project.org/zesje/zesje/-/issues/497Modify existing frontend views to take course id as a prop, and send course i...2020-06-11T13:04:40ZShashank AnandModify existing frontend views to take course id as a prop, and send course id as part of all api requestsThe current solution would be to simply pass the course id as a prop to App.jsx. Instead of (current) App.jsx being rendered initially, the course page could be rendered, which upon selection of a course passes the course id as a prop to...The current solution would be to simply pass the course id as a prop to App.jsx. Instead of (current) App.jsx being rendered initially, the course page could be rendered, which upon selection of a course passes the course id as a prop to App.jsx and renders it.MultitenancyPradyuman DixitPradyuman Dixithttps://gitlab.kwant-project.org/zesje/zesje/-/issues/496Create a frotend view for courses2020-06-02T19:59:32ZShashank AnandCreate a frotend view for coursesA view that supports selecting, adding, removing, and modifying courses must be created. After selecting a course it should redirect to the (currently) homepage.A view that supports selecting, adding, removing, and modifying courses must be created. After selecting a course it should redirect to the (currently) homepage.MultitenancyAnant PingleAnant Pinglehttps://gitlab.kwant-project.org/zesje/zesje/-/issues/495Create a resource on the backend dealing with courses2020-06-16T06:19:49ZShashank AnandCreate a resource on the backend dealing with coursesA REST api should be added in the backend to ensure course addition/removal/modification can be performed.A REST api should be added in the backend to ensure course addition/removal/modification can be performed.Multitenancyhttps://gitlab.kwant-project.org/zesje/zesje/-/issues/494Modify the exam table to also include a column indicating the course it belon...2020-06-16T06:19:49ZShashank AnandModify the exam table to also include a column indicating the course it belongs toWith multiple courses, each exam will have to uniquely be identified by a course that it belongs to.With multiple courses, each exam will have to uniquely be identified by a course that it belongs to.MultitenancyShashank AnandShashank Anandhttps://gitlab.kwant-project.org/zesje/zesje/-/issues/493Discuss the exact course wide roles that are required2020-06-16T06:19:49ZShashank AnandDiscuss the exact course wide roles that are requiredThe exact roles that will be implemented initially (such as Admin, Instructor, Grader, etc) should be discussed and decided upon.The exact roles that will be implemented initially (such as Admin, Instructor, Grader, etc) should be discussed and decided upon.Multitenancyhttps://gitlab.kwant-project.org/zesje/zesje/-/issues/492Modify all endpoints to take course id as an additional parameter2020-06-16T06:19:49ZShashank AnandModify all endpoints to take course id as an additional parameterAll existing endpoints will have to be modified to take courseid as a parameter, and appropriately return only data corresponding to that courseAll existing endpoints will have to be modified to take courseid as a parameter, and appropriately return only data corresponding to that courseMultitenancyhttps://gitlab.kwant-project.org/zesje/zesje/-/issues/491Modify the students endpoint to only return students for a particular course2020-06-16T06:19:49ZShashank AnandModify the students endpoint to only return students for a particular courseCurrently, we return all students that are in the students table. This will have to be modified to only return students that are part of a course.Currently, we return all students that are in the students table. This will have to be modified to only return students that are part of a course.Multitenancyhttps://gitlab.kwant-project.org/zesje/zesje/-/issues/490Discuss the possibility of having both instance wide roles and exam specific ...2020-05-28T18:05:18ZShashank AnandDiscuss the possibility of having both instance wide roles and exam specific rolesIn the future, after instance wide roles are implemented, it may be necessary to introduce exam specific roles if the size of a course (especially graders involved) becomes large.In the future, after instance wide roles are implemented, it may be necessary to introduce exam specific roles if the size of a course (especially graders involved) becomes large.Multitenancyhttps://gitlab.kwant-project.org/zesje/zesje/-/issues/489Modify exam wide roles to course wide roles2020-06-16T06:19:49ZShashank AnandModify exam wide roles to course wide rolesCurrently permissions are provided on a per exam basis. This should be modified to provide permissions per course as once the course resource is introduced it would make more sense to initially start with course wide permissions.Currently permissions are provided on a per exam basis. This should be modified to provide permissions per course as once the course resource is introduced it would make more sense to initially start with course wide permissions.MultitenancyShashank AnandShashank Anandhttps://gitlab.kwant-project.org/zesje/zesje/-/issues/488Add a course id column to the students table and change its primary key to be...2020-06-16T06:19:49ZShashank AnandAdd a course id column to the students table and change its primary key to be (course_id, email)Multitenancyhttps://gitlab.kwant-project.org/zesje/zesje/-/issues/487Create a table for courses2020-06-16T06:19:49ZShashank AnandCreate a table for coursesCreate a table that represents courses, and store information corresponding to a courseCreate a table that represents courses, and store information corresponding to a courseMultitenancyShashank AnandShashank Anandhttps://gitlab.kwant-project.org/zesje/zesje/-/issues/481Split import and processing pipeline2022-06-03T14:31:32ZHugo KerstensSplit import and processing pipelineWhen a user uploads a file:
1. We save the file to the disk, create a `Scan` entry, and start the importing task.
2. In the importing task, we extract every image we can find in the file. We store this image information the `Image` table...When a user uploads a file:
1. We save the file to the disk, create a `Scan` entry, and start the importing task.
2. In the importing task, we extract every image we can find in the file. We store this image information the `Image` table, containing: `path`, `origin`, `status` and `scan_id`.
3. After the import task is finished, we start the processing task for the `scan_id`.
4. The processing task reads all `Image` entries from the database, and processes them according to `status`, creating `Page` entries in the process.
The `Image` table:
- `id`: primary key
- `path`: path to the image on disk
- `origin`: path to the image in the original scan file
- `status`: one of `normal`, `raw`, `failed`.
- `scan_id`: points to the scan
The `Page` table:
- Add `image_id`
- Remove `path`
We can deduce what to do with an `Image` the following way (related to #455):
- The status `normal`/`raw` without a `Page` entry means: waiting for processing with the normal/raw pipeline.
- The status `normal` with a `Page` entry means: processed successfully with the normal pipeline, immutable.
- The status `raw` with a `Page` entry means: processed successfully with the raw pipeline, we still allow assigning a different student, page and copy manually.
- The status `failed` without a `Page` entry indicates the user can either manually assign student, page and copy, or delete the image altogether.Image Processing Pipelinehttps://gitlab.kwant-project.org/zesje/zesje/-/issues/480document file naming scheme for raw upload2020-05-17T22:42:21ZAnton Akhmerovdocument file naming scheme for raw uploadThe following discussion from !295 should be addressed:
- [ ] @labay11 started a [discussion](https://gitlab.kwant-project.org/zesje/zesje/-/merge_requests/295#note_42651): (+1 comment)
> Adding some documentation on the allowed f...The following discussion from !295 should be addressed:
- [ ] @labay11 started a [discussion](https://gitlab.kwant-project.org/zesje/zesje/-/merge_requests/295#note_42651): (+1 comment)
> Adding some documentation on the allowed file names in the `Home.md` can also be useful.Unstructured exams