@ -8,8 +8,12 @@ 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
class kalachakra_event ( WebsiteEventController , PaymentProcessing ) :
class kalachakra_event ( WebsiteEventController , PaymentProcessing , AuthSignupHome ) :
def _extract_searched_event_tags ( self , searches ) :
tags = request . env [ ' event.tag ' ]
@ -41,6 +45,43 @@ class kalachakra_event(WebsiteEventController,PaymentProcessing):
return http . request . redirect ( ' https://www.dropbox.com/s/ijsd6n82oyp0gw8/programme_Paris.pdf?dl=0 ' )
@http.route ( [ ' /event/registration/step1 ' ] , type = ' http ' , auth = ' user ' , website = True , sitemap = False , csrf = False )
def event_registration_step1 ( self , event_id , * args , * * kw ) :
#contact lié à l'utilisateur
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 )
#si le pays n'est pas renseigné, on le renseigne avec France
#c'est indispensable pour pouvoir régléer le devis
if not partner . country_id :
country = request . env [ ' res.country ' ] . search ( [ ( ' name ' , ' = ' , ' France ' ) ] )
partner . country_id = country . id
data = { }
data [ ' partner ' ] = partner
#évenement
request . session [ ' event_id ' ] = int ( event_id )
event = request . env [ ' event.event ' ] . sudo ( ) . search ( [ ( ' id ' , ' = ' , int ( event_id ) ) ] )
data [ ' event ' ] = event
data [ ' status ' ] = partner . member_status
if data [ ' status ' ] == ' not member ' : data [ ' status ' ] = ' standard '
#prix
data [ ' price ' ] = ' '
if data [ ' status ' ] == ' standard ' : data [ ' price ' ] = event . booking_price
if data [ ' status ' ] == ' member ' : data [ ' price ' ] = event . booking_member_price
if data [ ' status ' ] == ' super member ' : data [ ' price ' ] = event . booking_super_member_price
if event . online_event :
return http . request . render ( ' kalachakra.registration_distancial ' , data )
@http.route ( [ ' /kalachakra/makedonation ' ] , type = ' http ' , auth = ' public ' , website = True , sitemap = False , csrf = False )
def makedonation ( self , * * post ) :
data = { }
@ -154,12 +195,12 @@ class kalachakra_event(WebsiteEventController,PaymentProcessing):
@http.route ( [ ' /kalachakra/payment_choice ' ] , type = ' http ' , auth = ' public ' , website = True , sitemap = False , csrf = False )
def payment_choice ( self , * * post ) :
#gestion du retour page précédente depuis page de paiement
#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 ( ' product_id ' ) :
if request . session [ ' kalachakra_transaction ' ] == ' donation ' :
request . env [ ' donation.donation ' ] . search ( [ ' id ' , ' = ' , int ( request . session [ ' donation_id ' ] ) ] ) . unlink ( )
request . env [ ' donation.donation ' ] . search ( [ ( ' id ' , ' = ' , int ( request . session [ ' donation_id ' ] ) ) ] ) . unlink ( )
if request . session [ ' kalachakra_transaction ' ] == ' membership ' :
request . env [ ' kalachakra.membership ' ] . search ( [ ' id ' , ' = ' , int ( request . session [ ' membership_id ' ] ) ] ) . unlink ( )
request . env [ ' kalachakra.membership ' ] . search ( [ ( ' id ' , ' = ' , int ( request . session [ ' membership_id ' ] ) ) ] ) . unlink ( )
return request . redirect ( ' /kalachakra/participation?type= ' + request . session [ ' kalachakra_transaction ' ] )
@ -191,7 +232,7 @@ class kalachakra_event(WebsiteEventController,PaymentProcessing):
data = { }
if request . session [ ' kalachakra_transaction ' ] == ' donation ' :
data [ ' submit_txt ' ] = ' Donate now '
if request . session [ ' kalachakra_transaction ' ] in [ ' membership ' ] :
if request . session [ ' kalachakra_transaction ' ] == ' membership ' :
data [ ' submit_txt ' ] = ' Pay now '
data [ ' success_url ' ] = ' /kalachakra/payment/success '
@ -253,10 +294,12 @@ class kalachakra_event(WebsiteEventController,PaymentProcessing):
#create membership
if request . session [ ' kalachakra_transaction ' ] in [ ' membership ' ] :
vals = { }
vals [ ' partner_id ' ] = partner . id
vals [ ' product_id ' ] = int ( post . get ( ' product_id ' ) )
vals [ ' start_date ' ] = datetime . now ( )
vals [ ' end_date ' ] = datetime . now ( ) + relativedelta ( years = 1 )
vals [ ' amount ' ] = post . get ( ' amount ' )
membership = request . env [ ' kalachakra.membership ' ] . sudo ( ) . create ( vals )
data [ ' order_id ' ] = membership . id
request . session [ ' membership_id ' ] = membership . id
@ -279,8 +322,6 @@ class kalachakra_event(WebsiteEventController,PaymentProcessing):
# Ensure a payment acquirer is selected
if not acquirer_id :
return False