Skip to content

Comments

Replace the student grades page.#2917

Draft
somiaj wants to merge 1 commit intoopenwebwork:developfrom
somiaj:new-grades-page
Draft

Replace the student grades page.#2917
somiaj wants to merge 1 commit intoopenwebwork:developfrom
somiaj:new-grades-page

Conversation

@somiaj
Copy link
Contributor

@somiaj somiaj commented Feb 25, 2026

This replaces the Grades page for students with a new layout designed for students. The old grades table is still available to instructors under "Student Progress". Being a grade page for students, instructors see the same info a student would (no hidden sets or grades are shown for instructors acting as a student). The only difference for an instructor is the student navigation menu is shown to switch which student to act as.

The assignments are split into categories. Open assignments, reduced scoring assignments (if reduced scoring is enabled), recently closed assignments (if achievement items are enabled and these are assignments closed less than two days ago in which an extension item could be used on), and closed assignments.

Currently assignments are all ordered alphabetically in each category (this could be changed by sorting the list, but has not been done at this time).

The total grade, if configured to be shown, is shown at the top of the page for all sets that are past the open date.

All open, reduced scoring, and recently closed assignments have their grade marked as either complete, the grade can no longer be improved due to no more attempts left or the student has answered all the questions correctly, or incomplete. This is so students can identify which assignments they can improve the grade or use an achievement item on to improve the grade if recently closed. Currently tests do not show this information (this could be added).

Each assignment is a list item which shows the total score (for tests it shows the best test version score if the student can see the score). Then for assignments it shows a table which includes the total score and status for each problem in the set. For just in time, only top level problems are shown. For tests, each test version is shown, and then each test version has a table showing the score and status of each problem.

This is only the initial work to create a new grades page, there is still work to do in terms of formatting of the page, what is shown, ordering of the page, and anything else that comes up during review of the new page.

TODO: There is a bit that needs to be done. I think I need to sort the items better. I should probably just sort by due date, though I personally find that closed assignments are sometimes confusing for me to find with that sorting, but that will be helpful for other categories. I also want to move all the code for the old grades table out of the Grades.pm module, but am waiting for #2913 to be merged for that to avoid conflicts. I'm sure there is a lot more to do, that is all that comes to my mind right now.

@Alex-Jordan this is in response to #2912 and will show the actual problem ID in the table for each assignment, but not for tests. Please let me know if there are any other features you would think would be useful for students on this page.

@drgrice1 I think there is a lot of tweaking of the CSS/layout. If you find it easier, please just submit a PR to my branch with all your suggested changes to code, layout, or even other suggestions you have. I also am sure the test problem order needs to be fix to for random order, I have not done that yet. If you could help with that, that would be appreciated.

@Alex-Jordan
Copy link
Contributor

Thanks @somiaj.

Please let me know if there are any other features you would think would be useful for students on this page.

For me with #2912, this started because I wanted a quick way to be on the Grades page and jump directly to a particular exercise. So can you make it so that from each cell in a table for an assignment, there is a link to that problem?

Based on what I read here, are you no longer reporting the number of attempts used on a problem? (Or the number of incorrect attempts, as it were?) I find that helpful for a student to see in one place where they struggled, even if they eventually have all answers correct.

@somiaj
Copy link
Contributor Author

somiaj commented Feb 25, 2026

@Alex-Jordan Thanks for the suggestions, I too thought about adding a link directly to the problem attached to the problem number, then forgot I wanted to do that. I can make each problem number a link, though I'm a bit worried about accessibility here. Having multiple links called "1" that go to different locations isn't something that is considered accessible I thought.

You are correct, I'm not currently showing attempts on this page as I couldn't think of a use case for that information for students. Your use case sounds reasonable though it would add another row to the problem table for each set will end up taking more space. Also should this only be done on assignments, what about tests? I know tests are used in different ways, but to me it won't be as useful there. My experience is students (unless prompted to do so) probably won't be concerned about how many attempts they take, also with scaffold and multi part problems that info seems to not be as useful. I'm just brain storming the benefit of adding another row vs the overall use of it. Maybe let me know what you think about the layout of adding such a row once you get a look at this. Would me adding some screenshots of the current layout help?

@Alex-Jordan
Copy link
Contributor

