[IMP] website_sale: login and complete information
bzr revid: chm@openerp.com-20130710142908-c9xr4pk38zhu7cn1
This commit is contained in:
parent
1bf0661f69
commit
5f0b723525
|
@ -12,13 +12,16 @@ class Ecommerce(http.Controller):
|
|||
def get_cr_uid(self):
|
||||
cr = request.cr
|
||||
uid = request.session._uid or openerp.SUPERUSER_ID
|
||||
partner_id = request.httprequest.session.get('ecommerce_partner_id', False)
|
||||
if uid != 1:
|
||||
request.httprequest.session['ecommerce_partner_id'] = False
|
||||
partner_id = None
|
||||
else:
|
||||
partner_id = request.httprequest.session.get('ecommerce_partner_id', False)
|
||||
|
||||
if partner_id and not request.registry.get('res.partner').search(cr, uid, [('id', '=', partner_id)]):
|
||||
partner_id = None
|
||||
if not partner_id:
|
||||
partner_id = request.registry.get('res.users').browse(cr, uid, uid).partner_id.id
|
||||
if uid != 1:
|
||||
request.httprequest.session['ecommerce_partner_id'] = partner_id
|
||||
return (cr, uid, partner_id)
|
||||
|
||||
def get_values(self):
|
||||
|
@ -42,14 +45,14 @@ class Ecommerce(http.Controller):
|
|||
order_id = order_obj.create(cr, uid, order_value, context=context)
|
||||
request.httprequest.session['ecommerce_order'] = order_id
|
||||
|
||||
category_ids = category_obj.search(cr, uid, [('parent_id', '=', False)])
|
||||
category_ids = category_obj.search(cr, openerp.SUPERUSER_ID, [('parent_id', '=', False)])
|
||||
|
||||
values = template_values()
|
||||
values.update({
|
||||
'temp': 0,
|
||||
'res_company': request.registry['res.company'].browse(request.cr, uid, 1, context=context),
|
||||
'order': order_obj.browse(cr, uid, order_id),
|
||||
'categories': category_obj.browse(cr, uid, category_ids),
|
||||
'categories': category_obj.browse(cr, openerp.SUPERUSER_ID, category_ids),
|
||||
})
|
||||
return values
|
||||
|
||||
|
@ -61,13 +64,13 @@ class Ecommerce(http.Controller):
|
|||
cat_id = cat_id and int(cat_id) or 0
|
||||
category_obj = request.registry.get('pos.category')
|
||||
product_obj = request.registry.get('product.product')
|
||||
category_ids = category_obj.search(cr, uid, [('parent_id', '=', False)])
|
||||
product_ids = product_obj.search(cr, uid, cat_id and [('pos_categ_id.id', 'child_of', cat_id)] or [(1, '=', 1)], limit=20, offset=offset)
|
||||
category_ids = category_obj.search(cr, openerp.SUPERUSER_ID, [('parent_id', '=', False)])
|
||||
product_ids = product_obj.search(cr, openerp.SUPERUSER_ID, cat_id and [('pos_categ_id.id', 'child_of', cat_id)] or [(1, '=', 1)], limit=20, offset=offset)
|
||||
|
||||
values.update({
|
||||
'current_category': cat_id,
|
||||
'categories': category_obj.browse(cr, uid, category_ids),
|
||||
'products': product_obj.browse(cr, uid, product_ids),
|
||||
'categories': category_obj.browse(cr, openerp.SUPERUSER_ID, category_ids),
|
||||
'products': product_obj.browse(cr, openerp.SUPERUSER_ID, product_ids),
|
||||
})
|
||||
html = request.registry.get("ir.ui.view").render(cr, uid, "website_sale.products", values)
|
||||
return html
|
||||
|
@ -81,7 +84,7 @@ class Ecommerce(http.Controller):
|
|||
product_obj = request.registry.get('product.product')
|
||||
|
||||
values.update({
|
||||
'product': product_obj.browse(cr, uid, product_id),
|
||||
'product': product_obj.browse(cr, openerp.SUPERUSER_ID, product_id),
|
||||
})
|
||||
html = request.registry.get("ir.ui.view").render(cr, uid, "website_sale.product", values)
|
||||
return html
|
||||
|
@ -145,14 +148,20 @@ class Ecommerce(http.Controller):
|
|||
cr, uid, partner_id = self.get_cr_uid()
|
||||
values = self.get_values()
|
||||
partner_obj = request.registry.get('res.partner')
|
||||
user_obj = request.registry.get('res.users')
|
||||
|
||||
values['partner'] = False
|
||||
partner_id = request.httprequest.session.get('ecommerce_partner_id')
|
||||
partner_id = uid != 1 and partner_id or request.httprequest.session.get('ecommerce_partner_id')
|
||||
|
||||
if post.get("login"):
|
||||
user_id = user_obj.login(cr, post.get("login"), post.get("password"))
|
||||
partner_id = user_obj.browse(cr, uid, user_id).partner_id.id
|
||||
request.httprequest.session['ecommerce_partner_id'] = partner_id
|
||||
|
||||
if partner_id:
|
||||
values['partner'] = partner_obj.browse(cr, uid, partner_id)
|
||||
|
||||
html = request.registry.get("ir.ui.view").render(cr, uid, "website_sale.customer", values)
|
||||
return html
|
||||
return request.registry.get("ir.ui.view").render(cr, uid, "website_sale.customer", values)
|
||||
|
||||
@http.route(['/shop/confirm_cart'], type='http', auth="db")
|
||||
def confirm_cart(self, *arg, **post):
|
||||
|
@ -161,9 +170,9 @@ class Ecommerce(http.Controller):
|
|||
partner_obj = request.registry.get('res.partner')
|
||||
|
||||
values['partner'] = False
|
||||
partner_id = request.httprequest.session.get('ecommerce_partner_id')
|
||||
partner_id = uid != 1 and partner_id or request.httprequest.session.get('ecommerce_partner_id')
|
||||
if post:
|
||||
post['country_id'] = (request.registry.get('res.country').search(cr, uid, [('name', 'ilike', post.pop('country'))]) + [None])[0]
|
||||
post['country_id'] = (request.registry.get('res.country').search(cr, openerp.SUPERUSER_ID, [('name', 'ilike', post.pop('country'))]) + [None])[0]
|
||||
post['state_id'] = (request.registry.get('res.country.state').search(cr, uid, [('name', 'ilike', post.pop('state'))]) + [None])[0]
|
||||
|
||||
if partner_id:
|
||||
|
@ -174,12 +183,13 @@ class Ecommerce(http.Controller):
|
|||
request.httprequest.session['ecommerce_partner_id'] = partner_id
|
||||
|
||||
values['partner'] = partner_obj.browse(cr, uid, partner_id)
|
||||
html = request.registry.get("ir.ui.view").render(cr, uid, "website_sale.order", values)
|
||||
return html
|
||||
return request.registry.get("ir.ui.view").render(cr, uid, "website_sale.order", values)
|
||||
|
||||
@http.route(['/shop/confirm_order'], type='http', auth="db")
|
||||
def confirm_order(self, *arg, **post):
|
||||
cr, uid, partner_id = self.get_cr_uid()
|
||||
if uid == 1:
|
||||
return customer()
|
||||
values = self.get_values()
|
||||
values['order'].write({'state': 'progress'})
|
||||
values['partner'] = request.registry.get('res.partner').browse(cr, uid, partner_id)
|
||||
|
|
|
@ -18,7 +18,7 @@
|
|||
margin-top: 10px;
|
||||
}
|
||||
.oe_ecommerce .oe_total td {
|
||||
padding: 10px;
|
||||
padding: 5px 10px;
|
||||
}
|
||||
.oe_ecommerce .oe_products .oe_product {
|
||||
text-align: center;
|
||||
|
@ -139,3 +139,6 @@
|
|||
background: -o-linear-gradient(#51a351, #418541);
|
||||
background: linear-gradient(#51a351, #418541);
|
||||
}
|
||||
.oe_ecommerce form.oe_signup {
|
||||
display: none;
|
||||
}
|
||||
|
|
|
@ -11,7 +11,7 @@
|
|||
.oe_total
|
||||
margin-top: 10px
|
||||
td
|
||||
padding: 10px
|
||||
padding: 5px 10px
|
||||
font-family: "Lato"
|
||||
font-size: 13px
|
||||
.oe_products
|
||||
|
@ -98,3 +98,5 @@
|
|||
@include background(linear-gradient(#0088cc,#0076b1))
|
||||
&.btn-success
|
||||
@include background(linear-gradient(#51a351, #418541))
|
||||
form.oe_signup
|
||||
display: none
|
|
@ -18,4 +18,8 @@ $(document).ready(function (){
|
|||
$('.oe_ecommerce .oe_total').replaceWith(''+result.totalHTML);
|
||||
});
|
||||
});
|
||||
$('.oe_ecommerce form').on('click', '.oe_toggleform', function (ev) {
|
||||
ev.preventDefault();
|
||||
$('.oe_ecommerce form').toggle();
|
||||
});
|
||||
});
|
|
@ -154,7 +154,7 @@
|
|||
<field name="type">qweb</field>
|
||||
<field name="arch" type="xml">
|
||||
<div class="oe_total">
|
||||
<div class="media well">
|
||||
<div class="media well well-small">
|
||||
<table t-if="order.order_line">
|
||||
<tr><td>Untaxed Amount</td><td><t t-esc="order.amount_untaxed"/> €</td></tr>
|
||||
<tr><td>Taxes</td><td><t t-esc="order.amount_tax"/> €</td></tr>
|
||||
|
@ -175,23 +175,32 @@
|
|||
<t t-call="website_sale.page">
|
||||
<t t-set="title">Your informations</t>
|
||||
<t t-set="shop_content">
|
||||
<form action="/shop/confirm_cart" method="post">
|
||||
<div>Please enter your informations</div>
|
||||
<input name="name" required="True" placeholder="Name..." t-att-value="partner and partner.name or ''"/><br/>
|
||||
<input name="phone" type="tel" required="True" placeholder="Phone number..." t-att-value="partner and partner.phone or ''"/>
|
||||
<input name="email" type="email" required="True" placeholder="Email..." t-att-value="partner and partner.email or ''"/>
|
||||
<div>Please enter your address</div>
|
||||
<address>
|
||||
<input name="street" required="True" placeholder="Street..." t-att-value="partner and partner.street or ''"/><br/>
|
||||
<input name="street2" placeholder="Street..." t-att-value="partner and partner.street2 or ''"/><br/>
|
||||
<input name="zip" required="True" placeholder="Zip-code..." t-att-value="partner and partner.zip or ''"/>
|
||||
<input name="city" required="True" placeholder="City..." t-att-value="partner and partner.city or ''"/><br/>
|
||||
<input name="country" required="True" placeholder="Country..." t-att-value="partner and partner.country_id and partner.country_id.name_get()[0][1] or ''"/>
|
||||
<input name="state" placeholder="State..." t-att-value="partner and partner.state_id and partner.state_id.name_get()[0][1] or ''"/>
|
||||
</address>
|
||||
<button class="btn btn-success">Next stage</button>
|
||||
<t t-call="website_sale.total"/>
|
||||
<form action="/shop/customer" class="oe_signin" method="post" t-if="not partner">
|
||||
<h5>Please Sign in or enter your informations</h5>
|
||||
<input name="login" type="text" placeholder="Login..."/><br/>
|
||||
<input name="password" type="password" placeholder="Password..."/><br/>
|
||||
<button type="submit" class="btn btn-success">Next stage</button> or <button type="reset" class="btn btn-primary oe_toggleform">Complete your address</button>
|
||||
</form>
|
||||
<form action="/shop/confirm_cart" class="oe_signup" method="post" t-att-style="partner and 'display:block' or ''">
|
||||
<h5 t-if="partner">Please confirm your informations</h5>
|
||||
<h5 t-if="not partner">Please enter your informations</h5>
|
||||
<input name="name" type="text" required="True" placeholder="Name..." t-att-value="partner and partner.name or ''"/><br/>
|
||||
<input name="phone" type="tel"
|
||||
required="True" placeholder="Phone number..." t-att-value="partner and partner.phone or ''"/>
|
||||
<input name="email" type="email" required="True" placeholder="Email..." t-att-value="partner and partner.email or ''"/>
|
||||
<h5 t-if="partner">Please confirm your address</h5>
|
||||
<h5 t-if="not partner">Please enter your address</h5>
|
||||
<address>
|
||||
<input name="street" type="text" required="True" placeholder="Street..." t-att-value="partner and partner.street or ''"/><br/>
|
||||
<input name="street2" type="text" placeholder="Street..." t-att-value="partner and partner.street2 or ''"/><br/>
|
||||
<input name="zip" type="text" required="True" placeholder="Zip-code..." t-att-value="partner and partner.zip or ''"/>
|
||||
<input name="city" type="text" required="True" placeholder="City..." t-att-value="partner and partner.city or ''"/><br/>
|
||||
<input name="country" type="text" required="True" placeholder="Country..." t-att-value="partner and partner.country_id and partner.country_id.name_get()[0][1] or ''"/>
|
||||
<input name="state" type="text" placeholder="State..." t-att-value="partner and partner.state_id and partner.state_id.name_get()[0][1] or ''"/>
|
||||
</address>
|
||||
<button type="submit" class="btn btn-success">Next stage</button><t t-if="not partner"> or <button type="reset" class="btn btn-primary oe_toggleform">Sign in</button></t>
|
||||
</form>
|
||||
<t t-call="website_sale.total"/>
|
||||
</t>
|
||||
</t>
|
||||
</field>
|
||||
|
|
Loading…
Reference in New Issue