Moodle DevCamp 2019 - Idea exchange and progress tracking

cronwatchdog & rsstomessage & coursevisibilityreminde & amoswatchdog

Picture of Alexander Bias
cronwatchdog & rsstomessage & coursevisibilityreminde & amoswatchdog
by Alexander Bias - Thursday, 11 July 2019, 8:29 AM
Hi all,

for us plugin addicts from Ulm university, the Moodle D-A-CH Dev Camp is a great possibility to build first implementations of plugin ideas which would otherwise not be realized due to resource constraints.

Looking at our backlog, I would be eager to pitch one of these plugin ideas:
  • tool_cronwatchdog:
    If one of the Moodle scheduled tasks or the Moodle cronjob as a whole fails for any reason, this happens silently. The admin is not notified actively. He will only see the problem if he looks at the Moodle notifications page or the Moodle scheduled tasks management page.
    I would like to implement an admin tool which 
    a) Runs as scheduled task itself and messages the admin if any of the Moodle scheduled tasks have any problems.
    b) Provides a Nagios check which can be triggered from Nagios or any other compatible monitoring system and which will help to notify the admin if the Moodle cronjob is not running at all or fails as a whole.
  • tool_rsstomessage:
    In our institution, we publishing news and announcements about Moodle stuff on our TYPO3 computing center website and not within Moodle for historic and content management reasons. There is a RSS feed in TYPO3 which serves all news in a machine-readable way and we have a block_rss_client instance in the Moodle footer which shows these news throughout Moodle. However, this block is not really apparent to our users.
    I would like to implement an admin tool which
    a) Will fetch one or n given RSS feeds with the mechanisms which are already there in block_rss_client.
    b) Creates a Moodle system message for each RSS entry and delivers it to the Moodle users through the Moodle system messaging system, i.e. it will appear as new message in the Moodle navbar and can be sent via Email / Push notification / whatever message output plugin to the user.
    c) Optionally, delivers these system messages not to all users but only to certain cohorts.
  • tool_coursevisibilityreminder:
    In our institution, courses for new lecture terms are created as invisible. Teachers then have enough time to add their content to the course and should then switch the course to visible. However, some teachers forget to make the course visible in time. After the lecture term has started, students sometimes turn to our Moodle support, asking where their course is. We then have to see that the course exists, but is just still invisible by mistake.
    I would like to implement an admin tool which
    a) Knows about the courses which belong to the next lecture term (leveraging custom course fields)
    b) Knows when the next lecture term starts
    c) Has a scheduled task which checks each course of the next lecture term the week before the term starts and messages the teachers to remind them to switch the course to visible.
  • tool_amoswatchdog:
    In our institution, we have encountered multiple times that translations of a) Moodle core functionality b) Moodle third-party plugins c) our own Moodle plugins have been changed for the worse in AMOS by some community contributor and have been acknowledged by the german language pack maintainers anyway. As an extreme example, there was a case when a third party plugin's plugin name was changed _within a stable major release_ which changed the activity chooser entry and everything about the naming of this plugin in our Moodle instance over night. We only recognized this change after a user's support request.
    Unfortunately, AMOS does not provide a feature to subscribe to changes of certain language packs yet. 
    As we are lucky to have the god of AMOS, David Mudrák, at the Dev Camp, we could tackle the implementation of this subscription feature together.
    Otherwise, I would like to implement an admin tool which
    a) Lets admins subscribe to complete language packs or certain plugin's language packs within a running Moodle instance.
    b) Checks with a scheduled task running right after the AMOS download every night what has been changed in the language pack.
    c) Notifies the admin if there are any changes in the subscribed language pack which he then can check and act as needed.
Unfortunately, only one of these ideas can be pitched and realized in the upcoming Dev Camp. If anyone of you want to collaborate in one of these projects, let me know so that I pitch the right project.

Picture of David Mudrák
Re: DevCamp: Brainstorming mode ON
by David Mudrák - Thursday, 11 July 2019, 9:21 AM

Nice ones smile

With regards to the cron watchdog - I really like that idea. Moodle 3.7 introduces the scheduled tasks logs that already hold the information about the success/failure. This proposed notification system could as well be built directly into it.
Picture of Tobias Reischmann
Re: DevCamp: Brainstorming mode ON
by Tobias Reischmann - Thursday, 11 July 2019, 10:10 AM

I really like the three ideas:

  • tool_cronwatchdog
  • tool_amoswatchdog
  • tool_rsstomessage
in this order. smile
And I can very well imagine contributing to one of them.
Thanks for these nice ideas, Alex!
Picture of stefan weber
Re: DevCamp: Brainstorming mode ON
by stefan weber - Friday, 12 July 2019, 10:18 AM

tool_cronwatchdog sounds cool, the Moodle cron job failing silently is a disaster, especially since the GDPR plugins have been added, a single badly-coded plugin is able to hang the whole cron job, and Moodle will give no notice of that.

Picture of Wiebke Müller
Re: DevCamp: Brainstorming mode ON
by Wiebke Müller - Friday, 12 July 2019, 11:22 AM

+1 from Hochschule Hannover!

Picture of Katarzyna Potocka
Re: DevCamp: Brainstorming mode ON
by Katarzyna Potocka - Friday, 12 July 2019, 11:34 AM

omg - all of those ideas are amazing and sound really great. Hoping that not only you Alex will be pitching one of those ideas, but maybe someone else, who hasn't his own ideas for pitching will take one and pitch it wink