[IMP] website_sale: default value in checkout
bzr revid: chm@openerp.com-20130723151607-w4blimvr7f40rlzg
This commit is contained in:
parent
38c30dc063
commit
2f97f8b5b7
|
@ -190,7 +190,7 @@ $(function(){
|
|||
* If can't go back in history stack, will go back to home.
|
||||
*/
|
||||
instance.web.ActionGoBack = function(parent, action) {
|
||||
window.history.back();
|
||||
window.location.href = document.referrer;
|
||||
};
|
||||
instance.web.client_actions.add("goback", "instance.web.ActionGoBack");
|
||||
|
||||
|
|
|
@ -70,6 +70,7 @@
|
|||
<link rel='stylesheet' href='/website/static/src/css/snippets.css'/>
|
||||
<script type="text/javascript" src="/website/static/src/js/website_bootstrap.js"></script>
|
||||
</t>
|
||||
<t t-raw="head"/>
|
||||
</head>
|
||||
<body class="oe_website oe_styling_v8">
|
||||
<header class="oe_website_header">
|
||||
|
|
|
@ -194,6 +194,8 @@ class Ecommerce(http.Controller):
|
|||
values = self.get_values()
|
||||
partner_obj = request.registry.get('res.partner')
|
||||
user_obj = request.registry.get('res.users')
|
||||
country_obj = request.registry.get('res.country')
|
||||
obj_data = request.registry.get('ir.model.data')
|
||||
|
||||
values['partner'] = False
|
||||
|
||||
|
@ -204,6 +206,13 @@ class Ecommerce(http.Controller):
|
|||
if partner_id:
|
||||
values['partner'] = partner_obj.browse(cr, uid, partner_id)
|
||||
|
||||
shipping_category_id = obj_data.get_object_reference(cr, uid, 'website_sale', 'shipping_address')[1]
|
||||
shipping_ids = partner_obj.search(cr, uid, [("parent_id", "=", partner_id), ("category_id", "=", shipping_category_id)])
|
||||
shipping_id = shipping_ids and shipping_ids[0] or None
|
||||
values['shipping'] = partner_obj.browse(cr, uid, shipping_id)
|
||||
|
||||
values['countries'] = country_obj.browse(cr, uid, country_obj.search(cr, uid, [(1, "=", 1)]))
|
||||
|
||||
return request.registry.get("ir.ui.view").render(cr, uid, "website_sale.checkout", values)
|
||||
|
||||
@http.route(['/shop/confirm_order'], type='http', auth="admin")
|
||||
|
@ -214,11 +223,11 @@ class Ecommerce(http.Controller):
|
|||
|
||||
# check values
|
||||
json = {'error': []}
|
||||
required_field = ['tel', 'zip', 'email', 'state', 'street', 'city', 'name']
|
||||
required_field = ['phone', 'zip', 'email', 'street', 'city', 'name', 'country_id']
|
||||
for key in required_field:
|
||||
if not post[key]:
|
||||
if not post.get(key):
|
||||
json['error'].append(key)
|
||||
if 'shipping_name' in post and key != 'email' and not post["shipping_%s" % key]:
|
||||
if 'shipping_name' in post and key != 'email' and not post.get("shipping_%s" % key):
|
||||
json['error'].append("shipping_%s" % key)
|
||||
if json['error']:
|
||||
return simplejson.dumps(json)
|
||||
|
@ -226,18 +235,22 @@ class Ecommerce(http.Controller):
|
|||
# search or create company
|
||||
if post['company']:
|
||||
pass
|
||||
if 'shipping_company' in post and post['shipping_company']:
|
||||
if 'shipping_name' in post and post['shipping_company']:
|
||||
pass
|
||||
if post['state']:
|
||||
pass
|
||||
if 'shipping_name' in post and post['shipping_state']:
|
||||
pass
|
||||
|
||||
partner_value = {
|
||||
'fax': post['fax'],
|
||||
'tel': post['tel'],
|
||||
'phone': post['phone'],
|
||||
'zip': post['zip'],
|
||||
'email': post['email'],
|
||||
'state': post['state'],
|
||||
'street': post['street'],
|
||||
'city': post['city'],
|
||||
'name': post['name'],
|
||||
'country_id': post['country_id'],
|
||||
}
|
||||
if partner_id:
|
||||
partner_obj.write(cr, uid, [partner_id], partner_value)
|
||||
|
@ -245,18 +258,18 @@ class Ecommerce(http.Controller):
|
|||
partner_id = partner_obj.create(cr, uid, partner_value)
|
||||
|
||||
if 'shipping_name' in post:
|
||||
shipping_category_id = obj_data.get_object_reference(cr, uid, 'website_sale', 'shipping_address')[1]
|
||||
shipping_value = {
|
||||
'fax': post['shipping_fax'],
|
||||
'tel': post['shipping_tel'],
|
||||
'phone': post['shipping_phone'],
|
||||
'zip': post['shipping_zip'],
|
||||
'state': post['shipping_state'],
|
||||
'street': post['shipping_street'],
|
||||
'city': post['shipping_city'],
|
||||
'name': post['shipping_name'],
|
||||
'parent_id': partner_id,
|
||||
'category_id': (4, shipping_category_id)
|
||||
'category_id': [(4, shipping_category_id)],
|
||||
'country_id': post['shipping_country_id'],
|
||||
}
|
||||
shipping_category_id = obj_data.get_object_reference(cr, uid, 'website_sale', 'shipping_address')[1]
|
||||
shipping_ids = partner_obj.search(cr, uid, [("parent_id", "=", partner_id), ("category_id", "=", shipping_category_id)])
|
||||
shipping_id = shipping_ids and shipping_ids[0] or None
|
||||
if shipping_id:
|
||||
|
|
|
@ -147,7 +147,7 @@
|
|||
max-width: 64px;
|
||||
max-height: 64px;
|
||||
}
|
||||
.oe_ecommerce .oe_checkout .css_required input {
|
||||
.oe_ecommerce .oe_checkout .css_required input, .oe_ecommerce .oe_checkout .css_required select {
|
||||
background-color: #d2d2ff !important;
|
||||
}
|
||||
.oe_ecommerce .oe_checkout h4 {
|
||||
|
@ -160,7 +160,7 @@
|
|||
.oe_ecommerce .oe_checkout input[type="image"] {
|
||||
height: 30px;
|
||||
}
|
||||
.oe_ecommerce .oe_checkout label > input:not([type="radio"]):not([type="checkbox"]), .oe_ecommerce .oe_checkout label > div {
|
||||
.oe_ecommerce .oe_checkout label > input:not([type="radio"]):not([type="checkbox"]), .oe_ecommerce .oe_checkout label > div, .oe_ecommerce .oe_checkout label > select {
|
||||
display: block;
|
||||
margin-top: 3px;
|
||||
}
|
||||
|
|
|
@ -111,7 +111,7 @@
|
|||
max-height: 64px
|
||||
.oe_checkout
|
||||
.css_required
|
||||
input
|
||||
input, select
|
||||
background-color: #d2d2ff !important
|
||||
h4
|
||||
border-bottom: 1px solid #ddd
|
||||
|
@ -121,7 +121,7 @@
|
|||
input[type="image"]
|
||||
height: 30px
|
||||
label
|
||||
> input:not([type="radio"]):not([type="checkbox"]), > div
|
||||
> input:not([type="radio"]):not([type="checkbox"]), > div, > select
|
||||
display: block
|
||||
margin-top: 3px
|
||||
select
|
||||
|
|
|
@ -28,7 +28,7 @@ $(document).ready(function () {
|
|||
});
|
||||
$(".oe_ecommerce .js_error_payment").click(function(e) {
|
||||
var values = {};
|
||||
$checkout.find(".js_inputs:not(:hidden) input:not(:checkbox), .js_signin_modal input").each(function() {
|
||||
$checkout.find(".js_inputs:not(:hidden) input:not(:checkbox), .js_inputs:not(:hidden) select, .js_signin_modal input").each(function() {
|
||||
values[$(this).attr("name")] = $(this).val();
|
||||
});
|
||||
$checkout.find("input").css("border", "");
|
||||
|
|
|
@ -25,9 +25,13 @@
|
|||
|
||||
<template id="page">
|
||||
<t t-call="website.layout">
|
||||
<t t-set="head">
|
||||
<script type="text/javascript" src="/website_sale/static/src/js/ecommerce.js"></script>
|
||||
<link rel='stylesheet' href='/website_sale/static/src/css/ecommerce.css'/>
|
||||
<t t-raw="head"/>
|
||||
</t>
|
||||
<t t-set="title">Shop - <t t-raw="title">Categories</t></t>
|
||||
<div class="container oe_ecommerce">
|
||||
<script type="text/javascript" src="/website_sale/static/src/js/ecommerce.js"></script>
|
||||
<div class="row">
|
||||
<div class="span4">
|
||||
<ul class="nav nav-list">
|
||||
|
@ -66,7 +70,7 @@
|
|||
<t t-set="shop_content">
|
||||
<div class="oe_search">
|
||||
<form action="/shop" method="get" class="navbar-search">
|
||||
<input type="text" name="search" class="search-query span4" placeholder="Search" t-att-value="search or ''"/>
|
||||
<input type="text" name="search" class="search-query span4" placeholder="Search" t-att-value="search or '' or ''"/>
|
||||
<button type="submit" class="btn">Submit</button>
|
||||
</form>
|
||||
</div>
|
||||
|
@ -174,9 +178,13 @@
|
|||
|
||||
<template id="checkout">
|
||||
<t t-call="website.layout">
|
||||
<t t-set="head">
|
||||
<script type="text/javascript" src="/website_sale/static/src/js/ecommerce.js"></script>
|
||||
<link rel='stylesheet' href='/website_sale/static/src/css/ecommerce.css'/>
|
||||
<t t-raw="head"/>
|
||||
</t>
|
||||
<t t-set="title">Shop - Checkout</t>
|
||||
<div class="container oe_ecommerce">
|
||||
<script type="text/javascript" src="/website_sale/static/src/js/ecommerce.js"></script>
|
||||
<div class="row">
|
||||
<div class="span4 oe_total">
|
||||
<table class="table table-condensed" t-if="order.order_line">
|
||||
|
@ -195,32 +203,42 @@
|
|||
</table>
|
||||
</div>
|
||||
<div class="span8 oe_checkout">
|
||||
<div class="js_inputs">
|
||||
<a href="/admin#action=goback" class="btn btn-primary">Log me, I have an account</a>
|
||||
<div class="js_inputs row">
|
||||
<a t-if="not partner" href="/admin#action=goback" class="btn btn-primary">Log me, I have an account</a>
|
||||
<h3 class="span8">Billing Information</h3>
|
||||
<label class="span8 css_required">Name and firstname<input class="span7" type="text" name="name" placeholder="Name and firstname"/></label>
|
||||
<label class="span4 css_required">Telephone<input type="tel" name="tel" placeholder="Telephone"/></label>
|
||||
<label class="span4">Fax<input type="tel" name="fax" placeholder="Fax"/></label>
|
||||
<label class="span4">Company<input type="text" name="company" placeholder="Company"/></label>
|
||||
<label class="span4 css_required">Email address<input type="email" name="email" placeholder="Email address"/></label>
|
||||
<label class="span8 css_required">Street<input class="span7" type="text" name="street" placeholder="Street address"/></label>
|
||||
<label class="span4 css_required">City<input type="text" name="city" placeholder="City"/></label>
|
||||
<label class="span4 css_required">State / Province<input type="text" name="state" placeholder="State/Province"/></label>
|
||||
<label class="span4 css_required">Zip / Postal Code<input type="text" name="zip" placeholder="Zip/Postal Code"/></label>
|
||||
<label class="span4 css_required">Country<input type="text" name="state" placeholder="Country"/></label>
|
||||
<label class="checkbox">Ship to different address<input type="checkbox" name="shipping_different"/></label>
|
||||
<label class="span8 css_required">Name and firstname<input class="span7" type="text" name="name" placeholder="Name and firstname" t-att-value="partner.name or ''"/></label>
|
||||
<label class="span4 css_required">Telephone<input type="tel" name="phone" placeholder="Telephone" t-att-value="partner.phone or ''"/></label>
|
||||
<label class="span4">Fax<input type="tel" name="fax" placeholder="Fax" t-att-value="partner.fax or ''"/></label>
|
||||
<label class="span4">Company<input type="text" name="company" placeholder="Company" t-att-value="partner.parent_id and partner.parent_id.name or ''"/></label>
|
||||
<label class="span4 css_required">Email address<input type="email" name="email" placeholder="Email address" t-att-value="partner.email or ''"/></label>
|
||||
<label class="span8 css_required">Street<input class="span7" type="text" name="street" placeholder="Street address" t-att-value="partner.street or ''"/></label>
|
||||
<label class="span4 css_required">City<input type="text" name="city" placeholder="City" t-att-value="partner.city or ''"/></label>
|
||||
<label class="span4">State / Province<input type="text" name="state" placeholder="State/Province" t-att-value="partner.state or ''"/></label>
|
||||
<label class="span4 css_required">Zip / Postal Code<input type="text" name="zip" placeholder="Zip/Postal Code" t-att-value="partner.zip or ''"/></label>
|
||||
<label class="span4 css_required">Country <select name="country_id">
|
||||
<option value="">Country...</option>
|
||||
<t t-foreach="countries or []" t-as="country">
|
||||
<option t-att-value="country.id" t-att-selected="partner and partner.country_id and country.id == partner.country_id.id or None"><t t-esc="country.name"/></option>
|
||||
</t>
|
||||
</select></label>
|
||||
<label class="span8 checkbox">Ship to different address<input type="checkbox" name="shipping_different"/></label>
|
||||
</div>
|
||||
<div class="js_inputs js_shipping" style="display:none">
|
||||
<div class="js_inputs js_shipping row" style="display:none">
|
||||
<h3 class="span8 oe_shipping" style="display:none">Shipping Information</h3>
|
||||
<label class="span8 css_required">Name and firstname<input class="span7" type="text" name="shipping_name" placeholder="Name and firstname"/></label>
|
||||
<label class="span4 css_required">Telephone<input type="tel" name="shipping_tel" placeholder="Telephone"/></label>
|
||||
<label class="span4">Fax<input type="tel" name="shipping_fax" placeholder="Fax"/></label>
|
||||
<label class="span4">Company<input type="text" name="shipping_company" placeholder="Company"/></label>
|
||||
<label class="span8 css_required">Street<input class="span7" type="text" name="shipping_street" placeholder="Street address"/></label>
|
||||
<label class="span4 css_required">City<input type="text" name="shipping_city" placeholder="City"/></label>
|
||||
<label class="span4 css_required">State / Province<input type="text" name="shipping_state" placeholder="State/Province"/></label>
|
||||
<label class="span4 css_required">Zip / Postal Code<input type="text" name="shipping_zip" placeholder="Zip/Postal Code"/></label>
|
||||
<label class="span4 css_required">Country<input type="text" name="shipping_state" placeholder="Country"/></label>
|
||||
<label class="span8 css_required">Name and firstname<input class="span7" type="text" name="shipping_name" placeholder="Name and firstname" t-att-value="shipping.name or ''"/></label>
|
||||
<label class="span4 css_required">Telephone<input type="tel" name="shipping_phone" placeholder="Telephone" t-att-value="shipping.phone or ''"/></label>
|
||||
<label class="span4">Fax<input type="tel" name="shipping_fax" placeholder="Fax" t-att-value="shipping.phone or ''"/></label>
|
||||
<label class="span4">Company<input type="text" name="shipping_company" placeholder="Company" t-att-value="shipping.parent_id and shipping.parent_id.name or ''"/></label>
|
||||
<label class="span8 css_required">Street<input class="span7" type="text" name="shipping_street" placeholder="Street address" t-att-value="shipping.street or ''"/></label>
|
||||
<label class="span4 css_required">City<input type="text" name="shipping_city" placeholder="City" t-att-value="shipping.city or ''"/></label>
|
||||
<label class="span4">State / Province<input type="text" name="shipping_state" placeholder="State/Province" t-att-value="shipping.state or ''"/></label>
|
||||
<label class="span4 css_required">Zip / Postal Code<input type="text" name="shipping_zip" placeholder="Zip/Postal Code" t-att-value="shipping.zip or ''"/></label>
|
||||
<label class="span4 css_required">Country <select name="shipping_country_id">
|
||||
<option value="">Country...</option>
|
||||
<t t-foreach="countries or []" t-as="country">
|
||||
<option t-att-value="country.id" t-att-selected="shipping and shipping.country_id and country.id == shipping.country_id.id or None"><t t-esc="country.name"/></option>
|
||||
</t>
|
||||
</select></label>
|
||||
</div>
|
||||
<div class="js_payments css_payments">
|
||||
<div class="css_payment">
|
||||
|
|
Loading…
Reference in New Issue