mirror of
https://github.com/bringout/oca-technical.git
synced 2026-04-19 22:32:04 +02:00
Initial commit: OCA Technical packages (595 packages)
This commit is contained in:
commit
2cc02aac6e
24950 changed files with 2318079 additions and 0 deletions
|
|
@ -0,0 +1,55 @@
|
|||
# Copyright 2024 Tecnativa - Víctor Martínez
|
||||
# License LGPL-3.0 or later (http://www.gnu.org/licenses/lgpl).
|
||||
|
||||
from odoo import _, api, fields, models
|
||||
from odoo.exceptions import UserError
|
||||
|
||||
|
||||
class DmsAccessGroups(models.Model):
|
||||
_inherit = "dms.access.group"
|
||||
|
||||
dms_field_ref = fields.Reference(
|
||||
selection="_selection_reference_value",
|
||||
string="DMS field reference",
|
||||
)
|
||||
company_id = fields.Many2one(
|
||||
compute="_compute_company_id",
|
||||
comodel_name="res.company",
|
||||
string="Company",
|
||||
store=True,
|
||||
)
|
||||
|
||||
@api.model
|
||||
def _selection_reference_value(self):
|
||||
models = (
|
||||
self.env["ir.model"]
|
||||
.sudo()
|
||||
.search([("transient", "=", False)], order="name asc")
|
||||
)
|
||||
return [(model.model, model.name) for model in models]
|
||||
|
||||
@api.depends("dms_field_ref")
|
||||
def _compute_company_id(self):
|
||||
self.company_id = False
|
||||
for item in self.filtered("dms_field_ref"):
|
||||
item.company_id = (
|
||||
item.dms_field_ref.company_id
|
||||
if "company_id" in item.dms_field_ref._fields
|
||||
else False
|
||||
)
|
||||
|
||||
def _get_item_from_dms_field_ref(self, record):
|
||||
return self.env["dms.access.group"].search(
|
||||
[("dms_field_ref", "=", "%s,%s" % (record._name, record.id))]
|
||||
)
|
||||
|
||||
@api.constrains("dms_field_ref")
|
||||
def _check_dms_field_ref(self):
|
||||
for item in self.filtered("dms_field_ref"):
|
||||
dms_field_ref = "%s,%s" % (item.dms_field_ref._name, item.dms_field_ref.id)
|
||||
if self.search(
|
||||
[("dms_field_ref", "=", dms_field_ref), ("id", "!=", item.id)]
|
||||
):
|
||||
raise UserError(
|
||||
_("There is already an access group created for this record.")
|
||||
)
|
||||
Loading…
Add table
Add a link
Reference in a new issue