change create and write method

This commit is contained in:
pawan.sharma 2021-11-18 19:20:00 +05:30
parent 23b6b4d764
commit 6d34e347c9
1 changed files with 48 additions and 12 deletions

View File

@ -10,21 +10,57 @@ class SubProject(models.Model):
domain="[('is_sub_project', '=', True),('parent_project', '=', False)]", string='Sub Project')
parent_project = fields.Many2one('project.project', domain="[('is_sub_project', '=', False)]", string='Parent Project')
@api.onchange('parent_project', 'sub_project')
def onchange_parent_project_sub_project(self):
if self.parent_project.sub_project:
if self.parent_project:
user_list = self.parent_project.sub_project.ids
user_list.append(self._origin.id)
self.parent_project.sub_project = user_list
# @api.onchange('parent_project', 'sub_project')
# def onchange_parent_project_sub_project(self):
# if self.parent_project.sub_project:
# if self.parent_project:
# user_list = self.parent_project.sub_project.ids
# print('11111111111', self, self.id, self._origin.id)
# user_list.append(self._origin.id)
# self.parent_project.sub_project = user_list
# else:
# self.parent_project.sub_project = self.ids
# if self.sub_project:
# for rec in self.sub_project:
# sub_project = self.env['project.project'].search([('id', '=', rec._origin.id)], limit=1)
# sub_project.write({'parent_project': self._origin.id})
@api.model
def create(self, vals):
value = super(SubProject, self).create(vals)
if value and value.parent_project:
if value.parent_project.sub_project:
user_list = value.parent_project.sub_project.ids
user_list.append(value.id)
value.parent_project.sub_project = user_list
else:
self.parent_project.sub_project = self.ids
if self.sub_project:
for rec in self.sub_project:
sub_project = self.env['project.project'].search([('id', '=', rec._origin.id)], limit=1)
sub_project.write({'parent_project': self._origin.id})
value.parent_project.sub_project = value.ids
if value and value.sub_project:
value.write({'parent_project': value.id})
return value
def write(self, vals):
list1 = self.sub_project.ids
res = super(SubProject, self).write(vals)
if vals.get('parent_project'):
parent_prjt = self.env['project.project'].search([('id', '=', vals.get('parent_project'))], limit=1)
user_list = parent_prjt.sub_project.ids
user_list.append(self.id)
parent_prjt.sub_project = user_list
if vals.get('sub_project'):
list2 = self.sub_project.ids
if len(list2) > len(list1):
list3 = (set(list2)) - (set(list1))
for record in list(list3):
self.env['project.project'].search([('id', '=', int(record))], limit=1).write(
{'parent_project': self.id})
if len(list1) > len(list2):
list3 = (set(list1)) - (set(list2))
for record in list(list3):
self.env['project.project'].search([('id', '=', int(record))], limit=1).write(
{'parent_project': False, 'is_sub_project': False})
return res
class InheritProjectTask(models.Model):