diff --git a/setup/web_access_rule_buttons/odoo/addons/web_access_rule_buttons b/setup/web_access_rule_buttons/odoo/addons/web_access_rule_buttons new file mode 120000 index 000000000..f8d994ad9 --- /dev/null +++ b/setup/web_access_rule_buttons/odoo/addons/web_access_rule_buttons @@ -0,0 +1 @@ +../../../../web_access_rule_buttons \ No newline at end of file diff --git a/setup/web_access_rule_buttons/setup.py b/setup/web_access_rule_buttons/setup.py new file mode 100644 index 000000000..28c57bb64 --- /dev/null +++ b/setup/web_access_rule_buttons/setup.py @@ -0,0 +1,6 @@ +import setuptools + +setuptools.setup( + setup_requires=['setuptools-odoo'], + odoo_addon=True, +) diff --git a/web_access_rule_buttons/__manifest__.py b/web_access_rule_buttons/__manifest__.py index 35a3ab66d..3b1ebf025 100644 --- a/web_access_rule_buttons/__manifest__.py +++ b/web_access_rule_buttons/__manifest__.py @@ -4,14 +4,14 @@ { "name": "Web Access Rules Buttons", "summary": "Disable Edit button if access rules prevent this action", - "version": "12.0.1.0.0", + "version": "14.0.1.0.0", "author": "Camptocamp, Onestein, Odoo Community Association (OCA)", "license": "AGPL-3", "category": "Web", "depends": [ "web", ], - "website": "https://github.com/OCA/web/tree/11.0/web_access_rule_buttons", + "website": "https://github.com/OCA/web", "data": [ "views/web_access_rule_buttons.xml", ], diff --git a/web_access_rule_buttons/models/models.py b/web_access_rule_buttons/models/models.py index 38dd93687..d36fa3a8e 100644 --- a/web_access_rule_buttons/models/models.py +++ b/web_access_rule_buttons/models/models.py @@ -1,25 +1,26 @@ # Copyright 2016 Camptocamp SA # License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl). -from odoo import models, api, exceptions +from odoo import api, exceptions, models class Base(models.AbstractModel): """ The base model, which is implicitly inherited by all models. """ - _inherit = 'base' + + _inherit = "base" @api.multi def check_access_rule_all(self, operations=None): """Verifies that the operation given by ``operations`` is allowed for - the user according to ir.rules. + the user according to ir.rules. - If ``operations`` is empty, it returns the result for all actions. + If ``operations`` is empty, it returns the result for all actions. - :param operation: a list of ``read``, ``create``, ``write``, ``unlink`` - :return: {operation: access} (access is a boolean) + :param operation: a list of ``read``, ``create``, ``write``, ``unlink`` + :return: {operation: access} (access is a boolean) """ if not operations or not any(operations): - operations = ['read', 'create', 'write', 'unlink'] + operations = ["read", "create", "write", "unlink"] result = {} for operation in operations: if self.is_transient() or not self.ids: diff --git a/web_access_rule_buttons/static/src/js/form_controller.js b/web_access_rule_buttons/static/src/js/form_controller.js index 543023d22..3cb6bb918 100644 --- a/web_access_rule_buttons/static/src/js/form_controller.js +++ b/web_access_rule_buttons/static/src/js/form_controller.js @@ -5,21 +5,22 @@ odoo.define("web_access_rule_buttons.main", function (require) { "use strict"; var FormController = require("web.FormController"); FormController.include({ - _update: function (state) { return this._super(state).then(this.show_hide_buttons(state)); }, - show_hide_buttons : function (state) { + show_hide_buttons: function (state) { var self = this; - return self._rpc({ - model: this.modelName, - method: 'check_access_rule_all', - args: [[state.data.id], ["write"]], - }).then(function (accesses) { - self.show_hide_edit_button(accesses.write); - }); + return self + ._rpc({ + model: this.modelName, + method: "check_access_rule_all", + args: [[state.data.id], ["write"]], + }) + .then(function (accesses) { + self.show_hide_edit_button(accesses.write); + }); }, - show_hide_edit_button : function (access) { + show_hide_edit_button: function (access) { if (this.$buttons) { var button = this.$buttons.find(".o_form_button_edit"); if (button) { @@ -27,6 +28,5 @@ odoo.define("web_access_rule_buttons.main", function (require) { } } }, - }); }); diff --git a/web_access_rule_buttons/tests/test_access_rule_buttons.py b/web_access_rule_buttons/tests/test_access_rule_buttons.py index 47774b4d8..bcccad191 100644 --- a/web_access_rule_buttons/tests/test_access_rule_buttons.py +++ b/web_access_rule_buttons/tests/test_access_rule_buttons.py @@ -7,13 +7,13 @@ class TestAccessRuleButtons(TransactionCase): def setUp(self): super(TestAccessRuleButtons, self).setUp() - self.curr_obj = self.env['res.currency'] - self.curr_record = self.env.ref('base.USD') + self.curr_obj = self.env["res.currency"] + self.curr_record = self.env.ref("base.USD") def test_check_access_rule_1(self): - res = self.curr_obj.check_access_rule_all(['write']) - self.assertTrue(res['write']) + res = self.curr_obj.check_access_rule_all(["write"]) + self.assertTrue(res["write"]) def test_check_access_rule_2(self): - res = self.curr_record.check_access_rule_all(['write']) - self.assertTrue(res['write']) + res = self.curr_record.check_access_rule_all(["write"]) + self.assertTrue(res["write"]) diff --git a/web_access_rule_buttons/views/web_access_rule_buttons.xml b/web_access_rule_buttons/views/web_access_rule_buttons.xml index dd3af8710..c1b63c8bc 100644 --- a/web_access_rule_buttons/views/web_access_rule_buttons.xml +++ b/web_access_rule_buttons/views/web_access_rule_buttons.xml @@ -1,8 +1,15 @@ - + -