IMS Enterprise enrolment plugin v0.6

IMS Enterprise enrolment plugin v0.6

by Dan Stowell -
Number of replies: 32

Hi - I'm starting a new thread because the old thread was getting long!

Attached is v0.6 of the IMS enrolment plugin for Moodle 1.5. It has some important improvements, as well as a whole set of help files plus an IMS "conformance summary".

Notable improvements include ability to process start/end dates for enrolments, ability to delete students if the "recstatus" field is set to the delete code, and basically the complete support for all the core data elements. The plugin also uses one pass rather than two to process the file so should be quicker.

And...

Average of ratings: -
In reply to Dan Stowell

Re: IMS Enterprise enrolment plugin v0.6

by Dan Stowell -
...here's a version which should work on the proposed new multiple-enrolment system for Moodle 1.6. If you're testing this, make sure you've got the MULTIENROL branch of Moodle 1.6, and not the standard development branch.
In reply to Dan Stowell

Re: IMS Enterprise enrolment plugin v0.6.1

by Dan Stowell -
Slightly updated version for the MULTIENROL branch. This one only differs in that the "coursealias" concept has been removed, so it should be ready for integration into the MULTIENROL branch with no headaches.

(Oh - I also removed the annoying extra files that my Mac insisted on including in the Zip file!)
In reply to Dan Stowell

Re: IMS Enterprise enrolment plugin v0.6.1

by Paolo Oprandi -
Hi Dan,

Good work... I am trying out 0.6.1 on Moodle 1.6, but it throws up the following error when I try to change enrolment method:

Fatal error: Class 'enrolment_plugin' not found in /.../admin/enrol.php on line 25

Any ideas? I haven't made any changes to the database - should I have?

Cheers,
Paolo
p.s. 0.6 on Moodle1.5.2 seems to be working fine so far.

In reply to Paolo Oprandi

Re: IMS Enterprise enrolment plugin v0.6.1

by Dan Stowell -
Paolo - Sorry for not finding this message earlier. On "plain" Moodle 1.6 you should use the version designed for 1.5 (!), but if you're using Moodle 1.6 on the MULTIENROL branch (which is supposed to be merged into the main branch some time soon) then you should use the other version.

I hope that makes sense...

In reply to Dan Stowell

Re: IMS Enterprise enrolment plugin v0.6

by Bhupinder Singh -

Hello Dan,

I am trying to download but the link does not work.

Can you syggest any other place or if you could upload once again???

Garry

In reply to Dan Stowell

Re: IMS Enterprise enrolment plugin v0.6 how to use it.

by poll yakadi -
I installed profiles_plugin 0.2 together with IMS Enterprise enrolment plugin v0.6 in moodle 1.5.3+.

I would like to know Is there documentation or more instructive help material on how to properly use your IMS Enterprise enrolment plugin?? Normal moodle users may not capable to deal with xml files.

Thank you.
In reply to poll yakadi

Re: IMS Enterprise enrolment plugin v0.6 how to use it.

by Dan Stowell -
pol - the attachments in this forum are not the latest version of the IMS Enterprise plugin. I'd recommend you download them directly from the following address:

http://download.moodle.org/modules/enrol_imsenterprise.zip

The current version includes plenty of help files, including a simple guide to writing IMS Enterprise XML files.
In reply to Dan Stowell

Re: IMS Enterprise enrolment plugin v0.6 how to use it.

by Paolo Oprandi -

Dan, your download won't work with the profiles_plugin though.  I will update the profiles_plugin to work with your Dan's version in the next couple  of weeks.

Poll, in the meantime I suggest you download Dan's module and take the help files, but do your testing with the profiles_plugin download (which includes the IMS Enterprise enrolment plugin). 

Dan, I will add functionality so the IMS Enterprise enrolment plugin can cope with group, user and membership updates (as well as inserts and deletes) and may make it work with XMLize (or at least make it parse out CDATA), or are there plans to do these already?

Paolo

In reply to Paolo Oprandi

Re: IMS Enterprise enrolment plugin v0.6 how to use it.

by Dan Stowell -
OK, fine. I have no plans at the moment to extend the functionality (certain things are going quite slowly over at this end, at the moment).

What do you mean about "xmlize"? I hope you aren't planning to use it to parse a whole IMS-E file! (You can only use xmlize for quite small chunks of data.)
In reply to Dan Stowell

Re: IMS Enterprise enrolment plugin v0.6 how to use it.

by Paolo Oprandi -
> I hope you aren't planning to use it to parse a whole IMS-E file!

Possibly not, but perhaps do some performance tests. I did notice the comment that it wasn't suitable for files over a MB. A test we did a while ago seemed to indicate it took approx 0.5 secs per course, but we need to do more thorough analysis and decide what length of time is acceptable. I supppose if parsing the XML file is quicker we should use that method.
In reply to Paolo Oprandi

Re: IMS Enterprise enrolment plugin v0.6 how to use it.

by Dan Stowell -
Since it loads a given structure completely into memory, it's bound to become very very slow if you ask it to parse a very large XML file all at once. You could use xmlize for smaller chunks of XML within the file, perhaps? Anyway, yes, try things out and test the performance.
In reply to Dan Stowell

