From af98ddef01dcbaa5eb6046a0c67126921628e854 Mon Sep 17 00:00:00 2001 From: Andrea Date: Tue, 27 Dec 2016 10:31:18 +0100 Subject: [PATCH] Add module web_disable_export_group --- web_disable_export_group/README.rst | 35 ++++++++++++++++ web_disable_export_group/__init__.py | 3 ++ web_disable_export_group/__manifest__.py | 18 ++++++++ web_disable_export_group/security/groups.xml | 8 ++++ .../static/src/js/disable_export_group.js | 41 +++++++++++++++++++ web_disable_export_group/templates/assets.xml | 10 +++++ 6 files changed, 115 insertions(+) create mode 100644 web_disable_export_group/README.rst create mode 100644 web_disable_export_group/__init__.py create mode 100644 web_disable_export_group/__manifest__.py create mode 100644 web_disable_export_group/security/groups.xml create mode 100644 web_disable_export_group/static/src/js/disable_export_group.js create mode 100644 web_disable_export_group/templates/assets.xml diff --git a/web_disable_export_group/README.rst b/web_disable_export_group/README.rst new file mode 100644 index 00000000..3eee5cec --- /dev/null +++ b/web_disable_export_group/README.rst @@ -0,0 +1,35 @@ +.. image:: https://img.shields.io/badge/licence-AGPL--3-blue.svg + :target: http://www.gnu.org/licenses/agpl-3.0-standalone.html + :alt: License: AGPL-3 + +======================== +Web Disable Export Group +======================== + +In the standard Odoo the UI option 'Export' that is present in the 'Action' menu +of any list view is always enabled (for every user). + +This module makes the option 'Export' enabled only for the users that belong +to the Export Data group. + +Admin user can always use the export option. + + +Usage +===== + +Enable the group "Export Data group" to the users who are allowed to +make use of the option 'Export'. + + +Credits +======= + +Original code from module web_disable_export by Noviat, +reviewed and modified by Onestein. + +Contributors +------------ + +* Dennis Sluijk +* Andrea Stirpe diff --git a/web_disable_export_group/__init__.py b/web_disable_export_group/__init__.py new file mode 100644 index 00000000..9b9ad0f1 --- /dev/null +++ b/web_disable_export_group/__init__.py @@ -0,0 +1,3 @@ +# -*- coding: utf-8 -*- +# Copyright 2016 Onestein () +# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html). diff --git a/web_disable_export_group/__manifest__.py b/web_disable_export_group/__manifest__.py new file mode 100644 index 00000000..32e48d5c --- /dev/null +++ b/web_disable_export_group/__manifest__.py @@ -0,0 +1,18 @@ +# -*- coding: utf-8 -*- +# Copyright 2016 Onestein () +# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html). + +{ + 'name': 'Web Disable Export Group', + 'version': '10.0.1.0.0', + 'license': 'AGPL-3', + 'author': 'Onestein', + 'website': 'http://www.onestein.eu', + 'category': 'Web', + 'depends': ['web'], + 'data': [ + 'security/groups.xml', + 'templates/assets.xml', + ], + 'installable': True, +} diff --git a/web_disable_export_group/security/groups.xml b/web_disable_export_group/security/groups.xml new file mode 100644 index 00000000..b06e8e83 --- /dev/null +++ b/web_disable_export_group/security/groups.xml @@ -0,0 +1,8 @@ + + + + + Export Data + + + diff --git a/web_disable_export_group/static/src/js/disable_export_group.js b/web_disable_export_group/static/src/js/disable_export_group.js new file mode 100644 index 00000000..2f5740e5 --- /dev/null +++ b/web_disable_export_group/static/src/js/disable_export_group.js @@ -0,0 +1,41 @@ +odoo.define("web_disable_export_group", function(require) { +"use strict"; + + var core = require("web.core"); + var Sidebar = require("web.Sidebar"); + var _t = core._t; + var Model = require("web.Model"); + var session = require("web.session"); + + Sidebar.include({ + add_items: function(section_code, items) { + var self = this; + var _super = this._super; + if (session.is_superuser) { + _super.apply(this, arguments); + } else { + var model_res_users = new Model("res.users"); + model_res_users.call("has_group", ["web_disable_export_group.group_export_data"]).done(function(can_export) { + if (!can_export) { + var export_label = _t("Export"); + var new_items = items; + if (section_code === "other") { + new_items = []; + for (var i = 0; i < items.length; i++) { + console.log("items[i]: ", items[i]); + if (items[i]["label"] !== export_label) { + new_items.push(items[i]); + } + } + } + if (new_items.length > 0) { + _super.call(self, section_code, new_items); + } + } else { + _super.call(self, section_code, items); + } + }); + } + } + }); +}); diff --git a/web_disable_export_group/templates/assets.xml b/web_disable_export_group/templates/assets.xml new file mode 100644 index 00000000..e9fe7f05 --- /dev/null +++ b/web_disable_export_group/templates/assets.xml @@ -0,0 +1,10 @@ + + + + + +