Browse Source

faire un don en ligne suite

dev-rcn
root 3 years ago
parent
commit
4de1c9991e
2 changed files with 65 additions and 35 deletions
  1. +50
    -32
      controllers/kalachakra.py
  2. +15
    -3
      views/website_participation.xml

+ 50
- 32
controllers/kalachakra.py View File

@ -96,6 +96,7 @@ class kalachakra_event(WebsiteEventController,PaymentProcessing):
#donation product #donation product
data['products']=request.env['product.product'].search([('donation','=',True)]) data['products']=request.env['product.product'].search([('donation','=',True)])
userid=request.env.context.get('uid') userid=request.env.context.get('uid')
#title options #title options
@ -244,6 +245,7 @@ class kalachakra_event(WebsiteEventController,PaymentProcessing):
# order_line=request.env['sale.order.line'].sudo().create(vals) # order_line=request.env['sale.order.line'].sudo().create(vals)
data['order_id']=donation_draft.id data['order_id']=donation_draft.id
request.session['donation_id'] = donation_draft.id
return http.request.render('kalachakra.payment_choice_form',data) return http.request.render('kalachakra.payment_choice_form',data)
@ -322,6 +324,7 @@ class kalachakra_event(WebsiteEventController,PaymentProcessing):
vals = {'payment_token_id': pm_id, 'return_url': '/kalachakra/payment/validate'} vals = {'payment_token_id': pm_id, 'return_url': '/kalachakra/payment/validate'}
tx = donation._create_payment_transaction(vals) tx = donation._create_payment_transaction(vals)
request.session['transaction_id']=tx.id
PaymentProcessing.add_payment_transaction(tx) PaymentProcessing.add_payment_transaction(tx)
return request.redirect('kalachakra/payment/process') return request.redirect('kalachakra/payment/process')
@ -344,43 +347,58 @@ class kalachakra_event(WebsiteEventController,PaymentProcessing):
- UDPATE ME - UDPATE ME
""" """
if sale_order_id is None:
order = request.website.sale_get_order()
else:
order = request.env['sale.order'].sudo().browse(sale_order_id)
assert order.id == request.session.get('sale_last_order_id')
if transaction_id:
tx = request.env['payment.transaction'].sudo().browse(transaction_id)
assert tx in order.transaction_ids()
elif order:
tx = order.get_portal_last_transaction()
else:
tx = None
if not order or (order.amount_total and not tx):
return request.redirect('/kalachakra/ma')
if order and not order.amount_total and not tx:
order.with_context(send_email=True).action_confirm()
return request.redirect(order.get_portal_url())
donation_id=int(request.session['donation_id'])
#validation du don car la tranasction est ok
donation=request.env['donation.donation'].search([('id','=',donation_id)])
donation.state='done'
request.session['donation_id']=None
transaction_id=int(request.session['__website_sale_last_tx_id'] )
tx = request.env['payment.transaction'].sudo().browse(transaction_id)
# clean context and session, then redirect to the confirmation page
request.website.sale_reset()
if tx and tx.state == 'draft':
return request.redirect('/kalachakra/')
PaymentProcessing.remove_payment_transaction(tx) PaymentProcessing.remove_payment_transaction(tx)
return request.redirect('/kalachakra/payment/confirmation')
return request.redirect('/kalachakra/payment/confirmation')
# if sale_order_id is None:
# order = request.website.sale_get_order()
# else:
# order = request.env['sale.order'].sudo().browse(sale_order_id)
# assert order.id == request.session.get('sale_last_order_id')
# if transaction_id:
# tx = request.env['payment.transaction'].sudo().browse(transaction_id)
# assert tx in order.transaction_ids()
# elif order:
# tx = order.get_portal_last_transaction()
# else:
# tx = None
# if not order or (order.amount_total and not tx):
# return request.redirect('/kalachakra/ma')
# if order and not order.amount_total and not tx:
# order.with_context(send_email=True).action_confirm()
# return request.redirect(order.get_portal_url())
# # clean context and session, then redirect to the confirmation page
# request.website.sale_reset()
# if tx and tx.state == 'draft':
# return request.redirect('/kalachakra/')
# PaymentProcessing.remove_payment_transaction(tx)
# return request.redirect('/kalachakra/payment/confirmation')
@http.route(['/kalachakra/payment/confirmation'], type='http', auth="public", website=True, sitemap=False) @http.route(['/kalachakra/payment/confirmation'], type='http', auth="public", website=True, sitemap=False)
def kalachakra_payment_confirmation(self, **post): def kalachakra_payment_confirmation(self, **post):
return request.redirect('/')
return request.render("kalachakra.thankyou")
sale_order_id = request.session.get('sale_last_order_id')
if sale_order_id:
order = request.env['sale.order'].sudo().browse(sale_order_id)
return request.render("website_sale.confirmation", {'order': order})
else:
return request.redirect('/shop')
# sale_order_id = request.session.get('sale_last_order_id')
# if sale_order_id:
# order = request.env['sale.order'].sudo().browse(sale_order_id)
# return request.render("website_sale.confirmation", {'order': order})
# else:
# return request.redirect('/shop')

+ 15
- 3
views/website_participation.xml View File

@ -97,15 +97,15 @@
</div> </div>
</t> </t>
<div id="div_amount" class="form-group col-lg-4">
<div id="div_amount" class="form-group col-lg-1">
<label class="col-form-label font-weight-bold" for="amount">Amount (€) <label class="col-form-label font-weight-bold" for="amount">Amount (€)
</label> </label>
<input type="number" id="amount_id" name="amount" class="form-control " value=""/>
<input type="number" id="amount_id" name="amount" class="form-control " t-att-value="amount"/>
</div> </div>
<div class="form-group col-lg-5" id="div_product">
<div class="form-group col-lg-3" id="div_product">
<label class="col-form-label font-weight-bold" for="product_id">Affectation<span class="s_website_form_mark"> *</span> <label class="col-form-label font-weight-bold" for="product_id">Affectation<span class="s_website_form_mark"> *</span>
</label> </label>
<select id="product_id" name="product_id" class="o_wpayment_fee_impact form-control "> <select id="product_id" name="product_id" class="o_wpayment_fee_impact form-control ">
@ -161,5 +161,17 @@
</template> </template>
<template id="kalachakra.thankyou" name="make donation form">
<t t-call="website.layout">
<div class="container-fluid">
<h2>Thank you for your generosity !</h2>
<a href="/" class="ml-4 btn btn-secondary">back Home</a>
</div>
</t>
</template>
</odoo> </odoo>

Loading…
Cancel
Save