Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Introduce Program Configuration (Set Live Phases / Banner Message) #358

Merged
merged 20 commits into from
Jun 28, 2024

Conversation

webecke
Copy link
Contributor

@webecke webecke commented May 4, 2024

This PR lays the ground work for editable configuration settings for the Autograder.

Changes

  • New Config Tab
    • this is the home for any editable settings we wish to have for the autograder
  • Phase enabling and disabling
    • Admins may now enable and disable student submissions wholesale, or on a phase by phase basis
  • Banner message
    • Admins may also set a Banner message, which will appear to all signed-in users at the top of the page
  • Configuration Structure
    • Using @pawlh's Config Table in the database, active phases and banner message are stored in
    • All users can retrieve config info from /api/config with a GET request
    • Changes to the config are done via /api/admin/config with various POST requests
    • Any config info that students shouldn't have access to, but admins might new, can be retrieved via /api/admin/config with a GET request
  • Queue Status tab has been relocated to the bottom of the submissions tab

Future work

Somethings that should be added, but I didn't have time. (I'm going out of town this next week)

  • Canvas Integration (Canvas course id and assignment Ids should be editable from here)
  • Penalty Percentages (Late and Git penalty should be editable from here)
  • Hide disabled phases from the student drop down
  • Any other magic number in the code should be moved to a config option backend: Store configurable values inside a course_settings table #156
  • Config info needs to be moved to a central location where all components can access it, like in a ConfigStore or something

I would be happy to tackle all of these, but if anyone wants to do it while I'm gone, feel free to. I'll be back in a week.

@webecke webecke added the enhancement New feature or request label May 4, 2024
@webecke webecke requested a review from 19mdavenport May 4, 2024 20:57
@webecke webecke self-assigned this May 4, 2024
@webecke webecke linked an issue May 4, 2024 that may be closed by this pull request
Copy link
Collaborator

@19mdavenport 19mdavenport left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Do you think there could be a way to display that a particular phase is disabled to the student and disable the submission button, rather than just relying on the backend to refuse them and send an alert?

@webecke
Copy link
Contributor Author

webecke commented May 7, 2024

Do you think there could be a way to display that a particular phase is disabled to the student and disable the submission button, rather than just relying on the backend to refuse them and send an alert?

Yes there is. That's why there's an endpoint for the student to get config info. I'll be implementing that when I get back

@webecke webecke linked an issue May 7, 2024 that may be closed by this pull request
@19mdavenport 19mdavenport merged commit 6518ccb into main Jun 28, 2024
2 checks passed
@19mdavenport 19mdavenport deleted the 324-program-config branch June 28, 2024 22:12
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request
Projects
None yet
Development

Successfully merging this pull request may close these issues.

frontend: add option to disable student submissions admin: add option to pause new submissions
2 participants