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

Bypass (or improve) the slow-loading DL deviations page #1122

Closed
jsorva opened this issue Jan 3, 2023 · 13 comments · Fixed by #1197 or #1334
Closed

Bypass (or improve) the slow-loading DL deviations page #1122

jsorva opened this issue Jan 3, 2023 · 13 comments · Fixed by #1197 or #1334
Assignees
Labels
area: performance Related to the performance of the system area: UX teacher User experience and usability for teachers effort: days Estimated to take less than one week, from the creation of a new branch to the merging experience: beginner required knowledge estimate O1 needs Requested in the Programming 1 course requester: CS The issue is raised internally by a CS teacher type: feature New feature or change to a feature
Milestone

Comments

@jsorva
Copy link

jsorva commented Jan 3, 2023

For me, loading O1 2022’s "List deadline deviations" page takes about 105 seconds: 65 before anything visible happens and another 40 before the page has fully loaded. It’s not a nice page to navigate to, but (at least in principle) one has to do that pretty often in order to access "Add deadline deviations".

The ideal fix would be to improve loading times a lot. Failing that (or even if load times are improved), it would be nice to have a faster route to adding deviations; there’s generally no need to browse the current list first.


Another issue #1302 focuses on improving the performance of the deviations list view.

@jsorva
Copy link
Author

jsorva commented Jan 3, 2023

I realize it’s possible to use bookmarks and custom A+ menu items to circumvent this.

@jsorva
Copy link
Author

jsorva commented Jan 3, 2023

Closely related: #1123

@markkuriekkinen markkuriekkinen added this to the Summer 2023 milestone Jun 13, 2023
@markkuriekkinen markkuriekkinen added the effort: hours Estimated to take less than one day, from the creation of a new branch to the merging label Jun 13, 2023
@markkuriekkinen
Copy link
Collaborator

We already tried to improve the loading times in the past. The loading times did improve, but they can still be too slow. In this issue, we could simply add the requested shortcut links that help the teacher avoid the slow-loading deviation list page.

In the left-side course menu, we could add a subheading "Deviations" and move all the deviation links under that section. We already have two menu links for the deadline and submission attempt deviation lists. We could add two new links that point directly to the "add deviation" forms.

HTML template for the course menu:

<li class="menu-deadline-deviations">
<a href="{{ instance|url:'deviations-list-dl' }}">
<span class="glyphicon glyphicon-list" aria-hidden="true"></span>
{% translate "DEADLINE_DEVIATIONS" %}
</a>
</li>
<li class="menu-submission-deviations">
<a href="{{ instance|url:'deviations-list-submissions' }}">
<span class="glyphicon glyphicon-list" aria-hidden="true"></span>
{% translate "SUBMISSION_DEVIATIONS" %}
</a>

@markkuriekkinen markkuriekkinen added area: UX teacher User experience and usability for teachers area: performance Related to the performance of the system type: feature New feature or change to a feature O1 needs Requested in the Programming 1 course experience: good first issue Good for newcomers requester: CS The issue is raised internally by a CS teacher labels Jun 13, 2023
@lainets
Copy link
Contributor

lainets commented Jun 15, 2023

The links on the points page in #1123 can trivially be also added to the course page as well. Would that solve the issue or would it clutter the UI too much?

@markkuriekkinen
Copy link
Collaborator

The links on the points page in #1123 can trivially be also added to the course page as well. Would that solve the issue or would it clutter the UI too much?

@lainets I don't understand your question. This issue #1122 and #1123 are related to different parts of the user interface. Both are useful.

@lainets
Copy link
Contributor

lainets commented Jun 20, 2023

As far as I understand, this issue is about improving or bypassing the list deadline deviations page and the exact location of the button(s) for bypassing it hasn't been specified. My question was whether it would be enough to add buttons to the main course page, just like #1123 adds them to the points page. The points page and main course page use the same template (except if the mode is changed by the course but the buttons can be added to the other templates as well), so adding the buttons to the course page as well is trivial (in fact, I had to specifically omit them from the course page in the proposed solution to #1123).

@markkuriekkinen
Copy link
Collaborator

@jsorva should comment on that.

  1. Do we need assignment-specific shortcut links to the "add deviations" form in the course front page and/or "Your points" page? (There is no student pre-selected in these cases.)

  2. Do we also need shortcut links to the "add deviations" form in the left-side course menu (navigation panel)? (No assignments nor students pre-selected in this case.)

