openerp - Copy one2many field SNAFU -


i need show record notebook project on notebook sheet , showed record not according project

my py :

class notebook_project(osv.osv):     _name = "notebook.project"     _description = "notebook project id"      def onchange_project(self, cr, uid, ids, project, arg, context=none):         if project :             proj = self.pool.get('project.project').browse(cr, uid, project, context=context)             return {'value': {'name': proj.name}}         return {}     _columns = {         'name' : fields.char('name', size=64),         'project' : fields.many2one('project.project', 'project'),         'notebook_project_lines' : fields.one2many('notebook.project', 'notebook_project_id', 'members lines'),         'notebook_project_id': fields.many2one('notebook.project', 'parent project', ondelete='cascade', select=true),         'member' : fields.many2one('hr.employee', 'members'),          }  notebook_project()   class notebook_sheet(osv.osv):     _name = "notebook.sheet"     _description = "notebook project sheet"      def onchange_notebook_project(self, cr, uid, ids, notebook_project, context=none):         res = {}         employee_lines = []         if not notebook_project : return {}         if notebook_project :             notebook_project_obj = self.pool.get('notebook.project').browse(cr, uid, notebook_project)             p in notebook_project_obj.notebook_project_lines:             employee_lines.append((0,0,{'notebook_sheet_lines':p.id             }))#this dict contain keys fields of one2many field              res['notebook_sheet_lines']=employee_lines             return res      def onchange_project(self, cr, uid, ids, project, context=none):         if project :             proj = self.pool.get('project.project').browse(cr, uid, project, context=context)             return {'value': {'name': proj.name}}         return {}      #def create(self, cr, user, vals, context={}):     #first model     #   notebook_project_obj = self.pool.get('notebook.project')     #browse , o2m fields, according selected project(id)     #   notebook_project_lines = notebook_project_obj.browse(cr, user, ['notebook_project_id'])[0].lines     #copy first o2m model second o2m model     #   line in notebook_project_lines :     #       vals['notebook_sheet_lines'].append([0, false, {'notebook_project_lines':line.employee_id.id,}])     #   return super(notebook_sheet, self).create(cr, user, vals, context)      _columns = {         'name' : fields.char('name', size=64),         'notebook_sheet_lines' : fields.many2many('notebook.project', 'notebook_project_sheet_rel', 'notebook_project', 'notebook_project_id'),         'notebook_project': fields.many2one('notebook.project', 'project id',domain=[('notebook_project_id','=',false)]),         'project' : fields.many2one('project.project', 'project'),         'member' : fields.many2one('hr.employee', 'members'),          }  notebook_sheet() 

edited answer , mr. anoma . still not sure many2many , please kindly check it

do need change onhange event ? again in advance

first of please create link between notebook.sheet , notebook.project. there no link between these 2 models. add many2one relation notebook.sheet in notebook.project , change relation id in notebook_sheets_lines field. otherwise change relation type of notebook_sheet_lines many2many. change onchange_notebok_project() return {'value':{'notebook_sheet_lines':list_of_empoyeeids}} no need add many2many in motebook_project.


Comments

Popular posts from this blog

php - Calling a template part from a post -

Firefox SVG shape not printing when it has stroke -

How to mention the localhost in android -