From 2a93942be1ece99a2527e409329c7668c14e00e4 Mon Sep 17 00:00:00 2001 From: git_admin Date: Mon, 27 Apr 2026 08:15:48 +0000 Subject: [PATCH] Tower: upload cetmix_tower_server 16.0.3.0.1 (via marketplace) --- .../models/cx_tower_access_mixin.py | 37 +++++++++++++++++++ 1 file changed, 37 insertions(+) create mode 100644 addons/cetmix_tower_server/models/cx_tower_access_mixin.py diff --git a/addons/cetmix_tower_server/models/cx_tower_access_mixin.py b/addons/cetmix_tower_server/models/cx_tower_access_mixin.py new file mode 100644 index 0000000..7ad844e --- /dev/null +++ b/addons/cetmix_tower_server/models/cx_tower_access_mixin.py @@ -0,0 +1,37 @@ +# Copyright (C) 2022 Cetmix OÜ +# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl). +from odoo import fields, models + + +class CxTowerAccessMixin(models.AbstractModel): + """Used to implement template access levels in models.""" + + _name = "cx.tower.access.mixin" + _description = "Cetmix Tower access mixin" + + access_level = fields.Selection( + lambda self: self._selection_access_level(), + default=lambda self: self._default_access_level(), + required=True, + index=True, + ) + + def _selection_access_level(self): + """Available access levels + + Returns: + List of tuples: available options. + """ + return [ + ("1", "User"), + ("2", "Manager"), + ("3", "Root"), + ] + + def _default_access_level(self): + """Default access level + + Returns: + Char: `access_level` field selection value + """ + return "2"