1 # -*- coding: utf-8 -*-
2 from openerp import SUPERUSER_ID
3 from openerp.osv import osv, fields
4 from openerp.addons.web.http import request
7 class SaleOrder(osv.Model):
8 _inherit = "sale.order"
11 'website_session_id': fields.char('Session UUID4'),
12 'website_order_line': fields.one2many(
13 'sale.order.line', 'order_id',
14 string='Order Lines displayed on Website', readonly=True,
15 help='Order Lines to be displayed on the website. They should not be used for computation purpose.',
19 def _get_errors(self, cr, uid, order, context=None):
22 def _get_website_data(self, cr, uid, order, context):
24 'partner': order.partner_id.id,
28 def get_number_of_products(self, cr, uid, ids, context=None):
29 order = self.browse(cr, uid, ids[0], context=context)
30 return int(sum(l.product_uom_qty for l in (order.website_order_line or [])))
33 class SaleOrderLine(osv.Model):
34 _inherit = "sale.order.line"
36 def _recalculate_product_values(self, cr, uid, ids, product_id=0, fiscal_position=False, context=None):
37 # TDE FIXME: seems to be defined several times -> fix me ?
40 user_obj = self.pool.get('res.users')
42 if ids and not product_id:
43 order_line = self.browse(cr, SUPERUSER_ID, ids[0], context=context)
44 assert order_line.order_id.website_session_id == request.httprequest.session['website_session_id']
45 product_id = product_id or order_line.product_id.id
47 return self.product_id_change(
48 cr, SUPERUSER_ID, ids,
49 pricelist=context.pop('pricelist'),
51 partner_id=user_obj.browse(cr, SUPERUSER_ID, uid).partner_id.id,
52 fiscal_position=fiscal_position,