Browse Source

corrections

dev-rcn
root 3 years ago
parent
commit
e7c7ea40bf
10 changed files with 138 additions and 75 deletions
  1. +13
    -4
      controllers/booking.py
  2. +0
    -1
      controllers/kalachakra.py
  3. +7
    -5
      models/booking_event_registration.py
  4. +5
    -4
      static/js/booking.js
  5. +4
    -0
      static/src/css/kalachakra.css
  6. +12
    -12
      views/booking_event.xml
  7. +1
    -0
      views/booking_event_templates_list.xml
  8. +19
    -1
      views/booking_room.xml
  9. +39
    -30
      views/booking_website_registration.xml
  10. +38
    -18
      views/event_templates_list.xml

+ 13
- 4
controllers/booking.py View File

@ -45,6 +45,7 @@ class booking(WebsiteEventController,AuthSignupHome):
if data['status']=='not member':data['status']='non adhérent'
if data['status']=='member':data['status']='adhérent'
if data['status']=='super member':data['status']='adhérent de soutien'
#prix
data['price']=''
if partner.member_status=='not member':data['price']=event.booking_price
@ -52,14 +53,15 @@ class booking(WebsiteEventController,AuthSignupHome):
if partner.member_status=='super member':data['price']=event.booking_super_member_price
#membership product
membership_product=request.env['event.membership_product'].sudo().search([])
#membership_product=request.env['event.membership_product'].sudo().search([])
membership_product=request.env['product.product'].sudo().search([('membership_product','=',True)],limit=1)
if not membership_product: raise Warning('no membership product find')
data['membership_product']=membership_product
#options
data['options']=[]
for opt in event.booking_option_ids:
if opt.booking_option_id==membership_product.membership_product_id:
if opt.booking_option_id==membership_product.id:
if partner.member_status!='member' and partner.member_status!='super member':data['options'].append(opt)
else:data['options'].append(opt)
@ -70,7 +72,7 @@ class booking(WebsiteEventController,AuthSignupHome):
data['questions']=event.question_ids
return http.request.render('kalachakra.booking_registration_options_form',data)
@http.route(['/booking/registration/questionnaire'], type='http', auth='user', website=True, sitemap=False,csrf=False)
@ -78,6 +80,13 @@ class booking(WebsiteEventController,AuthSignupHome):
vals={}
data={}
#gestion du retour page précédente depuis page de paiement : on supprime les éléments générés ( don , adhésion)
if not post.get('nb_o'):
invoice=request.env['account.move'].sudo().search([("id","=",int(request.session['invoice_id']))])
invoice.state='draft'
invoice.unlink()
return request.redirect('/booking/registration/options?event_id='+str(request.session['event_id']))
vals['event_id']=post.get('event_id')
vals['name']=post.get('name')
vals['phone']=post.get('phone')
@ -183,7 +192,7 @@ class booking(WebsiteEventController,AuthSignupHome):
i=i+1
invoice=request.env['event.registration'].sudo().action_event_registration_generate_invoice(request.session['res_id'])
request.session['invoice_id']=invoice.id
#redirection sur la page de paiement de la facture :
url="/my/invoices/"+str(invoice.id)#+"?access_token="+str(invoice.access_token)


+ 0
- 1
controllers/kalachakra.py View File

@ -9,7 +9,6 @@ from dateutil.relativedelta import relativedelta
from odoo.exceptions import UserError
from odoo.addons.website_event.controllers.main import WebsiteEventController
from odoo.addons.payment.controllers.portal import PaymentProcessing
#from odoo.addons.auth_signup.controllers.main import AuthSignupHome
from odoo.addons.sale.controllers.portal import CustomerPortal
from odoo.addons.portal.controllers.portal import pager as portal_pager, get_records_pager
import json


+ 7
- 5
models/booking_event_registration.py View File

