Browse Source

corrections

dev-rcn
root 3 years ago
parent
commit
0c17526f2a
8 changed files with 128 additions and 67 deletions
  1. +1
    -0
      __manifest__.py
  2. +17
    -42
      controllers/booking.py
  3. +2
    -2
      models/membership.py
  4. +10
    -2
      models/partner.py
  5. +17
    -0
      views/booking_event.xml
  6. +8
    -6
      views/booking_event_registration.xml
  7. +65
    -14
      views/event.xml
  8. +8
    -1
      views/partner.xml

+ 1
- 0
__manifest__.py View File

@ -66,6 +66,7 @@
'views/website_templates.xml',
'views/media.xml',
'views/asset.xml',
'views/payment_transaction.xml'
#'views/payment_views.xml'


+ 17
- 42
controllers/booking.py View File

@ -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/',


+ 2
- 2
models/membership.py View File

@ -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'


+ 10
- 2
models/partner.py View File

@ -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")


+ 17
- 0
views/booking_event.xml View File

@ -152,4 +152,21 @@ parent="booking_title_menu" groups="event.group_event_user" sequence="2"/> -->
<!-- <menuitem id="booking_membership_product__menu" action="membership_product_action"
parent="booking_title_menu" groups="event.group_event_user" sequence="3"/> -->
<record model="ir.actions.act_window" id="booking_event_action">
<field name="name">Booking events</field>
<field name="res_model">event.event</field>
<field name="view_mode">tree,form,pivot</field>
<field name="context">{'default_booking_event': True, 'booking_event_view': True}</field>
<field name="domain">[('booking_event', '=', True)]</field>
</record>
<menuitem id="booking_event_top_menu" sequence="20"
name="Booking Events" web_icon="event,static/description/icon.png"/>
<menuitem id="booking_event_title_menu" parent="booking_event_top_menu"
sequence="15" name="booking events"/>
<menuitem id="booking_event_menu" action="booking_event_action"
parent="booking_event_title_menu" sequence="10"/>
</odoo>

+ 8
- 6
views/booking_event_registration.xml View File

@ -234,13 +234,15 @@
<field name="arch" type="xml">
<xpath expr="//field[@name='event_ticket_id']" position="replace">
<field name="room_id" />
<field name="city" />
<field name="train_arrival_date" widget="date" />
<field name="train_arrival_time" widget="float_time" />
<field name="online" invisible="context.get('booking_view')==True"/>
<field name="room_id" invisible="context.get('booking_view')==False"/>
<field name="city" invisible="context.get('booking_view')==False"/>
<field name="train_arrival_date" invisible="context.get('booking_view')==False" widget="date"/>
<field name="train_arrival_time" invisible="context.get('booking_view')==False" widget="float_time"/>
<field name="payment_status"/>
<field name="individual_room"/>
<field name="image_permission"/>
<field name="individual_room" invisible="context.get('booking_view')==False" />
<field name="image_permission" invisible="context.get('booking_view')==False"/>


+ 65
- 14
views/event.xml View File

