[#11571] Selective Deadline Extensions - Add collapsible tables to extension page
Part of #11571. Requires #11603 to be merged first

Adds toggleable tables (no lazy loading)
In hindsight, the lazy loading of tables is not as useful as I thought. The almost negligible reads saved vs making the user wait for 1-2 more seconds is not worth implementing it.
Wrong target branch? We will still want to merge it into the feature branch before merging all FE and E2E into master.
Rebase this too.
Implementation seems fine! I would like to discuss UX of this feature though.
Now that we there's no lazy loading, what is the benefit of having this collapsible panel here and does it outweigh the disadvantages (one extra click before the user can extend deadline, information about who has deadline extensions hidden from user until dropdown opened)? Was wondering if having these open by default would be better.
Just to weigh in my 2 cents: we probably can lazy load instructor panel upon toggling it open as it is less common a use case. I agree that students panel should probably be loaded by default.
Just to weigh in my 2 cents: we probably can lazy load instructor panel upon toggling it open as it is less common a use case. I agree that students panel should probably be loaded by default.
Actually according to the PR description, there's no lazy loading, so it's purely a UX enhancement. In this case, I don't really see the benefits of hiding the tables on first load. Was thinking it's better to show all and give the option to minimize than to show some and hide some, which seems a little confusing to me.
I was originally thinking that it should be closed on default, so that the user can easily see the 2 buttons at the bottom and understand the workflow more easily. Also, if the user would want to extend an instructor, it would be easier too (instead of having to scroll past the entire student list). And if the student list is really huge, the user may not even know there's an instructor table below.
However, I realize these 3 cases probably don't make up the majority of use case. I also see value in leaving both tables open to extend students more easily. What do you think about this @moziliar ?
I'm thinking lazy loading instructors would have value, but as Samuel said, it'll be slightly strange to have 1 table open and the other closed by default.
Let's not over optimize first and learn about the user behaviours before proceeding shall we? I guess we don't really know what the users like yet.
Guys, This PR seems to be stalling (no activities for the past 8 days). :snail: :cry: Hope someone can get it to move forward again soon...
Closing as not required anymore.
Performance wise, minimal performance benefits even if lazy loading is implemented. On the UX side, it's an extra click for the user.
There's two problems with this page that occur when there are a large number of users that are partially addressed by collapsible tables, but I believe there are better solutions for these.
Firstly, if there are too many students/instructors, collapsing tables can help keep the screen organised. However, there are better solutions to this problem, such as pagination or filters/search for example.
Secondly, the buttons to extend/delete as well as the table for instructors are hidden at the bottom and may not be immediately visible to a user. In the case of extend/delete, this also means the instructor has to scroll to the bottom, even if they knew where to look. In this case, the better approach would be to increase the visibility of these buttons/options (e.g. sticky footer, tabs at the top, etc.) instead of collapsible tables.