[MERGE] forward port branch saas-16 up to b81f9d89876
This commit is contained in:
+9
-1
@@ -10,8 +10,10 @@ class WebsiteSale(WebsiteSale):
|
||||
def pricelist(self, promo, **post):
|
||||
order = request.website.sale_get_order()
|
||||
coupon_status = request.env['sale.coupon.apply.code'].sudo().apply_coupon(order, promo)
|
||||
if coupon_status.get('error', False):
|
||||
if coupon_status.get('not_found'):
|
||||
return super(WebsiteSale, self).pricelist(promo, **post)
|
||||
elif coupon_status.get('error'):
|
||||
request.session['error_promo_code'] = coupon_status['error']
|
||||
return request.redirect(post.get('r', '/shop/cart'))
|
||||
|
||||
@http.route(['/shop/payment'], type='http', auth="public", website=True)
|
||||
@@ -19,3 +21,9 @@ class WebsiteSale(WebsiteSale):
|
||||
order = request.website.sale_get_order()
|
||||
order.recompute_coupon_lines()
|
||||
return super(WebsiteSale, self).payment(**post)
|
||||
|
||||
@http.route(['/shop/cart'], type='http', auth="public", website=True)
|
||||
def cart(self, **post):
|
||||
order = request.website.sale_get_order()
|
||||
order.recompute_coupon_lines()
|
||||
return super(WebsiteSale, self).cart(**post)
|
||||
|
||||
+2
-1
@@ -2,4 +2,5 @@
|
||||
# Part of Odoo. See LICENSE file for full copyright and licensing details.
|
||||
|
||||
from . import sale_coupon_rule
|
||||
from . import sale_order
|
||||
from . import sale_order
|
||||
from . import website
|
||||
|
||||
@@ -1,5 +1,6 @@
|
||||
# -*- coding: utf-8 -*-
|
||||
from odoo import models, fields, api
|
||||
from odoo.http import request
|
||||
|
||||
|
||||
class SaleOrder(models.Model):
|
||||
@@ -10,3 +11,9 @@ class SaleOrder(models.Model):
|
||||
for order in self:
|
||||
reward_lines = order.website_order_line.filtered(lambda line: line.is_reward_line)
|
||||
order.cart_quantity -= int(sum(reward_lines.mapped('product_uom_qty')))
|
||||
|
||||
def get_promo_code_error(self, delete=True):
|
||||
error = request.session.get('error_promo_code')
|
||||
if error and delete:
|
||||
request.session.pop('error_promo_code')
|
||||
return error
|
||||
|
||||
@@ -0,0 +1,12 @@
|
||||
# -*- coding: utf-8 -*-
|
||||
from odoo import models, fields, api
|
||||
|
||||
|
||||
class Website(models.Model):
|
||||
_inherit = "website"
|
||||
|
||||
@api.multi
|
||||
def sale_get_order(self, force_create=False, code=None, update_pricelist=False, force_pricelist=False):
|
||||
order = super(Website, self).sale_get_order(force_create, code, update_pricelist, force_pricelist)
|
||||
order.recompute_coupon_lines()
|
||||
return order
|
||||
@@ -47,6 +47,13 @@
|
||||
</div>
|
||||
</div>
|
||||
</t>
|
||||
<t t-if="website_sale_order.get_promo_code_error(delete=False)">
|
||||
<div class="panel panel-danger mt16">
|
||||
<div class="panel-heading clearfix">
|
||||
<span class="pull-left"><t t-esc="website_sale_order.get_promo_code_error()" /></span>
|
||||
</div>
|
||||
</div>
|
||||
</t>
|
||||
</xpath>
|
||||
<xpath expr="//t[@name='code_not_available']" position="replace"/>
|
||||
</template>
|
||||
|
||||
Reference in New Issue
Block a user