diff options
| author | niv-openerp <nicolas.vanhoren@openerp.com> | 2012-03-16 11:48:59 +0100 |
|---|---|---|
| committer | niv-openerp <nicolas.vanhoren@openerp.com> | 2012-03-16 11:48:59 +0100 |
| commit | 90f881b0761cddb39ef96189936ddeb11b0cf0dc (patch) | |
| tree | fc60962c87b7279b8b9b1196075310c5c4701ea4 /addons/web/static/src | |
| parent | 7925a53b4d86e9c5872c9432755d34fd198c559f (diff) | |
[imp] made o2m readonly-able
bzr revid: nicolas.vanhoren@openerp.com-20120316104859-kvpiiigbx8t9dwf7
Diffstat (limited to 'addons/web/static/src')
| -rw-r--r-- | addons/web/static/src/js/view_form.js | 46 | ||||
| -rw-r--r-- | addons/web/static/src/js/view_page.js | 5 |
2 files changed, 20 insertions, 31 deletions
diff --git a/addons/web/static/src/js/view_form.js b/addons/web/static/src/js/view_form.js index c5023b50127..1c633d99c86 100644 --- a/addons/web/static/src/js/view_form.js +++ b/addons/web/static/src/js/view_form.js @@ -2303,6 +2303,16 @@ openerp.web.form.FieldOne2Many = openerp.web.form.AbstractField.extend({ this.is_setted.then(function() { self.load_views(); }); + this.is_loaded.then(function() { + self.on("change:effective_readonly", self, function() { + self.is_loaded = self.is_loaded.pipe(function() { + self.viewmanager.destroy(); + return $.when(self.load_views()).then(function() { + self.reload_current_view(); + }); + }); + }); + }); }, trigger_on_change: function() { var tmp = this.doing_on_change; @@ -2310,9 +2320,6 @@ openerp.web.form.FieldOne2Many = openerp.web.form.AbstractField.extend({ this.on_ui_change(); this.doing_on_change = tmp; }, - is_readonly: function() { - return this.readonly || this.force_readonly; - }, load_views: function() { var self = this; @@ -2330,13 +2337,13 @@ openerp.web.form.FieldOne2Many = openerp.web.form.AbstractField.extend({ } if(view.view_type === "list") { view.options.selectable = self.multi_selection; - if (self.is_readonly()) { + if (self.get("effective_readonly")) { view.options.addable = null; view.options.deletable = null; view.options.isClarkGable = false; } } else if (view.view_type === "form") { - if (self.is_readonly()) { + if (self.get("effective_readonly")) { view.view_type = 'page'; } view.options.not_interactible_on_create = true; @@ -2361,10 +2368,10 @@ openerp.web.form.FieldOne2Many = openerp.web.form.AbstractField.extend({ this.viewmanager.on_controller_inited.add_last(function(view_type, controller) { if (view_type == "list") { controller.o2m = self; - if (self.is_readonly()) + if (self.get("effective_readonly")) controller.set_editable(false); } else if (view_type == "form" || view_type == 'page') { - if (view_type == 'page' || self.is_readonly()) { + if (view_type == 'page' || self.get("effective_readonly")) { $(".oe_form_buttons", controller.$element).children().remove(); } controller.on_record_loaded.add_last(function() { @@ -2541,21 +2548,6 @@ openerp.web.form.FieldOne2Many = openerp.web.form.AbstractField.extend({ is_dirty: function() { this.save_any_view(); return this._super(); - }, - update_dom: function() { - this._super.apply(this, arguments); - var self = this; - if (this.previous_readonly !== this.readonly) { - this.previous_readonly = this.readonly; - if (this.viewmanager) { - this.is_loaded = this.is_loaded.pipe(function() { - self.viewmanager.destroy(); - return $.when(self.load_views()).then(function() { - self.reload_current_view(); - }); - }); - } - } } }); @@ -2615,7 +2607,7 @@ openerp.web.form.One2ManyListView = openerp.web.ListView.extend({ return self.o2m.dataset.read_ids.apply(self.o2m.dataset, arguments); }, form_view_options: {'not_interactible_on_create':true}, - readonly: self.o2m.is_readonly() + readonly: self.o2m.get("effective_readonly") }); pop.on_write.add(function(id, data) { self.o2m.dataset.write(id, data, {}, function(r) { @@ -2677,9 +2669,11 @@ openerp.web.form.FieldMany2Many = openerp.web.form.AbstractField.extend({ }); this.is_loaded.then(function() { self.on("change:effective_readonly", self, function() { - self.list_view.destroy(); - return $.when(self.load_view()).then(function() { - self.reload_content(); + self.is_loaded = self.is_loaded.pipe(function() { + self.list_view.destroy(); + return $.when(self.load_view()).then(function() { + self.reload_content(); + }); }); }); }) diff --git a/addons/web/static/src/js/view_page.js b/addons/web/static/src/js/view_page.js index 00cea247e3f..707bfc4f2b5 100644 --- a/addons/web/static/src/js/view_page.js +++ b/addons/web/static/src/js/view_page.js @@ -168,9 +168,6 @@ openerp.web.page = function (openerp) { } }); - openerp.web.page.FieldOne2ManyReadonly = openerp.web.form.FieldOne2Many.extend({ - force_readonly: true - }); openerp.web.page.FieldBinaryImageReaonly = openerp.web.form.FieldBinaryImage.extend({ update_dom: function() { this._super.apply(this, arguments); @@ -208,8 +205,6 @@ openerp.web.page = function (openerp) { 'date': 'openerp.web.page.FieldCharReadonly', 'datetime': 'openerp.web.page.FieldCharReadonly', 'selection' : 'openerp.web.page.FieldSelectionReadonly', - 'one2many' : 'openerp.web.page.FieldOne2ManyReadonly', - 'one2many_list' : 'openerp.web.page.FieldOne2ManyReadonly', 'reference': 'openerp.web.page.FieldReferenceReadonly', 'boolean': 'openerp.web.page.FieldBooleanReadonly', 'float': 'openerp.web.page.FieldCharReadonly', |