Sure, maybe some screenshots will help discussion.

I think there must be an accessible way to have the link look like "1" but still convey the information that it goes to "set X problem 1". Not off the top of my head, but I'll look into that.

@somiaj
Copy link
Contributor Author

somiaj commented Feb 25, 2026

Here is an example of what it currently looks like. For tests, if there were more versions, they would all be listed under the test below the version that is shown.

image

@Alex-Jordan
Copy link
Contributor

Alex-Jordan commented Feb 25, 2026 via email

@somiaj
Copy link
Contributor Author

somiaj commented Feb 25, 2026

@Alex-Jordan correct, for assignments, I show the problem_id, but for tests I show the problem count.

@Alex-Jordan
Copy link
Contributor

Alex-Jordan commented Feb 25, 2026 via email

@somiaj
Copy link
Contributor Author

somiaj commented Feb 25, 2026

Here, I deleted some problems from one of my sets to show it in action.

image

@somiaj
Copy link
Contributor Author

somiaj commented Feb 25, 2026

A good sort could be useful, though I was partly modeling this off the assignments page where I find grouping by category helps (at least me). I do want to sort by something other than alphabetically, I just haven't gotten around to that yet, and figured some discussion about this is good.

My hope is the grouping helps students quickly identify where they should be working. Though for a class in which everything is open, ordering those by date is a change that will be made.

@somiaj
Copy link
Contributor Author

somiaj commented Feb 25, 2026

Really I just wanted to think about the sorting a bit more. Should this be configurable? Having to deal with reduced dates, and non reduced scoring assignments due dates, also what about secondary, etc. sorting for things all due at the same time. Just not something I wanted to work out with my initial layout attempt.

@somiaj
Copy link
Contributor Author

somiaj commented Feb 25, 2026

For assignments (not tests), the problem ID is now a direct link to the problem. @Alex-Jordan let me know if you find a way to make this more accessible.

@somiaj somiaj marked this pull request as draft February 25, 2026 04:33
@somiaj
Copy link
Contributor Author

somiaj commented Feb 25, 2026

Seems adding an aria-label should do it. I added the label $setName problem $problemID.

I also just found an issue with adding links directly to the problem. If for any reason the set is not accessible to a student, such as LTI restrictions or other restrictions that would prevent the student from accessing the problems, the student gets an error when trying to access the problem via the direct link. This means that care needs to be taken in determining if a link should be shown or not to the individual problems. This isn't an issue for the set anymore.

So saving a student one click to go directly to the problem is going to add a layer of complication.

@somiaj
Copy link
Contributor Author

somiaj commented Feb 25, 2026

Okay, I now test for lti, conditional release, and ip restrictions, and only create a link to problems in which the set has none of those restrictions.

This replaces the Grades page for students with a new layout
designed for students. The old grades table is still available
to instructors under "Student Progress". Being a grade page
for students, instructors see the same info a student would
(no hidden sets or grades are shown for instructors acting as
a student). The only difference for an instructor is the student
navigation menu is shown to switch which student to act as.

The assignments are split into categories. Open assignments,
reduced scoring assignments (if reduced scoring is enabled),
recently closed assignments (if achievement items are enabled
and these are assignments closed less than two days ago in
which an extension item could be used on), and closed assignments.

Currently assignments are all ordered alphabetically in each
category (this could be changed by sorting the list, but has
not been done at this time).

The total grade, if configured to be shown, is shown at the
top of the page for all sets that are past the open date.

All open, reduced scoring, and recently closed assignments
have their grade marked as either complete, the grade can
no longer be improved due to no more attempts left or the
student has answered all the questions correctly, or incomplete.
This is so students can identify which assignments they can
improve the grade or use an achievement item on to improve
the grade if recently closed. Currently tests do not show
this information (this could be added).

Each assignment is a list item which shows the total score
(for tests it shows the best test version score if the student
can see the score). Then for assignments it shows a table
which includes the total score and status for each problem
in the set. For just in time, only top level problems are
shown. For tests, each test version is shown, and then each
test version has a table showing the score and status of
each problem.

This is only the initial work to create a new grades page,
there is still work to do in terms of formatting of the
page, what is shown, ordering of the page, and anything else
that comes up during review of the new page.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants