You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
* Bump chart to 0.5.0-a2
* Bump service to 0.5.0-a2
* Updated administrator docs with post auth hook
* feat: added extraEnv variable to chart
* Bump chart to 0.5.0-a3
* chart: fixed wrong extraEnv identation
* Bump chart to 0.5.0-a4
* feat: add envs to celery worker
* Bump chart to 0.5.0-a5
* fix: added grader-service-config to db-migration
* Bump chart to 0.5.0-a6
* Revert "Update file pattern in grading executors"
This reverts commit 86ab0f3.
* Revert "Changed default notebook matcher pattern to **/*.ipynb; Added recusrive flag for glob.glob to search in sub directories"
This reverts commit 5926837.
* Bump service to 0.5.0-a3
* Revert "Bump service to 0.5.0-a3"
This reverts commit 9c3cd75.
* Bump chart to 0.5.0-a7
* Bump service to 0.5.0-a3
* Bump chart to 0.5.0-a8
* Update alembic migrate with GraderService instance to get db_url instead of regex pattern
* Bump chart to 0.5.0-a9
* Bump service to 0.5.0-a4
* Fix alembic revision for oauth
* fix: added custom command for chart
* Bump chart to 0.5.0-a10
* Bump service to 0.5.0-a5
* refactor: cleaned migrate and env.py
* Fix name of column in user table for oauth migrate
Quote user table name for postgres select
* Bump chart to 0.5.0-a11
* Bump service to 0.5.0-a6
* Fix quotes for UPDATE user SQL statement in oauth revision
Fix command of db-migration init-container (removed /bin/sh)
* Bump chart to 0.5.0-a12
* Bump service to 0.5.0-a7
* Fix check if GraderService has been instantiated and config has been loaded for Worker
Add better logging for incorrect submission
Disable authentication redirect for base path in GraderService
* Bump chart to 0.5.0-a13
* Bump service to 0.5.0-a8
* Add health endpoint to unauthenticated list
* Bump chart to 0.5.0-a14
* Bump service to 0.5.0-a9
* Re-add service.set_config() so that RequestHandlerConfig() is set correctly
* Bump chart to 0.5.0-a15
* Bump service to 0.5.0-a10
* Fix base template for login views
* Bump chart to 0.5.0
* Bump service to 0.5.0
* feat: updated dev env
* fix: changed import of logouthandler to fix logout endpoint
* Bump chart to 0.5.1
* Bump service to 0.5.1
* feat: added logout and no auth error page to lti authenticator
* Bump chart to 0.5.2-a1
* Bump service to 0.5.2-a1
* Revert "Bump service to 0.5.2-a1"
This reverts commit 1d0f595.
* Bump service to 0.5.2-a1
* fix: stop throwing errors after request is finished
* Bump chart to 0.5.2-a2
* Bump service to 0.5.2-a2
* fix: remove the correct cookie in lti logout handler
* Bump chart to 0.5.2-a3
* Bump service to 0.5.2-a3
* fix: logout now correct cookie
* Bump chart to 0.5.2-a4
* Bump service to 0.5.2-a4
* Fix logout by implementing correct logout procedure in base_handler.py
* Fix filtering of APIToken for logout in base_handler.py
* Bump chart to 0.5.2-a5
* Bump service to 0.5.2-a5
* docs: change dev environment authenticator
* fix: hardcode expires token value
* Bump chart to 0.5.2-a6
* Bump service to 0.5.2-a6
* Added configurable cookie secret
* fix: removed db_url logging because it is a security vulnerability
* fix: Don't allow user to delete submission if feedback for that submission was generated, also don't allow deleting submission if deadline is over.
#53
* fix: changed lti task calling to delay
* Slightly fancier logout page
* Bump chart to 0.5.2-a7
* Bump service to 0.5.2-a7
* fix: updated sql queries to use feedback status
* Bump chart to 0.5.2-a8
* Bump service to 0.5.2-a8
* Revert "Bump service to 0.5.2-a8"
This reverts commit bc3e9fe.
* Bump service to 0.5.2-a8
* fix: added brackets
* Bump chart to 0.5.2-a9
* Bump service to 0.5.2-a9
* fix: added result collection to lti endpoint
* Bump chart to 0.5.2-a10
* Bump service to 0.5.2-a10
* Add TODOs to documentation
* chore: removed deprecated grader-convert package from examples
* Initial book documentation and converting rst files to md
* chore: sorted dependencies
* fix: get typing object from non deprecated import
* fix: updated utc time collection with non deprecated function
* Update requirements-docs.txt to work with new theme
* Added architecture overview image
* Added TODOs and copied missing documentation from release-0.5.0.
* Broke installation and administrator pages to smaller units, to get toggles in the left sidebar.
* Added TU Vienna icon link to the left sidebar, updated installation script in dev_environment, updated installation from source docs.
* Minimal config setup in dev environment
* Updated system_architecture.md
Deleted examples/lab
* refactor: updated traitlet configuration of lti plugin and the corresponding chart values
* Organize markdown files in directories.
* Updated student guide, removed old photos and updated them with relevant ones.
* Updated student and instructor guide.
TODO: Sections in instructor guide from "Customizing Assignment Creation with grader_config.py" have to be updated.
* feat: added file status enum
* chore: updated all packages and removed unused packages for version 0.6
* refactor: use / instead /services/grader as a default base url, also add /api to each api endpoint
* chore: update all api models
* refactor: updated session creation logic, also use timezone aware dates instead of deprecated function utcnow()
* chore: added clear and homogeneous error handling using reason params
* Updated instructor guide.
# TODO: add documentation for edit submission feature.
* Extend system architecture docs
Update grader_architecture.excalidraw.svg to include indication for helm chart components and excalidraw source
* Documented edit submission feature.
* fix: added /services/grader back in as base url prefix
* Updated about page + added documentation of pushing only selected files.
* Try to install example chart in ci
* Try to install example chart in ci
* Try to install example chart in ci now with rabbitmq
* Try to install example chart in ci now with waiting for ingress-nginx
* Check deployment status using kubectl rollout status
* Check deployment status using kubectl rollout status now with hub
* Also wait for rabbit mq pod to run
* Run curl
* Fixed curl
* Fixed curl 2
* Fixed curl 3
* Fixed curl 4
* Fixed curl 5
* Fixed curl 6
* Fixed curl 7
* Fixed curl 8
* fix: added check if assignment has no deadline
* feat: added bruno api test collection
* chore: removed old docker image
* test: added new api request tests and updated version handler
* fix: for delete submission feature there has been problem with date format when checking if deadline has passed because of date format changes, we can't compare offset-naive and offset-aware datetimes -> fixed that
* Fix: ensure assignment.automatic_grading is AutoGradingBehaviour Enum and not a string when creating assignment.
When first starting application and trying to create new assignment, grader service wasn't recognising assignment.automatic_grading enum type, but mistaking it for a string, which threw 500 error.
* fix: updated cookie path to always match base url without trailing slash
* fix: fixed bug where assignment could not be updated because of non functioning enum
* Bump chart to 0.6.0-a1
* Bump service to 0.6.0-a1
* test: updated tests to reflect new enum management
* Revert "Bump service to 0.6.0-a1"
This reverts commit 60517d6.
* Revert "Bump chart to 0.6.0-a1"
This reverts commit 6148703.
* Bump chart to 0.6.0-a1
* Bump service to 0.6.0-a1
* fix: remove useless health liveness container
* Bump chart to 0.6.0
* Bump service to 0.6.0
* fix: delete numpydoc import from docs config, it causes a problem in building the docs.
* chore: return list of lectures sorted by id
* Update get_started_instructor.md
* Fix submission delete state
* Remove connectivity check in chart CI test
* Bump chart to 0.6.1
* Bump service to 0.6.1
* feat: added async io loop check in kube grader
* Bump chart to 0.6.2
* Bump service to 0.6.2
* merge release 0.7.0
* chore: format autograder logs as timestamp/level-name/message, so they can be shown properly to the user
#249
* chore: remove false positive warnings about checksum from autograde logs.
#249
* chore: use log level info for signaling overwriting of cell's source.
#249
* Implement GET for all submissions lecture
* Update doc string of GET method
* import Assignments in submissions handler, add missing submissions bruno file
* 262 refactor assignment customisation options (#263)
* refactor: added configurationable values for grading poll intervals and max grading time
* Bump chart to 0.6.3
* Bump service to 0.6.3
* fix: updated rabbitmq timeout to increase max grading time
* Bump chart to 0.6.4
* ci: removed management ci actions
* feat: updated lti process by changing rest method and including new sync options
* chore: make function get_latest and get_best_submissions reusable for both student and instructor version
#250
* fix: updated oauth_login endpoints
* refactor: changed kube autograde pod name to enhance user experience
Refs: #253
* feat: added new customisation options to kube_grader and deprecated old ones.
KubeGrader has now multiple new options to customise autograding pods (labels, tolerations, image pull secrets). Furthermore, autograding pods can be dynamically adapted before startup using the `post_auth_hook` traitlet.
Refs: #259
* refactor: added new kube customisation options to chart and deprecated old settings
* WIP: updated assignment model and setup running build with some default replacements
* feat: added new configuration option 'allowed_files' which contains glob patterns used to whitelist additional submission files
* feat: added assignment settings functionality to kube grader
---------
Co-authored-by: Marijana Petojevic <[email protected]>
* ci: build and test grader service on pullrequest
* Bump chart to 0.7.0-a1
* Bump service to 0.7.0-a1
* fix: fixed spacing of config vars in helm chart
* Bump chart to 0.7.0-a2
* Bump chart to 0.7.0-a3
* fix: removed no new lines templating from chart
* Bump chart to 0.7.0-a4
* fix: added default json serialize function to handle datetime case
* Bump chart to 0.7.0-a5
* Bump service to 0.7.0-a2
* Bump chart to 0.7.0-a6
* refactor: moved assignment settings collection to a utils function
* Bump chart to 0.7.0-a7
* Bump service to 0.7.0-a3
* fix: set assignment settings env to valid json
* Bump chart to 0.7.0-a8
* Bump service to 0.7.0-a4
* fix: removed unpacking of params and use original values
* ci: upgrade to new upload-artifact action
* fix: updated model imports to fix tests
* fix: use pickle instead of json serial
* fix: moved to single serialize
* chore: updated types in celery task
* fix: wrong imports of submission
* refactor: added grader_config.py back in as a configuration file
* refactor: updated errorhandling for lti endpoint
* chore: added logger to configurable function
* Bump chart to 0.7.0-a9
* Bump service to 0.7.0-a5
* refactor: send submissions id instead of whole object to lti endpoint
* fix: make deadline timezone aware
* fix: removed redudant group by from query
* Bump chart to 0.7.0
* Bump service to 0.7.0
* ci: updated deprecated action
* fix: added configuration option for pre_spawn_hook
* Bump chart to 0.7.1
* Bump service to 0.7.1
* fix: removed redundant code passage
* Bump chart to 0.7.2
* Bump service to 0.7.2
* fix: updated commit logic of autograder to properly handle special chars in filenames (#266)
* Bump chart to 0.7.3
* Bump service to 0.7.3
Copy file name to clipboardExpand all lines: README.rst
+108-1Lines changed: 108 additions & 1 deletion
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -103,8 +103,13 @@ This repository contains all the necessary packages for a full installation of t
103
103
pip install grader-labextension
104
104
105
105
106
+
Development Environment
107
+
^^^^^^^^^^^^^^^^^^^^^^^^
108
+
109
+
Alternatively you can run the installation scripts in ``examples/dev_environment``.
110
+
Follow the documentation there. The directory also contains the config files for a local installation.
106
111
107
-
.. installation-end
112
+
.. installation-from-soruce-end
108
113
109
114
.. installation-from-soruce-start
110
115
@@ -141,3 +146,105 @@ Configuration
141
146
===============
142
147
Check out the ``examples/dev_environment`` directory which contains configuration details or the (Administrator Guide)[https://grader-service.readthedocs.io/en/latest/admin/administrator.html].
143
148
149
+
In order to use the grader service with an LMS like Moodle, the groups first have to be added to the JupyterHub so the grader service gets the necessary information from the hub.
150
+
151
+
For this purpose, the `LTI 1.3 Authenticator <https://github.com/TU-Wien-dataLAB/lti13oauthenticator>`_ can be used so that users from the LMS can be added to the JupyterHub.
152
+
153
+
To automatically add the groups for the grader service from the LTI authenticator, the following `post auth hook <https://jupyterhub.readthedocs.io/en/stable/api/auth.html#jupyterhub.auth.Authenticator.post_auth_hook>`_ can be used.
extra_grader_groups = [g for g in user_model.groups if g.name.startswith(f"{course_id}:") and g.name != group_name]
190
+
for g in extra_grader_groups:
191
+
log.info(f"Removing user from group: {g.name}")
192
+
g.users.remove(user_model)
193
+
db.commit()
194
+
195
+
if user_model notin group.users:
196
+
log.info(f"Adding user to group: {group.name}")
197
+
group.users.append(user_model)
198
+
db.commit()
199
+
200
+
return authentication
201
+
202
+
203
+
Make sure that the ``course_id`` does not contain any spaces or special characters!
204
+
205
+
Optional Configuration of JupyterLab >=3.4
206
+
==========================================
207
+
208
+
The grader labextension also uses the embedded cell toolbar of JupyterLab for further cell manipulation.
209
+
These optional features include:
210
+
211
+
* ``Run Cell``: This command simply run the current cell without advancing.
212
+
213
+
* ``Revert Cell``: In the conversion process new metadata is set to allow students to revert every answer cell to their original state.
214
+
215
+
* ``Show Hint``: Students can access a hint to a task if one is specified.
216
+
217
+
To access these commands buttons have to be added to the JupyterLab cell toolbar by editing the `overrides.json file <https://jupyterlab.readthedocs.io/en/stable/user/directories.html#overridesjson>`_.
218
+
We also recommend that all other built in cell toolbar buttons should be disabled in the config because they might enable unwanted cell manipulation by students.
219
+
220
+
A sample overrides.json file could look like this:
0 commit comments