Re: IMS Enterprise enrolment plugin v0.6 how to use it.

by Martín Langhoff -

A very efficient way of dealing with this would be to use the low-level XML functions in PHP4/5. Have you guys considered registering callbacks with xml_set_XX_handler() and then doing xml_parse()

In reply to Martín Langhoff

Re: IMS Enterprise enrolment plugin v0.6 how to use it.

by Paolo Oprandi -
Thanks Dan, Martin... This is very helpful... I will consider these options...
And what it will mean if all our Moodle servers are upgraded to PHP 5.
In reply to Dan Stowell

Re: IMS Enterprise enrolment plugin v0.6

by Aaron Spike -
Dan,

Thanks for your work. IMSE is a life saver! I used it to (almost) effortlessly import courses and enrolments for our summer session today.

I have a few comments/questions. Some of them could be turned into bug reports, feature requests or patches as you advise. I don't think I saw any of these on the forums previously. Please pardon me if I missed something.

  • Failure to create courses when the name includes an apostrophe
  • What is the correct way to cause users created by IMSE to use ldap authentication?
  • Would it be possible to disconnect the course's idnumber  from the short name?
  • After skimming the spec it would seem appropriate to implement the following mapping
    • mld_course.fullname -> /enterprise/group/description/long
    • mld_course.shortname -> /enterprise/group/description/short
    • mld_course.idnumber -> /enterprise/group/sourceid/id
    • mld_course.summary -> /enterprise/group/description/full

Now, I'm making the IMS XML file myself from our homegrown database system. I noticed that you have options to work with some spcific SISes. I don't know if the solutions to my problems would make it more difficult to serve users of those systems.
In reply to Aaron Spike

Re: IMS Enterprise enrolment plugin v0.6

by Paolo Oprandi -
Hi Aaron, Dan,

> Failure to create courses when the name includes an apostrophe

At Sussex we create the XML so it uses the CDATA tag and then parse out instances of the CDATA tag.

> What is the correct way to cause users created by IMSE to use ldap authentication?

We have developed default profile plugin so you can set mdl_user.auth to ldap.

mld_course.fullname -> /enterprise/group/description/long
mld_course.shortname -> /enterprise/group/description/short
mld_course.idnumber -> /enterprise/group/sourceid/id
mld_course.summary -> /enterprise/group/description/full

That is how we intend to use it at Sussex.
Perhaps these options should be in the configuration file? We have also added mdl_course.startdate, mdl_user_teachers.role and changed the module so it updates records. For more details see our blog.

http://www.sussex.ac.uk/its/minted

We will post what we have done on to the forum shortly. Dan, if you want take our changes and add it the IMS E module you are welcome.

This is great module and will be very important to the success of Moodle implementations in many big institutions.
In reply to Paolo Oprandi

Re: IMS Enterprise enrolment plugin v0.6

by Dan Stowell -
All these developments are very interesting. Looking forward to a day when I can sit down and look at all this code and integrate it nicely... without breaking our setup here!

A couple of comments:

1) Re updating fields: Perhaps we should take some inspiration from the LDAP auth config page - each field could have its own settings: can be updated just once or on every occasion, or perhaps "update if empty" etc. There are various fields which we don't always want to lock down to the version coming out of the SIS.

2) Re PHP5 and SimpleXML (mentioned on yr blog): remember that a lot of people are going to be stuck with PHP4 for a while yet!


In reply to Dan Stowell

Re: IMS Enterprise enrolment plugin v0.6

by Paolo Oprandi -
Hi Dan.
I have posted my changes to the IMS E plugin in the following thread. You probably want to take a look at it. I just remembered some Sussex-specific stuff in it, but that shouldn't effect it working. Hope you can incorporate our changes some time or make it configurable so it can work like this.
Cheers, Paolo
P.s yes I agree about the SimpleXML stuff - parsing it works and is quick so lets use it.

In reply to Aaron Spike

Re: IMS Enterprise enrolment plugin v0.6

by Dan Stowell -
Sorry, I haven't been on moodle.org for a while so I missed this thread. I hope Paolo's reply helped you. One additional comment:

> What is the correct way to cause users created by IMSE to use ldap authentication?

The plugin failed to take account of the config setting for preferred authentication. I fixed this about two days ago, so you may wish to update your copy. In the updated version, any new user accounts inherit the chosen authentication method.
In reply to Dan Stowell

Re: IMS Enterprise enrolment plugin v0.6

by Toni Mas -
Hello Dan!

In the last days, I've been designing a new functionality. It's a question of creating new courses from a course template.
For this, I'm used <extension> <template></template></extension>.

In this moments, I'm valuing to modify the functions scheduled_backup and restore, since it's thought for web and it write many html, thing that for the plugin we don't need.

Do you find new functionality interesting this for include in the plugin?
In reply to Toni Mas

Re: IMS Enterprise enrolment plugin v0.6

by Dan Stowell -
I'd strongly recommend you look at what Paolo and others at Sussex MINTED are doing - they're developing some course-templating stuff, from a different angle I think.

