The thanks to Petr (skodak).
Here is what I learned while working on this:
1. when explicitly setting the final grade (manual edit or import),
it is important that ->overridden gets set, and it should get set
to the time when the override was done.
2. but only on certainly sorts of grade item, and the condition for
setting the flag is different when it is the feedback being changed
or the grade being changed, hence the two different tests
is_overridable_item and is_overridable_item_feedback.
3. but, if the grade and feedback is not actually changed, then the ->overridden
timestamp should not be changed. (That was the bit that was buggy.)
Very big theme changes, standardold theme has been split into two themes base and standard. Base theme contains only CSS that is absolutly required (e.g. layout, white space rules, specific widths) and standard (which now looks like standardwhite) contains all the frills.
The following noteable changes have also been made:
* Plugin CSS has been pushed back into the plugin directories as styles.css files.
* Install_print_header has been corrected.
* Redundant or deprecated rules have been removed.
* Several minor class changes throughout Moodle.
* CSS is now single line rules not multiline indented.
* Installs with theme=standardold automatically switch to standard.
* body classes / id now have prefixes to make it clearer what they are and avoid conflicts.
Also worth noting:
* There is still alot of tweaking that is required to get everything looking as it is supposed to, please be patient or better yet help out.
* I am currently working on the documentation for the themes system... it will be here soon.
I copied this initially from the legacy html_component during the refactoring and forgot to check
if it is actually used. Credit goes to Sam H. for spotting it.
The following minor changes were also made:
* Added roles links to the navigation automatically
* Handling of block context for settings navigation
* Tidied up init code for settings navigation
* class html_component does not exist any more
* class html_table rendered via html_writer::table()
* html_table, html_table_row and html_table_cell have public $attributes property to set their CSS classes
* dropped rotateheaders feature, should be added again after more research of possible ways (<svg> is not nice IMHO)
* dropped possibility to define CSS classes for table heading, body and footer - can be easily done and better done using just table class and context