enrolling users to moodle groups

i have gibbon setup with moodle and i have set up the couses and class on gibbon but i was wondering can i enroll users in to the groups i have on moodle from gibbon please see the screeshots for clarification


so what i want to do is enroll users in to the moodle groups from gibbon as u can see i have setup classes

please let me know if this is even possible and if not what the best way to do it
thanks in advance

Hello! The Moodle module for Gibbon includes the following two views:

  • moodleCourse
  • moodleEnrolment

I don’t know much about Moodle, but a quick search has suggested that groups exist within courses. If so, they are the equivalent of Gibbon’s classes. If this is the case, then we ought to be able to add views for these.

Thanks,

Ross

so how can i enroll users in to the so called class of gibbon so they are enrolled in to the moodle groups:)

At the moment this is not supported, but if you can provide me with the columns you need to be made available to Moodle (both group and group membership) then I can try and amend the unit to expose these. Thanks!

Hi syamkerai,

Sorry for the delay in getting back to you. It has been rather busy coming to the end of term. One of our core team members, @leofreitas, has considerably more Moodle experience, and so I wonder if he might want to jump in and help on this one.

Hi Leo,

What do you think, does this interest you?

Thanks,

Ross

Hi Mind Builder,

Gibbon is a great project, and a blessing indeed to third world countries, I’m keen to the use of Moodle as a Module in Gibbon but am scared by the stress of having to start duplicating effort all over again of users, courses and learning areas within the same management system that house the same data of users. Moodle has a great feature that will be of a better relief to Gibbon user if the students and courses are exposed to their data in Gibbon, the Admin should please help us out as this will be a huge benefit to some of us whose countries are still under lockdown for COVID19. I also observed that Moodle has a new updated version that can be integrated into Gibbon.

Any urgent assistant will be greatly valued.

Kind regards’
Francis

Hi Francis,

I heard from Leo today that he is actually already working on this, and that’ll hell get in touch via this post in a few days. Thanks!

Ross

Hi syamkerai,

Sorry for the delay.

I’m working on this and we’re going to add some functions to the Moodle plugin. In the meantime, run this query following and generate a CSV file with the result.

select distinct gibbonperson.username AS username,
gibboncourse.nameShort AS course1,
gibboncourseclass.name AS group1
from (((
gibboncourse
join gibboncourseclass on((gibboncourseclass.gibbonCourseID = gibboncourse.gibbonCourseID)))
join gibboncourseclassperson
on((gibboncourseclassperson.gibbonCourseClassID = gibboncourseclass.gibbonCourseClassID)))
join gibbonperson on((gibboncourseclassperson.gibbonPersonID = gibbonperson.gibbonPersonID)))
where ((gibbonperson.status = ‘Full’) and (gibboncourse.gibbonSchoolYearID = (select gibbonschoolyear.gibbonSchoolYearID from gibbonschoolyear where (gibbonschoolyear.status = ‘Current’))));

After that upload this CSV to Moodle at (Dashboard> Site administration

Users> Accounts> Upload users). Attention to the field values (Upload type and Existing user details)

When the group does not exist, Moodle will create it. See this example:

Class in Gibbon


and Group In Moodle

Best regards

Hi syamkerai,

Sorry for the delay in getting back to you. It has been rather busy coming to the end of term. One of our core team members, @leofreitas, has considerably more Moodle experience, and so I wonder if he might want to jump in and help on this one.

Hi Leo,

What do you think, does this interest you?

Thanks,

Ross

Hi Francis, I think this document created by Ross (Connecting to Moodle :: Gibbon Docs) can help you.

Hi Mind Builder,

Gibbon is a great project, and a blessing indeed to third world countries, I’m keen to the use of Moodle as a Module in Gibbon but am scared by the stress of having to start duplicating effort all over again of users, courses and learning areas within the same management system that house the same data of users. Moodle has a great feature that will be of a better relief to Gibbon user if the students and courses are exposed to their data in Gibbon, the Admin should please help us out as this will be a huge benefit to some of us whose countries are still under lockdown for COVID19. I also observed that Moodle has a new updated version that can be integrated into Gibbon.

Any urgent assistant will be greatly valued.