@ -28,18 +28,18 @@
</xpath>
<xpath expr="//field[@name='seats_used']" position="after">
<field string="calendar event id" name="calendar_event_id"/>
<field string="calendar event id" name="calendar_event_id" invisible="context.get('booking_event_view')"/>
<field name="online_event"/>
<field name="onthespot_event"/>
<field name="free_participation"/>
<field name="participation_product_id"/>
<field name="recurring_event"/>
<field name="recurring_event_newsletter_id"/>
<field name="find_out_more_link"/>
<field name="online_link"/>
<field name="online_id"/>
<field name="online_password"/>
<field name="online_event" invisible="context.get('booking_event_view')"/>
<field name="onthespot_event" invisible="context.get('booking_event_view')"/>
<field name="free_participation" invisible="context.get('booking_event_view')"/>
<field name="participation_product_id" invisible="context.get('booking_event_view')"/>
<field name="recurring_event" invisible="context.get('booking_event_view')"/>
<field name="recurring_event_newsletter_id" invisible="context.get('booking_event_view')"/>
<field name="find_out_more_link" invisible="context.get('booking_event_view')"/>
<field name="online_link" invisible="context.get('booking_event_view')"/>
<field name="online_id" invisible="context.get('booking_event_view')"/>
<field name="online_password" invisible="context.get('booking_event_view')"/>
</xpath>
<xpath expr="//field[@name='date_begin']" position="replace">
<field name="date_begin"/>
@ -47,16 +47,66 @@
<xpath expr="//field[@name='date_end']" position="replace">
<field name="date_end"/>
</xpath>
<xpath expr="//field[@name='address_id']" position="attributes">
<attribute name="invisible">context.get('booking_event_view')</attribute>
</xpath>
<xpath expr="//field[@name='user_id']" position="attributes">
<attribute name="invisible">context.get('booking_event_view')</attribute>
</xpath>
</field>
</record>
<record id="act_event_registration_from_event" model="ir.actions.act_window">
<field name="res_model">event.registration</field>
<field name="name">Attendees</field>
<field name="view_mode">tree,kanban,form,calendar,graph</field>
<field name="domain">[('event_id', '=', active_id)]</field>
<field name="context">{'default_event_id': active_id,'booking_view':True}</field>
<field name="help" type="html">
<p class="o_view_nocontent_smiling_face">
Create an Attendee
</p>
</field>
</record>
<record id="act_booking_event_registration_from_event" model="ir.actions.act_window">
<field name="res_model">event.registration</field>
<field name="name">Attendees</field>
<field name="view_mode">kanban,tree,form,calendar,graph</field>
<field name="domain">[('event_id', '=', active_id)]</field>
<field name="context">{'default_event_id': active_id,'booking_view':True}</field>
<field name="help" type="html">
<p class="o_view_nocontent_smiling_face">
Create an Attendee
</p>
</field>
</record>
<record id="kalachakra_event_view_form" model="ir.ui.view">
<field name="name">event.view.form.inherit.kalachakra</field>
<field name="model">event.event</field>
<field name="inherit_id" ref="event.view_event_form" />
<field name="arch" type="xml">
<xpath expr="//field[@name='stage_id']" position="before">
<xpath expr="//div[@name='button_box']" position="replace">
<div class="oe_button_box" name="button_box" attrs="{'invisible':[('booking_event','=',False)]}" groups="base.group_user">
<button name="%(act_booking_event_registration_from_event)d"
type="action"
context="{'search_default_expected': True,'booking_view':True}"
class="oe_stat_button"
icon="fa-users"
help="Total Registrations for this Event">
<field name="seats_expected" widget="statinfo" string="Attendees"/>
</button>
</div>
<div class="oe_button_box" name="button_box" attrs="{'invisible':[('booking_event','=',True)]}" groups="base.group_user">
<button name="%(kalachakra.act_event_registration_from_event)d"
type="action"
context="{'search_default_expected': True,'booking_view':False}"
class="oe_stat_button"
icon="fa-users"
help="Total Registrations for this Event">
<field name="seats_expected" widget="statinfo" string="Attendees"/>
</button>
</div>
</xpath>
<xpath expr="//field[@name='stage_id']" position="before">
<button name="add_event_to_google_agenda" type="object" attrs="{'invisible':[('calendar_event_id','!=',False)]}" string="Add event to google agenda" class="btn btn-warning"/>
<button name="remove_event_from_google_agenda" attrs="{'invisible':[('calendar_event_id','=',False)]}" type="object" string="Remove event from google agenda" class="btn btn-danger"/>
<button name="generate_calendar_events" attrs="{'invisible':[('generated_events','=',False)]}" type="object" string="Add all event to google agenda" class="btn btn-primary"/>
@ -168,4 +218,5 @@
</field>
</record>
</odoo>

+ 8
- 1
views/partner.xml View File

@ -23,10 +23,16 @@
<xpath expr="//field[@name='name']" position="after">
<field name="member_status" widget='label_selection'/>
<field name="date_membership"/>
<field name="super_member"/>
</xpath>
<xpath expr="//field[@name='title']" position="replace">
<field name="title" options="{&quot;no_open&quot;: True}" placeholder="" attrs="{'invisible': [('is_company', '=', True)]}"/>
</xpath>
<xpath expr="//field[@name='firstname']" position="replace">
<field name="firstname" attrs="{'invisible':[('is_company','=',True)]}"/>
</xpath>
</field>
@ -42,6 +48,7 @@
<xpath expr="//field[@name='email']" position="after">
<field name="member_status"/>
</xpath>
</field>


Loading…
Cancel
Save