Files
odoo_source/addons/project/models/res_company.py
T
damr 16a07ed1bf [IMP] project: make the field company_id of projects non required
This commit's purpose is to allow the user to set the company_id of a project to False, meaning the project is no longer restricted for the user who does not have access to the company of the project. This change induces a lot of other small behavior changes/approximation. Since some fields (currency_id, resource_calendar_id, etc) were company dependent, we had to updates some use cases.

task-3084819

closes odoo/odoo#122144

Related: odoo/enterprise#41363
Related: odoo/upgrade#4947
Signed-off-by: Xavier Bol (xbo) <xbo@odoo.com>
2023-07-19 23:17:53 +02:00

29 lines
1.1 KiB
Python

# -*- coding: utf-8 -*-
from odoo import fields, models
class ResCompany(models.Model):
_name = "res.company"
_inherit = "res.company"
analytic_plan_id = fields.Many2one(
'account.analytic.plan',
string="Default Plan",
check_company=True,
readonly=False,
compute="_compute_analytic_plan_id",
help="Default Plan for a new analytic account for projects")
def _compute_analytic_plan_id(self):
for company in self:
default_plan = self.env['ir.config_parameter'].with_company(company).sudo().get_param("default_analytic_plan_id_%s" % company.id)
company.analytic_plan_id = int(default_plan) if default_plan else False
if not company.analytic_plan_id:
company.analytic_plan_id = self.env['account.analytic.plan']._get_default()
def write(self, values):
for company in self:
if 'analytic_plan_id' in values:
self.env['ir.config_parameter'].sudo().set_param("default_analytic_plan_id_%s" % company.id, values['analytic_plan_id'])
return super().write(values)