Skip to content

Refactor assignment customisation options and settings #262

@florian-jaeger

Description

@florian-jaeger

Is your feature request related to a problem? Please describe.
Currently, we have three representations of assignment customisation options, which contain different layers of configuration:

  • assignment settings + configuration assignment columns(deadline, autograding behaviour, etc.)
    • holds descriptive and pre/postprocess config
  • grader_config.py
    • used to configure conversion process
  • autogenerated assignment properties(not relevant for this request)
    • generated during conversion process and contains grades and code sources

We want to create a simple extensible settings configuration dashboard that allows us to configure all manually generated config through one interface.

Describe the solution you'd like
To do this, we have merge all customisation settings into the assignment settings column. This allows us, to freely add new config while not needing to upgrade the database each time. Furthermore, we need to add the configuration options of grader_config.py to the settings-view. Lastly, we should upgrade the settings view to create a JSON configuration editor, which allows easier configuration of these variables.

To summarize:

  • write a database migration that takes the columns duedate,allow_files,automatic_grading,max_submissions into settings
    • also change allow_files settings, as a list of globs/regex, if allow_files was true, then add ["*"], else []
    • change openapi schema
    • change all accesses to the assignment model to reflect the new settings column
  • add JSON settings editor to frontend
  • add grader_config.py config to settings and it them during conversion by writing the JSON similar to gradebook.json

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or requestlabextensionIssue related to grader-labextensionserviceIssue related to grader-service

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions