-
Couldn't load subscription status.
- Fork 174
Ground Control Configuration Panel
Ground Control configuration is a user-friendly panel that allows the teaching admin easily manage their contests/assessments. Administrators can use the panel to toggle token counters, export contest leaderboards, assign entries for voting and customise assessments team sizes. Future developers working on assessments will benefit from a readily available panel for assessment-related controls and features.
Rationale: Enable administrators to enable token counters which are displayed upon running code. This allows students to easily check their token counts during contests without having to wrap their submissions in the count_tokens function.
Pull Requests
Changelog
- Added
hasTokenCountertoAssessmentConfigurationtype in frontend - Added
hasTokenCountertoassessment_configin backend - Added
hasTokenCounter,tokenCount, andcustomNotificationto workspace properties - Added new
ENABLE_TOKEN_COUNTERandDISABLE_TOKEN_COUNTERaction in WorkspaceSaga - Imported Acorn package to count tokens in the frontend
- Added Repl output type named
NOTIFICATION_OUTPUTwith bright style to differentiate it from normal output - Added boolean cell in assessment configuration panel to toggle token counter
Outstanding issues
-
customNotificationcan be used to createNOTIFICATION_OUTPUTwith custom strings, but is currently unused.
Rationale: Enable students to view both score and popular vote leaderboards.
Pull Requests
- FE: Rename to Score Leaderboard, Popular Vote Leaderboard
- BE: Rename to Score Leaderboard, Popular Vote Leaderboard
Changelog
- Added
popularVoteLeaderboardattribute toIContestVotingQuestiontype in frontend - Added new tab for leaderboard, which conditionally renders data depending on
SideContentType - Added
popular_score fieldto answers in backend - Added methods which mirrors calculation for
relative_scoretopopular_score - Added
popularVoteLeaderboardoutput for voting questions in backend
Rationale: Create a compact interface for assessment/contest management on an individual basis instead of on an assessment type basis for more flexibility.
Pull Requests
Changelog
- Added
ConfigureCellwithDialogBoxand switches for controlling token counter, voting features, and team assessments - Added Gear icon button in Ground Control to access configuration panel
- Added
handleConfigureAssessmentaction to update assessment properties - Added
Has Voting Featuresboolean cell to assessment configurations - Added
hasTokenCounterandhasVotingFeaturesto assessments in backend
Notes
- Changing assessment configurations in the admin panel will add relevant attributes to an assessment once they are created by default. However, any changes made in the ground control configure panel will override them.
Rationale: Allow admin to control when the entries are allocated to students and become voteable. This replaces a previous feature where entries for voting were published based on a 24 hour cycle in the backend, which was not configurable by admin.
Pull Requests
Changelog
- Added
AssignEntriesButtonwith confirmation warnings on click - Added isVotingPublished field in assessment overview type
- Added
configureControlsSCSS module for style - Added new function
reassign_votingto delete and reassign voting - Added new call to
reassign_votingin assessment_controller - Added new function
is_voting_assignedto check if voting is assigned for any of the questions in the assessment
Notes
- Reassigning entries after they have already been assigned will cause all existing votes to be deleted. This is to ensure all entries have an equal chance of being voted on.
Outstanding issues
- The assignment is done based on the condition that the entry has a
returnstatement. This condition should be changed to also filter low quality submissions (possibly through checking token count or other forms of moderation).
Rationale: Allow admin to easily get leaderboards from contests instead of having to manually create SQL query.
Pull Requests
Changelog
- Added
GET /courses/{courseId}/admin/assessments/{assessmentId}/scoreLeaderboardendpoint for fetching score leaderboard - Added
GET /courses/{courseId}/admin/assessments/{assessmentId}/popularVoteLeaderboardendpoint for fetching popular vote leaderboard - Added
getScoreLeaderboardandgetPopularVoteLeaderboardfunctions inRequests.sagato fetch leaderboards - Added
ExportScoreLeaderboardButtonandExportPopularVoteLeaderboardButtoncomponents to Ground Control config panel - Added
get_score_leaderboardandget_popular_leaderboardinadmin_assessments_controllerto handle the new endpoints - Added new render for
leaderboard.jsonandcontestEntries.jsonto handle the new output for Leaderboard - Added to calls to functions
fetch_top_popular_score_answer,build_popular_leaderboard_entry,fetch_top_relative_score_answers,build_contest_leaderboard_entryandfetch_associated_contest_question_idto build the relevant leaderboard