This steals the logic from accesslib used to detect dirty contexts and so reload cached access data when permissions are changed.
Here, we track when user preferences are changed, so that if necessary we can trigger a reaload. This helps in two situations:
1. When you are logged into Moodle with two different browsers.
2. When someone else changes one of your preferences.
After this change, you will see the changed user pref immediately in all sessions.
This adds one cheap DB query to any page that tries to access a user preference (which is almost all of them, because of deciding whether to show the messaging pop-up). It adds a few more queries in the cases when a user preference is changed. This is in the name of correctness.
* Make the role being assigned clear in the title
* Make the options in the middle of the page be in a collapsable options section, collapsed by default.
* Put them in a smaller font too.
* Switch the date selectors here to use a shorter date format, and change 'Course start date' to 'Course start'.
One needs just add $CFG->skiplangupgrade = true; to their config.php and keep their language pack up-to-date manually. This is intended for lang pack maintainers with CVS access only.
This is backpported from MOODLE_19_STABLE admin/index.php
At the same time, I took the opportunity to try to work on some of the usability issues on this page. Note that I have not quite finished! So don't comment until tomorrow.
In the course of doing this, I also did: half of
MDL-11529 Show the number of assignees of each role in the change role dropdown on this page.
MDL-17067 Make it clear in the UI that admins are not allowed to unassign themselves.
To do this, I found a way to clean up the method signatures of a couple of accesslib methods, so I did, hence the fact that this seems to touch some unrelated files.
Also, there is a nice new method in accesslib get_context_url, which gives you the natural URL for a context, so the course view page, or the user profile, etc.