ericmerrill / banner-luminis-message-broker-for-moodle Goto Github PK
View Code? Open in Web Editor NEWA plugin for Moodle to import Banner/Luminis Message Broker data
A plugin for Moodle to import Banner/Luminis Message Broker data
When using the LMB plugin we're not able to give faculty of cross listed courses the ability to change their course title (helpful if teaching two different versions of the same course (first years only for example) and want to distinguish between them on their Moodle home page). For non-cross listed courses we change from the default setting for "Force Course Name on Update" to "unchecked" or FALSE or no however that is stored in Site Administration -> Plugins -> Enrollments -> Banner LMB -> Settings -> "XML Parse - Course" . This "Force Course Name on Update" field doesn't exist in XML Parse - Crosslisting for us to change it.
In PHP 7.2 object is a reserved word and can't be a class.
If you choose the setting "never" there is still data being stored. It appears to store the records with header data that has the data processed stripped out. Is this expected behavior?
I have a weird edge case where I need to treat Banner as non-authoritative for identity data (firstname, lastname) in a handful of cases. My planned implementation is something like this:
process_person_tag
with that custom field so that LMB still processes the record but doesn't overwrite certain fieldsI think this is too niche to ever be incorporated into the plugin, but others might run into this use case or have ideas about how best to implement it.
Using Moodle 2.5.1+ (Build: 20130712) this warning is shown on the page
Home > Site administration > Plugins > Enrolments > Banner/Luminis Message Broker > Tools > Process File
when no value is specified for the setting "Log file output location"
The import log will appear below.
Warning: fopen(): Filename cannot be empty in /home/tim/moodle.dev/moodle/enrol/lmb/lib.php on line 2411
File not found:
Settings page was saved at least once.
This was from branch 'Release'.
We loaded courses with the LMB. The course default was for weekly sections and the LMB was set to compute sections, which it did. Then we deleted whole terms of courses with Charles Fulton’s delete courses plugin. Not likely to be a regular occurrence but we’re just getting started with the LMB. When we reloaded courses there were no sections of any kind aside from the summary section at top. If we deleted the courses with Charles' plugin, then truncated the LMB tables, then reloaded the courses, everything worked as expected.
We're preparing for a Moodle 2.8 upgrade and found that LMB has a definition for instance_deleteable() in lib.php. enrol_plugin::instance_deleteable() is deprecated in Moodle 2.8 and has been replaced by enrol_plugin::can_delete_instance().
Option to sort courses alphabetically automatically
Should be changed to
if (preg_match('{[0-9]+\.(.+?)$}is', $enrolment->coursesourcedid, $matches)) {
We have a scenario where two courses were crosslisted and became a merged course, but this crosslisted was later undone by the registrar. The merged course remains, and there are no enrollments in the original courses. I can see the entries in mdl_enrol_lmb_crosslists
; would changing the status to 0 and re-running the enrollments fix the issue?
Observed on Moodle 3.3 with LMB 3.3.0. When xlstype
is set to "Merged course" the end dates aren't set for those courses.
In "master" branch from lib.php:
public function lmb_assign_role_log($roleid, $courseid, $userid, &$logline, $restrictstart = 0; $restrictend = 0) {
Error results in using semicolon instead of comma.
This turned up in our ci environment. There are four settings with no default values, so on a clean installation you hit the settings page instead of the normal landing page. These are the four:
livefiltermode
filtermode
catselect
customfield1source
For the first two there is a default but it's specified incorrectly; the last two don't have them at all.
When processing xml file and usemoodlecoursesettings is set courses have incorrect settings. The courses have neither the default course setting options found in the Moodle admin settings nor the settings hard-coded in this module. The settings are the database field defaults. An example is mdl_course.newsitems. We have set that to 2 in default course settings. It is hard coded as 3 in the module. The actual courses has it set to 1, which is the field default in the database.
The enrolment plugin 'lmb' should override the function can_hide_show_instance().
line 1952 of /lib/enrollib.php: call to debugging()
line 247 of /enrol/instances.php: call to enrol_plugin->can_hide_show_instance()
The enrol_lmb cron is currently running in the legacy cron tasks. This means any time the legacy cron is triggered it runs the task to process the extract folder. This cron can run a long time if you have large xml files (as some schools do) and it is possibly running the same files over and over again, even though they have not changed.
This task should be made in to a scheduled task that the user can control the timing of via the scheduled task UI. That way if those files only change once a day, that cron can be scheduled to run once a day. This will avoid the process eating resources over and over again to run files that haven't changed since the last run.
Moodle 3.2 added a course end date field. That should be added to LMB course parsing.
We use a shell script to invoke folder processing via the command line, but we still have to ensure the error_log location is set correctly using the web interface. It would be cool if we could pass that as an argument.
Here's the scenario:
UserA
and UserB
. UserA was managed by Banner and UserB was not.Is there a way to safely unenroll UserA from those courses? Their presence is confusing our faculty.
Hey there
I have a client having an issue and I was hoping I could get some light shed on this.
"Our Moodle production site is experiencing issues with student enrollment updates. We use LMB to update our (Courses, Faculty, Student) Moodle database. We have had several faculty members email us stating that their rosters aren't populating. Is there a possible CRON job issue? The FTP directory is getting the updated XML files daily. "
Your help is greatly appreciated as I have looked and everything seems to be fine on the moodle server end.
Will Bulluck
Tier One Support Specialist
[email protected]
For internal reasons, we need to add some additional preferred name options.
Mostly being able to store the legal first name into a custom profile field.
This issue may be specific to our environment. We have several common occurrences of HTML entities in our extract, specifically '
in surnames and &
for some department names (our Anthropology and Sociology department goes by "A&S").
These are faithfully recreated in Moodle and they're encoded correctly in most display scenarios, though we see some odd behavior with the gradebook export, and when editing course settings. I've noticed in my test environment that Moodle handles the raw values '
and &
just fine.
My question, then, is whether LMB can transform these entities during the synchronization process, or whether there's a broader issue here.
We are only able to process about 10 of ~9000 enrollments via the plugin on our Moodle 3.9.2 + LAE instance (running 3.8 tag of this tool) before it errors out (and populates the enrollment_log with messages shown below). In testing on an instance running Moodle 3.5.14 + LAE running 3.4.1 tag of the Banner Luminis Message Broker we are able to process the same data files successfully. The enrollment plugins portion of site administration upon completion on that system shows 881 instances / 8548 enrollments in the Banner/Luminis section.
The error log (enrollment_log) is filled with "user not found" errors when processing faculty and student .xml files. I've edited the log down to fit into a free pastebin located here
Let me know what other information would be useful to investigate further/diagnose/etc.
Eric Handler
Macalester College
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.