Meta Courses - how to add new students?

Meta Courses - how to add new students?

by Nikki Macfarlane -
Number of replies: 23
I have three courses at the moment and one Meta course that receives the students from these three courses. When I first set up the Meta course it correctly imported all the students from the three child courses.

I would now like to add a new child course to the meta course. However, it does not import the students. It only seems to import when it is first set up, or if a new student is added to the child course. However, if a new child course is added it will not automatically add the students already enrolled in that child course.

So, for example. Meta Course receives its students from Child Course A. If I then add Child Course B to the meta course, it does not import the students already in Child Course B. It will only add new students added to Child Course B after the Meta course has been set up.

What am I doing wrong?

Nikki
Average of ratings: -
In reply to Nikki Macfarlane

Re: Meta Courses - how to add new students?

by Penny Leach -
So you're saying that when you add the new child course the enrolments don't appear?

Can you tell me your database type? database version? exact moodle version?
In reply to Penny Leach

Re: Meta Courses - how to add new students?

by Nikki Macfarlane -
Thats right Penny. If the Meta course ALREADY exists, and then I want to add another child course to the existing Meta course, it does not pick up the students from the newly added course. It does pick up students that are added to the child course AFTER the child course wazs added to the Meta course. Gosh that sounds confusing.

I will try an example.

I have a Meta course already existing called Documents. It has a child course called Farming 1. The students from Farming 1 appear perfectly in the Meta course.

Now I add a new child course - Transport 1 - to the Meta course Documents. None of the students in Transport 1 are in Documents. The only way to get them to appear in Documents is to unenrol them from Transport 1 and then reenrol them again.

Now if I add a new student - Mary Smith - to Transport 1 she does appear in Documents.

I am using a sql database - not able to see the version although I am pretty sure it is the latest available. I am using Moodle 1.5.2.

Thnaks, Nikki
In reply to Nikki Macfarlane

Re: Meta Courses - how to add new students?

by Bob Gettings -
I ran into the same situation. The students already enrolled in a class did not show up in the meta course but the ones that I enrolled after attaching the course to a metacourse did appear in the meta course's participants list.

Using Moodle 1.5.2 + (2005060222) with MySql and PHP Version 4.3.2
In reply to Bob Gettings

Re: Meta Courses - how to add new students?

by Penny Leach -
> Using Moodle 1.5.2 + (2005060222) with MySql and PHP Version 4.3.2

What exact version of mysql?
In reply to Penny Leach

Re: Meta Courses - how to add new students?

by Penny Leach -
also! is there anything in the apache error log? mysql error log? these are really useful bits of information.

In reply to Penny Leach

Re: Meta Courses - how to add new students?

by Nikki Macfarlane -
How would I access these penny? I have looked at the logs on my admin panel but nothing there except problems students have had signing in where they iuse the incorrect password etc.

Nikki
In reply to Nikki Macfarlane

Re: Meta Courses - how to add new students?

by Penny Leach -
No, I'm talking about your webserver logs, and your database logs. If you don't have access to them on your server, you need to find out from your sysadmin.

But I know what the problem is now, so don't worry about it.
In reply to Nikki Macfarlane

Re: Meta Courses - how to add new students?

by Penny Leach -
OK. I understand that situation you are explaining.

> I am using a sql database - not able to see the version although I am pretty sure it is the latest available. I am using Moodle 1.5.2.

This is important. Is it mysql? or postgresql? You should be able to see that from $CFG->dbtype in your config.php.

Also, the version of the database is really important. I know you said latest available, but I really need to know. Can you maybe ask your sysadmin?

Also, exact version of moodle. If you go to /admin you should see at the bottom something like

Moodle 1.5.2+ (2005032400)

(I just made up that number in the brackets, but it will look sort of like that)

The difference between 1.5.2 and 1.5.2+ is also really important.
In reply to Penny Leach

Re: Meta Courses - how to add new students?

by Nikki Macfarlane -
No problem. I am using mysql version 3.23.58 and the version of moodle is Moodle 1.5.2 + (2005060222)
In reply to Nikki Macfarlane

Re: Meta Courses - how to add new students?

by Penny Leach -
Um.

You need to read this thread:

http://moodle.org/mod/forum/discuss.php?d=28998

In short, metacourses won't work with such an older version of mysql. I didn't realise that when I wrote it but it's come to light now that mysql doesn't support that sort of complicated JOIN.

