Has anyone done Moodle and Plone integration?

Has anyone done any integration work between Plone and Moodle? Just trying to determine what's there already and what needs to be done for a Moodle integration. I still need to get details from the client to better understand their goals but it's nice to enter a meeting semi-informed. Would love to get any pointers that might help with Moodle/Plone work.

What I've found so far

1 Like

What would you want to have done by Plone vs Moodle in such an integration?

Hopefully I can answer that after my meeting next week with the customer.

If Moodle is anything close to Desire2Learn (which I saw and used at UW Oshkosh), it will have slowly crawled into the CMS space. The only limitation might be that you have to host content inside a "class" or equivalent content object. I saw people jump through hoops with D2L, creating fake classes just to post something, and having to add lots of people to that fake class' roster so they could see that content. If that's the case with Moodle, then there is room for Plone. Otherwise, the integration would make sense only if there were something else Plone can do that Moodle can't, like workflow, Dexterity, an add-on that does something that Moodle (or its add-ons) can't.

At least you could have Plone and Moodle use common authentication; that way a student logs into Plone and automatically sees their classes.

At University of Namur we are using LemonLdap::Ng (https://lemonldap-ng.org) for SSO between Moodle (https://webcampus.unamur.be) and Plone 5 (https://bve.unamur.be/).

pas.plugins.authomatic is used to connect Plone 5 with LemonLdap::Ng.

Good stuff! I think I'll have some sensible, semi-informed talking points next week :slight_smile:

Any reason for choosing LemonLdap::Ng over other ldap options? Would you do it again with LemonLdap::Ng?

It's always good to set low expectations (and then exceed them) :stuck_out_tongue:

We were looking for an open source SSO solution who can use SAML2 et OpenIDConnect (http://openid.net/connect/) protocols.
LemonLdap::Ng can use many other protocols (https://lemonldap-ng.org/documentation/1.9/start).
LemonLdap::Ng has a goog TTW configuration interface and the configuration can be export/import in JSON format.
We also found a good LemonLdap::Ng integrator near the university.
We are currently happy with the solution :slight_smile:

Hi there,

We've done a reasonable amount of work integrating Moodle with Plone. Specifically with our client's, Archetypes based, student management platform. I'm not too sure how much we could offer that would be helpful to anyone else embarking on this process.

Some of what we're using / doing:

  • SAML for SSO: collective.saml2
  • RabbitMQ to asynchronously process requests, keeping data in sync between Plone / Moodle. collective.zamqp
  • There are a number of student management tasks that are carried out in Plone that result in Moodle being updated, these include:
    • Adding users
    • Enrolling users on courses
    • Suspending users
    • Updating user data
  • Also some things that get updated (& displayed) in the Plone student management system from Moodle
    • Completion tracking
    • Results
    • Activity tracking

We have written a basic "local plug-in" for Moodle that hooks in to Moodle events i.e. course_completed and calls a Plone browser view. This adds a task in a Rabbit queue that uses Moodle web services to pull more data back in to Plone - it is displayed for the student and teaching staff to view and assist them with managing their course groups.

We have attempted to keep our Moodle API package decoupled from the student management system. We can look at putting some more work into tidying-up & improving the documentation of this if it was going to be of use to others.


Yes, please. Can be very useful for universities which uses Plone :slight_smile: