Skip to content

Replace the student grades page.#2917

Open
somiaj wants to merge 1 commit intoopenwebwork:WeBWorK-2.21from
somiaj:new-grades-page
Open

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

Conversation

@somiaj
Copy link
Copy Markdown
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), and closed assignments. Assignments are ordered using the same byUrgency logic as on the ProblemSets page.

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.

Each assignment is a list item which shows the total score. For tests the best test version score is shown if the student can see the score. Then 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, only the best test version is shown.

The old Grades page code is moved into StudentProgress.pm where it is still used.

@Alex-Jordan
Copy link
Copy Markdown
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
Copy Markdown
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
Copy Markdown
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
Copy Markdown
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
Copy Markdown
Contributor

Alex-Jordan commented Feb 25, 2026 via email

@somiaj
Copy link
Copy Markdown
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
Copy Markdown
Contributor

Alex-Jordan commented Feb 25, 2026 via email

@somiaj
Copy link
Copy Markdown
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
Copy Markdown
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
Copy Markdown
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
Copy Markdown
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
Copy Markdown
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
Copy Markdown
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.

@somiaj somiaj force-pushed the new-grades-page branch 4 times, most recently from d4bf011 to 2fe4de9 Compare March 11, 2026 02:15
@somiaj somiaj force-pushed the new-grades-page branch from 2fe4de9 to 87254b6 Compare April 1, 2026 04:08
@somiaj somiaj changed the base branch from develop to WeBWorK-2.21 April 1, 2026 04:09
@drgrice1
Copy link
Copy Markdown
Member

I was just looking at this to see where it stands. Here are the things that I observe at this point.

Did you forget to add a grades.scss file to this? I am seeing a console warning about a grades.css file not being found (it is loaded from templates/ContentGenerator/Grades.html.ep), but see no such file in this pull request. I also don't see anything like your screenshots.

Also, why is there a assets/pg/myNewProblem.pg file in this?

One thing I notice immediately when looking at the result is that there are structural problems.

The total grade shown at the top of the page should not be a list with a single item in it, and that can never have more than one item. That is semantically incorrect. I also don't think it is visually appealing to use a list-group for this.

The grade items need to be reworked. A screen reader goes to the percent grade for the set first before announcing the set. It is semantically out of order.

@somiaj somiaj marked this pull request as ready for review April 28, 2026 20:51
@somiaj somiaj marked this pull request as draft April 28, 2026 20:52
@somiaj somiaj force-pushed the new-grades-page branch 2 times, most recently from 792a8c9 to 1b6ccbe Compare May 3, 2026 07:10
@somiaj
Copy link
Copy Markdown
Contributor Author

somiaj commented May 3, 2026

Fixed the last issues mentioned. I accidentally committed the wrong file, so fixed that and the grades.scss is now included.

I updated the structure to address @drgrice1 comments. The grade total is no longer a list. I also set up some custom flexbox css to make it so the items are listed as 'set name' -> 'grade %' -> 'problem table', but are still positioned in a similar fashion.

I also updated it so only the best test version is shown. And if there is more than one test version, the grade table informs the user that they are seeing Version X of Y total versions.

Probably still a bunch to do. If you notice any problems please submit a PR, as I am limited on time, but will work on this when I can.

@somiaj somiaj force-pushed the new-grades-page branch from 1b6ccbe to f9a7ef4 Compare May 3, 2026 16:24
@somiaj somiaj force-pushed the new-grades-page branch from f9a7ef4 to 6a9d7c3 Compare May 3, 2026 16:33
@somiaj
Copy link
Copy Markdown
Contributor Author

somiaj commented May 3, 2026

I removed all the code/tooltips to decide if an assignment is complete or not to inform students to work on it. There is just too many conditions, such as should students who have resurrect items be told they can use them, what about reduced scoring removal items, and so on. Instead this just now lists the score.

Currently I am using the same byUrgency logic to sort the sets as the ProblemSets page. I don't know if this or just alphabetical is better. I guess it depends on what is being looked for. I'm open for suggestions on how to organize the sets.

At least for me this is getting closer to being ready. Since I decided to not go down the route of trying to indicate sets that students can improve on, I think only suggestions/fixes for any issues found are needed.

@somiaj somiaj marked this pull request as ready for review May 3, 2026 16:34
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),
and closed assignments. Assignments are ordered using the
same `byUrgency` logic as the ProblemSets page.

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.

Each assignment is a list item which shows the total score.
For tests the best test version score is shown if the student
can see the score. Then 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, only the best
test version is shown.

The old Grades page code is moved into StudentProgress.pm
where it is still used.
@somiaj somiaj force-pushed the new-grades-page branch from 6a9d7c3 to 28f4762 Compare May 3, 2026 16:41
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.

3 participants