diff --git a/__manifest__.py b/__manifest__.py index e9cbcde..cfe54cc 100644 --- a/__manifest__.py +++ b/__manifest__.py @@ -66,6 +66,7 @@ 'views/website_templates.xml', 'views/media.xml', 'views/asset.xml', + 'views/payment_transaction.xml' #'views/payment_views.xml' diff --git a/controllers/booking.py b/controllers/booking.py index 42c3786..b989d13 100644 --- a/controllers/booking.py +++ b/controllers/booking.py @@ -196,6 +196,7 @@ class booking(WebsiteEventController,AuthSignupHome): i=i+1 #options + membership=False #suppression des options de la personne inscrite request.env['event.registration_option'].sudo().search([('event_registration_id','=',int(res.id))]).unlink() if request.session['nb_o']!=0 : @@ -208,6 +209,11 @@ class booking(WebsiteEventController,AuthSignupHome): vals3['booking_option_id']=int(request.session['options'][i]) vals3['event_registration_id']=res.id #ajout des options + + #Si option d'adhesion on prepare la creation de l'adhesion + membership_product=request.env['product.product'].sudo().search([('membership_product','=',True)],limit=1) + if membership_product.id==int(vals3['booking_option_id']):membership=True + res3=request.env['event.registration_option'].sudo().create(vals3) @@ -218,53 +224,22 @@ class booking(WebsiteEventController,AuthSignupHome): request.session['invoice_id']=invoice.id #ajout de l'adhésion - 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')) - vals={} - vals['invoice_id']=int(invoice.id) - vals['partner_id']=int(res.partner_id) - vals['product_id']=int(membership_product.id) - vals['start_date']=datetime.now() - vals['end_date']=datetime.now()+relativedelta(years=1) - vals['amount']=membership_product.list_price - membership=request.env['kalachakra.membership'].sudo().create(vals) + if membership: + 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')) + vals={} + vals['invoice_id']=int(invoice.id) + vals['partner_id']=int(res.partner_id) + vals['product_id']=int(membership_product.id) + vals['start_date']=datetime.now() + vals['end_date']=datetime.now()+relativedelta(years=1) + vals['amount']=membership_product.list_price + membership=request.env['kalachakra.membership'].sudo().create(vals) #redirection sur la page de paiement de la facture : url="/my/invoices/"+str(invoice.id)#+"?access_token="+str(invoice.access_token) return request.redirect(url) - # #création du devis pour la transaction - # order_id=request.env['event.registration'].sudo().action_event_registration_generate_order(res.id) - - # order=request.env['sale.order'].sudo().search([("id","=",int(order_id))]) - - # data={} - # data['submit_txt']='Pay now' - - # data['success_url']='/booking/payment/success' - # data['error_url']='/booking/payment/error' - # data['acquirers'] = list(request.env['payment.acquirer'].search([ - # ('state', 'in', ['enabled', 'test']), - # ('company_id', '=', request.env.company.id) - # ])) - - - - # userid=request.env.context.get('uid') - # 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) - - # payment_tokens = partner.payment_token_ids - # payment_tokens |= partner.commercial_partner_id.sudo().payment_token_ids - - # data['payment_tokens']=payment_tokens - # data['order_id']=order_id - - - # return http.request.render('kalachakra.booking_payment_choice_form',data) - - @http.route(['/booking/payment/transaction/', diff --git a/models/membership.py b/models/membership.py index c1dcc66..9c5738f 100644 --- a/models/membership.py +++ b/models/membership.py @@ -16,7 +16,7 @@ class kalachakra_membership(models.Model): ondelete='restrict' ) email=fields.Char(related='partner_id.email') - firstname=fields.Char(related='partner_id.firstname') + firstname=fields.Char(string='firstname', related='partner_id.firstname',translate=True) def _default_product_id(self): membership_product=self.env['product.product'].sudo().search([('membership_product','=',True)],limit=1) @@ -36,7 +36,7 @@ class kalachakra_membership(models.Model): #adhésion via isncription à l'événement elif rec.invoice_id: if rec.invoice_id.payment_state=='paid': - #raise Warning(rec.invoice_id.payment_state) + raise Warning(rec.invoice_id.payment_state) rec.payment_state='paid' rec.state='done' else:rec.payment_state='not paid' diff --git a/models/partner.py b/models/partner.py index 308b956..07becf1 100644 --- a/models/partner.py +++ b/models/partner.py @@ -60,7 +60,15 @@ class ResPartner(models.Model): ],'Origine', index=True) date_adhesion=fields.Char(string='Date adhesion', readonly=True) - + def _compute_end_date_membership(self): + + for rec in self: + rec.date_membership=False + partner_mb=self.env['kalachakra.membership'].search([('partner_id','=',int(rec.id))],order="end_date desc",limit=1) + if partner_mb: + rec.date_membership=partner_mb.end_date + + date_membership=fields.Date(string='membership end date', compute='_compute_end_date_membership',translate=True) @api.depends('super_member') def _compute_member_status(self): for rec in self: @@ -71,7 +79,7 @@ class ResPartner(models.Model): if rec.super_member: rec.member_status='super member' member_status=fields.Selection(string='member status',selection=[('not member','Not member'),('member','Member'),('super member','Super member')] - ,compute="_compute_member_status",store=True) + ,compute="_compute_member_status",store=True,default='not member') super_member=fields.Boolean("Super member") diff --git a/views/booking_event.xml b/views/booking_event.xml index 1f8c8b0..5f3373f 100644 --- a/views/booking_event.xml +++ b/views/booking_event.xml @@ -152,4 +152,21 @@ parent="booking_title_menu" groups="event.group_event_user" sequence="2"/> --> + + Booking events + event.event + tree,form,pivot + {'default_booking_event': True, 'booking_event_view': True} + [('booking_event', '=', True)] + + + + + + + + \ No newline at end of file diff --git a/views/booking_event_registration.xml b/views/booking_event_registration.xml index 46608d5..bac1e74 100644 --- a/views/booking_event_registration.xml +++ b/views/booking_event_registration.xml @@ -234,13 +234,15 @@ - - - - + + + + + - - + + + diff --git a/views/event.xml b/views/event.xml index 0c00ec2..ef623cb 100644 --- a/views/event.xml +++ b/views/event.xml @@ -28,18 +28,18 @@ - + - - - - - - - - - - + + + + + + + + + + @@ -47,16 +47,66 @@ + + context.get('booking_event_view') + + + context.get('booking_event_view') + - + + event.registration + Attendees + tree,kanban,form,calendar,graph + [('event_id', '=', active_id)] + {'default_event_id': active_id,'booking_view':True} + +

+ Create an Attendee +

+
+
+ + event.registration + Attendees + kanban,tree,form,calendar,graph + [('event_id', '=', active_id)] + {'default_event_id': active_id,'booking_view':True} + +

+ Create an Attendee +

+
+
event.view.form.inherit.kalachakra event.event - - + +
+ +
+
+ +
+
+