@ -81,11 +81,11 @@ class EventRegistration(models.Model):
balance_invoice_state=fields.Selection(related='balance_invoice_id.payment_state')
invoice_id=fields.Many2one('account.move', readonly=True)
invoice_id=fields.Many2one('account.move', readonly=True, ondelete="cascade")
#invoice_state=fields.Selection(related='invoice_id.state')
down_payment_invoice_id=fields.Many2one('account.move')
down_payment_invoice_id=fields.Many2one('account.move', ondelete="cascade")
#down_payment_invoice_state=fields.Selection(related='down_payment_order_id.state')
balance_invoice_id=fields.Many2one('account.move')
balance_invoice_id=fields.Many2one('account.move' ,ondelete="cascade")
#balance_invoice_state=fields.Selection(related='balance_order_id.state')
@ -390,7 +390,9 @@ class EventRegistration(models.Model):
#Prix à appliquer au produit si paiement de l'adhésion
membership_option=False
membership_product=self.env['event.membership_product'].search([])
#membership_product=self.env['event.membership_product'].search([])
membership_product=self.env['product.product'].sudo().search([('membership_product','=',True)],limit=1)
if membership_product:
if selected_registrant_options:
for opt in selected_registrant_options:
@ -471,7 +473,7 @@ class EventRegistration(models.Model):
prd=self.env['product.product'].search([('id','=',int(option.booking_option_id.id))])
#prix à appliquer aux options en fonction du statut ou de la présence de l'option d'adhesion
event_option=self.env['booking.option'].search(['&',('event_id','=',int(reg.event_id)),('booking_option_id','=',int(option.booking_option_id.id))])
event_option=self.env['booking.option'].search(['&',('event_id','=',int(reg.event_id)),('booking_option_id','=',int(option.booking_option_id.id))],limit=1)
if event_option:
if status=="super member":price_unit=event_option.booking_option_super_member_price


+ 5
- 4
static/js/booking.js View File

