gjbarnard / moodle-format_topcoll

Collapsed Topics course format for Moodle.
http://docs.moodle.org/en/Collapsed_Topics_course_format
GNU General Public License v3.0
35 stars 60 forks source link

Due date disappears when moving activities #87

Closed golenkovm closed 3 years ago

golenkovm commented 3 years ago

Hi,

It's been found when you move an activity that is displaying it's due date on the course page, the due date will disappear until you refresh the page.

Initial state: image

After moving the activity: image

After page refresh: image

golenkovm commented 3 years ago

Activity HTML comes with http://localhost/lib/ajax/service.php?sesskey=oekrRh5CaZ&info=core_course_get_module ajax call which hits core_course_renderer instead of format_topcoll_course_renderer.

gjb2048 commented 3 years ago

'/course/externallib.php', method 'get_module' calls the global page object method 'get_renderer' which calls the theme (core_renderer) method 'get_renderer' which calls the given 'rendererfactory' method 'get_renderer' which calls 'standard_renderer_classnames' which returns 'self::$subsystems' generated by 'init()' which gets it from '$cache['subsystems']', But then there is the method 'fill_all_caches' which calls the method 'fetch_subsystems'. Anyway I suspect that as Collapsed Topics is not a theme then its overridden autoloaded course renderer cannot be found and therefore there is no way for me to solve this problem with a CT specific fix. An MDL would not help as this is a unique case whereby its not clear cut logic on which renderer to use, especially when using Adaptable that then knows when CT is being used so extends its version of the course renderer on top of CT's version.

Therefore the only viable solution is to not display the information when editing is on. That will then reduce the amount of space on the screen, which is ironically, the purpose of CT in the first place.

golenkovm commented 3 years ago

Hi @gjb2048

Yeah, that makes sense. This why I haven't provided a fix for the issue. I played around with renderers and didn't find a proper solution. However, that one you applied looks good and works. Thank you.

Cheers, Mikhail