[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:
parent
90eba9e022
commit
ac2384ee47
|
@ -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)
|
||||
|
|
|
@ -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>
|
||||
|
|
Loading…
Reference in New Issue