0
votes

I have asset.asset there i have added place1 many2one fields i will create some records through this form .

my requirement is that when i select any location in calendar.event at place the my next field should get only those records which are related to same location

suppose i have created at asset.asset like

1) name: A1, place:**karnataka/gulbarga/shahapur **asset_catg_id:**hardware **area_id:**hard disk **asset_modelid_add: qqqq(predifined at other class or model with domain fielter by model_no+make) **folio_no:**qqqqshahapur(auto populate by combaining location+assermodelid_add)

2) name: B1, place:**karnataka/gulbarga/jewargi, **asset_catg_id:**software **area_id:**os **asset_modelid_add: zzzz(predifined at other class or model with domain fielter by model_no+make) **folio_no:**zzzzjewargi(auto populate by combaining location+assermodelid_add)

i want in calendar.event inherited class when i select location the next field should get asset_modelid_add for that record only i.e in many2many fields like If A1 selected next field should get only karnataka/gulbarga/shahapur ,folio_num as qqqqshahapur

class asset_asset(osv.osv):
        _inherit = "asset.asset"
        #_name = "asset_asset"
        _rec_name= "folio_num"
        _columns = {
            'name': fields.char('Asset Name', size=64),
            'place1': fields.many2one('asset.parentlocation', 'Location'),
            'asset_catg_id' : fields.many2one('asset.catg', 'Asset Catg Selection',select=True, required=True),
                'area_id' : fields.many2one('asset.name', 'Asset Name Selection', domain="[('asset_catg_id', '=', asset_catg_id)]", select=True, required=True),
            'assetmodelid_add' : fields.many2one('agile.portfolio1','Asset Model Code',domain="[('area_id', '=', area_id)]",),
            'folio_num' : fields.char('Folio No',),
            'asse_line':fields.one2many('asset.line','emp_id','Name Plate'),
            'asse_line2':fields.one2many('asset.part','emp_id1','Parts'),
                   #'assed_modelid':fields.many2one('agile.portfolio1','Asset Model ID',select=True, required=True),
            'quantity': fields.char('Quantity',size=64),
            'uom': fields.char('Uinit of Measure',size=64),
            'model_no' : fields.char('Model', size=64),

            #'asset_id':fields.many2one('agile.portfolio','Asset ID'),

        }
class asset_parentlocation(osv.osv):
    _name="asset.parentlocation"
    _rec_name="location_name"
    _columns = {
        'location_name' : fields.char('Asset Location', required=True),
        'parent_location' : fields.many2one('asset.parentlocation','Parent Location'),
        'nameee':fields.many2one('ir.attachment','Attachments'),}

    def name_get(self, cr, uid, ids, context=None):
        if context is None:
            context = {}
        if not ids:
            return []
        reads = self.read(cr, uid, ids, ['location_name','parent_location'], context=context)
        res = []
        for record in reads:
            name = record['location_name']
            if record['parent_location']:
                name = record['parent_location'][1]+' / '+name
            res.append((record['id'], name))
        return res
**calendar_event.py**
    class calendar_event(osv.osv):
        _inherit = "calendar.event"
        _rec_name = 'number'

        _columns = {
                'number' : fields.char('Meeting ID',readonly=1),

                'place' : fields.many2one('asset.parentlocation','Substation Location',),

                'assetmodelid_add' : fields.many2many('agile.portfolio1','Asset Model Code',),
                'folio_num' : fields.many2many('asset.asset','asset_asset_rel','super_id','asset_asset_id','Folio Num',),
                'inspection_name' : fields.many2many('asset1.inspection','asset1_inspection_rel','super_id','asset1_inspection_id','Inspection Type'),
    }

please update answers how to do with sql or onchage both are acceptable

1

1 Answers

0
votes

Lets consider a simple example. Suppose we have a many2one field to Product (name: product_id). We now want to change the content on this many2one field based on type selection box(name: type). Now, if I choose type as Service, only service type product should be visible in Product field.

To accomplish this, we have to define on change function on type selection box.

def onchange_type(self,cr,uid,ids, type,context=None):
    product_obj = self.pool.get('product.product')
    product_ids = product_obj.search(cr,uid, [('type','=',type)])
    return {'domain':{'product_id':[('id','in',product_ids)]}}

In your case you will have to replicate above scenario.. Above case I have used in my project.

thanks,