3
0
Fork 0

[IMP] web_disable_export_group: black, isort, prettier

16.0
João Marques 2020-10-20 08:53:33 +01:00 committed by David
parent c3e58222e0
commit 429fae3670
6 changed files with 56 additions and 53 deletions

View File

@ -2,20 +2,13 @@
# Copyright 2018 Tecnativa - David Vidal # Copyright 2018 Tecnativa - David Vidal
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html). # License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html).
{ {
'name': 'Web Disable Export Group', "name": "Web Disable Export Group",
'version': '12.0.1.0.0', "version": "12.0.1.0.0",
'license': 'AGPL-3', "license": "AGPL-3",
'author': 'Onestein, ' "author": "Onestein, " "Tecnativa, " "Odoo Community Association (OCA)",
'Tecnativa, ' "website": "https://github.com/OCA/web",
'Odoo Community Association (OCA)', "category": "Web",
'website': 'https://github.com/OCA/web', "depends": ["web",],
'category': 'Web', "data": ["security/groups.xml", "templates/assets.xml",],
'depends': [ "installable": True,
'web',
],
'data': [
'security/groups.xml',
'templates/assets.xml',
],
'installable': True,
} }

View File

@ -6,13 +6,15 @@ from odoo.http import request
class Http(models.AbstractModel): class Http(models.AbstractModel):
_inherit = 'ir.http' _inherit = "ir.http"
def session_info(self): def session_info(self):
res = super(Http, self).session_info() res = super(Http, self).session_info()
user = request.env.user user = request.env.user
res.update({ res.update(
'group_export_data': user and user.has_group( {
'web_disable_export_group.group_export_data'), "group_export_data": user
}) and user.has_group("web_disable_export_group.group_export_data"),
}
)
return res return res

View File

@ -1,11 +1,12 @@
<?xml version="1.0" encoding="utf-8"?> <?xml version="1.0" encoding="utf-8" ?>
<!-- Copyright 2016 Onestein <!-- Copyright 2016 Onestein
License LGPL-3.0 or later (https://www.gnu.org/licenses/lgpl).--> License LGPL-3.0 or later (https://www.gnu.org/licenses/lgpl).-->
<odoo> <odoo>
<record id="group_export_data" model="res.groups"> <record id="group_export_data" model="res.groups">
<field name="name">Export Data</field> <field name="name">Export Data</field>
<field name="users" eval="[(4, ref('base.user_root')), (4, ref('base.user_admin'))]"/> <field
name="users"
eval="[(4, ref('base.user_root')), (4, ref('base.user_admin'))]"
/>
</record> </record>
</odoo> </odoo>

View File

@ -2,7 +2,7 @@
Copyright 2018 Tecnativa - David Vidal Copyright 2018 Tecnativa - David Vidal
License LGPL-3.0 or later (https://www.gnu.org/licenses/lgpl). */ License LGPL-3.0 or later (https://www.gnu.org/licenses/lgpl). */
odoo.define("web_disable_export_group", function(require) { odoo.define("web_disable_export_group", function(require) {
"use strict"; "use strict";
var core = require("web.core"); var core = require("web.core");
var Sidebar = require("web.Sidebar"); var Sidebar = require("web.Sidebar");
@ -10,10 +10,15 @@ odoo.define("web_disable_export_group", function(require) {
var _t = core._t; var _t = core._t;
Sidebar.include({ Sidebar.include({
_addItems: function (sectionCode, items) { _addItems: function(sectionCode, items) {
var _items = items; var _items = items;
if (!session.is_superuser && sectionCode === 'other' && items.length && !session.group_export_data) { if (
_items = _.reject(_items, {label:_t("Export")}); !session.is_superuser &&
sectionCode === "other" &&
items.length &&
!session.group_export_data
) {
_items = _.reject(_items, {label: _t("Export")});
} }
this._super(sectionCode, _items); this._super(sectionCode, _items);
}, },

View File

@ -1,11 +1,17 @@
<?xml version="1.0" encoding="utf-8"?> <?xml version="1.0" encoding="utf-8" ?>
<!-- Copyright 2016 Onestein <!-- Copyright 2016 Onestein
License LGPL-3.0 or later (https://www.gnu.org/licenses/lgpl).--> License LGPL-3.0 or later (https://www.gnu.org/licenses/lgpl).-->
<odoo> <odoo>
<template id="assets_backend" name="web_disable_export_group assets" inherit_id="web.assets_backend"> <template
id="assets_backend"
name="web_disable_export_group assets"
inherit_id="web.assets_backend"
>
<xpath expr="." position="inside"> <xpath expr="." position="inside">
<script type="text/javascript" src="/web_disable_export_group/static/src/js/disable_export_group.js"></script> <script
type="text/javascript"
src="/web_disable_export_group/static/src/js/disable_export_group.js"
/>
</xpath> </xpath>
</template> </template>
</odoo> </odoo>

View File

@ -2,38 +2,34 @@
# Copyright 2019 Alexandre Díaz - <dev@redneboa.es> # Copyright 2019 Alexandre Díaz - <dev@redneboa.es>
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl). # License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl).
from mock import patch
from odoo.api import Environment from odoo.api import Environment
from odoo.tests.common import SavepointCase from odoo.tests.common import SavepointCase
from mock import patch
class TestDisableExportGroup(SavepointCase): class TestDisableExportGroup(SavepointCase):
@patch('odoo.addons.base_setup.models.ir_http.request') @patch("odoo.addons.base_setup.models.ir_http.request")
@patch('odoo.addons.web_disable_export_group.models.ir_http.request') @patch("odoo.addons.web_disable_export_group.models.ir_http.request")
@patch('odoo.addons.web.models.ir_http.request') @patch("odoo.addons.web.models.ir_http.request")
@patch('odoo.addons.web_tour.models.ir_http.request') @patch("odoo.addons.web_tour.models.ir_http.request")
def test_session_info(self, request, request1, request2, request3): def test_session_info(self, request, request1, request2, request3):
request.env = self.env request.env = self.env
request1.env = self.env request1.env = self.env
request2.env = self.env request2.env = self.env
request3.env = self.env request3.env = self.env
session_info = self.env['ir.http'].session_info() session_info = self.env["ir.http"].session_info()
self.assertTrue(session_info['group_export_data']) self.assertTrue(session_info["group_export_data"])
@patch('odoo.addons.base_setup.models.ir_http.request') @patch("odoo.addons.base_setup.models.ir_http.request")
@patch('odoo.addons.web_disable_export_group.models.ir_http.request') @patch("odoo.addons.web_disable_export_group.models.ir_http.request")
@patch('odoo.addons.web.models.ir_http.request') @patch("odoo.addons.web.models.ir_http.request")
@patch('odoo.addons.web_tour.models.ir_http.request') @patch("odoo.addons.web_tour.models.ir_http.request")
def test_session_info_not_allowed(self, request, request1, request2, def test_session_info_not_allowed(self, request, request1, request2, request3):
request3): demo_env = Environment(self.env.cr, self.env.ref("base.default_user").id, {})
demo_env = Environment(
self.env.cr,
self.env.ref('base.default_user').id,
{}
)
request.env = demo_env request.env = demo_env
request1.env = demo_env request1.env = demo_env
request2.env = demo_env request2.env = demo_env
request3.env = demo_env request3.env = demo_env
session_info = demo_env['ir.http'].session_info() session_info = demo_env["ir.http"].session_info()
self.assertFalse(session_info['group_export_data']) self.assertFalse(session_info["group_export_data"])