From ac2384ee4708db31e0eafca1d8cedab9c44ab5b5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Thibault=20Delavall=C3=A9e?= Date: Tue, 24 Sep 2013 14:42:53 +0200 Subject: [PATCH] [IMP] website_sale: basic cleaning of checkout method about getting partner data. In view, do not use get when the data, use brackets, this helps tracking issues in your process. bzr revid: tde@openerp.com-20130924124253-gld6lwzm3dc8bhwn --- addons/website_sale/controllers/main.py | 22 +++++++++++----------- addons/website_sale/views/website_sale.xml | 22 +++++++++++----------- 2 files changed, 22 insertions(+), 22 deletions(-) diff --git a/addons/website_sale/controllers/main.py b/addons/website_sale/controllers/main.py index 7d0d6051c5e..d380632cc70 100644 --- a/addons/website_sale/controllers/main.py +++ b/addons/website_sale/controllers/main.py @@ -286,9 +286,12 @@ class Ecommerce(http.Controller): @website.route(['/shop/checkout/'], type='http', auth="public") def checkout(self, **post): + classic_fields = ["name", "phone", "fax", "email", "street", "city", "state_id", "zip"] + rel_fields = ['country_id', 'state_id'] + order = get_current_order() - if order.state != 'draft' or not order.order_line: + if not order or order.state != 'draft' or not order.order_line: return self.mycart(**post) partner_obj = request.registry.get('res.partner') @@ -301,24 +304,21 @@ class Ecommerce(http.Controller): 'error': post.get("error") and dict.fromkeys(post.get("error").split(","), 'error') or {} } - checkout = {} + checkout = dict((field_name, '') for field_name in classic_fields + rel_fields) if not request.context['is_public_user']: partner = user_obj.browse(request.cr, request.uid, request.uid, request.context).partner_id - partner_id = partner.id - fields = ["name", "phone", "fax", "company", "email", "street", "city", "state_id", "zip", "country_id"] - checkout = user_obj.read(request.cr, SUPERUSER_ID, [partner_id], fields, request.context)[0] + checkout.update(dict((field_name, getattr(partner, field_name)) for field_name in classic_fields if getattr(partner, field_name))) + checkout['state_id'] = partner.state_id and partner.state_id.id or '' + checkout['country_id'] = partner.country_id and partner.country_id.id or '' checkout['company'] = partner.parent_id and partner.parent_id.name or '' - shipping_ids = partner_obj.search(request.cr, request.uid, [("parent_id", "=", partner_id), ('type', "=", 'delivery')], context=request.context) + shipping_ids = partner_obj.search(request.cr, request.uid, [("parent_id", "=", partner.id), ('type', "=", 'delivery')], context=request.context) if shipping_ids: - for k,v in partner_obj.read(request.cr, request.uid, shipping_ids[0], request.context).items(): + for k, v in partner_obj.read(request.cr, request.uid, shipping_ids[0], request.context).items(): checkout['shipping_'+k] = v or '' - checkout.update(request.session.setdefault('checkout', {})) - for k,v in checkout.items(): - checkout[k] = v or '' values['checkout'] = checkout - + print checkout countries_ids = country_obj.search(request.cr, SUPERUSER_ID, [(1, "=", 1)], context=request.context) values['countries'] = country_obj.browse(request.cr, SUPERUSER_ID, countries_ids, request.context) states_ids = country_state_obj.search(request.cr, SUPERUSER_ID, [(1, "=", 1)], context=request.context) diff --git a/addons/website_sale/views/website_sale.xml b/addons/website_sale/views/website_sale.xml index da19f391947..c6e19caf2a5 100644 --- a/addons/website_sale/views/website_sale.xml +++ b/addons/website_sale/views/website_sale.xml @@ -492,43 +492,43 @@
- +
- +
- +
- +
- +
- +
- +
@@ -537,7 +537,7 @@
@@ -545,7 +545,7 @@
- +
@@ -554,7 +554,7 @@
@@ -630,7 +630,7 @@ - +