@ -59,20 +59,20 @@ odoo.define('booking.main', function (require) {
//recalcul du prix total
if ($("#status2").val()=='not member')
{
$("#your_status").text('not member')
$("#your_status").text('non adhérent')
$("#price_of_the_stay").text($("#booking_price").val()+' €')
$("#total_price").val($("#booking_price").val())
}
if ($("#status2").val()=='member')
{
$("#your_status").text('member')
$("#your_status").text('adhérent')
$("#price_of_the_stay").text($("#booking_member_price").val()+' €')
$("#total_price").val($("#booking_member_price").val())
}
if ($("#status2").val()=='super member')
{
$("#your_status").text('super member')
$("#your_status").text('Adhérent de soutien')
$("#price_of_the_stay").text($("#booking_super_member_price").val()+' €')
$("#total_price").val($("#booking_super_member_price").val())
}
@ -92,7 +92,8 @@ odoo.define('booking.main', function (require) {
option_price=$(option_price_str).val()
if (!option_price) option_price=0
//console.log(option_price_str+'='+option_price)
total_price=$("#total_price").val()
if(this.checked) {


+ 4
- 0
static/src/css/kalachakra.css View File

@ -0,0 +1,4 @@
.header{
position:sticky;
top: 0 ;
}

+ 12
- 12
views/booking_event.xml View File

@ -1,7 +1,7 @@
<?xml version="1.0" encoding="utf-8" ?>
<odoo>
<record model="ir.ui.view" id="partner_category_list">
<!-- <record model="ir.ui.view" id="partner_category_list">
<field name="name">partner category list</field>
<field name="model">event.partner_category</field>
<field name="arch" type="xml">
@ -10,9 +10,9 @@
<field name="status"/>
</tree>
</field>
</record>
</record> -->
<record model="ir.ui.view" id="membership_product_list">
<!-- <record model="ir.ui.view" id="membership_product_list">
<field name="name">Membership product list</field>
<field name="model">event.membership_product</field>
<field name="arch" type="xml">
@ -21,7 +21,7 @@
</tree>
</field>
</record>
</record> -->
<record id="booking_event_type_view_form" model="ir.ui.view">
<field name="name">event.type.view.form.inherit.booking</field>
@ -131,25 +131,25 @@
</field>
</record>
<record model="ir.actions.act_window" id="partner_category_action">
<!-- <record model="ir.actions.act_window" id="partner_category_action">
<field name="name">Partner categories</field>
<field name="res_model">event.partner_category</field>
<field name="view_mode">tree,form</field>
</record>
</record> -->
<record model="ir.actions.act_window" id="membership_product_action">
<!-- <record model="ir.actions.act_window" id="membership_product_action">
<field name="name">Membership product</field>
<field name="res_model">event.membership_product</field>
<field name="view_mode">tree,form</field>
</record>
</record> -->
<menuitem id="booking_title_menu" name ="Booking"
parent="event.event_main_menu" groups="event.group_event_user" sequence="99"/>
<menuitem id="booking_partner_category_menu" action="partner_category_action"
parent="booking_title_menu" groups="event.group_event_user" sequence="2"/>
<!-- <menuitem id="booking_partner_category_menu" action="partner_category_action"
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"/>
<!-- <menuitem id="booking_membership_product__menu" action="membership_product_action"
parent="booking_title_menu" groups="event.group_event_user" sequence="3"/> -->
</odoo>

+ 1
- 0
views/booking_event_templates_list.xml View File

@ -1,6 +1,7 @@
<odoo>
<template id="events_list" inherit_id="website_event.events_list">
<xpath expr="//time[@itemprop='startDate']" position="after">


+ 19
- 1
views/booking_room.xml View File

@ -12,12 +12,30 @@
<field name="location_id"/>
<field name="description"/>
<field name="capacity"/>
<field name="available_seats"/>
</tree>
</field>
</record>
<record model="ir.ui.view" id="room_form">
<field name="name">booking_room form</field>
<field name="model">booking.room</field>
<field name="arch" type="xml">
<form>
<sheet>
<group>
<field name="name2"/>
<field name="location_id"/>
<field name="description"/>
<field name="capacity"/>
</group>
</sheet>
</form>
</field>
</record>
<record model="ir.actions.act_window" id="room_action">
<field name="name">Rooms</field>
<field name="res_model">booking.room</field>


+ 39
- 30
views/booking_website_registration.xml View File

@ -6,6 +6,9 @@
<script type="text/javascript" src="/kalachakra/static/js/booking.js"></script>
</xpath>
<xpath expr="//link[last()]" position="after">
<link rel="stylesheet" type="text/css" href="/kalachakra/static/src/css/kalachakra.css"/>
</xpath>
</template>
@ -14,14 +17,32 @@
<t t-call="website.layout">
<div class="container-fluid">
<h4 style="display: inline">Registering to : </h4><h4 style="display: inline" t-esc="event.name"></h4>
<h6 style="display: inline">Registering to : </h6><h6 style="display: inline" t-esc="event.name"></h6>
<br></br>
<h6>From <span t-field="event.date_begin" t-options='{"format": "dd/mm/yyyy hh:mm"}'/> to <span t-field="event.date_end" t-options='{"format": "dd/MM/yyyy hh:mm"}'/> </h6>
<h6> Your status : <span id="your_status" t-esc='status'></span></h6>
<h6>Price of the stay : <span id="price_of_the_stay" t-esc="str(int(price))+ ' €'"></span></h6>
<!-- <h6>Price of the stay : <span id="price_of_the_stay" t-esc="str(int(price))+ ' €'"></span></h6>
<h7>(standard price : <span t-esc="str(int(int(event.booking_price)))+ ' €'"></span>
, member price : <span t-esc="str(int(int(event.booking_member_price)))+ ' €'"></span>
, super member price : <span t-esc="str(int(int(event.booking_super_member_price)))+ ' €'"></span>)</h7>
, super member price : <span t-esc="str(int(int(event.booking_super_member_price)))+ ' €'"></span>)</h7> -->
<br></br>
<t t-if="not options">
<input type="hidden" name="nb_o" value="0"/>
</t>
<h6>Total Price : <span id="booking_total_price"></span></h6>
<span>Do you want to pay only the deposit </span><span style="display:inline" t-esc="'('+str(int(event.booking_down_payment))+' €) ?'"/>
<div class="form-group s_website_form_field col-2 s_website_form_custom s_website_form_required" data-type="char" data-name="Field">
<select id="down_payment" name="down_payment" class="form-control s_website_form_input">
<option name="yes" value="true" label="Oui"></option>
<option name="no" selected="false" value="false" label="Non"></option>
</select>
</div>
<br></br>
<h6>Please select your booking options :</h6>
<br></br>
<form action="questionnaire" method="post" class="form js_website_submit_form">
<input type="hidden" id="booking_price_product" name="price_product" t-att-value="int(price)"/>
@ -33,16 +54,16 @@
<input type="hidden" name="event_id" t-att-value="event.id"/>
<input type="hidden" id="status" name="status" t-att-value="partner.member_status"/>
<input type="hidden" id="status2" name="status2" t-att-value="status"/>
<input type="hidden" id="membership_product" name="membership_product" t-att-value="int(membership_product.membership_product_id)"/>
<input type="hidden" id="membership_product" name="membership_product" t-att-value="int(membership_product.id)"/>
<t t-if="options">
<table class='table' width='50%'>
<thead>
<tr>
<th>Selection</th>
<th>Option</th>
<th>Standard price</th>
<th>Member price</th>
<th>Super member price</th>
<th class="header" scope="col">Selection</th>
<th class="header" scope="col">Option</th>
<th class="header" scope="col">Standard price</th>
<th class="header" scope="col">Member price</th>
<th class="header" scope="col">Super member price</th>
</tr>
</thead>
<t t-set="i" t-value="1"/>
@ -63,23 +84,11 @@
<input type="hidden" name="nb_o" t-att-value="i-1"/>
</table>
</t>
<t t-if="not options">
<input type="hidden" name="nb_o" value="0"/>
</t>
<h4>Total Price : <span id="booking_total_price"></span></h4>
<span>Do you want to pay only the deposit </span><span style="display:inline" t-esc="'('+str(int(event.booking_down_payment))+' €) ?'"/>
<div class="form-group s_website_form_field col-2 s_website_form_custom s_website_form_required" data-type="char" data-name="Field">
<select id="down_payment" name="down_payment" class="form-control s_website_form_input">
<option name="yes" value="true" label="Oui"></option>
<option name="no" selected="false" value="false" label="Non"></option>
</select>
</div>
<section class="s_website_form pt16 pb16 o_colored_level">
<h6>Participant :</h6>
<div class="form-group s_website_form_field col-4 s_website_form_custom s_website_form_required " data-type="char" data-name="Field">
<div class="form-group s_website_form_field col-6 s_website_form_custom s_website_form_required " data-type="char" data-name="Field">
<div class="row s_col_no_resize s_col_no_bgcolor">
<label class="col-form-label col-sm-auto s_website_form_label" style="width: 200px" for="9ois9pkv0wv">
<span class="s_website_form_label_content">Name</span>
@ -90,7 +99,7 @@
</div>
</div>
</div>
<div class="form-group s_website_form_field col-4 s_website_form_custom s_website_form_required " data-type="char" data-name="Field">
<div class="form-group s_website_form_field col-6 s_website_form_custom s_website_form_required " data-type="char" data-name="Field">
<div class="row s_col_no_resize s_col_no_bgcolor">
<label class="col-form-label col-sm-auto s_website_form_label" style="width: 200px" for="9ois9pkv0wv">
<span class="s_website_form_label_content">First name</span>
@ -101,7 +110,7 @@
</div>
</div>
</div>
<div class="form-group s_website_form_field col-3 s_website_form_custom s_website_form_required" data-type="char" data-name="Field">
<div class="form-group s_website_form_field col-4 s_website_form_custom s_website_form_required" data-type="char" data-name="Field">
<div class="row s_col_no_resize s_col_no_bgcolor">
<label class="col-form-label col-sm-auto s_website_form_label" style="width: 200px" for="9ois9pkv0wv">
<span class="s_website_form_label_content">Age</span>
@ -127,7 +136,7 @@
</div>
</div>
</div>
<div class="form-group s_website_form_field col-4 s_website_form_custom " data-type="char" data-name="Field">
<div class="form-group s_website_form_field col-5 s_website_form_custom " data-type="char" data-name="Field">
<div class="row s_col_no_resize s_col_no_bgcolor">
<label class="col-form-label col-sm-auto s_website_form_label" style="width: 200px" for="9ois9pkv0wv">
<span class="s_website_form_label_content">Phone</span>
@ -138,7 +147,7 @@
</div>
</div>
</div>
<div class="form-group s_website_form_field col-4 s_website_form_custom" data-type="char" data-name="Field">
<div class="form-group s_website_form_field col-5 s_website_form_custom" data-type="char" data-name="Field">
<div class="row s_col_no_resize s_col_no_bgcolor">
<label class="col-form-label col-sm-auto s_website_form_label" style="width: 200px" for="9ois9pkv0wv">
<span class="s_website_form_label_content">Mobile</span>
@ -149,7 +158,7 @@
</div>
</div>
</div>
<div class="form-group s_website_form_field col-5 s_website_form_custom" data-type="char" data-name="Field">
<div class="form-group s_website_form_field col-6 s_website_form_custom" data-type="char" data-name="Field">
<div class="row s_col_no_resize s_col_no_bgcolor">
<label class="col-form-label col-sm-auto s_website_form_label" style="width: 200px" for="9ois9pkv0wv">
<span class="s_website_form_label_content">email</span>
@ -180,13 +189,13 @@
<h6><u>Health quiz</u></h6>
<form action="/booking/payment_choice" method="post" class="form js_website_submit_form">
<input type="hidden" name="event_id" t-att-value="event.id"/>
<div class="form-group s_website_form_field col-6 s_website_form_custom s_website_form_required" data-type="char" data-name="Field">
<div class="form-group s_website_form_field col-8 s_website_form_custom s_website_form_required" data-type="char" data-name="Field">
<div class="row s_col_no_resize s_col_no_bgcolor">
<label class="col-form-label col-sm-auto s_website_form_label" style="width: 200px" for="9ois9pkv0wv">
<span class="s_website_form_label_content">Medical concern</span>
<span class="s_website_form_mark"> *</span>
</label>
<div class="col-sm">
<div class="form-group s_website_form_field col-8 s_website_form_custom">
<select id="medical_concern" name="medical_concern" class="form-control s_website_form_input">
<option name="medical_concern" value="have medical concern" label="J'ai un soucis médical à signaler"></option>
<option name="medical_concern" selected="selected" value="have no medical concern" label="Je n'ai pas de soucis médical à signaler"></option>


+ 38
- 18
views/event_templates_list.xml View File

@ -1,27 +1,47 @@
<?xml version="1.0" encoding="utf-8"?>
<odoo>
<data>
<!-- <template id="kalachakra.event_category_tag" inherit_id="website_event.index_topbar" active="True" customize_show="True" name="Filter by Tags">
<xpath expr="//ul[hasclass('o_wevent_index_topbar_filters')]" position="inside">
<t t-foreach="categories" t-as="category">
<li t-if="category.tag_ids and any(tag.color for tag in category.tag_ids)" class="nav-item dropdown mr-2 my-1">
<a href="#" role="button" class="btn dropdown-toggle" data-toggle="dropdown">
<i class="fa fa-folder-open"/>
<t t-esc="category.name"/>
</a>
<div class="dropdown-menu">
<t t-foreach="category.tag_ids" t-as="tag">
<a t-if="tag.color"
t-att-href="'/event?tags='+tag.name"
t-attf-class="dropdown-item d-flex align-items-center justify-content-between #{'active' if tag in search_tags else ''}">
<t t-esc="tag.name"/>
<template id="index_topbar" inherit_id="website_event.index_topbar">
<xpath expr="//div[@class='d-flex align-items-center flex-wrap pl-sm-3 pr-0']" position="replace">
<t t-call="website_event.events_search_box">
<t t-set="_searches" t-value="searches"/>
<t t-set="_placeholder">Rechercher...</t>
</t>
</xpath>
</template>
<template id="event_time" inherit_id="website_event.index_topbar">
<xpath expr="//a[@class='btn dropdown-toggle']" position="replace">
<a href="#" role="button" class="btn dropdown-toggle" data-toggle="dropdown">
<i class="fa fa-calendar"/>
<t t-if="current_date" t-esc="current_date"/>
<t t-else="">A venir</t>
</a>
</xpath>
<xpath expr="//div[@class='dropdown-menu']" position="replace">
<div class="dropdown-menu">
<t t-foreach="dates" t-as="date">
<t t-if="date[3] or (date[0] in ('old','all'))">
<a t-att-href="keep('/event', date=date[0])" t-attf-class="dropdown-item d-flex align-items-center justify-content-between #{searches.get('date') == date[0] and 'active'}">
<t t-if="date[1]=='Upcoming Events'">
A venir
</t>
<t t-if="not date[1]=='Upcoming Events'">
<t t-esc="date[1]"/>
</t>
<span t-if="date[3]" t-esc="date[3]" class="badge badge-pill badge-primary ml-3"/>
</a>
</t>
</div>
</li>
</t>
</t>
</div>
</xpath>
</template> -->
</template>
<template id="kalachakra.event_category_tag" inherit_id="website_event.index_topbar" active="True" customize_show="True" name="Filter by Tags">
<xpath expr="//ul[hasclass('o_wevent_index_topbar_filters')]" position="inside">


Loading…
Cancel
Save