[MERGE] forward port branch saas-16 up to b81f9d89876

This commit is contained in:
Christophe Simonis
2017-11-16 12:41:31 +01:00
5 changed files with 37 additions and 2 deletions
+9 -1
View File
@@ -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
View File
@@ -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
+7
View File
@@ -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
+12
View File
@@ -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
+7
View File
@@ -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>