From 97e7843377386a21ce5150fc87b28d0d29e74dfe Mon Sep 17 00:00:00 2001 From: MVA Date: Tue, 28 Feb 2012 13:01:34 +0100 Subject: [PATCH] [FIX] split the button_confirm and registration_open function in event and the super function in event_moodle bzr revid: mva@openerp.com-20120228120134-k38kkxj2d5ylrw53 --- addons/event/event.py | 48 ++++++++++++++++++----------- addons/event_moodle/event_moodle.py | 10 +++--- 2 files changed, 34 insertions(+), 24 deletions(-) diff --git a/addons/event/event.py b/addons/event/event.py index e83f56cb5bb..1d977ff6ca3 100644 --- a/addons/event/event.py +++ b/addons/event/event.py @@ -103,25 +103,31 @@ class event_event(osv.osv): def button_done(self, cr, uid, ids, context=None): return self.write(cr, uid, ids, {'state': 'done'}, context=context) + def confirmation_event(self,cr,uid,ids,context=None): + register_pool = self.pool.get('event.registration') + for self.event in self.browse(cr, uid, ids, context=context): + total_confirmed = self.event.register_current + if total_confirmed < self.event.register_min or total_confirmed > self.event.register_max and self.event.register_max!=0: + raise osv.except_osv(_('Error!'),_("The total of confirmed registration for the event '%s' does not meet the expected minimum/maximum. You should maybe reconsider those limits before going further") % (self.event.name)) + + def confirmation_email(self,cr,uid,ids,context=None): + if self.event.email_confirmation_id: + #send reminder that will confirm the event for all the people that were already confirmed + reg_ids = register_pool.search(cr, uid, [ + ('event_id', '=', self.event.id), + ('state', 'not in', ['draft', 'cancel'])], context=context) + register_pool.mail_user_confirm(cr, uid, reg_ids) + return self.write(cr, uid, ids, {'state': 'confirm'}, context=context) + def button_confirm(self, cr, uid, ids, context=None): """ Confirm Event and send confirmation email to all register peoples """ + #renforcing method : create a list of ids if isinstance(ids, (int, long)): ids = [ids] - #renforcing method : create a list of ids - register_pool = self.pool.get('event.registration') - for event in self.browse(cr, uid, ids, context=context): - total_confirmed = event.register_current - if total_confirmed < event.register_min or total_confirmed > event.register_max and event.register_max!=0: - raise osv.except_osv(_('Error!'),_("The total of confirmed registration for the event '%s' does not meet the expected minimum/maximum. You should maybe reconsider those limits before going further") % (event.name)) - if event.email_confirmation_id: - #send reminder that will confirm the event for all the people that were already confirmed - reg_ids = register_pool.search(cr, uid, [ - ('event_id', '=', event.id), - ('state', 'not in', ['draft', 'cancel'])], context=context) - register_pool.mail_user_confirm(cr, uid, reg_ids) - return self.write(cr, uid, ids, {'state': 'confirm'}, context=context) - + self.confirmation_event(cr,uid,ids,context=context) + self.confirmation_email(cr,uid,ids,context=context) + return True def _get_register(self, cr, uid, ids, fields, args, context=None): """Get Confirm or uncofirm register value. @param ids: List of Event registration type's id @@ -253,14 +259,20 @@ class event_registration(osv.osv): def do_draft(self, cr, uid, ids, context=None): return self.write(cr, uid, ids, {'state': 'draft'}, context=context) + + def confirmation_registration(self, cr, uid, ids, context=None): + res = self.write(cr, uid, ids, {'state': 'open'}, context=context) + self.message_append(cr, uid, ids,_('State set to...'),body_text= _('Open')) + return res + + def email_registration(self, cr, uid, ids, context=None): + self.mail_user(cr, uid, ids) def registration_open(self, cr, uid, ids, context=None): """ Open Registration """ - res = self.write(cr, uid, ids, {'state': 'open'}, context=context) - self.mail_user(cr, uid, ids) - self.message_append(cr, uid, ids,_('State set to...'),body_text= _('Open')) - return res + self.confirmation_registration(cr, uid, ids, context=context) + self.email_registration(cr, uid, ids, context=context) def button_reg_close(self, cr, uid, ids, context=None): """ Close Registration diff --git a/addons/event_moodle/event_moodle.py b/addons/event_moodle/event_moodle.py index 13e6c8aa773..f7d07ac86e9 100644 --- a/addons/event_moodle/event_moodle.py +++ b/addons/event_moodle/event_moodle.py @@ -157,12 +157,11 @@ class event_event(osv.osv): 'moodle_id': fields.integer('Moodle ID', help='The identifier of this event in Moodle'), } - def button_confirm(self, cr, uid, ids, context=None): + def confirmation_event(self, cr, uid, ids, context=None): """ create moodle courses ,users and match them when an event is confirmed if the event_registration is not confirmed then it doesn t nothing """ - res =super(event_event, self).button_confirm(cr, uid, ids, context) moodle_pool = self.pool.get('event.moodle.config.wiz') moodle_config_wiz_id = moodle_pool.find(cr, uid, context=context) list_users=[] @@ -217,7 +216,7 @@ class event_event(osv.osv): 'courseid' :response_courses[0]['id'] }) moodle_pool.moodle_enrolled(cr, uid, moodle_config_wiz_id, enrolled, context=context) - return res + return super(event_event, self).confirmation_event(cr, uid, ids, context) event_event() @@ -231,11 +230,10 @@ class event_registration(osv.osv): 'moodle_uid': fields.integer('Moodle User ID'), } - def registration_open(self, cr, uid, ids, context=None): + def confirmation_registration(self, cr, uid, ids, context=None): """ create a user and match to a course if the event is already confirmed """ - res = super(event_registration, self).registration_open(cr, uid, ids, context=context) moodle_pool = self.pool.get('event.moodle.config.wiz') moodle_config_wiz_id = moodle_pool.find(cr, uid, context=context) for register in self.browse(cr, uid, ids, context=context): @@ -265,7 +263,7 @@ class event_registration(osv.osv): 'courseid': register.event_id.moodle_id }] moodle_pool.moodle_enrolled(cr, uid, moodle_config_wiz_id, enrolled, context=context) - return res + return super(event_registration, self).confirmation_registration(cr, uid, ids, context=context) def onchange_moodle_name(self, cr, uid, ids, moodle_username, context=None): """