X-Git-Url: http://git.inspyration.org/?a=blobdiff_plain;f=addons%2Fwebsite_event_sale%2Fcontrollers%2Fmain.py;h=ff697b1cf160b2df878bb685aab8b7fd94756ee3;hb=56f2b7ae0f8c958ef78da7cf466e7908abcd29c6;hp=2a221d7a118e0c352d5847b3cb6dffcf36ee8921;hpb=fdc62713a5ac7a4f084a911311150fc6b9fe4a21;p=odoo%2Fodoo.git diff --git a/addons/website_event_sale/controllers/main.py b/addons/website_event_sale/controllers/main.py index 2a221d7..ff697b1 100644 --- a/addons/website_event_sale/controllers/main.py +++ b/addons/website_event_sale/controllers/main.py @@ -27,65 +27,31 @@ from openerp.tools.translate import _ class website_event(website_event): - @http.route(['/event/add_cart'], type='http', auth="public", website=True, multilang=True) - def add_cart(self, event_id, **post): - user_obj = request.registry['res.users'] - order_line_obj = request.registry.get('sale.order.line') - ticket_obj = request.registry.get('event.event.ticket') - order_obj = request.registry.get('sale.order') - website = request.registry['website'] - - order = website.ecommerce_get_current_order(request.cr, request.uid, context=request.context) - if not order: - order = website.ecommerce_get_new_order(request.cr, request.uid, context=request.context) - - partner_id = user_obj.browse(request.cr, SUPERUSER_ID, request.uid, - context=request.context).partner_id.id - fields = [k for k, v in order_line_obj._columns.items()] - values = order_line_obj.default_get(request.cr, SUPERUSER_ID, fields, - context=request.context) + @http.route(['/event/cart/update'], type='http', auth="public", methods=['POST'], website=True) + def cart_update(self, event_id, **post): + cr, uid, context = request.cr, request.uid, request.context + ticket_obj = request.registry.get('event.event.ticket') - _values = None + sale = False for key, value in post.items(): - try: - quantity = int(value) - assert quantity > 0 - except: - quantity = None - ticket_id = key.split("-")[0] == 'ticket' and int(key.split("-")[1]) or None - if not ticket_id or not quantity: + quantity = int(value or "0") + if not quantity: continue - ticket = ticket_obj.browse(request.cr, request.uid, ticket_id, - context=request.context) - - values['product_id'] = ticket.product_id.id - values['event_id'] = ticket.event_id.id - values['event_ticket_id'] = ticket.id - values['product_uom_qty'] = quantity - values['price_unit'] = ticket.price - values['order_id'] = order.id - values['name'] = "%s: %s" % (ticket.event_id.name, ticket.name) - - # change and record value - pricelist_id = order.pricelist_id and order.pricelist_id.id or False - _values = order_line_obj.product_id_change( - request.cr, SUPERUSER_ID, [], pricelist_id, ticket.product_id.id, - partner_id=partner_id, context=request.context)['value'] + sale = True + ticket_id = key.split("-")[0] == 'ticket' and int(key.split("-")[1]) or None + ticket = ticket_obj.browse(cr, SUPERUSER_ID, ticket_id, context=context) + request.website.sale_get_order(force_create=1)._cart_update( + product_id=ticket.product_id.id, add_qty=quantity, context=dict(context, event_ticket_id=ticket.id)) if 'tax_id' in _values: _values['tax_id'] = [(6, 0, _values['tax_id'])] - _values.update(values) - - order_line_id = order_line_obj.create(request.cr, SUPERUSER_ID, _values, context=request.context) - order_obj.write(request.cr, SUPERUSER_ID, [order.id], {'order_line': [(4, order_line_id)]}, context=request.context) - if not _values: - return request.redirect("/event/%s/" % event_id) + if not sale: + return request.redirect("/event/%s" % event_id) return request.redirect("/shop/checkout") def _add_event(self, event_name="New Event", context={}, **kwargs): try: - print kwargs dummy, res_id = request.registry.get('ir.model.data').get_object_reference(request.cr, request.uid, 'event_sale', 'product_product_event') context['default_event_ticket_ids'] = [[0,0,{ 'name': _('Subscription'),