zesje issueshttps://gitlab.kwant-project.org/zesje/zesje/-/issues2020-05-09T22:02:54Zhttps://gitlab.kwant-project.org/zesje/zesje/-/issues/473Option for ignoring MySQL state in example data script2020-05-09T22:02:54ZHugo KerstensOption for ignoring MySQL state in example data scriptThe current example data script checks if MySQL is running, initializes it, starts/stops it. For this it uses the development configuration of the MySQL database, making it incompatible with a production database.
We should add an optio...The current example data script checks if MySQL is running, initializes it, starts/stops it. For this it uses the development configuration of the MySQL database, making it incompatible with a production database.
We should add an option `--no-mysql` to run the script independently of the MySQL server configuration, but simply assuming it's running.https://gitlab.kwant-project.org/zesje/zesje/-/issues/471Determine a design for the permissions model2020-05-22T14:15:09ZShashank AnandDetermine a design for the permissions modelThere two possible ways of implementing the permissions model. One way would be to hardcode the permissions as predefined "Roles", and assign each User a Role for each exam that they're part of.
Another possible solution is to have indi...There two possible ways of implementing the permissions model. One way would be to hardcode the permissions as predefined "Roles", and assign each User a Role for each exam that they're part of.
Another possible solution is to have individual permissions for users per exam. An exam owner may give one grader permission to access the Students feature, and another grader permission to access all features.
Currently (from the meeting yesterday), the latter appears to be preferable.Role Based Authorizationhttps://gitlab.kwant-project.org/zesje/zesje/-/issues/470Catch celery workers dying2020-05-25T19:58:42ZAnton AkhmerovCatch celery workers dyingA user encountered a malformed PDF provided by third party software (a bunch of syntax errors and whatnot). This causes a segfault somewhere in our image processing pipeline. Since the celery worker just dies, the pdf status never gets w...A user encountered a malformed PDF provided by third party software (a bunch of syntax errors and whatnot). This causes a segfault somewhere in our image processing pipeline. Since the celery worker just dies, the pdf status never gets written into the database, and the processing looks like it got forever stuck.
We could try to use celery callbacks or similar functionality to detect whether it happens, and properly update the PDF status.https://gitlab.kwant-project.org/zesje/zesje/-/issues/469Export editable documents2020-05-11T18:32:56ZAnton AkhmerovExport editable documentsOne of the zesje users shared a neat idea:
> The way I made it is that I converted my original MS Word to legacy format, printed it as PDF, made Zesje from that PDF, and then the Zesje generated PDFs can be converted back to MS word for...One of the zesje users shared a neat idea:
> The way I made it is that I converted my original MS Word to legacy format, printed it as PDF, made Zesje from that PDF, and then the Zesje generated PDFs can be converted back to MS word format correctly, that the students can edit. When I tested this this word format, when saved as PDF it was perfectly recognized by Zesje, so it seemed like a good option for homework (for students who couldn't edit the PDFs directly).
While the procedure seems involved, I realize that we could easily provide students with unique editable exams by:
- Prefilling the student name and number (already exists in data generation script).
- Converting the PDF to images
- Making a word document file :nauseated_face: which has all those images as background of each page, to ensure that the original layout isn't impacted.
This would also make #430 a lot more useful (and is probably ~blocked by it).https://gitlab.kwant-project.org/zesje/zesje/-/issues/467Create element in exam page to allow adding graders and modify permission2020-05-22T14:15:09ZHimanshu PathakCreate element in exam page to allow adding graders and modify permissionCreate a list view in exam page where exam creator can add graders and manage their permissions by selecting checkboxes corresponding to the permission.
* [x] Add Panel to have option of adding graders
* [x] Add box to enter name of gr...Create a list view in exam page where exam creator can add graders and manage their permissions by selecting checkboxes corresponding to the permission.
* [x] Add Panel to have option of adding graders
* [x] Add box to enter name of grader to be added
* [x] Add button to add grader to the exam
* [x] Send request to backend with exam id and grader name
* [x] Add Panel to display list of graders for an exam
* [x] Add option to remove a grader from the list of graders
* [ ] Display and log error on front end if something goes wrongRole Based AuthorizationAnant PingleAnant Pinglehttps://gitlab.kwant-project.org/zesje/zesje/-/issues/466Only show tabs in menu bar that are permitted to the users role.2020-05-13T10:28:10ZHimanshu PathakOnly show tabs in menu bar that are permitted to the users role.Requires editing the app.jsx to only show tabs on the top menu bar. Eg. graders should only be able to access grade page not stats, email etc. unless given the permission to.Requires editing the app.jsx to only show tabs on the top menu bar. Eg. graders should only be able to access grade page not stats, email etc. unless given the permission to.Role Based AuthorizationPradyuman DixitPradyuman Dixithttps://gitlab.kwant-project.org/zesje/zesje/-/issues/465Add MySQL table to store user roles for each exam2020-05-22T14:15:09ZHimanshu PathakAdd MySQL table to store user roles for each examA table that stores each users permission for each exam. This table will be used by endpoints in the backend to check if a user has permission to do the action that they tried.A table that stores each users permission for each exam. This table will be used by endpoints in the backend to check if a user has permission to do the action that they tried.Role Based Authorizationhttps://gitlab.kwant-project.org/zesje/zesje/-/issues/464Create and modify endpoints to allow checking and modifying user permission2020-05-16T12:37:02ZHimanshu PathakCreate and modify endpoints to allow checking and modifying user permissionExisting endpoints need to make sure that the user which invoked the endpoint actually has permission to do so.
New methods have to be added which would check the database for the permission that a user has.Existing endpoints need to make sure that the user which invoked the endpoint actually has permission to do so.
New methods have to be added which would check the database for the permission that a user has.Role Based AuthorizationHimanshu PathakHimanshu Pathakhttps://gitlab.kwant-project.org/zesje/zesje/-/issues/462Ricoh printers -> Xerox printers2020-05-08T07:59:08ZStefan HugtenburgRicoh printers -> Xerox printersThe homepage of Zesje still shows the Ricoh printers, but we have Xerox printers at the university now :) Slightly different settings to scan with those :upside_down:The homepage of Zesje still shows the Ricoh printers, but we have Xerox printers at the university now :) Slightly different settings to scan with those :upside_down:https://gitlab.kwant-project.org/zesje/zesje/-/issues/461Export grader information in a more useful format2020-05-06T10:33:16ZAdriĆ LabayExport grader information in a more useful formatThe following discussion from !244 should be addressed:
- [ ] @labay11 started a [discussion](https://gitlab.kwant-project.org/zesje/zesje/-/merge_requests/244#note_41168): (+1 comment)
> Also, as @Hugo mentioned in a previous MR,...The following discussion from !244 should be addressed:
- [ ] @labay11 started a [discussion](https://gitlab.kwant-project.org/zesje/zesje/-/merge_requests/244#note_41168): (+1 comment)
> Also, as @Hugo mentioned in a previous MR, we can now hide the `Export grader stats` api from the user. Instead, we can add a column with the grader name (also column with timestamp?) in the `full_exam_data` export.https://gitlab.kwant-project.org/zesje/zesje/-/issues/455UI widget for classifying pages2020-07-01T07:26:14ZHugo KerstensUI widget for classifying pagesWe should also use this for simple image manipulation: flipping and rotating.
---
The following discussion from !264 should be addressed:
- [ ] @labay11 started a [discussion](https://gitlab.kwant-project.org/zesje/zesje/-/merge_reque...We should also use this for simple image manipulation: flipping and rotating.
---
The following discussion from !264 should be addressed:
- [ ] @labay11 started a [discussion](https://gitlab.kwant-project.org/zesje/zesje/-/merge_requests/264#note_41488):
> > A UI widget to classify pages (shows the page, allows to input number and studentUnstructured examshttps://gitlab.kwant-project.org/zesje/zesje/-/issues/446Follow-up from "WIP: redesign the overview page"2020-04-27T14:38:31ZAnton AkhmerovFollow-up from "WIP: redesign the overview page"The following discussion from !244 should be addressed:
- [ ] @anton-akhmerov started a [discussion](https://gitlab.kwant-project.org/zesje/zesje/-/merge_requests/244#note_40634): (+3 comments)
> Would be great if it was possible ...The following discussion from !244 should be addressed:
- [ ] @anton-akhmerov started a [discussion](https://gitlab.kwant-project.org/zesje/zesje/-/merge_requests/244#note_40634): (+3 comments)
> Would be great if it was possible to switch the highlighting of the other solutions by the same student to show always on hover, instead of on click.https://gitlab.kwant-project.org/zesje/zesje/-/issues/445Deal with pregrading for multiple copies2020-04-25T21:40:37ZHugo KerstensDeal with pregrading for multiple copiesCurrently, we do not support pregrading for submissions with multiple copies. We should deal with this.Currently, we do not support pregrading for submissions with multiple copies. We should deal with this.https://gitlab.kwant-project.org/zesje/zesje/-/issues/441binderize2020-04-25T12:54:56ZAnton AkhmerovbinderizeUsing a [jupyter server proxy](https://github.com/jupyterhub/jupyter-server-proxy) we could serve zesje from a subpath of a jupyter server. This would allow us to deploy ephemeral zesje instances via [binder](https://mybinder.readthedocs...Using a [jupyter server proxy](https://github.com/jupyterhub/jupyter-server-proxy) we could serve zesje from a subpath of a jupyter server. This would allow us to deploy ephemeral zesje instances via [binder](https://mybinder.readthedocs.io/en/latest/).
Right now ~blocked by #440, but once that is solved, it should be ~"effort: low".https://gitlab.kwant-project.org/zesje/zesje/-/issues/440Support running not from /2020-05-11T16:01:17ZAnton AkhmerovSupport running not from /In several places we'd benefit from being able to serve the app not from `/`. I can think of two applications.
- We could embed a zesje instance with a different website (e.g. zesje.tudelft.nl).
- We could launch zesje via binder (I'll ...In several places we'd benefit from being able to serve the app not from `/`. I can think of two applications.
- We could embed a zesje instance with a different website (e.g. zesje.tudelft.nl).
- We could launch zesje via binder (I'll open a separate issue for tracking that), which would be especially handy because it would allow to try different branches without installing, and would guarantee that the user data is ephemeral.
A quick googling suggests that flask supports modifying the base path, so does the react router.
I'm assigning ~"impact: medium" because it helps introduce users to the app, and ~"maintainability: medium" because easier trying out balances the increased complexity.https://gitlab.kwant-project.org/zesje/zesje/-/issues/438Autoapprove blank (default) results in blank entries getting points when 'bla...2022-04-21T16:10:42ZMatthijsdejongAutoapprove blank (default) results in blank entries getting points when 'blank' option is modifiedHi Zesje team,
When the auto-approve option is set to 'blank' in the exam screen, and subsequently the auto-generated 'blank' option is modified to contain points Zesje will automatically allocate points to blank entries. When grading, ...Hi Zesje team,
When the auto-approve option is set to 'blank' in the exam screen, and subsequently the auto-generated 'blank' option is modified to contain points Zesje will automatically allocate points to blank entries. When grading, if you select students by the 'next ungraded' hotkey, you will not see these and erroneously give points to students who left their questions blank. As an example: In the question below the 'blank' option was modified to 'all correct (4 points)', so the blank entry got four points. (It works fine when the 'blank' option is left unchanged)
![Grading_issue_3](/uploads/6ea6ecb878f903aa3a62552f33213ad9/Grading_issue_3.PNG)
![Grading_issue_2](/uploads/79f6034046153d9b0979c468a73343f7/Grading_issue_2.PNG)
I recognize that this is a user error, but it seems a rather easy error to make. Would it be possible to change the default setting for 'autoapprove' to 'nothing'? Or would it be possible to stop the auto-approving if there is no 'blank' option anymore?
Kind regards,
Matthijshttps://gitlab.kwant-project.org/zesje/zesje/-/issues/437Webpack production build never finishes on Windows (WSL)2020-04-11T12:04:47ZHugo KerstensWebpack production build never finishes on Windows (WSL)Using the latest master, the webpack production build (`yarn build`) hangs on `92% chunk asset optimization UglifyJSPlugin`.
I'm on Windows 10 using WSL Debian.Using the latest master, the webpack production build (`yarn build`) hangs on `92% chunk asset optimization UglifyJSPlugin`.
I'm on Windows 10 using WSL Debian.Hugo KerstensHugo Kerstenshttps://gitlab.kwant-project.org/zesje/zesje/-/issues/433Investigate hiding blank parts of a solution2020-04-04T14:10:21ZHugo KerstensInvestigate hiding blank parts of a solutionAnswer boxes can be big, so sometimes only a small portion is filled by the student. We could only show the parts of the answer where the student has actually written something. We should investigate whether this is a good idea in genera...Answer boxes can be big, so sometimes only a small portion is filled by the student. We could only show the parts of the answer where the student has actually written something. We should investigate whether this is a good idea in general, and how/when we can hide blank parts of a solution. Ideas include:
- Cropping a solution to only the student answer.
- Hiding blank solutions when a student handed in multiple copies.https://gitlab.kwant-project.org/zesje/zesje/-/issues/430Add option to email take-home exams2021-09-27T11:41:53ZAdriĆ LabayAdd option to email take-home examsThis is likely to be added next to the download pdf options in the email page. The idea is to show a panel similar to the one in the Email tab, we can allow the user to edit the subject and content of the email (possibly using a template...This is likely to be added next to the download pdf options in the email page. The idea is to show a panel similar to the one in the Email tab, we can allow the user to edit the subject and content of the email (possibly using a template) and choose between email everyone or someone in particular. Then, an email will be send with a single unique copy of the take-home exam pdf attached.
It might be important to add a confirmation box before or after the `Email` button is clicked, warning the teacher not to send an actual exam to the students.https://gitlab.kwant-project.org/zesje/zesje/-/issues/425Order of problems in feedback2020-03-16T18:17:35ZJakobOrder of problems in feedbackIt seems to me that the problems in the emails sent as feedback appear alphabetically. I would find it more logically if the order in the feedback was the same as the order in the test.
For example I have 15 multiple choice questions wh...It seems to me that the problems in the emails sent as feedback appear alphabetically. I would find it more logically if the order in the feedback was the same as the order in the test.
For example I have 15 multiple choice questions which I named MC1, MC2, ..., MC15. When I send the feedback it is order as MC1, MC10, MC11, ..., MC15, MC2, MC3, ..., MC9. Luckily the multiple choice questions MC come before the open questions OQ both in the test and in alphabetic order. (The "Extra space" at the end of the exam I have renamed "Supplementary space" in Zesje to make it come last in the feedback.)