diff --git a/__manifest__.py b/__manifest__.py index 62fa61b..477e4dd 100644 --- a/__manifest__.py +++ b/__manifest__.py @@ -56,6 +56,7 @@ 'views/booking_questionnaire.xml', 'views/mailing_list.xml', 'views/ir.attachment.xml', + 'views/account_portal_templates.xml' ], diff --git a/controllers/kalachakra.py b/controllers/kalachakra.py index d5682b1..f685370 100644 --- a/controllers/kalachakra.py +++ b/controllers/kalachakra.py @@ -248,6 +248,7 @@ class kalachakra_event(WebsiteEventController,PaymentProcessing): user=request.env['res.users'].search([('id','=',int(userid))]) partner=request.env['res.partner'].sudo().search([('id','=',int(user.partner_id))]) request.session['partner_id']=int(partner.id) + request.session['status']=partner.member_status data['partner']=partner #évenement @@ -271,7 +272,8 @@ class kalachakra_event(WebsiteEventController,PaymentProcessing): membership_product=request.env['product.product'].sudo().search([('membership_product','=',True)],limit=1) if not membership_product: raise UserError(_('No membership product, please add one')) data['membership_amount']=membership_product.list_price - data['membership_and_participation_amount']=data['membership_amount']+data['participation_amount'] + data['standard_amount']=event.participation_standard_price + data['membership_and_participation_amount']=str(int(data['membership_amount'])+int(event.participation_member_price)) +' ('+str(int(data['membership_amount']))+'+'+str(int(event.participation_member_price))+')' #enregistrement de l'inscription si pas déjà inscrit : res=request.env['event.registration'].sudo().search([('event_id','=',int(request.session['event_id'])),('partner_id','=',int(request.session['partner_id']))],limit=1) @@ -314,6 +316,14 @@ class kalachakra_event(WebsiteEventController,PaymentProcessing): data={} request.session['kalachakra_transaction']='' + # acquirers = request.env['payment.acquirer'].sudo().search([ + # ('state', 'in', ['enabled', 'test']), + # ('company_id', '=', request.env.company.id)]) + # result='' + # for ac in acquirers: + # result=result+' '+ac.provider + # return result + if type=='participation': res=request.env['event.registration'].sudo().search([('id','=',request.session['res_id'])]) invoice_id=res.invoice_id @@ -406,6 +416,7 @@ class kalachakra_event(WebsiteEventController,PaymentProcessing): data['registred']=True country=request.env['res.country'].sudo().search([]) data['countries']=country + data['country_id']=int(partner.country_id) # si pas connecté else: @@ -420,7 +431,7 @@ class kalachakra_event(WebsiteEventController,PaymentProcessing): partner=request.env['res.partner'] partner.email='' partner.title=title_male.id - partner.country_id=country_france.id + partner.country_id=int(country_france.id) partner.firstname='' partner.name='' @@ -429,7 +440,7 @@ class kalachakra_event(WebsiteEventController,PaymentProcessing): partner.zip='' data['partner']=partner - + data['country_id']=int(country_france.id) return http.request.render('kalachakra.participation_form',data) @@ -470,8 +481,10 @@ class kalachakra_event(WebsiteEventController,PaymentProcessing): #si pas connecté on cherche le contact indiqué par l'email partner=request.env['res.partner'].sudo().search([('email','=',post.get('email'))],limit=1) + #si pas de contact on le créé dans la base if not partner: + vals={} vals['email']=post.get('email') vals['name']=post.get('name') @@ -483,7 +496,7 @@ class kalachakra_event(WebsiteEventController,PaymentProcessing): vals['country_id']=int(post.get('country_id')) vals['phone']=post.get('phone') partner=request.env['res.partner'].sudo().create(vals) - #création du compte utilisateur + user=request.env['res.users'].sudo().search([('email','=',partner.email)]) group_portal=request.env.ref('base.group_portal') if not user: @@ -511,6 +524,7 @@ class kalachakra_event(WebsiteEventController,PaymentProcessing): vals['country_id']=int(post.get('country_id')) vals['phone']=post.get('phone') partner.sudo().write(vals) + user=request.env['res.users'].sudo().search([('email','=',partner.email)]) group_portal=request.env.ref('base.group_portal') #création du compte utilisateur @@ -524,7 +538,7 @@ class kalachakra_event(WebsiteEventController,PaymentProcessing): }) user.sudo().action_reset_password() - #on vérifie qu'il n'est pas déjà adhérent si demande d'adhésion + #demande d'adhésion : on vérifie qu'il n'est pas déjà adhérent si demande d'adhésion if partner.member_status in ('member','super member') and request.session['kalachakra_transaction']=='membership': data={} data['email']==post.get('email') @@ -548,7 +562,7 @@ class kalachakra_event(WebsiteEventController,PaymentProcessing): ('company_id', '=', request.env.company.id), ('provider', '!=', 'transfer') - ])) + ],order="provider desc")) else: data['acquirers'] = list(request.env['payment.acquirer'].sudo().search([ ('state', 'in', ['enabled', 'test']), diff --git a/models/event.py b/models/event.py index 656c4bf..009ab5c 100644 --- a/models/event.py +++ b/models/event.py @@ -55,7 +55,8 @@ class KalachakraEvent(models.Model): recurring_event=fields.Boolean('Recurring event') recurring_event_newsletter_id=fields.Many2one('mailing.list',string='Recurring event Newsletter') online_event=fields.Boolean('Online event') - onthespot_event=fields.Boolean('Online event') + onthespot_event=fields.Boolean('On the spot event', default=True) + online_only=fields.Boolean('Online only') online_link=fields.Char('link') online_id=fields.Char('id') online_password=fields.Char('password',default='123456') @@ -97,10 +98,11 @@ class KalachakraEvent(models.Model): child_event.auto_confirm=self.auto_confirm child_event.seats_limited=self.seats_limited child_event.seats_max=self.seats_max - if vals.get('organizer_id'):child_event.organizer_id=self.organizer_id + child_event.user_id=self.user_id child_event.address_id=self.address_id - + + child_event.online_only=self.online_only child_event.online_event=self.online_event child_event.online_link=self.online_link child_event.online_id=self.online_id @@ -111,6 +113,11 @@ class KalachakraEvent(models.Model): child_event.tag_ids=self.tag_ids child_event.description=self.description child_event.is_published=self.is_published + child_event.participation_product_id=self.participation_product_id + child_event.participation_standard_price=self.participation_standard_price + child_event.participation_member_price=self.participation_member_price + child_event.participation_super_member_price=self.participation_super_member_price + #child_event.event_mail_ids=self.event_mail_ids @@ -136,8 +143,21 @@ class KalachakraEvent(models.Model): # if reg: # return str(e.date_begin) e.unlink() - - + + def remove_generated_calendar_events(self): + evt=self.env['event.event'].search([('parent_event_id','=', self.id)]) + if evt: + for e in evt: + if e.calendar_id and e.calendar_event_id: + e.remove_event_from_google_agenda() + + def generate_calendar_events(self): + self.remove_generated_calendar_events() + evt=self.env['event.event'].search([('parent_event_id','=', self.id)]) + if evt: + for e in evt: + e.add_event_to_google_agenda() + def generate_events(self): for rec in self: @@ -401,7 +421,7 @@ class KalachakraEvent(models.Model): self.calendar_id=tag.category_id.calendar_id if not calendar_find: raise Warning('operation cancelled: no calendar id find, please selected a label wih category with a calendar_id') - + def remove_event_from_google_agenda(self): credentials = service_account.Credentials.from_service_account_file(GOOGLE_ACCOUNT_FILE, scopes=SCOPES) diff --git a/models/event_registration.py b/models/event_registration.py index 4fdaec5..75c02e7 100644 --- a/models/event_registration.py +++ b/models/event_registration.py @@ -112,7 +112,7 @@ class EventRegistration(models.Model): #creation des écritures comptable name=event.participation_product_id.name if membership and status=='not member': - product_price=product_price+membership_product.list_price + product_price=event.participation_member_price+membership_product.list_price name=event.participation_product_id.name+"+"+membership_product.name vals={} account_credit=self.env['account.account'].search([('code','=','707100')]) diff --git a/static/js/kalachakra.js b/static/js/kalachakra.js index 49fd295..9481ae4 100644 --- a/static/js/kalachakra.js +++ b/static/js/kalachakra.js @@ -56,7 +56,7 @@ odoo.define('kalachakra.main', function (require) { //vérification montant if ($("#amount_id").val()==0) { - alert('please enter an amount') + alert('merci de saisir un montant') } else { diff --git a/views/account_portal_templates.xml b/views/account_portal_templates.xml new file mode 100644 index 0000000..6d7174b --- /dev/null +++ b/views/account_portal_templates.xml @@ -0,0 +1,12 @@ + + + + + + \ No newline at end of file diff --git a/views/booking_website_registration.xml b/views/booking_website_registration.xml index 84ed08f..0088b7e 100644 --- a/views/booking_website_registration.xml +++ b/views/booking_website_registration.xml @@ -206,8 +206,8 @@
- - + +