From 2cc0d8d52fa7ee25705620118d27884c5df7310b Mon Sep 17 00:00:00 2001 From: Jairo Llopis Date: Wed, 12 Jul 2017 14:32:05 +0200 Subject: [PATCH] [FIX] Compatibilize web_widget_domain_v11 with web_advanced_search_x2x --- web_advanced_search_x2x/__manifest__.py | 4 +- .../src/css/web_advanced_search_x2x.less | 14 +++- .../static/src/js/web_advanced_search_x2x.js | 70 +++++++++--------- .../src/xml/web_advanced_search_x2x.xml | 9 +-- web_widget_domain_v11/README.rst | 13 +++- web_widget_domain_v11/__manifest__.py | 1 + .../static/description/icon.png | Bin 9455 -> 24937 bytes .../src/copied-js/model_field_selector.js | 1 + .../static/src/js/domain_field.js | 11 ++- web_widget_domain_v11/views/ir_filters.xml | 19 +++++ 10 files changed, 85 insertions(+), 57 deletions(-) create mode 100644 web_widget_domain_v11/views/ir_filters.xml diff --git a/web_advanced_search_x2x/__manifest__.py b/web_advanced_search_x2x/__manifest__.py index 72ee66f5..14bc54a4 100644 --- a/web_advanced_search_x2x/__manifest__.py +++ b/web_advanced_search_x2x/__manifest__.py @@ -5,7 +5,7 @@ { "name": "Search x2x fields", - "version": "10.0.1.0.0", + "version": "10.0.2.0.0", "author": "Therp BV, " "Tecnativa, " "Odoo Community Association (OCA)", @@ -13,7 +13,7 @@ "category": "Usability", "summary": "Use a search widget in advanced search for x2x fields", "depends": [ - 'web', + 'web_widget_domain_v11', ], "data": [ 'views/templates.xml', diff --git a/web_advanced_search_x2x/static/src/css/web_advanced_search_x2x.less b/web_advanced_search_x2x/static/src/css/web_advanced_search_x2x.less index 008e4b56..b41fa4a2 100644 --- a/web_advanced_search_x2x/static/src/css/web_advanced_search_x2x.less +++ b/web_advanced_search_x2x/static/src/css/web_advanced_search_x2x.less @@ -1,7 +1,9 @@ -.openerp { - .oe-search-options { - .searchview_extended_prop_value { - .oe_form { +.o_search_options { + .o_filters_menu { + .o_filter_condition { + max-width: inherit; + + .o_searchview_extended_prop_value { .ui-autocomplete-input { .form-control(); } @@ -10,6 +12,10 @@ top: 6px; right: 2px; } + + .o_form_field_domain { + min-width: 400px; + } } } } diff --git a/web_advanced_search_x2x/static/src/js/web_advanced_search_x2x.js b/web_advanced_search_x2x/static/src/js/web_advanced_search_x2x.js index 69fa621c..36937962 100644 --- a/web_advanced_search_x2x/static/src/js/web_advanced_search_x2x.js +++ b/web_advanced_search_x2x/static/src/js/web_advanced_search_x2x.js @@ -15,8 +15,8 @@ odoo.define('web_advanced_search_x2x.search_filters', function (require) { var X2XAdvancedSearchPropositionMixin = { template: "web_advanced_search_x2x.proposition", - init: function() - { + + init: function () { // Make equal and not equal appear 1st and 2nd this.operators = _.sortBy( this.operators, @@ -38,28 +38,35 @@ odoo.define('web_advanced_search_x2x.search_filters', function (require) { }); return this._super.apply(this, arguments); }, + get_field_desc: function() { return this.field; }, + /** - * Add the right relational field to the template. + * Add x2x widget after rendering. */ - renderElement: function () { - try { - this._x2x_field.destroy(); - } catch (error) {} - this.relational = this.x2x_widget_name(); - this._super.apply(this, arguments); - if (this.relational) { + renderElement: function() { + var result = this._super.apply(this, arguments); + if (this.x2x_widget_name()) { this.x2x_field().appendTo(this.$el); this._x2x_field.$el.on( "autocompleteopen", this.proxy('x2x_autocomplete_open') ); } - delete this.relational; + return result; }, + + /** + * Re-render widget when operator changes. + */ + show_inputs: function () { + this.renderElement(); + return this._super.apply(this, arguments); + }, + /** * Create a relational field for the user. * @@ -77,12 +84,13 @@ odoo.define('web_advanced_search_x2x.search_filters', function (require) { this.x2x_field_create_options() ); this._x2x_field.on( - "change:value", + "domain_selected", this, this.proxy("x2x_value_changed") ); return this._x2x_field; }, + x2x_field_create_options: function () { return { attrs: { @@ -95,6 +103,7 @@ odoo.define('web_advanced_search_x2x.search_filters', function (require) { }, }; }, + x2x_value_changed: function () { switch (this.x2x_widget_name()) { case "char_domain": @@ -103,10 +112,18 @@ odoo.define('web_advanced_search_x2x.search_filters', function (require) { break; } }, + x2x_widget: function () { var name = this.x2x_widget_name(); return name && core.form_widget_registry.get(name); }, + + /** + * Return the widget that should be used to render this proposition. + * + * If it returns `undefined`, it means you should use a simple + * ``. + */ x2x_widget_name: function () { switch (this.get_operator()) { case "=": @@ -116,6 +133,7 @@ odoo.define('web_advanced_search_x2x.search_filters', function (require) { return "char_domain"; } }, + x2x_autocomplete_open: function() { var widget = this._x2x_field.$input.autocomplete("widget"); @@ -123,6 +141,7 @@ odoo.define('web_advanced_search_x2x.search_filters', function (require) { event.stopPropagation(); }); }, + get_domain: function () { // Special way to get domain if user chose "domain" filter if (this.get_operator() == "domain") { @@ -141,10 +160,12 @@ odoo.define('web_advanced_search_x2x.search_filters', function (require) { return this._super.apply(this, arguments); } }, + get_operator: function () { return !this.isDestroyed() && this.getParent().$('.o_searchview_extended_prop_op').val(); }, + get_value: function () { try { return this._x2x_field.get_value(); @@ -152,6 +173,7 @@ odoo.define('web_advanced_search_x2x.search_filters', function (require) { return this._super.apply(this, arguments); } }, + format_label: function (format, field, operator) { if (this.x2x_widget()) { var value = String(this._x2x_field.get_value()); @@ -180,30 +202,6 @@ odoo.define('web_advanced_search_x2x.search_filters', function (require) { X2XAdvancedSearchPropositionMixin ); - ExtendedSearchProposition.include({ - /** - * Force re-rendering the value widget if needed. - */ - operator_changed: function (event) { - if (this.value instanceof X2XAdvancedSearchProposition) { - this.value_rerender(); - } - return this._super.apply(this, arguments); - }, - /** - * Re-render proposition's value widget. - * - * @return {jQuery.Deferred} - */ - value_rerender: function () { - this.value._x2x_field && this.value._x2x_field.destroy(); - delete this.value._x2x_field; - return this.value.appendTo( - this.$(".o_searchview_extended_prop_value").show().empty() - ); - }, - }); - // Register this search proposition for relational fields $.each(affected_types, function (index, value) { core.search_filters_registry.add(value, X2XAdvancedSearchProposition); diff --git a/web_advanced_search_x2x/static/src/xml/web_advanced_search_x2x.xml b/web_advanced_search_x2x/static/src/xml/web_advanced_search_x2x.xml index 1440acf2..78a79a1d 100644 --- a/web_advanced_search_x2x/static/src/xml/web_advanced_search_x2x.xml +++ b/web_advanced_search_x2x/static/src/xml/web_advanced_search_x2x.xml @@ -3,12 +3,11 @@ License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl). --> - - -
+ +
- - + + diff --git a/web_widget_domain_v11/README.rst b/web_widget_domain_v11/README.rst index 4de2c7fd..73d14663 100644 --- a/web_widget_domain_v11/README.rst +++ b/web_widget_domain_v11/README.rst @@ -14,9 +14,14 @@ Usage To use this module, you need to: -#. Install any addon that makes use of the domain widget (i.e. - ``mass_mailing``). -#. You will be able to use the updated version. +#. Enable the developer mode. +#ยท Go to *Settings > Technical > User interface > User-defined Filters* and + choose or create one. +#. Choose a model if there is none. +#. You will be able to choose the domain using the updated domain widget. + +Install any addon that makes use of the domain widget (i.e. ``mass_mailing``) +and you will be also able to use the new widget there. .. image:: https://odoo-community.org/website/image/ir.attachment/5784_f2813bd/datas :alt: Try me on Runbot @@ -26,7 +31,7 @@ Known issues / Roadmap ====================== * This addon replaces the built-in ``char_domain`` widget, so it can break - compatibility with other addons that use it. + compatibility with other addons that use or extend it. Bug Tracker =========== diff --git a/web_widget_domain_v11/__manifest__.py b/web_widget_domain_v11/__manifest__.py index f2d63c72..8e9702dc 100644 --- a/web_widget_domain_v11/__manifest__.py +++ b/web_widget_domain_v11/__manifest__.py @@ -16,6 +16,7 @@ ], "data": [ "templates/assets.xml", + "views/ir_filters.xml", ], "qweb": [ "static/src/copied-xml/templates.xml", diff --git a/web_widget_domain_v11/static/description/icon.png b/web_widget_domain_v11/static/description/icon.png index 3a0328b516c4980e8e44cdb63fd945757ddd132d..815b58f4ddba619eb96935639f522e7ab03d44a4 100644 GIT binary patch literal 24937 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 z z?n?eq1XP>p-IM$Z^C;2L3itnbJZAip*Zo0aw2bs8@(s^~*8T9go!%dHcAz2lM;`yp zD=7&xjFV$S&5uDaiScyD?B-i1ze`+CoRtz`Wn+Zl&#s4&}MO{@N!ufrzjG$B79)Y2d3tBk&)TxUTw@QS0TEL_?njX|@vq?Uz(nBFK5Pq7*xj#u*R&i|?7+6# z+|r_n#SW&LXhtheZdah{ZVoqwyT{D>MC3nkFF#N)xLi{p7J1jXlmVeb;cP5?e(=f# zuT7fvjSbjS781v?7{)-X3*?>tq?)Yd)~|1{BDS(pqC zC}~H#WXlkUW*H5CDOo<)#x7%RY)A;ShGhI5s*#cRDA8YgqG(HeKDx+#(ZQ?386dv! zlXCO)w91~Vw4AmOcATuV653fa9R$fyK8ul%rG z-wfS zihugoZyr38Im?Zuh6@RcF~t1anQu7>#lPpb#}4cOA!EM11`%f*07RqOVkmX{p~KJ9 z^zP;K#|)$`^Rb{rnHGH{~>1(fawV0*Z#)}M`m8-?ZJV<+e}s9wE# z)l&az?w^5{)`S(%MRzxdNqrs1n*-=jS^_jqE*5XDrA0+VE`5^*p3CuM<&dZEeCjoz zR;uu_H9ZPZV|fQq`Cyw4nscrVwi!fE6ciMmX$!_hN7uF;jjKG)d2@aC4ropY)8etW=xJvni)8eHi`H$%#zn^WJ5NLc-rqk|u&&4Z6fD_m&JfSI1Bvb?b<*n&sfl0^t z=HnmRl`XrFvMKB%9}>PaA`m-fK6a0(8=qPkWS5bb4=v?XcWi&hRY?O5HdulRi4?fN zlsJ*N-0Qw+Yic@s0(2uy%F@ib;GjXt01Fmx5XbRo6+n|pP(&nodMoap^z{~q ziEeaUT@Mxe3vJSfI6?uLND(CNr=#^W<1b}jzW58bIfyWTDle$mmS(|x-0|2UlX+9k zQ^EX7Nw}?EzVoBfT(-LT|=9N@^hcn-_p&sqG z&*oVs2JSU+N4ZD`FhCAWaS;>|wH2G*Id|?pa#@>tyxX`+4HyIArWDvVrX)2WAOQff z0qyHu&-S@i^MS-+j--!pr4fPBj~_8({~e1bfcl0wI1kaoN>mJL6KUPQm5N7lB(ui1 zE-o%kq)&djzWJ}ob<-GfDlkB;F31j-VHKvQUGQ3sp`CwyGJk_i!y^sD0fqC@$9|jO zOqN!r!8-p==F@ZVP=U$qSpY(gQ0)59P1&t@y?5rvg<}E+GB}26NYPp4f2YFQrQtot5mn3wu_qprZ=>Ig-$ zbW26Ws~IgY>}^5w`vTB(G`PTZaDiGBo5o(tp)qli|NeV( z@H_=R8V39rt5J5YB2Ky?4eJJ#b`_iBe2ot~6%7mLt5t8Vwi^Jy7|jWXqa3amOIoRb zOr}WVFP--DsS`1WpN%~)t3R!arKF^Q$e12KEqU36AWwnCBICpH4XCsfnyrHr>$I$4 z!DpKX$OKLWarN7nv@!uIA+~RNO)l$$w}p(;b>mx8pwYvu;dD_unryX_NhT8*Tj>BTrTTL&!?O+%Rv;b?B??gSzdp?6Uug9{ zd@V08Z$BdI?fpoCS$)t4mg4rT8Q_I}h`0d-vYZ^|dOB*Q^S|xqTV*vIg?@fVFSmMpaw0qtTRbx} z({Pg?#{2`sc9)M5N$*N|4;^t$+QP?#mov zGVC@I*lBVrOU-%2y!7%)fAKjpEFsgQc4{amtiHb95KQEwvf<(3T<9-Zm$xIew#P22 zc2Ix|App^>v6(3L_MCU0d3W##AB0M~3D00EWoKZqsJYT(#@w$Y_H7G22M~ApVFTRHMI_3be)Lkn#0F*V8Pq zc}`Cjy$bE;FJ6H7p=0y#R>`}-m4(0F>%@P|?7fx{=R^uFdISRnZ2W_xQhD{YuR3t< z{6yxu=4~JkeA;|(J6_nv#>Nvs&FuLA&PW^he@t(UwFFE8)|a!R{`E`K`i^ZnyE4$k z;(749Ix|oi$c3QbEJ3b~D_kQsPz~fIUKym($a_7dJ?o+40*OLl^{=&oq$<#Q(yyrp z{J-FAniyAw9tPbe&IhQ|a`DqFTVQGQ&Gq3!C2==4x{6EJwiPZ8zub-iXoUtkJiG{} zPaR&}_fn8_z~(=;5lD-aPWD3z8PZS@AaUiomF!G8I}Mf>e~0g#BelA-5#`cj;O5>N Xviia!U7SGha1wx#SCgwmn*{w2TRX*I diff --git a/web_widget_domain_v11/static/src/copied-js/model_field_selector.js b/web_widget_domain_v11/static/src/copied-js/model_field_selector.js index 90736892..d1d6702f 100644 --- a/web_widget_domain_v11/static/src/copied-js/model_field_selector.js +++ b/web_widget_domain_v11/static/src/copied-js/model_field_selector.js @@ -28,6 +28,7 @@ var ModelFieldSelector = Widget.extend({ this.goToNextPage(this._getLastPageField($(e.currentTarget).data("name"))); }, "click li.o_field_selector_select_button": function (e) { + e.stopPropagation(); this.selectField(this._getLastPageField($(e.currentTarget).data("name"))); }, diff --git a/web_widget_domain_v11/static/src/js/domain_field.js b/web_widget_domain_v11/static/src/js/domain_field.js index 33668a19..8e2258d0 100644 --- a/web_widget_domain_v11/static/src/js/domain_field.js +++ b/web_widget_domain_v11/static/src/js/domain_field.js @@ -49,9 +49,6 @@ var FieldDomain = common.AbstractField.extend(common.ReinitializeFieldMixin).ext model: undefined, // this option is mandatory ! fs_filters: {}, // Field selector filters (to only show a subset of available fields @see FieldSelector) }); - if (this.options.model_field && !this.options.model) { - this.options.model = this.options.model_field; - } }, start: function() { this.model = _get_model.call(this); // TODO get the model another way ? @@ -66,10 +63,12 @@ var FieldDomain = common.AbstractField.extend(common.ReinitializeFieldMixin).ext return this._super.apply(this, arguments); function _get_model() { - if (this.field_manager.fields[this.options.model]) { - return this.field_manager.get_field_value(this.options.model); + if (this.options.model) { + return this.options.model; + } + if (this.field_manager.fields[this.options.model_field]) { + return this.field_manager.get_field_value(this.options.model_field); } - return this.options.model; } }, initialize_content: function () { diff --git a/web_widget_domain_v11/views/ir_filters.xml b/web_widget_domain_v11/views/ir_filters.xml new file mode 100644 index 00000000..604064bf --- /dev/null +++ b/web_widget_domain_v11/views/ir_filters.xml @@ -0,0 +1,19 @@ + + + + + + + Use domain widget + ir.filters + + + + char_domain + {'model_field': 'model_id'} + + + + +