Not sure what to do here - the option is a rewrite to process all the enrolments in php but it would be nightmarishly slow for large installations.

Martin D?


At any rate, please go to bugs.moodle.org and add a bug. If you can, assign it to me. (mjollnir)

Edit: I guess one option is add metacourse maintenance to cron.php and do it the slow way (in php) but I'm not sure that's such a good idea either really.
In reply to Penny Leach

Re: Meta Courses - how to add new students?

by Domenico Pontari -

Penny,

perhaps it's the same problem I reported in bug 2864, that I found in debug mode. Anyway that bug is assigned to Martin.

What do you think?

Fair

In reply to Domenico Pontari

Re: Meta Courses - how to add new students?

by Penny Leach -
Hmm. What mysql version are you using? I tested metacourses a lot on mysql 4. something and it certainly works in postgres.. I suspect your bug may be due to an old mysql as well, but I need to know the version number.
In reply to Penny Leach

Re: Meta Courses - how to add new students?

by Domenico Pontari -

Sorry, now I'm far from my office... I cannot verify my MySQL version. I'll be back on September.

Fair

In reply to Penny Leach

Re: Meta Courses - how to add new students?

by Jeff Graham -
Hi Penny,

We are experiencing the same problem here with MySQL version 4.0.25 using LDAP for enrolment. However, that is not the issue. It is a problem with  the function sync_metacourse().

Please see Bug 3943 for more info and a unified diff for moodlelib.php. The enrol field for mdl_user_students needs to be set to something else; otherwise the LDAP enrol code thinks it needs to unenroll students. I changed it to 'meta' and it seems to be working fine.

Please inform if this is an appropriate fix, because I may have overlooked something that I'm not aware of.

regards,
Jeff

In reply to Jeff Graham

Re: Meta Courses - how to add new students?

by Penny Leach -
Yup, you're absolutely right. I'll apply your fix in the morning.
In reply to Penny Leach

Re: Meta Courses - how to add new students?

by Penny Leach -
Jeff thanks for the great bug report. I have fixed that problem in latest stable & head as well smile

In reply to Penny Leach

Re: Meta Courses - how to add new students?

by Penny Leach -
Nikki - I have fixed metacourses in the latest 1.5.2+ build for mysql 3.23. Please upgrade next time there's a build, or to latest cvs, whichever you are using. Note that the builds are built once daily (I think) and there's a time delay between anonymous cvs and developer cvs.

Once you've upgraded, please confirm the fix works smile
In reply to Penny Leach

Re: Meta Courses - how to add new students?

by Nikki Macfarlane -
Thats great - thanks so much Penny. Where in cvs will I find the right files to download? I had a quick look but could not see anything relating to meta courses.

Nikki
In reply to Nikki Macfarlane

Re: Meta Courses - how to add new students?

by Penny Leach -
you need lib/moodlelib.php - either change into your cvs checkout and type

cvs up lib/moodlelib.php

or just cvs up to get the latest version...

Note: sf.net seems to be down again, hopefully cvs will be back up soon... it's been very erratic over the last few days.

It's probably something like

http://cvs.sourceforge.net/viewcvs.py/moodle/moodle/lib/moodlelib.php (guessing)
In reply to Penny Leach

Re: Meta Courses - how to add new students?

by Nikki Macfarlane -
This worked perfectly Penny - thank you so much. I had to take thechild courses out and put them back in again but then everything seemed to be right. Thanks again.

Nikki
In reply to Nikki Macfarlane

Re: Meta Courses - how to add new students?

by Brian Koontz -
OK, I must be missing something here. I've upgraded to the latest CVS version of 1.5...I'm running MySQL 4.X. Here's what I've done:

1. Set up a metacourse (call it "Master").
2. Set up a normal corse (call it "Normal").
3. In "Master," I've selected "Import Course Data" and chose "Normal."
4. Set up a test student, enroll in "Normal."

So is test student supposed to auto-magically appear in "Master" at this point? Just in case the update mechanism is tied to cron.php, I ran that as well. Still no students in "Master."

UPDATE:

OK, this might help someone who was confused as I was:  "Import Course Data" doesn't import enrollments.  You actually have to click on "Students" (yes, I know there are no students to speak of), which then allows you to select the courses you want to import enrollments from.

It would probably be more intuitive if the "Students" link was changed to something like "Import Enrollments".

--Brian