I don't want the IMS Enterprise plugin to get too bloated. It's only really for enrolments! Really, it should delegate things like course-creation-from-templates to some other Moodle lib, which I think is exactly the approach the Sussex team are taking.
In reply to Dan Stowell

Re: IMS Enterprise enrolment plugin v0.6

by Toni Mas -
Ok, Dan.

Thanks! I'm looking this project smile
In reply to Toni Mas

Re: IMS Enterprise enrolment - course creation from Template

by harsh desai -

Hi Toni,

I am looking into course creation using IMS Enrolments. I am looking for a way create a course from a template.

Can you guide me if you have had any success at your end ?

thanks in advance.

Harsh

In reply to harsh desai

Re: IMS Enterprise enrolment - course creation from Template

by Paolo Oprandi -

Hi Harsh and all,
The database enrolment plugin includes a way to create sites from template courses. I have been convinced that this model would also be useful for the IMS Enrolment plugin because of the number of requests I have had about it from Moodlers wanting the feature in the Minted projects I have been involved in. However, I am not convinced that the specific enrolment plug in, or the method of course creation, should detemine use of a template. I believe instead, it could be added to a centralised course profile, such as the one I developed in the Minted project. I am not intending to add this feature to the Minted course profile plugin in the near future as I have no time, but once it gets incorporated into the Moodle core (hopefully in 1.9) I believe this is where it should reside.
Cheers,
Paolo

In reply to Paolo Oprandi

Re: IMS Enterprise enrolment - course creation from Template

by Paolo Oprandi -
Hi again,
Its time to advertise about Minted IMS Enterprise enrolment plugin 2.1 for Moodle 1.7 and Moodle 1.8. This adds data mappings and configuration variables, which give the ability to update courses and users from ims-e data, do snapshot unenrol of users and configure name mappings from the ims-e format. For more information see here.
Cheers,
Paolo
In reply to Paolo Oprandi

Re: IMS Enterprise enrolment - use of Minted IMSE plugin 2.1

by harsh desai -

Hi Paolo,

I installed the Minted imsenterprise plugin 2.1 for Moodle 1.8. I used the example imsenterprise import file to create a new course and I got the below message. Am I missing some setting?

--------------------------------------------------------------------------------------

IMS Enterprise enrol cron process launched at Friday, 4 May 2007, 06:38 PM
Found file integration.xml
Failed to create course 932XX:SPR06/07 in Moodle
Process has completed. Time taken: 0 seconds.

thanks

harsh

In reply to harsh desai

Re: IMS Enterprise enrolment - use of Minted IMSE plugin 2.1

by Paolo Oprandi -
It depends on your IMS enrolment settings... It sounds like you might have left them set to not create new course or new category. Could you send me a screenshot of your settings?
thanks, Paolo
In reply to Paolo Oprandi

Re: IMS Enterprise enrolment - how to reach advanced settings using IMSE

by harsh desai -

Thanks paolo,

you were right, it works now.

I had one more question. Is it possible to use the Minted IMS enrolment plugin to include the advanced settings from Minted course profile setting plugin ?

I want to set the format of the course to a default topic while using IMS. If this is possible how do i find what tags to use to reach those settings (eg. format) ?

thanks

Harsh

In reply to harsh desai

Re: IMS Enterprise enrolment - how to reach advanced settings using IMSE

by Paolo Oprandi -
Hi Harsh,
I have a release of that for 1.7 on the website, and I will be releasing the 1.8 version in the next couple of days. I will let you know.
All the best,
Paolo
In reply to harsh desai

Re: IMS Enterprise enrolment - how to reach advanced settings using IMSE

by Paolo Oprandi -
Hi Harsh,

> Is it possible to use the Minted IMS enrolment plugin to include the advanced settings from Minted course profile setting plugin ?

I have released that here now. You may want to take the latest version of the Minted IMS Enterprise enrolment plugin and then copy over the course setting files (course/edit.php and course/edit_form.php).

Best wishes,
Paolo
In reply to Paolo Oprandi

Re: IMS Enterprise enrolment - how to reach advanced settings using IMSE

by harsh desai -

Hi Paolo,

I Really very much appreciate your work and quick response.

Thanks

Harsh

In reply to Paolo Oprandi

Re: IMS Enterprise enrolment - how to set course format with IMS

by harsh desai -
HI Paolo,

I installed the latest plugin. However I am still not clear how do I set the course format or the # or topics, when I am creating a course using IMS enrolment. What tags would I use to add the format setting for a course in my xml file ?

I can use the Minted course profile plugin but I would rather be able to control the format of the course in IMS, so not manual interaction is required.

thanks
Harsh
In reply to harsh desai

Re: IMS Enterprise enrolment - how to set course format with IMS

by Paolo Oprandi -
Hi Harsh,
This would in theory be possible, however, in most uses of this schema (IMS-E) we are transferring Student Record System (SRS) data into a local learning technology (in this case Moodle). In these cases, the schema would not know of Moodle or its specific formats and it is for this reason it would not be logical to add them to the IMS spec. You could use extensions to the spec, which you could then get the plugin interpret, but it is not something I am interested in doing.
Sorry,
Paolo