bdecentgmbh / moodle-mod_pulse Goto Github PK
View Code? Open in Web Editor NEWAutomate workflows in your courses to improve student engagement and compliance.
Home Page: https://bdecent.de/pulse
License: GNU General Public License v3.0
Automate workflows in your courses to improve student engagement and compliance.
Home Page: https://bdecent.de/pulse
License: GNU General Public License v3.0
I have just installed the pulse plugin for moodle version 4.0.4 and when I try to add a pulse asset to a course I get this error and it does not add the asset.
Any idea?
I have set up some pulses, with invitations, that was sending welcome emails out to new members of the course, and at first these emails were being sent 'from' the teacher on the course, and looked good - however today for some reason, the invitations were being sent out from other random students on the course, rather than the teacher - and I have no idea why. I cannot work out any logic as to what would cause this behaviour.
The 'from' address in the email was containing the name of the other students, as was the placeholders for 'Sender_Lastname' and 'Sender_firstname' (which did at least match the 'from' name).
Normally when a Moodle activity is set to separate groups, if a tutor (or student) is in multiple groups, they will see a drop down menu allowing them to choose which group they want to look at.
With the pulse activity, if I set up an 'Approve users' type activity, with separate groups selected - I am not getting this option. The list of users that I see will only be for people that are in the same groups as me, but there is no way to differentiate the groups.
Could this be added?
I'm trying to figure out why students are getting what appear to be duplicate emails from Pulse. I checked the Pulse Report and it only shows one instance of an email going to the students at the time in which they receive two messages separated by about a minute in the time stamp? is there a way to get more detalied logs of what's going on with Pulse than what we see in the "Pulse Report"?
I attempted to upgrade to the most recent version of Pulse, but now it gives me the following error when I try to create a new Pulse in a course, or edit an existing Pulse:
"Exception - Call to undefined function pulse_get_editor_options()"
I tried to downgrade back to the previous version and that generated some errors and Moodle wouldn't do it.
Ideas?
I'm comfortable using the multi-language filter plugins and activity-level-language-restriction plugins to manage multiple languages within a single course. However, I'm not sure if there is a method to do this with pulse? I assume the filtercodes won't work because there is no "page" as context at the time the filtercodes are executed. Perhaps there should be a filtercode implementation at the pulse-level that uses the user's language preference from their profile?
Coding error detected, it must be fixed by a programmer: Invalid icon system requested '\core\output\icon_system_standard'
line 92 of /lib/classes/output/icon_system.php: coding_exception thrown
line 146 of /mod/pulse/mod_form.php: call to core\output\icon_system::instance()
line 214 of /lib/formslib.php: call to mod_pulse_mod_form->definition()
line 131 of /course/moodleform_mod.php: call to moodleform->__construct()
line 154 of /course/modedit.php: call to moodleform_mod->__construct()
Would it be possible to incorporate an alternative solution for themes that don't based on the Boost and FontAwesome icon system?
Moodle allows using 3 different icon styles:
Thanks, Marcin
I understand that Pulse uses the Teacher role to determine whom to set as the "from" for the outgoing email. In the case of multiple teachers it appears to be doing this based on the first teacher by alphabetical order? I think it would be a nice improvement if this "from" field could be set in the pulse settings. Maybe it is limited to choosing just from those assigned with Teacher or Non-editing Teacher or Manager roles, or maybe it's less restrictive? Maybe there would be a BCC field, as well, so that all outgoing email pulses could be automatically forwarded.
Thanks for considering it.
-Tay Moss
https://churchx.ca
Hi Stefan,
you have already added Moodle 4.0 to the latest release of mod_pulse in the Moodle plugins repo, but you don't support the Moodle 4.0 activity purposes yet. Because of date, the mod_pulse icon does not pick up the activity icon colors of Moodle in the activity chooser. Luckily, the icon is already monochrome so that it doesn't completely stick out of the whole activity chooser icon set.
May I ask you to have a look at https://docs.moodle.org/dev/Moodle_4.0_developer_update#Activity_icons and
Many thanks,
Alex
I read under closed issues, that "the first user with the permission to send" is used as sender. It was not explained what makes a user the "first" user. In our test the user as which Pulse is sending the mail is the primary admin on system level, meaning that is happening without us changeing any settings in that regard. Which is actually how we want it to be. But: while the sender email is correct, the name of the sender as seen by the recipients is "Admin User". That "name" is set up nowhere by us, though. The primary admin is named "Xyz Academy" (Xyz being the company name). You can see how this can be a problem, getting important mails with a generic name like that, esp. since other emails like from course recompletion do use the correct "Xyz Academy" name, resulting in mixed names for mails from the same context.
Hi,
we have a quite large course containing approximately 350 activities (most of them containing completion criteria) and 450 students. In this course we have two pulse activities.
When I look into the course logs of a single day I find more than 389000 log entries and only ~20000 logs resulting from origin "Web". The major part of the remaining ~370000 logs are produced by the two pulse activities which are something like
The user with id 'XXXX' updated the completion state for the course module with id 'YYYYY' for the user with id 'ZZZZZ'.
Now, the large number of course logs lead to a crash of the course backup, when the log files are included!
Why do you need to write all changes of activity completions in the logs? Since moodle has own logfiles where activity completions are tracked.
TIA!
Alex
Hi Stefan,
trying to use this plugin on the IOMAD distribution (https://github.com/iomad/iomad), I ran into a fatal error during the installation:
Fatal error: Cannot declare class EmailVars, because the name is already in use in /var/www/mod/pulse/lib/vars.php on line 28
This error is caused by the fact that there is a class called EmailVars
on https://github.com/bdecentgmbh/moodle-mod_pulse/blob/main/lib/vars.php as well as https://github.com/iomad/iomad/blob/IOMAD_310_STABLE/local/email/lib/vars.php and none of them is namespaced.
Do you think that there is a possibility to add a namespace to the class in mod_pulse to avoid class name clashes?
Cheers,
Alex
Hi,
In Moodle 4.1.9 Pulse works with the Atto text editor. But using Tiny text editor, User_FirstName ang other references must be integrated into the text by drag and drop. The message received is not personalized (User_FirstName is kept as is). The behavior is the same on Firefox and Chrome.
Thanks
Hi, I'm testing pulse on my moodle installation (Moodle 4.0.2+ (Build: 20220805)
None of the pulses are sending emails. SMTP settings are correct and other emails are being sent. Cron is set up correctly and running.
Students have complted the requirements of the pulses and they are marked as completed in the activity report but even if I press Resend/Notification from within the pulse no emails arrive.
Any ideas?
After upgrading a Moodle v3.9 installation to Moodle v4.0, the mod_pulse plugin uses almost all the memory on the server. Once I remove the plugin the load is as expected.
I then reinstalled the plugin and tried to restore the courses that use this plugin. I got an 'allowed memory size error'.
There is 1 course that contains mod_pulse AND is accessible after the upgrade. This one gives the following debug output when opened:
Class 'format_base' has been renamed for the autoloader and is now deprecated. Please use 'core_courseformat\base' instead.
line 142 of /lib/classes/component.php: call to debugging()
line ? of unknownfile: call to core_component::classloader()
line 43 of /course/format/tiles/lib.php: call to spl_autoload_call()
line 865 of /lib/classes/component.php: call to include_once()
line 7852 of /lib/moodlelib.php: call to core_component::get_plugin_list_with_file()
line 1253 of /mod/pulse/lib.php: call to get_plugins_with_function()
line 948 of /mod/pulse/lib.php: call to pulse_extend_reaction()
line 1570 of /mod/pulse/lib.php: call to mod_pulse_cm_completionbuttons()
line 2474 of /lib/modinfolib.php: call to mod_pulse_cm_info_view()
line 2506 of /lib/modinfolib.php: call to cm_info->call_mod_function()
line 1742 of /lib/modinfolib.php: call to cm_info->obtain_view_data()
line 1555 of /lib/modinfolib.php: call to cm_info->get_extra_classes()
line 106 of /course/format/classes/output/local/content/section/cmitem.php: call to cm_info->__get()
line 122 of /course/format/classes/output/local/content/section/cmlist.php: call to core_courseformat\output\local\content\section\cmitem->export_for_template()
line 225 of /course/format/classes/output/local/content/section.php: call to core_courseformat\output\local\content\section\cmlist->export_for_template()
line 156 of /course/format/classes/output/local/content/section.php: call to core_courseformat\output\local\content\section->add_cm_data()
line 46 of /course/format/topics/classes/output/courseformat/content/section.php: call to core_courseformat\output\local\content\section->export_for_template()
line 160 of /course/format/classes/output/local/content.php: call to format_topics\output\courseformat\content\section->export_for_template()
line 86 of /course/format/classes/output/local/content.php: call to core_courseformat\output\local\content->export_sections()
line 500 of /lib/outputrenderers.php: call to core_courseformat\output\local\content->export_for_template()
line 108 of /course/format/classes/output/section_renderer.php: call to plugin_renderer_base->render()
line 60 of /course/format/topics/format.php: call to core_courseformat\output\section_renderer->render()
line 270 of /course/view.php: call to require()
Other pages, for example /admin/search.php and /backup/restorfile.php give a few extra lines for the courseformat tiles. All for the deprecated class.
I have temporarily removed all courses with mod_pulse, except for the course that appears to be accessible. In /report/status I get Fail delays: 1 day - mod_pulse\task\sendinvitation ID = 239565
Restoring a course with mod_pulse gives the warning:
Technical information and warnings
setting controller status to 800
saving controller to db
calculating controller checksum 2708398ba4f988b6d78d93e94e26a0c6
The error message when opening the course right after I restore it is:
Fatal error: Allowed memory size of 536870912 bytes exhausted (tried to allocate 16384 bytes) in /home/moodle/domains/t2.kwadraad.nl/public_html/lib/dml/mysqli_native_moodle_database.php on line 1277
Hi,
steps two reproduce this issue:
Expected behavior: 100 Credits should be added to the related profile field.
Unfortunately, nothing is added to the related profile field. In my case 100 Credits are added after I edited 2. and changed from "no activity completion" to "manual activity completion".
Maybe the initial configuration "no activity completion" of 2. is wrong. So I removed 1. and 2. and recreated them, but now with 2. "Activity completion ->manual completion". Again there are no credits added after login the test student's login and completion of 1.
Again, I have to switch the activity completion of 2. In this case from "manual activity completion" to "no activity completion" and the credits are added.
Hi,
We have found that the template text "Welcome" https://github.com/bdecentgmbh/moodle-mod_pulse/blob/dda665f42c004d371dafcb1835d2dd8cefdf741c/assets/preset-welcome_message.mbz has a mistake in the tag that include http:// before the {courseurl} so the email is sended with the link is incorrect. {courseurl} already has the http attribute.
<pulse_content><p dir="ltr" style="text-align: left;">Hi {User_FirstName},</p><p dir="ltr" style="text-align: left;">great to see you here! Thanks for choosing {Course_FullName}.</p><p dir="ltr" style="text-align: left;">You can access the course at any time using this link:</p><p dir="ltr" style="text-align: left;"><a href="http://{courseurl}" target="_blank">{courseurl}</a><br></p><p dir="ltr" style="text-align: left;">Happy learning!<br>{Sender_FirstName} {Sender_LastName}</p></pulse_content>
Regrads
When using the pulse plugin alongside softcourse format, an error is thrown when trying to save the activity settings.. It appears the plugins interact poorly. As I am unsure where the error resides, I've raised to both parties on their git.
Create a course, set the course to softcourse. Add a Pulse activity. An error will be thrown.
The same error can also be triggered by setting another format, for example topics, then adding a pulse activity, and then switching the course format to softcourse.
the pulse activity should be added to the course
The following error is thrown
Stack trace:
line 157 of /course/format/softcourse/classes/output/courseformat/content/section.php: Error thrown
line 161 of /course/format/classes/output/local/content.php: call to format_softcourse\output\courseformat\content\section->export_for_template()
line 86 of /course/format/classes/output/local/content.php: call to core_courseformat\output\local\content->export_sections()
line 101 of /course/format/softcourse/classes/output/renderer.php: call to core_courseformat\output\local\content->export_for_template()
line 104 of /course/format/classes/output/section_renderer.php: call to format_softcourse\output\renderer->render_content()
line 49 of /course/format/softcourse/format.php: call to core_courseformat\output\section_renderer->render()
line 276 of /course/view.php: call to require()
Quoting https://docs.moodle.org/dev/Plugin_files#lib.php:
Moodle core often (but not always) loads all the lib.php files of the given plugin types. For the performance reasons, it is strongly recommended to keep this file as small as possible and have just required code implemented in it.
mod_pulse, unfortunately, does not follow this rule and ships with a bunch of local functions which should be places in locallib.php or - even better - in classes instead.
Dears, we're testing version 2 of pulsepro and it would be cool to have a field (or something like that) to add a sender name to every email used in the configuration. Currently if we use a [email protected] the user will receive an email from noreply which is anything but cool. It would be good the user to receive a proper sender name like Whatever Academy and the email [email protected]
This feature request is related to issue #36
Thank you.
Line 793 in dda665f
I think if some checks were added to see if the completion status has changed before triggering the event log at the code location noted above this, the problem would be resolved.
We had a client who saw 24 million log entries in 30 days and 96% of them came from two instances of this activity.
I may be able to provide a code fix soon, but just noting in case someone beats me to it.
This issue addresses a bug where the VALUE_OPTIONAL parameter in the get_chapters_parameters() function was causing errors during unit testing.
core\externallib_test::test_all_external_info with data set "pulseaction_notification_get_chapters" (stdClass Object (...))
Unexpected debugging() call detected.
Debugging: External function parameters: invalid OPTIONAL value specified.
* line 730 of /lib/externallib.php: call to debugging()
To resolve this issue, VALUE_OPTIONAL has been replaced with VALUE_DEFAULT, ensuring that the parameter remains optional while providing a default value when omitted.
Additionally, this issue includes the addition of missing privacy providers.
Moodle Version: 4.1.10
Hello,
We reached out to you multiple times about this issue. We are able to send the first and second reminders but the recurring reminders are failing. We were asked to provide the failed task logs from Moodle so it can be investigated further but we never received a response. Hence, reaching out here.
local_pulsepro_task_availabletime-2184951.log
local_pulsepro_task_availabletime-2196999.log
Moodle: 3.9.22
PHP: 7.4.33
Scheduled task cron: run every minute
We recently installed mod_pulse and noticed a drastic increase in our mdl_task_adhoc table. Drastic in the order of 10GB in just that table alone. Our CRON runs every minute and there are plenty of resources available to process tasks.
The adhoc task is the \mod_pulse\task\sendinvitation, which is a capability that we don't use.
Any idea what would be causing this to occur?
Hi all,
Thanks for a nice plugin. I have a client that is interested in controlling who the sender of the notifications are. I found this in your documentation.
Once the students to notify are identified, Pulse finds the correct sender user, who is the user with the "mod/pulse:sender" capability. When an instance has more than one sender, Pulse will use the first user as the sender. If the course is in group mode, Pulse will use the sender from the group.
However, that particular capability does not seem to be available?
Thanks in advance for your answer :)
Hi,
when I'm inside a course and click "course-administration"->"reports"->"Pulse reports", I see all Pulse messages sent to students (>400 students in course).
When I try to download this table as CSV, Excel, etc, the corresponding file only contains 10 students. I got the same result, when I click "Show all 443" first, such that all students are listed on one page.
TIA!
Alex
Hello, I have a problem with your Pulse plugin. I've used it to send an invitation massages to all of the users after enrolling them into a particular course. The problem is that the messages never arrived. I've compared the settings of this course with another one in which the notifications worked, but there was no difference both in course settings and Pulse settings. Is there maybe some kind of instruction you could send me that shows how to set this invitation massages correctly?
Question, is there either a way to get the filtercodes to work in the email message editing tool OR to extend the shortcodes already provided by Pulse?
We have received complaints from some parents that they received emails with incorrect student information. I have emails forwarded to me from parents and checked the LMS system if those students and those parents have anything in common. I personally couldn't find anything but when Pulse Pro is used in a large class we are facing this issue. In small classes or individual test trials I couldn't recreate the issue.
I can show the error and the emails in a zoom call if needed.
Dears, we're testing version 2 of pulsepro and couldn't find the {reaction} tag on the list that displays in the configuration and if I try to use it anyways, it shows nothing. The 2.0 documentation indicates the functionality still exists but I couldn't find what's wrong with our setup. Thank you.
There are many shortcodes, some of which are not clear as to what they are. But first a suggestion: I had to try out what the shortcode has to be enclosed with. Also, I expected that I could click on the yellow badges, as there is a pointer when hovering, but that does not work. May be an issue with my browser, though. I the click did insert the shortcode with the enclosure, that would not be missing info.
About the meaning of the shortcodes, I stumbled over Course_Id and Course_Idnumber - ID was what I expected, Idnumber came out empty, though. A place to look up all shortcodes, what they stand for and when they have values would be really helpful.
Just testing this out, and I have ticked the box for 'Completion when available', in my test the student is correctly seeing the pulse I had added, based on the availability restrictions, but the pulse item itself is not showing as complete, even though the students can see it. Is this a bug?
When teachers/admins create outging pulse messages with images, they are running into problems. If the image tag is using an SRC with a URL that is outside of the Moodle, it works fine. BUT, if the image is "uploaded" to the course, or if they try to use something ilke the course image, for example, it won't load the image. I believe this is because the pluginfile.php script won't serve up an image file if the user is not logged in. An example URL that doesn't work is
Is this a known issue? Is there a workaround?
-Tay Moss
https://churchx.ca
If we add a new PULSE activity into a current course, we do not want students who have previously met the restrictions to get the emails. Only those who meet the requirements in the future. Is there a way to do this?
Example: If today we create a PULSE reminder to be sent out one day after someone completes a post-test (restriction set to the post-test), someone who completed the post-test two years ago will get the email. We do not want this student, who completed the post-test two years ago, to get the email.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.