From 6371d8f8402fa0acb88f35e53d98038ab16de1d9 Mon Sep 17 00:00:00 2001 From: Xavier Morel Date: Tue, 21 Jun 2011 11:15:29 +0200 Subject: [IMP] remove explicit jquery conversion/parsing during list rendering, wastes time for nothing as .append() can handle taking strings as input directly bzr revid: xmo@openerp.com-20110621091529-rx1pah6y5j3gibdt --- addons/base/static/src/js/list.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'addons/base/static/src') diff --git a/addons/base/static/src/js/list.js b/addons/base/static/src/js/list.js index b4528de5afd..bd2518dcb66 100644 --- a/addons/base/static/src/js/list.js +++ b/addons/base/static/src/js/list.js @@ -571,7 +571,7 @@ openerp.base.ListView.List = Class.extend( /** @lends openerp.base.ListView.List this.$current.remove(); } this.$current = this.$_element.clone(true); - this.$current.empty().append($(QWeb.render('ListView.rows', this))); + this.$current.empty().append(QWeb.render('ListView.rows', this)); }, get_fields_view: function () { // deep copy of view -- cgit v1.2.3 From 1399d19e3e9ff34dd0fa49aa76de28de3f28cf5d Mon Sep 17 00:00:00 2001 From: Fabien Meghazi Date: Tue, 21 Jun 2011 12:22:46 +0200 Subject: [FIX] Reload record in form view on_created and on_saved bzr revid: fme@openerp.com-20110621102246-91w528ppy8jf4bmi --- addons/base/static/src/js/form.js | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) (limited to 'addons/base/static/src') diff --git a/addons/base/static/src/js/form.js b/addons/base/static/src/js/form.js index 90357325928..18d6976e99c 100644 --- a/addons/base/static/src/js/form.js +++ b/addons/base/static/src/js/form.js @@ -1,4 +1,3 @@ - openerp.base.form = function (openerp) { openerp.base.views.add('form', 'openerp.base.FormView'); @@ -299,6 +298,7 @@ openerp.base.FormView = openerp.base.View.extend( /** @lends openerp.base.FormV if (success) { success(r); } + this.reload(); } }, /** @@ -333,6 +333,7 @@ openerp.base.FormView = openerp.base.View.extend( /** @lends openerp.base.FormV if (success) { success(_.extend(r, {created: true})); } + this.reload(); } }, do_search: function (domains, contexts, groupbys) { -- cgit v1.2.3 From aac4205519e1cd534d8ed802d5ccc6290901a418 Mon Sep 17 00:00:00 2001 From: Fabien Meghazi Date: Tue, 21 Jun 2011 14:03:51 +0200 Subject: [ADD] Added warning image bzr revid: fme@openerp.com-20110621120351-o4kfgaozg4qrmzck --- addons/base/static/src/img/warning.png | Bin 0 -> 1342 bytes 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 addons/base/static/src/img/warning.png (limited to 'addons/base/static/src') diff --git a/addons/base/static/src/img/warning.png b/addons/base/static/src/img/warning.png new file mode 100644 index 00000000000..cbfb25a89cd Binary files /dev/null and b/addons/base/static/src/img/warning.png differ -- cgit v1.2.3 From 41716a15161f35368111e34f1fb4afb19645219a Mon Sep 17 00:00:00 2001 From: Fabien Meghazi Date: Tue, 21 Jun 2011 14:07:50 +0200 Subject: [IMP] Improved Dialog controller bzr revid: fme@openerp.com-20110621120750-2fo680iuqrzvjcpk --- addons/base/static/src/js/chrome.js | 71 +++++++++++++++++++++++++------------ 1 file changed, 48 insertions(+), 23 deletions(-) (limited to 'addons/base/static/src') diff --git a/addons/base/static/src/js/chrome.js b/addons/base/static/src/js/chrome.js index 84aa4acc325..1b886b34ea8 100644 --- a/addons/base/static/src/js/chrome.js +++ b/addons/base/static/src/js/chrome.js @@ -739,36 +739,47 @@ openerp.base.Dialog = openerp.base.BaseWidget.extend({ identifier_prefix: 'dialog', init: function (session, options) { this._super(null, session); - options = _.extend({ + this.options = { modal: true, - title: this.dialog_title, - width: '700px', + width: 'auto', min_width: 0, max_width: '100%', - height: '500px', + height: 'auto', min_height: 0, max_height: '100%', + autoOpen: false, buttons: {} - }, options); - - options.width = this.get_width(options.width); - options.min_width = this.get_width(options.min_width); - options.max_width = this.get_width(options.max_width); - options.height = this.get_height(options.height); - options.min_height = this.get_height(options.min_height); - options.max_height = this.get_height(options.max_height); - - if (options.width > options.max_width) options.width = options.max_width; - if (options.width < options.min_width) options.width = options.min_width; - if (options.height > options.max_height) options.height = options.max_height; - if (options.height < options.min_height) options.height = options.min_height; - + }; for (var f in this) { if (f.substr(0, 10) == 'on_button_') { - options.buttons[f.substr(10)] = this[f]; + this.options.buttons[f.substr(10)] = this[f]; } } - this.options = options; + if (options) { + this.set_options(options); + } + }, + set_options: function(options) { + options = options || {}; + options.width = this.get_width(options.width || this.options.width); + options.min_width = this.get_width(options.min_width || this.options.min_width); + options.max_width = this.get_width(options.max_width || this.options.max_width); + options.height = this.get_height(options.height || this.options.height); + options.min_height = this.get_height(options.min_height || this.options.min_height); + options.max_height = this.get_height(options.max_height || this.options.max_width); + + if (options.width !== 'auto') { + if (options.width > options.max_width) options.width = options.max_width; + if (options.width < options.min_width) options.width = options.min_width; + } + if (options.height !== 'auto') { + if (options.height > options.max_height) options.height = options.max_height; + if (options.height < options.min_height) options.height = options.min_height; + } + if (!options.title && this.dialog_title) { + options.title = this.dialog_title; + } + _.extend(this.options, options); }, get_width: function(val) { return this.get_size(val.toString(), $(window.top).width()); @@ -777,7 +788,7 @@ openerp.base.Dialog = openerp.base.BaseWidget.extend({ return this.get_size(val.toString(), $(window.top).height()); }, get_size: function(val, available_size) { - if (val == 'auto') { + if (val === 'auto') { return val; } else if (val.slice(-1) == "%") { return Math.round(available_size / 100 * parseInt(val.slice(0, -1), 10)); @@ -785,12 +796,26 @@ openerp.base.Dialog = openerp.base.BaseWidget.extend({ return parseInt(val, 10); } }, - start: function () { + start: function (auto_open) { this.$dialog = $('
').dialog(this.options); + if (auto_open !== false) { + this.open(); + } this._super(); }, + open: function(options) { + // TODO fme: bind window on resize + if (this.template) { + this.$element.html(this.render()); + } + this.set_options(options); + this.$dialog.dialog(this.options).dialog('open'); + }, + close: function(options) { + this.$dialog.dialog('close'); + }, stop: function () { - this.$dialog("destroy").remove(); + this.$dialog.dialog('destroy'); } }); -- cgit v1.2.3 From 8e20af033151e31aa33d2b751d8aaf9a59080855 Mon Sep 17 00:00:00 2001 From: Fabien Meghazi Date: Tue, 21 Jun 2011 14:10:02 +0200 Subject: [IMP] Improved CrashManager bzr revid: fme@openerp.com-20110621121002-bqcsuzdfncyb1v24 --- addons/base/static/src/css/base.css | 11 +++++++++++ addons/base/static/src/js/chrome.js | 39 +++++++++++++++++++++++-------------- addons/base/static/src/xml/base.xml | 15 ++++++++------ 3 files changed, 44 insertions(+), 21 deletions(-) (limited to 'addons/base/static/src') diff --git a/addons/base/static/src/css/base.css b/addons/base/static/src/css/base.css index 30dc3718fa9..abf8431541a 100644 --- a/addons/base/static/src/css/base.css +++ b/addons/base/static/src/css/base.css @@ -1042,3 +1042,14 @@ background: linear-gradient(top, #ffffff 0%,#ebe9e9 100%); /* W3C */ .openerp .oe-m2o-disabled-cm { color: grey; } + +.openerp .oe-dialog-warning { + font-size: 1.2em; + font-weight: bold; +} +.openerp .oe-dialog-warning img { + float: left; + position: relative; + top: -0.5em; + margin:0 7px 7px 0; +} diff --git a/addons/base/static/src/js/chrome.js b/addons/base/static/src/js/chrome.js index 1b886b34ea8..2bea20fe972 100644 --- a/addons/base/static/src/js/chrome.js +++ b/addons/base/static/src/js/chrome.js @@ -819,24 +819,32 @@ openerp.base.Dialog = openerp.base.BaseWidget.extend({ } }); -openerp.base.CrashManager = openerp.base.Controller.extend({ - init: function(session, element_id) { - this._super(session, element_id); +openerp.base.CrashManager = openerp.base.Dialog.extend({ + identifier_prefix: 'dialog_crash', + init: function(session) { + this._super(session); this.session.on_rpc_error.add(this.on_rpc_error); }, - on_rpc_error: function(error) { - var msg = error.message + "\n" + error.data.debug; - this.display_error(msg); + on_button_Ok: function() { + this.close(); }, - display_error: function(message) { - $('
').text(message).dialog({
-            modal: true,
-            buttons: {
-                OK: function() {
-                    $(this).dialog("close");
-                }
-            }
-        });
+    on_rpc_error: function(error) {
+        this.error = error;
+        if (error.code === 200) {
+            this.dialog_title = "OpenERP Warning";
+            this.template = 'DialogWarning';
+            this.open({
+                width: 'auto',
+                height: 'auto'
+            });
+        } else {
+            this.dialog_title = "OpenERP Error";
+            this.template = 'DialogTraceback';
+            this.open({
+                width: '80%',
+                height: '80%'
+            });
+        }
     }
 });
 
@@ -1066,6 +1074,7 @@ openerp.base.WebClient = openerp.base.Controller.extend({
         this.session = new openerp.base.Session("oe_errors");
         this.loading = new openerp.base.Loading(this.session, "oe_loading");
         this.crashmanager =  new openerp.base.CrashManager(this.session);
+        this.crashmanager.start(false);
 
         // Do you autorize this ?
         openerp.base.Controller.prototype.notification = new openerp.base.Notification("oe_notification");
diff --git a/addons/base/static/src/xml/base.xml b/addons/base/static/src/xml/base.xml
index 949b38e0115..2592abb5fdc 100644
--- a/addons/base/static/src/xml/base.xml
+++ b/addons/base/static/src/xml/base.xml
@@ -870,12 +870,15 @@
     
 
 
-    
-

- - -

-
+

+ + +

+
+ +
+
+
-- cgit v1.2.3 From a47c69c873fabb6f7d306254576097ccdf44192a Mon Sep 17 00:00:00 2001 From: Fabien Meghazi Date: Tue, 21 Jun 2011 14:11:16 +0200 Subject: [IMP] Set flags for dialog actions bzr revid: fme@openerp.com-20110621121116-uvaasm0c01devhrg --- addons/base/static/src/js/views.js | 7 +++++++ 1 file changed, 7 insertions(+) (limited to 'addons/base/static/src') diff --git a/addons/base/static/src/js/views.js b/addons/base/static/src/js/views.js index 4217031a7e3..586292a5561 100644 --- a/addons/base/static/src/js/views.js +++ b/addons/base/static/src/js/views.js @@ -398,6 +398,13 @@ openerp.base.View = openerp.base.Controller.extend({ execute_action: function (action_data, dataset, action_manager, record_id, on_no_action) { var handler = function (r) { if (r.result && r.result.constructor == Object) { + r.result.flags = { + sidebar : false, + search_view : false, + views_switcher : false, + action_buttons : false, + pager : false + }; action_manager.do_action(r.result); } else { on_no_action(r.result); -- cgit v1.2.3 From 76db3f38700cd4e4d8d03ab80cc0163b374dba83 Mon Sep 17 00:00:00 2001 From: "noz (OpenERP)" Date: Tue, 21 Jun 2011 17:49:26 +0530 Subject: [FIX] Just corrected spelling. bzr revid: noz@tinyerp.com-20110621121926-4b6fhety4r2p1u2l --- addons/base/static/src/xml/base.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'addons/base/static/src') diff --git a/addons/base/static/src/xml/base.xml b/addons/base/static/src/xml/base.xml index 2592abb5fdc..9645ce7cee2 100644 --- a/addons/base/static/src/xml/base.xml +++ b/addons/base/static/src/xml/base.xml @@ -90,7 +90,7 @@ t-att-value="selected_password || ''"/> - + -- cgit v1.2.3 From f90c073f2329a1582bcf36be111ecf5dab76bbe8 Mon Sep 17 00:00:00 2001 From: Fabien Meghazi Date: Tue, 21 Jun 2011 14:31:20 +0200 Subject: [IMP] Use CompondContext for button actions bzr revid: fme@openerp.com-20110621123120-y2kucare2kes52ac --- addons/base/static/src/js/views.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'addons/base/static/src') diff --git a/addons/base/static/src/js/views.js b/addons/base/static/src/js/views.js index 586292a5561..c6ee9e69d71 100644 --- a/addons/base/static/src/js/views.js +++ b/addons/base/static/src/js/views.js @@ -416,10 +416,10 @@ openerp.base.View = openerp.base.Controller.extend({ result : { type: 'ir.actions.act_window_close' } }); } else { - var context = _.extend({}, dataset.context, action_data.context || {}); + var context = new openerp.base.CompoundContext(dataset.context).add(action_data.context || {}); switch(action_data.type) { case 'object': - return dataset.call(action_data.name, [[record_id], context], handler); + return dataset.call_and_eval(action_data.name, [[record_id], context], null, 1, handler); case 'action': return this.rpc('/base/action/load', { action_id: parseInt(action_data.name, 10) }, handler); default: -- cgit v1.2.3 From 884aaa86079542a6be8dd3797c50390cf8893e03 Mon Sep 17 00:00:00 2001 From: Fabien Meghazi Date: Tue, 21 Jun 2011 14:41:16 +0200 Subject: [FIX] Fixed selection widget. Wrongly select first option when value is false bzr revid: fme@openerp.com-20110621124116-rh6pv2a1v2de186q --- addons/base/static/src/js/form.js | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) (limited to 'addons/base/static/src') diff --git a/addons/base/static/src/js/form.js b/addons/base/static/src/js/form.js index 18d6976e99c..7cb36cdc0c2 100644 --- a/addons/base/static/src/js/form.js +++ b/addons/base/static/src/js/form.js @@ -84,6 +84,7 @@ openerp.base.FormView = openerp.base.View.extend( /** @lends openerp.base.FormV this.$element.hide(); }, on_record_loaded: function(record) { + console.info(record) this.touched = false; if (record) { this.datarecord = record; @@ -996,7 +997,7 @@ openerp.base.form.FieldSelection = openerp.base.form.Field.extend({ if (value != null && value !== false) { this.$element.find('select').val(value); } else { - this.$element.find('select')[0].selectedIndex = 0; + this.$element.find('select').val('false'); } }, set_value_from_ui: function() { -- cgit v1.2.3 From 4e9834f4e3a28bfec7678fa6845bfa2abc12f513 Mon Sep 17 00:00:00 2001 From: niv-openerp Date: Tue, 21 Jun 2011 14:53:17 +0200 Subject: [imp] small improvements to advanced filters bzr revid: nicolas.vanhoren@openerp.com-20110621125317-0s7cfk7q8jkflmne --- addons/base/static/src/css/base.css | 1 + addons/base/static/src/js/search.js | 13 ++++++++++--- 2 files changed, 11 insertions(+), 3 deletions(-) (limited to 'addons/base/static/src') diff --git a/addons/base/static/src/css/base.css b/addons/base/static/src/css/base.css index abf8431541a..1cbdc05ba43 100644 --- a/addons/base/static/src/css/base.css +++ b/addons/base/static/src/css/base.css @@ -565,6 +565,7 @@ background: linear-gradient(top, #ffffff 0%,#d8d8d8 11%,#afafaf 86%,#333333 91%, .openerp .searchview_extended_delete_group { float:right; + display: none; } .openerp .searchview_extended_delete_group span, diff --git a/addons/base/static/src/js/search.js b/addons/base/static/src/js/search.js index 4c23f64bcbb..13ca764e7d7 100644 --- a/addons/base/static/src/js/search.js +++ b/addons/base/static/src/js/search.js @@ -796,9 +796,6 @@ openerp.base.search.ExtendedSearchGroup = openerp.base.BaseWidget.extend({ }); var delete_btn = this.$element.find('.searchview_extended_delete_group'); delete_btn.click(function (e) { - if (_this.parent.children.length == 1) { - _this.parent.hide(); - } _this.stop(); }); }, @@ -811,6 +808,11 @@ openerp.base.search.ExtendedSearchGroup = openerp.base.BaseWidget.extend({ return [].concat(choice == "none" ? ['!'] : [], _.map(_.range(_.max([0,props.length - 1])), function() { return op; }), props); + }, + stop: function() { + if (this.parent.children.length == 1) + this.parent.hide(); + this._super(); } }); @@ -838,6 +840,11 @@ openerp.base.search.ExtendedSearchProposition = openerp.base.BaseWidget.extend({ _this.stop(); }); }, + stop: function() { + if (this.parent.children.length == 1) + this.parent.stop(); + this._super(); + }, changed: function() { var nval = this.$element.find(".searchview_extended_prop_field").val(); if(this.attrs.selected == null || nval != this.attrs.selected.name) { -- cgit v1.2.3 From 3cb34f3f852fb5bff92090fe3f067df95332e49d Mon Sep 17 00:00:00 2001 From: niv-openerp Date: Tue, 21 Jun 2011 15:05:01 +0200 Subject: [imp] small improvements to advanced filters bzr revid: nicolas.vanhoren@openerp.com-20110621130501-0f1rkr25vv86v8gq --- addons/base/static/src/css/base.css | 6 +++++- addons/base/static/src/js/search.js | 13 +++++++++++++ 2 files changed, 18 insertions(+), 1 deletion(-) (limited to 'addons/base/static/src') diff --git a/addons/base/static/src/css/base.css b/addons/base/static/src/css/base.css index 1cbdc05ba43..ca4c8d0de87 100644 --- a/addons/base/static/src/css/base.css +++ b/addons/base/static/src/css/base.css @@ -547,11 +547,15 @@ background: linear-gradient(top, #ffffff 0%,#d8d8d8 11%,#afafaf 86%,#333333 91%, } .openerp .searchview_extended_group { - border: #696969 solid 1px; + border-bottom: #696969 solid 1px; padding: 3px; margin: 2px; } +.openerp .searchview_extended_group.last_group { + border-bottom: none; +} + .openerp .oe_search-view-custom-filter-btn span { background: url(../img/icons/gtk-add.png) repeat-y; padding-left: 18px; diff --git a/addons/base/static/src/js/search.js b/addons/base/static/src/js/search.js index 13ca764e7d7..3c40332ce67 100644 --- a/addons/base/static/src/js/search.js +++ b/addons/base/static/src/js/search.js @@ -731,6 +731,7 @@ openerp.base.search.ExtendedSearch = openerp.base.BaseWidget.extend({ var render = group.render(); this.$element.find('.searchview_extended_groups_list').append(render); group.start(); + this.check_last_element(); }, start: function () { this._super(); @@ -771,6 +772,10 @@ openerp.base.search.ExtendedSearch = openerp.base.BaseWidget.extend({ if(this.$element.hasClass("expanded")) { this.$element.toggleClass("folded expanded"); } + }, + check_last_element: function() { + _.each(this.children, function(x) {x.set_last_group(false);}); + this.children[this.children.length - 1].set_last_group(true); } }); @@ -810,9 +815,17 @@ openerp.base.search.ExtendedSearchGroup = openerp.base.BaseWidget.extend({ props); }, stop: function() { + var parent = this.parent; if (this.parent.children.length == 1) this.parent.hide(); this._super(); + parent.check_last_element(); + }, + set_last_group: function(is_last) { + if(is_last) + this.$element.addClass("last_group"); + else + this.$element.removeClass("last_group"); } }); -- cgit v1.2.3 From 04121f8b03478b860d3749cedbba785283f4a86e Mon Sep 17 00:00:00 2001 From: niv-openerp Date: Tue, 21 Jun 2011 16:04:23 +0200 Subject: [imp] small improvement to advanced filters bzr revid: nicolas.vanhoren@openerp.com-20110621140423-efbxmrjuwlu8piy1 --- addons/base/static/src/css/base.css | 16 +++++++++++++--- addons/base/static/src/xml/base.xml | 1 + 2 files changed, 14 insertions(+), 3 deletions(-) (limited to 'addons/base/static/src') diff --git a/addons/base/static/src/css/base.css b/addons/base/static/src/css/base.css index ca4c8d0de87..e3a1e8b26fd 100644 --- a/addons/base/static/src/css/base.css +++ b/addons/base/static/src/css/base.css @@ -547,13 +547,23 @@ background: linear-gradient(top, #ffffff 0%,#d8d8d8 11%,#afafaf 86%,#333333 91%, } .openerp .searchview_extended_group { - border-bottom: #696969 solid 1px; padding: 3px; margin: 2px; } -.openerp .searchview_extended_group.last_group { - border-bottom: none; +.openerp .searchview_extended_group .oe_adv_filters_and { + border-bottom: 1px solid black; + text-align: center; +} +.openerp .searchview_extended_group .oe_adv_filters_and span { + background: #F0EEEE; + position: relative; + top: 0.5em; + padding: 0 1em 0 1em; +} + +.openerp .searchview_extended_group.last_group .oe_adv_filters_and { + display: none; } .openerp .oe_search-view-custom-filter-btn span { diff --git a/addons/base/static/src/xml/base.xml b/addons/base/static/src/xml/base.xml index 9645ce7cee2..b03bb044ba4 100644 --- a/addons/base/static/src/xml/base.xml +++ b/addons/base/static/src/xml/base.xml @@ -804,6 +804,7 @@
Add condition +
and
-- cgit v1.2.3 From ee1970c2da36571cb05be9f3a67fc3e3a0bbd6d0 Mon Sep 17 00:00:00 2001 From: niv-openerp Date: Tue, 21 Jun 2011 16:11:07 +0200 Subject: [imp] small improvement to advanced filters bzr revid: nicolas.vanhoren@openerp.com-20110621141107-m7xcywalskoujsq0 --- addons/base/static/src/js/search.js | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-) (limited to 'addons/base/static/src') diff --git a/addons/base/static/src/js/search.js b/addons/base/static/src/js/search.js index 3c40332ce67..cd69ec4f0e8 100644 --- a/addons/base/static/src/js/search.js +++ b/addons/base/static/src/js/search.js @@ -759,11 +759,9 @@ openerp.base.search.ExtendedSearch = openerp.base.BaseWidget.extend({ on_activate: function() { this.add_group(); var table = this.$element.closest("table.oe-searchview-render-line"); - if(table.css("display") == "none") { - table.css("display", ""); - if(this.$element.hasClass("folded")) { - this.$element.toggleClass("folded expanded"); - } + table.css("display", ""); + if(this.$element.hasClass("folded")) { + this.$element.toggleClass("folded expanded"); } }, hide: function() { -- cgit v1.2.3 From 74e3e0576344978f3486d188f54ed73607ddc881 Mon Sep 17 00:00:00 2001 From: niv-openerp Date: Tue, 21 Jun 2011 16:14:19 +0200 Subject: [imp] small css improvement bzr revid: nicolas.vanhoren@openerp.com-20110621141419-8hdegu5ob3uh1w3y --- addons/base/static/src/css/base.css | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) (limited to 'addons/base/static/src') diff --git a/addons/base/static/src/css/base.css b/addons/base/static/src/css/base.css index e3a1e8b26fd..9749dc97110 100644 --- a/addons/base/static/src/css/base.css +++ b/addons/base/static/src/css/base.css @@ -552,14 +552,16 @@ background: linear-gradient(top, #ffffff 0%,#d8d8d8 11%,#afafaf 86%,#333333 91%, } .openerp .searchview_extended_group .oe_adv_filters_and { - border-bottom: 1px solid black; + border-bottom: 1px solid #8E8E8E; text-align: center; + margin-top: -10px; } .openerp .searchview_extended_group .oe_adv_filters_and span { background: #F0EEEE; position: relative; top: 0.5em; padding: 0 1em 0 1em; + color: #8E8E8E; } .openerp .searchview_extended_group.last_group .oe_adv_filters_and { -- cgit v1.2.3 From c57a3e0d98229ed66dde92c5caad39f6bc0efdbd Mon Sep 17 00:00:00 2001 From: Fabien Meghazi Date: Tue, 21 Jun 2011 16:38:04 +0200 Subject: [FIX] Fixed active_is in context for dialog actions bzr revid: fme@openerp.com-20110621143804-b51tp8n0a393oixi --- addons/base/static/src/js/data.js | 5 +++-- addons/base/static/src/js/form.js | 13 ++++++++++--- addons/base/static/src/js/views.js | 15 ++++++++++----- 3 files changed, 23 insertions(+), 10 deletions(-) (limited to 'addons/base/static/src') diff --git a/addons/base/static/src/js/data.js b/addons/base/static/src/js/data.js index 1463ca279fa..736c31c1f7b 100644 --- a/addons/base/static/src/js/data.js +++ b/addons/base/static/src/js/data.js @@ -287,11 +287,12 @@ openerp.base.DataSet = openerp.base.Controller.extend( /** @lends openerp.base. }); } }, - default_get: function(fields, callback) { + default_get: function(fields, context, callback) { + context = context || this.context; return this.rpc('/base/dataset/default_get', { model: this.model, fields: fields, - context: this.context + context: context }, callback); }, create: function(data, callback, error_callback) { diff --git a/addons/base/static/src/js/form.js b/addons/base/static/src/js/form.js index 7cb36cdc0c2..d221872598d 100644 --- a/addons/base/static/src/js/form.js +++ b/addons/base/static/src/js/form.js @@ -42,8 +42,12 @@ openerp.base.FormView = openerp.base.View.extend( /** @lends openerp.base.FormV if (this.embedded_view) { return $.Deferred().then(this.on_loaded).resolve({fields_view: this.embedded_view}); } else { + var context = new openerp.base.CompoundContext(this.dataset.context); + if (this.view_manager.action && this.view_manager.action.context) { + context.add(this.view_manager.action.context); + } return this.rpc("/base/formview/load", {"model": this.model, "view_id": this.view_id, - toolbar:!!this.flags.sidebar}, this.on_loaded); + toolbar:!!this.flags.sidebar, context: context}, this.on_loaded); } }, on_loaded: function(data) { @@ -84,7 +88,6 @@ openerp.base.FormView = openerp.base.View.extend( /** @lends openerp.base.FormV this.$element.hide(); }, on_record_loaded: function(record) { - console.info(record) this.touched = false; if (record) { this.datarecord = record; @@ -226,8 +229,12 @@ openerp.base.FormView = openerp.base.View.extend( /** @lends openerp.base.FormV }, on_button_new: function() { var self = this; + var context = new openerp.base.CompoundContext(this.dataset.context); + if (this.view_manager.action && this.view_manager.action.context) { + context.add(this.view_manager.action.context); + } $.when(this.has_been_loaded).then(function() { - self.dataset.default_get(_.keys(self.fields_view.fields), function(result) { + self.dataset.default_get(_.keys(self.fields_view.fields), context, function(result) { self.on_record_loaded(result.result); }); }); diff --git a/addons/base/static/src/js/views.js b/addons/base/static/src/js/views.js index c6ee9e69d71..ee910d57cfd 100644 --- a/addons/base/static/src/js/views.js +++ b/addons/base/static/src/js/views.js @@ -397,17 +397,22 @@ openerp.base.View = openerp.base.Controller.extend({ */ execute_action: function (action_data, dataset, action_manager, record_id, on_no_action) { var handler = function (r) { - if (r.result && r.result.constructor == Object) { - r.result.flags = { + var action = r.result; + if (action && action.constructor == Object) { + action.context = action.context || {}; + action.context['active_id'] = dataset.ids[dataset.index]; + action.context['active_ids'] = [dataset.ids[dataset.index]]; + action.context['active_model'] = dataset.model; + action.flags = { sidebar : false, search_view : false, views_switcher : false, action_buttons : false, pager : false }; - action_manager.do_action(r.result); + action_manager.do_action(action); } else { - on_no_action(r.result); + on_no_action(action); } }; @@ -421,7 +426,7 @@ openerp.base.View = openerp.base.Controller.extend({ case 'object': return dataset.call_and_eval(action_data.name, [[record_id], context], null, 1, handler); case 'action': - return this.rpc('/base/action/load', { action_id: parseInt(action_data.name, 10) }, handler); + return this.rpc('/base/action/load', { action_id: parseInt(action_data.name, 10), context: context }, handler); default: return dataset.exec_workflow(record_id, action_data.name, handler); } -- cgit v1.2.3