uva-fnwi / gradetool Goto Github PK
View Code? Open in Web Editor NEWGrade calculation/submission tool for UvA
Grade calculation/submission tool for UvA
It takes a while for a large grade list and currently there's no feedback that something is happening.
This should be hidden for individual courses (or whenever the retake column is not available)
Grade list, calculation options
Add a third option in the 'recalculate grades' dropdown that only recalculates the grades for the students that have been selected and/or are visible on the screen.
FGw
When entering a NAP manually, 'EDITED' appears. When using the button, it does not. Always show edited?
Certain FNWI programmes have a requirement that a PDF version of the examination is uploaded before grade submission. This check is currently still present in Canvas layout, but there is no option to upload the PDF. Add that option in the submission dialog.
FGw wants all existing grades for the current academic year to be imported into the grade tool for the second semester, so that retakes can be submitted normally.
Grade list
In the case that you are not allowed to process grades (either for a student or at all), show in the mouseover the name(s) of the examiners who are allowed to do so.
See DEF1031, currently it opens in the same tab.
When loading a grade list, delete any unenrolled students from the list if they have no grades at all (or a NAP)
Grade list
If there are already grades in SIS that have somehow been submitted outside of the tool, retrieve them and show them in the tool.
Corrections should always be possible within six weeks of the original grades being submitted. To handle corrections after the six week term, we need:
And possibly:
If there are open grades for the final exam and the retake, show a popup/dropdown when clicking the 'select all' button to allow the user to choose which one they want to select.
DEF870
Canvas allows cross-listing of sections, essentially moving a section from one course ('source') to another ('target'). The grade tool currently ignores cross-listing entirely, showing the sections as they are in SIS. One example use case (from Psychology) is a 12 EC course that consists of 6 EC subcourses that can also be taken separately, which are all part of a single Canvas course.
While it doesn't seem possible to solve this entirely, the tool could (assuming Canvas allows this) detect the cross-listing and display links between the various courses. So the grade list for the target course might include a list of links to the source courses, allowing you to easily switch to the other courses for grade input.
Additionally, the grade calculation might allow the user to use the grades in the target course to calculate final grades in the source courses.
Add the fields "Title", "Assessor" and "Examination date" to the Canvas layout for individual courses (i.e. when Course.IsIndividual is set). The fields should appear when the grade row is expanded. Title is a free text field, assessor should be chosen from a list of people using a PersonPicker variant. Title and assessor are (for now?) not required to submit grades, the date is required and should be validated as follows:
There are currently no retakes for individual courses so the retake column can be hidden.
Admin interface
Create a settings page where a faculty can configure
In DEF1330 there's an error with a 'time schedule conflict'. I think that's another override that we need to enable?
In acceptance, the grade submission should be enabled for all courses. In production, it should be usable for all courses in FNWI, AUC, and we be able to easily turn it on for other faculties and/or individual courses.
We need to add an option for teachers to submit corrections to existing grades.
Some thoughts on the UX for corrections: say that you have submitted a final grade (partially), so that when you open the grading screen there is now a retake column. What you want to do is correct some or all of the submitted final grades, and the option to require a reason is enabled. A possible way this might work:
Planning
Live in semester 2.
In https://acc.datanose.nl/#course[95434]/canvasgrading I don't see the title/supervisor/exam date fields, but the course is set to individual. What's going on?
Currently GradeInputList.ExamDate
is not set for an individual grade list. This sort of makes sense since there is no longer a single exam date, but there are a number of processes which assume this is not null for a submitted grade list. For example, I just got this error when submitting list 81693:
System.InvalidOperationException: Nullable object must have a value.
at System.ThrowHelper.ThrowInvalidOperationException(ExceptionResource resource)
at System.Nullable`1.get_Value()
at UvA.DataNose.Data.GradeInputEntry.<>c__DisplayClass28_0.<get_IsVURelevant>b__0(Enrolment z)
at System.Linq.Enumerable.Any[TSource](IEnumerable`1 source, Func`2 predicate)
at UvA.DataNose.Data.GradeInputEntry.get_IsVURelevant()
at UvA.DataNose.Data.UvAData.<>c.<AddVisibility>b__32_0(GradeInputEntry e)
at System.Linq.Enumerable.Any[TSource](IEnumerable`1 source, Func`2 predicate)
at UvA.DataNose.Data.UvAData.AddVisibility(GradeInputList entity, Int32[] years)
at UvA.DataNose.Data.UvAData.OnSavingChanges()
at UvA.DataNose.Data.UvAData.SaveChanges()
at UvA.DataNose.Core.DataContainer.SaveData(Boolean notify, UvAData data, String filePath, Int32 lineNumber, Boolean noTracking)
Maybe the exam date should be set anyway (say to the last date?), and/or we need to check all places where this is used?
Certain browsers block cross-site cookies aggressively, preventing the tool from loading within Canvas.
This might not be easy to fix, but can we at least show a warning for the user that they might need to disable the tracking blocking.
Safari in particular does this by default with the 'cross-site tracking' option.
Grade lists for individual courses
Add an option to allow retakes for individual grades, with a second column as usual.
For grades that come from the VU (CourseYear.ExternalType == VU and/or SignedBy = VUCIJFERS), create classes with section EXVU
instead of EXCV
Add the Canvas styling to the person picker (red buttons/links, etc.)
For some reason, UvANose adds the CVPA attribute to the course where enrolment is done, rather than the Y-course. Hence when checking for the attribute we need to look there as well (I think it suffices to see if there is a child that has the attribute).
Change the permissions so that anyone who can view grades in Canvas can also view grades and calculation settings in the grading tool, in a read-only view. Keep editing permissions as they are now.
Newly created classes need to be saved to uvainfo.
Currently a second gradelist on the same class seems to try to create the class again.
Session start and end should also be checkable on new classes.
Add an option to send a configurable notification to teachers that is automatically sent a certain amount of days after the examination date. Per faculty we can configure:
Multiple notifications can be configured per faculty at different dates.
Notifications are sent out to all examiners as long as there is at least one pending grade for a course.
Maybe it's me, but the delete button for added students looks more like an icon to me. Maybe it already helps if it changes color on mouseover like most links?
DEF853
For now let's show an error "An invalid examination date has been set for this course. Please contact the education desk of your programme"/"Er is een ongeldige tentamendatum ingesteld voor dit vak. Neem contact op met de onderwijsadministratie van de opleiding"
(This should obviously only be shown in the case the exam date cannot be edited)
When importing grades for an individual course, you can import an EC column, even if the UI doesn't allow the EC to be changed.
Make a screen available to admin users that gives an overview of all grades that have been submitted, with the current status. This should mostly be able to re-use existing screens, but should take submission of partial lists into account.
To do:
If
DEF907
In https://acc.datanose.nl/#course[80425]/canvasgrading while logged in as admin, I am allowed to enter grades and supervisors, but not titles or exam dates.
When looking up the exam date on the T class, it should look for a T class for which the session matches the session of the Y-class (modulo S/T, so S11 should be matched to T11).
See DEF868, in this case the AJ T class should be used because the Y class is AJ.
Use SNS_OPR_DEF_TBL_CS
to set the CVEX
role for all FNWI examiners and use their ID when possible instead of DATANOSE.
If there is a non-standard EC value on the existing Y-enrolment for an individual course, this EC amount should be kept when registered the grade (so if a student is enrolled for a 6 EC course with a 12 EC enrollment, the grade should be registered with 12 EC).
When looking at the Dutch language version I see a few minor inconsistencies:
Make sure that when processing results to SIS, the exam date is correctly checked against the start/end dates of the session. Do not try to process grades that do not fall within the session.
See DEF881 and DEF1192.
When running an Excel import that adds additional students in e.g. https://acc.datanose.nl/#course[82364]/canvasgrading, the new students do not appear in the list until your refresh the page.
DEF905
Switching back to all students in e.g. https://datanose.nl/#course[88648]/canvasgrading is slow. Maybe add a loading spinner?
Retrieve data from the thesis workflow whenever the Canvas grading page is loaded: title, assessor (as person reference?) and submission date.
Getting the data from Canvas turned out to be fairly simple, but the supervisor doesn't seem to be there in any kind of consistent format, so we'll have to leave that out for now it seems.
When a grade has been rejected (e.g. #pendinggrade/list[96521,81740]), make sure that status is shown in the grade screen with a cross. Add a tooltip showing 'Grade has been rejected by administratie'/'Cijfers is afgewezen door onderwijsadministratie'
See DEF1329. Here students are enrolled for the main course with career 60. Why does it fail to process the grades? Does it pick the wrong career, or is there something wrong in SIS and is it impossible to process them? In the latter case, add a new career mismatch error type
Grade submission screen
Log all changes to unsubmitted grades in the grade screen, including when the calculation button is pressed. Log the change, date and user.
FGw (Joris)
Without the override class limit enabled the webservice will fail without error message for classes recently created by the connector.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.