diff --git a/addons/event_moodle/event_moodle.py b/addons/event_moodle/event_moodle.py index 01dea24817c..a4007714d77 100644 --- a/addons/event_moodle/event_moodle.py +++ b/addons/event_moodle/event_moodle.py @@ -35,35 +35,39 @@ class event_moodle(osv.osv): } def configure_moodle(self,cr,uid,ids,context=None): - self.write(cr,uid,ids,{'id':1}) - - def make_url(self,cr,uid,ids,context=None): + self.write(cr,uid,[0],{'id':1}) + #save information that you need to create the url + def make_url(): config_moodle = self.browse(cr, uid, ids, context=context) - if config_moodle.moodle_username and config_moodle.moodle_password: - url='http://'+config_moodle.serveur_moodle+'/moodle/webservice/xmlrpc/simpleserver.php?wsusername='+config_moodle.moodle_username+'&wspassword='+config_moodle.moodle_password - if config_moodle.moodle_token: - url='http://'+config_moodle.serveur_moodle+'/moodle/webservice/xmlrpc/server.php?wstoken='+config_moodle.moodle_token + if config_moodle[0].moodle_username and config_moodle[0].moodle_password: + url='http://'+config_moodle[0].serveur_moodle+'/moodle/webservice/xmlrpc/simpleserver.php?wsusername='+config_moodle[0].moodle_username+'&wspassword='+config_moodle[0].moodle_password + #connexion with password and username + if config_moodle[0].moodle_token: + url='http://'+config_moodle[0].serveur_moodle+'/moodle/webservice/xmlrpc/server.php?wstoken='+config_moodle[0].moodle_token + #connexion with token return url - - def create_moodle_user(self,cr,uid,ids,dic_user): + #create a good url for xmlrpc connect + def create_moodle_user(self,dic_user): """ user is a list of dictionaries with every required datas for moodle """ - sock = xmlrpclib.ServerProxy(self.make_url()) + + sock = xmlrpclib.ServerProxy('http://127.0.0.1/moodle/webservice/xmlrpc/server.php?wstoken=3ecfb383330044a884b1ee86e0872b47') #connect to moodle return sock.core_user_create_users(dic_user) #add user un moodle #return list of id and username - def create_moodle_courses(courses): - sock = xmlrpclib.ServerProxy(self.make_url()) + def create_moodle_courses(self,courses): + + sock = xmlrpclib.ServerProxy('http://127.0.0.1/moodle/webservice/xmlrpc/server.php?wstoken=3ecfb383330044a884b1ee86e0872b47') #connect to moodle - sock.core_course_create_courses(courses) + return sock.core_course_create_courses(courses) #add course un moodle - def moodle_enrolled(enrolled): - sock = xmlrpclib.ServerProxy(self.Get_url()) + def moodle_enrolled(self,enrolled): + sock = xmlrpclib.ServerProxy('http://127.0.0.1/moodle/webservice/xmlrpc/server.php?wstoken=3ecfb383330044a884b1ee86e0872b47') #connect to moodle sock.enrol_manual_enrol_users(enrolled) #add enrolled un moodle @@ -74,52 +78,52 @@ event_moodle() class event_event(osv.osv): _inherit = "event.event" - - def button_confirm(self, cr, uid, ids, context=None): - event = self.browse(cr, uid, ids, context=context) - name_event = event[0].name - dic_courses= [{'fullname' :name_event,'shortname' :'','categoryid':0}] - event_moodle.create_moodle_courses() - return super(event_event, self).button_confirm(cr, uid, ids, context) - -event_event() - - -class event_registration(osv.osv): - - _inherit = "event.registration" - def create_password(): pop = string.ascii_letters + string.digits k=200 while k > len(pop): pop *= 2 passwd = ''.join(sample(pop, k)) - return passwd - trhrthrthtrh - def check_confirm(self, cr, uid, ids, context=None): - register = self.browse(cr, uid, ids, context=context) - users=[{ - 'username' : register[0].name, - 'password' : create_password(), - 'firstname' : register[0].name, - 'lastname': '', - 'email': register[0].email - }] - user=event_moodle.create_moodle_user(users) -#to do get id of the new user + return passw + # create a random password + + def button_confirm(self, cr, uid, ids, context=None): + list_users=[] + event = self.browse(cr, uid, ids, context=context) + name_event = event[0].name + dic_courses= [{'fullname' :name_event,'shortname' :'','categoryid':1}] + #create a dict course + moodle_pool = self.pool.get('event.moodle') + response_courses = moodle_pool.create_moodle_courses(dic_courses) + + #create a course in moodle + for registration in event[0].registration_ids: + name_user = "moodle_"+registration.name+ "%d" % (registration.id,) #give an user name + # to do it doesn t work if you reset the event + dic_users={ + 'username' : name_user, + 'password' : self.create_password(), + 'firstname' : registration.name , + 'lastname': registration.name, + 'email': registration.email + } + #create a dictionary for an user + list_users.append(dic_users) + #add the dictionary in a list + response_user = moodle_pool.create_moodle_user(list_users) + #create users in moodle + enrolled =[] + for dic in response_user: + enrolled=[{ + 'roleid' :'1', + 'userid' :dic['id'], + 'courseid' :response_courses[0]['id'] + }] + moodle_pool.moodle_enrolled(enrolled) + #link a course with users + return super(event_event, self).button_confirm(cr, uid, ids, context) + +event_event() + - enrolled=[{ - 'roleid' :'', - 'userid' :'', - 'courseid' :'' - }] - event_moodle.moodle_enrolled(enrolled) - print ">>>>>>>>>>>>>>>>>>>>>>>>>>>>" - print ">>>>>>>>>>>>>>>>>>>>>>>>>>>>" - print ">>>>>>>>>>>>>>>>>>>>>>>>>>>>" - print ">>>>>>>>>>>>>>>>>>>>>>>>>>>>" - print ">>>>>>>>>>>>>>>>>>>>>>>>>>>>" - return super(event_registration, self).check_confirm(cr, uid, ids, context) -event_registration()