summaryrefslogtreecommitdiff
path: root/addons/web/static/src
diff options
context:
space:
mode:
authorniv-openerp <nicolas.vanhoren@openerp.com>2012-03-16 11:48:59 +0100
committerniv-openerp <nicolas.vanhoren@openerp.com>2012-03-16 11:48:59 +0100
commit90f881b0761cddb39ef96189936ddeb11b0cf0dc (patch)
treefc60962c87b7279b8b9b1196075310c5c4701ea4 /addons/web/static/src
parent7925a53b4d86e9c5872c9432755d34fd198c559f (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.js46
-rw-r--r--addons/web/static/src/js/view_page.js5
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',