mirror of
https://github.com/bringout/oca-project.git
synced 2026-04-18 13:42:08 +02:00
🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com>
57 lines
2.1 KiB
Python
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)
|