Kind regards’
Francis

Hi Leo Freitas,
Thank you for your response.

select distinct `gibbonperson`.`username` AS `username`, `gibboncourse`.`nameShort` AS `course1`, `gibboncourseclass`.`name` AS `group1` from ((( `gibboncourse` join `gibboncourseclass` on((`gibboncourseclass`.`gibbonCourseID` = `gibboncourse`.`gibbonCourseID`))) join `gibboncourseclassperson` on((`gibboncourseclassperson`.`gibbonCourseClassID` = `gibboncourseclass`.`gibbonCourseClassID`))) join `gibbonperson` on((`gibboncourseclassperson`.`gibbonPersonID` = `gibbonperson`.`gibbonPersonID`))) where ((`gibbonperson`.`status` = 'Full') and (`gibboncourse`.`gibbonSchoolYearID` = (select `gibbonschoolyear`.`gibbonSchoolYearID` from `gibbonschoolyear` where (`gibbonschoolyear`.`status` = 'Current'))));

I ran the script on the Gibbon query builder and the result is

Your request failed due to a syntax error in the SQL query.

Please, I want to confirm if I will be running the script on Query Builder and if no, where do I run to generate the CSV file.

Kind Regards,
Francis.

Hi Francis,

I used MySQL workbench and the query builder also worked. You probably use case sensitive configuration.

Try like this, applying sensitive case:

select distinct gibbonPerson.username AS username,
gibbonCourse.nameShort AS course1,
gibbonCourseClass.name AS group1
from (((
gibbonCourse
join gibbonCourseClass on((gibbonCourseClass.gibbonCourseID = gibbonCourse.gibbonCourseID)))
join gibbonCourseClassPerson
on ((gibbonCourseClassPerson.gibbonCourseClassID = gibbonCourseClass.gibbonCourseClassID)))
join gibbonPerson on((gibbonCourseClassPerson.gibbonPersonID = gibbonPerson.gibbonPersonID)))
where ((gibbonPerson.status = ‘Full’)
and (gibbonCourse.gibbonSchoolYearID =
(select gibbonSchoolYear.gibbonSchoolYearID from gibbonSchoolYear where (gibbonSchoolYear.status = ‘Current’))));

Best Regards,
Leo

Hi,
Is required add the field auth with value=‘db’ after group1, otherwise Moodle changes the value of the auth field to manual and generates an error when updating.

`select distinct `gibbonPerson`.`username` AS `username`,
`gibbonCourse`.`nameShort` AS `course1`,
`gibbonCourseClass`.`name` AS `group1`,
'db' as 'auth'
from (((
 `gibbonCourse` 
join `gibbonCourseClass` on((`gibbonCourseClass`.`gibbonCourseID` = `gibbonCourse`.`gibbonCourseID`))) 
join `gibbonCourseClassPerson` 
on ((`gibbonCourseClassPerson`.`gibbonCourseClassID` = `gibbonCourseClass`.`gibbonCourseClassID`))) 
join `gibbonPerson` on((`gibbonCourseClassPerson`.`gibbonPersonID` = `gibbonPerson`.`gibbonPersonID`))) 
where ((`gibbonPerson`.`status` = 'Full') 
 and (`gibbonCourse`.`gibbonSchoolYearID` = 
   (select `gibbonSchoolYear`.`gibbonSchoolYearID` from `gibbonSchoolYear` where (`gibbonSchoolYear`.`status` = 'Current'))));`
```

@leofreitas, please can I get your email all effort to synchronize Moodle with my Gibbon is not working.

Best regard
Francis

Hi @Victoryland1997,
Whats is happen?

Firstly thanks for the SQL coding.
The fields required are short here for user upload in MOODLE. One needs to have in addition the firstname, lastname, email, password so as to work.
But when I added these other fields and produced the CSV file using phpMySQL and uploaded the file onto MOODLE it created the one user (just for testing) though I had to edit the password field.
When I try to login the new User in MOODLE, I am getting the login error as follows:-

Coding error detected, it must be fixed by a programmer: Invalid request to add enrol instance to frontpage.

Can someone assist to tell what should the problem and the solution.
Kind regards
Raphael