Hi, I have a function called search in boatcompany.py that uses the context i'm passing in the attribute as below:
<xpath expr="//field[@name='product_id']" position="attributes">
<attribute name="context">{'boatmodel_id': parent.boatmodel_id}</attribute>
</xpath>
I expect to get context['boatmodel_id'] in my def, but I didn't. I print context and see all the defaults context only. May I know why? Below are my files:
boatcompany.py
from osv import osv, fields
class product_product(osv.osv):
_inherit = "product.product"
_columns = {
'boatlength': fields.char("Boat Length", size=10),
'fuelcapacity': fields.char("Fuel Capacity", size=10),
'modeloptions_id': fields.many2one('product.category','Model Options')
}
def search(self, cr, uid, args, offset=0, limit=None, order=None, context=None, count=False):
print context
if context is None:
context = {}
if context.get('boatmodel_id'):
print "CONTEXT===="
print context['boatmodel_id']
productobj = self.pool.get('product.product').read(cr, uid, context['boatmodel_id'], ['modeloptions_id'])
args = [('categ_id','=',productobj['modeloptions_id'][0])] + args
return super(product_product, self).search(cr, uid, args, offset, limit, order, context=context, count=count)
class sale_order(osv.osv):
_inherit = "sale.order"
_columns = {
'boatmodel_id': fields.many2one("product.product", "Boat Model", domain=[('categ_id.name','=','Boat Models')])
}
and inheriting sale_view.xml in boatcompany_view.xml as below:
<record id="sale_view_order_form" model="ir.ui.view">
<field name="model">sale.order</field>
<field name="inherit_id" ref="sale.view_order_form" />
<field name="arch" type="xml">
<field name="partner_id" position="after">
<field name="boatmodel_id" />
</field>
<xpath expr="//field[@name='product_id']" position="attributes">
<attribute name="context">{'boatmodel_id': parent.boatmodel_id}</attribute>
</xpath>
</field>
</record>
I'm not sure why you're trying to use the context here, or what end goal you're trying to accomplish. I think what you ought to be doing is setting the domain on the product_id field in the sales order form, if you're trying to filter that down based on another custom field you're adding in.
I've got the same Problem over here. It seems like it is a bug. Somehow the context does't change, even though it should.