@jsorva
Copy link
Author

jsorva commented Jun 20, 2023

It’s not hundred-percent certain to me what "main course page" refers so, but anyway:
In practice, AFAIC, solving #1123 in the way @lainets suggests solves 90%+ of the problem in practice anyway, so this almost becomes a non-issue.

As for @Mankro’s questions, I’d say: 1) No. 2) If I understand you correctly, you mean the main menu where we now have "Deadline Deviations", among other things. If so, I’d say: no, not necessarily, if #1123 is fixed as suggested.

@markkuriekkinen
Copy link
Collaborator

Based on jsorva's comment, #1123 is important and then this issue #1122 becomes unnecessary.

@lainets lainets self-assigned this Jul 3, 2023
@markkuriekkinen markkuriekkinen closed this as not planned Won't fix, can't repro, duplicate, stale Aug 17, 2023
@jsorva
Copy link
Author

jsorva commented Oct 4, 2023

@Mankro I would consider reopening this issue after all (and despite my own comments above).

It’s true that #1123 bypasses the main problem, which is great. That update has been massively useful.

However, parts of the problem remain:

  • The deviations list page still loads extremely slowly and more often than not crashes with a server error. (The list is not needed often, but when it is, it’s painful to try to access it.)
  • When adding a deadline deviation, one is automatically taken to the deviations list. This basically renders one’s browser tab unusable (for the above reason).
    • I don’t personally care much where I’m taken after adding a deviation. The deviations list page would be OK if it loaded faster. But if it doesn’t then I’d rather be taken somewhere else.
  • When adding a deadline deviation, one is automatically taken to the deviations list. Given the poor performance of that page, this unnecessarily strains the server (I presume). Moreover, it strains the server at a bad time (since deadline deviations are typically added near the deadline, when the server is busy).

@markkuriekkinen
Copy link
Collaborator

OK, we can re-open this issue and consider adding new shortcut links as has been previously discussed in this issue. Though, your concerns are really about the slow performance of the deviation list page and that is a different problem than adding shortcut links.

There could also be a new "deviations home page" that does not list any deviations from the database, but includes links to the deviation features like adding new. This home page would be a sensible redirect location after adding new deviations if we want to not redirect to the list view. Otherwise, the home page would be rather pointless so it's not the greatest of ideas. Maybe the user could be redirected to the "add new deviation" form again after submitting the same form.

One approach to the deviation list performance problem is to use pagination so that only 100 records are loaded per page. Then, a search feature would be needed to find students without browsing through all the deviation list pages.

@markkuriekkinen markkuriekkinen added experience: beginner required knowledge estimate and removed experience: good first issue Good for newcomers labels Oct 10, 2023
@markkuriekkinen markkuriekkinen added effort: days Estimated to take less than one week, from the creation of a new branch to the merging and removed effort: hours Estimated to take less than one day, from the creation of a new branch to the merging labels Oct 10, 2023
@markkuriekkinen
Copy link
Collaborator

I made a new issue #1302 that focuses on performance issues in the deviations list. This issue #1122 can focus on bypassing the list view.

@Mikael-Lenander
Copy link
Contributor

OK, we can re-open this issue and consider adding new shortcut links as has been previously discussed in this issue. Though, your concerns are really about the slow performance of the deviation list page and that is a different problem than adding shortcut links.

There could also be a new "deviations home page" that does not list any deviations from the database, but includes links to the deviation features like adding new. This home page would be a sensible redirect location after adding new deviations if we want to not redirect to the list view. Otherwise, the home page would be rather pointless so it's not the greatest of ideas. Maybe the user could be redirected to the "add new deviation" form again after submitting the same form.

One approach to the deviation list performance problem is to use pagination so that only 100 records are loaded per page. Then, a search feature would be needed to find students without browsing through all the deviation list pages.

How would the pagination be implemented? Currently, the deviation list groups deviations if the belong to the same module and have the same amount of extra time or same number of extra submissions. If only 100 records per page would be fetched, some records belonging to a group would probably be fetched and some would not. Then the group cannot be formed because all the group members are not fetched.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
area: performance Related to the performance of the system area: UX teacher User experience and usability for teachers effort: days Estimated to take less than one week, from the creation of a new branch to the merging experience: beginner required knowledge estimate O1 needs Requested in the Programming 1 course requester: CS The issue is raised internally by a CS teacher type: feature New feature or change to a feature
Projects
Status: Done
4 participants