Files

28 lines
1.3 KiB
Python

# Part of Odoo. See LICENSE file for full copyright and licensing details.
from odoo import _, api, fields, models
from odoo.exceptions import ValidationError
class ResCompany(models.Model):
_inherit = "res.company"
documents_project_folder_id = fields.Many2one(
'documents.document', string="Project Folder",
domain="[('type', '=', 'folder'), ('shortcut_document_id', '=', False)]", check_company=True,
default=lambda self: self.env.ref('documents_project.document_project_folder', raise_if_not_found=False),
context=lambda env: {
'default_type': 'folder',
'default_folder_id': (env.ref('documents_project.document_project_folder', raise_if_not_found=False) or env['documents.document']).id,
},
)
@api.constrains('documents_project_folder_id')
def _check_documents_project_folder_id_company_id(self):
if wrong_companies := self.filtered(lambda c: c.documents_project_folder_id.company_id.id not in {False, c.id}):
companies_list = "\n- ".join(f"{company.name}: {company.documents_project_folder_id.name}"
for company in wrong_companies)
raise ValidationError(
_("Company Project Folders cannot be linked to another company.%s", f'\n- {companies_list}')
)