Without this fix, chat created events with eventtype set to boolean.
Such value was then used by calendar block to get a string, which
now produces coding_exception.
Navigation has now been re-ordered in accordance with http://docs.moodle.org/en/Development:Navigation_2.0_structure.
This has led to several changes in the way in which navigation is generated included API changes, most notably using the
navigation_nodes add method now returns the newly added node rather than the key.
At the same time the global_navigation_tree block has been renamed to navigation and settings_navigation_tree to settings.
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
this involves moving all formslib includes to where they're actually needed.
it also moves the portfolio stuff from assignment,data,chat,forum and glossary
into a locallib.php which involved creating it for many of those modules.
This commit includes:
- leap2a portfolio format, and xml writer
- proof of concept implementation in forum and assignment modules
- a lot of refactoring of the portfolio formats in general:
- addition of "abstract" formats - this is necessary for plugins to be able to support groups of formats
- addition of the idea of portfolio formats conflicting with eachother - eg richhtml & plainhtml
it touches modules other than assignment and forum, because the format api
changed and now each place in moodle that exports portfolio content has to deal
with the formats it supports slightly differently.
At the moment the Mahara portfolio still doesn't support this format, because I
haven't done the Mahara side yet. The "file download" plugin supports it
though.
Still todo:
- Add support for the other places in Moodle (glossary, data, etc)
- Write tests, once the rest of the portfolio tests have been updated to use the new DB mocking stuff
- Fix a bunch of TODOs
Note: I also took the oppertunity to extend navigation_node action handling, so that navigation nodes can accepts
moodle_url, html_link, or strings for actions
rather than relying on return values (send_package and prepare_package)
move zipping of temporary files into the exporter class so it can be overridden during unit tests
fix a small todo in mahara plugin
added two new contract methods to the caller class, load_data and expected_callbackargs (static)
this means that the base class is the only place that needs a constructor
and that no data loading happens in the constructor
this in turn means we can check callback argument validity much more lightly
also completely remoted portfolio_add_button function and replaced with a class
as the argument list was getting out of control. it's now much more readable.