[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
This commit is contained in:
Thibault Delavallée 2013-09-24 14:42:53 +02:00
parent 90eba9e022
commit ac2384ee47
2 changed files with 22 additions and 22 deletions

View File

@ -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)

View File

@ -492,43 +492,43 @@
<div t-attf-class="form-group #{error.get('name') and 'has-error' or ''}">
<label class="col-lg-3 control-label" for="contact_name">Name and firstname</label>
<div class="col-lg-4">
<input type="text" name="name" class="form-control" t-att-value="checkout.get('name', '')"/>
<input type="text" name="name" class="form-control" t-att-value="checkout['name']"/>
</div>
</div>
<div t-attf-class="form-group #{ error.get('phone') and 'has-error' or ''}">
<label class="col-lg-3 control-label" for="contact_name">Telephone</label>
<div class="col-lg-4">
<input type="tel" name="phone" class="form-control" t-att-value="checkout.get('phone', '')"/>
<input type="tel" name="phone" class="form-control" t-att-value="checkout['phone']"/>
</div>
</div>
<div t-attf-class="form-group #{error.get('fax') and 'has-error' or ''}">
<label class="col-lg-3 control-label" for="contact_name">Fax</label>
<div class="col-lg-4">
<input type="tel" name="fax" class="form-control" t-att-value="checkout.get('fax', '')"/>
<input type="tel" name="fax" class="form-control" t-att-value="checkout['fax']"/>
</div>
</div>
<div t-attf-class="form-group #{error.get('company') and 'has-error' or ''}">
<label class="col-lg-3 control-label" for="contact_name">Company</label>
<div class="col-lg-4">
<input type="text" name="company" class="form-control" t-att-value="checkout.get('company', '')"/>
<input type="text" name="company" class="form-control" t-att-value="checkout['company']"/>
</div>
</div>
<div t-attf-class="form-group #{error.get('email') and 'has-error' or ''}">
<label class="col-lg-3 control-label" for="contact_name">Email address</label>
<div class="col-lg-4">
<input type="email" name="email" class="form-control" t-att-value="checkout.get('email', '')"/>
<input type="email" name="email" class="form-control" t-att-value="checkout['email']"/>
</div>
</div>
<div t-attf-class="form-group #{error.get('street') and 'has-error' or ''}">
<label class="col-lg-3 control-label" for="contact_name">Street</label>
<div class="col-lg-4">
<input type="text" name="street" class="form-control" t-att-value="checkout.get('street', '')"/>
<input type="text" name="street" class="form-control" t-att-value="checkout['street']"/>
</div>
</div>
<div t-attf-class="form-group #{error.get('city') and 'has-error' or ''}">
<label class="col-lg-3 control-label" for="contact_name">City</label>
<div class="col-lg-4">
<input type="text" name="city" class="form-control" t-att-value="checkout.get('city', '')"/>
<input type="text" name="city" class="form-control" t-att-value="checkout['city']"/>
</div>
</div>
<div t-attf-class="form-group #{error.get('state_id') and 'has-error' or ''}">
@ -537,7 +537,7 @@
<select name="state_id" class="form-control">
<option value="">State / Province...</option>
<t t-foreach="states or []" t-as="state">
<option t-att-value="state.id" t-att-selected="state.id == checkout.get('state_id')"><t t-esc="state.name"/></option>
<option t-att-value="state.id" t-att-selected="state.id == checkout['state_id']"><t t-esc="state.name"/></option>
</t>
</select>
</div>
@ -545,7 +545,7 @@
<div t-attf-class="form-group #{error.get('zip') and 'has-error' or ''}">
<label class="col-lg-3 control-label" for="contact_name">Zip / Postal Code</label>
<div class="col-lg-4">
<input type="text" name="zip" class="form-control" t-att-value="checkout.get('zip', '')"/>
<input type="text" name="zip" class="form-control" t-att-value="checkout['zip']"/>
</div>
</div>
<div t-attf-class="form-group #{error.get('country_id') and 'has-error' or ''}">
@ -554,7 +554,7 @@
<select name="country_id" class="form-control">
<option value="">Country...</option>
<t t-foreach="countries or []" t-as="country">
<option t-att-value="country.id" t-att-selected="country.id == checkout.get('country_id')"><t t-esc="country.name"/></option>
<option t-att-value="country.id" t-att-selected="country.id == checkout['country_id']"><t t-esc="country.name"/></option>
</t>
</select>
</div>
@ -630,7 +630,7 @@
</div>
</div>
</div>
<button type="submit" class="btn btn-default">Last stape</button>
<button type="submit" class="btn btn-default">Confirm</button>
</form>
</div>
</div>