From f89637020448fc9607149c40289a8c4f25055bb5 Mon Sep 17 00:00:00 2001 From: tarteo Date: Fri, 1 Mar 2019 11:56:28 +0100 Subject: [PATCH] [FIX] web_edit_user_filter: Custom filters --- web_edit_user_filter/__manifest__.py | 2 +- web_edit_user_filter/static/src/js/backend.js | 43 ++++++++++++------- .../static/src/xml/backend.xml | 2 +- 3 files changed, 30 insertions(+), 17 deletions(-) diff --git a/web_edit_user_filter/__manifest__.py b/web_edit_user_filter/__manifest__.py index 1b068468..f700b6e9 100644 --- a/web_edit_user_filter/__manifest__.py +++ b/web_edit_user_filter/__manifest__.py @@ -4,7 +4,7 @@ { 'name': 'Edit User Filters', 'category': 'Extra Tools', - 'version': '12.0.1.0.0', + 'version': '12.0.1.0.1', 'development_status': 'Production/Stable', 'author': 'Onestein,Odoo Community Association (OCA)', 'license': 'AGPL-3', diff --git a/web_edit_user_filter/static/src/js/backend.js b/web_edit_user_filter/static/src/js/backend.js index 02a3373a..2c188fd9 100644 --- a/web_edit_user_filter/static/src/js/backend.js +++ b/web_edit_user_filter/static/src/js/backend.js @@ -100,21 +100,35 @@ odoo.define('web_edit_user_filter', function (require) { self.trigger_up('menu_item_toggled', eventData); }); } else if (segment.cat === 'filterCategory') { + var new_filters = []; _.each(segment.values, function (value) { - var filterDomain = _.find( - self.searchview.filtersMapping, - function (mapping) { - return mapping.filter.attrs.domain === value.attrs.domain; - } - ); - var eventData = { - category: 'filterCategory', - itemId: filterDomain.filterId, - isActive: true, - groupId: filterDomain.groupId, - }; - self.trigger_up('menu_item_toggled', eventData); + if (value.attrs.name) { + var filterDomain = _.find( + self.searchview.filtersMapping, + function (mapping) { + return mapping.filter.attrs.name === value.attrs.name; + } + ); + var eventData = { + category: 'filterCategory', + itemId: filterDomain.filterId, + isActive: true, + groupId: filterDomain.groupId, + }; + + self.trigger_up('menu_item_toggled', eventData); + } else { + new_filters.push({ + groupId: null, + filter: { + tag: 'filter', + attrs: value.attrs + }, + itemId: _.uniqueId('__filter__') + }); + } }); + self.trigger_up('new_filters', new_filters); } else { var search_widget = _.find( self.searchview.search_fields, function (f) { @@ -145,7 +159,7 @@ odoo.define('web_edit_user_filter', function (require) { _removeValue: function (model, value) { var toRemove = model.values.filter(function (v) { if (typeof v.attributes.value === 'object') { - return v.attributes.value.attrs.name === value; + return v.attributes.value.attrs.domain === value; } return v.attributes.value.toString() === value; @@ -162,7 +176,6 @@ odoo.define('web_edit_user_filter', function (require) { */ _renderPopover: function ($facet, model) { var self = this; - var $content = $(qweb.render('web_edit_user_filter.Popover', { values: model.get('values'), })); diff --git a/web_edit_user_filter/static/src/xml/backend.xml b/web_edit_user_filter/static/src/xml/backend.xml index de4a1668..4863903b 100644 --- a/web_edit_user_filter/static/src/xml/backend.xml +++ b/web_edit_user_filter/static/src/xml/backend.xml @@ -8,7 +8,7 @@
+ t-attf-data-value="#{typeof value.value === 'object' ? value.value.attrs.domain : value.value}">