oca-project/odoo-bringout-oca-project-project_role/project_role/models/project_project.py
Ernad Husremovic 6094c218b2 Move 124 sale modules to oca-sale, create oca-project with 56 project modules from oca-workflow-process
🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-08-30 18:04:10 +02:00

57 lines
2.1 KiB
Python

# Copyright 2018-2019 Brainbean Apps (https://brainbeanapps.com)
# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl).
from odoo import api, fields, models
class ProjectProject(models.Model):
_inherit = "project.project"
assignment_ids = fields.One2many(
string="Project Assignments",
comodel_name="project.assignment",
inverse_name="project_id",
tracking=True,
)
inherit_assignments = fields.Boolean(
default=lambda self: self._default_inherit_assignments(),
)
limit_role_to_assignments = fields.Boolean(
default=lambda self: self._default_limit_role_to_assignments(),
)
@api.model
def _default_inherit_assignments(self):
company = self.env["res.company"].browse(
self._context.get("company_id", self.env.company.id)
)
return company.project_inherit_assignments
@api.model
def _default_limit_role_to_assignments(self):
company = self.env["res.company"].browse(
self._context.get("company_id", self.env.company.id)
)
return company.project_limit_role_to_assignments
def _project_role_create_assignment_values(self, vals_list):
"""Complete values with default assignments from company"""
company_ids = [v["company_id"] for v in vals_list if v.get("company_id")]
companies = self.env["res.company"].browse(company_ids)
for values in vals_list:
company = None
if values.get("company_id"):
company = companies.filtered(lambda c: c.id == values["company_id"])
if company and "inherit_assignments" not in values:
values["inherit_assignments"] = company.project_inherit_assignments
if company and "limit_role_to_assignments" not in values:
values[
"limit_role_to_assignments"
] = company.project_limit_role_to_assignments
return vals_list
@api.model_create_multi
def create(self, vals_list):
vals_list = self._project_role_create_assignment_values(vals_list)
return super().create(vals_list)