[imp] made m2m readonly-able
bzr revid: nicolas.vanhoren@openerp.com-20120316103931-qdin0lym3130ugd2
This commit is contained in:
parent
392423ad27
commit
7925a53b4d
|
@ -2648,6 +2648,9 @@ openerp.web.form.One2ManyFormView = openerp.web.FormView.extend({
|
|||
}
|
||||
});
|
||||
|
||||
/*
|
||||
* TODO niv: clean those deferred stuff, it could be better
|
||||
*/
|
||||
openerp.web.form.FieldMany2Many = openerp.web.form.AbstractField.extend({
|
||||
template: 'FieldMany2Many',
|
||||
multi_selection: false,
|
||||
|
@ -2672,6 +2675,14 @@ openerp.web.form.FieldMany2Many = openerp.web.form.AbstractField.extend({
|
|||
this.is_setted.then(function() {
|
||||
self.load_view();
|
||||
});
|
||||
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();
|
||||
});
|
||||
});
|
||||
})
|
||||
},
|
||||
set_value: function(value) {
|
||||
value = value || [];
|
||||
|
@ -2690,16 +2701,13 @@ openerp.web.form.FieldMany2Many = openerp.web.form.AbstractField.extend({
|
|||
validate: function() {
|
||||
this.invalid = false;
|
||||
},
|
||||
is_readonly: function() {
|
||||
return this.readonly || this.force_readonly;
|
||||
},
|
||||
load_view: function() {
|
||||
var self = this;
|
||||
this.list_view = new openerp.web.form.Many2ManyListView(this, this.dataset, false, {
|
||||
'addable': self.is_readonly() ? null : _t("Add"),
|
||||
'deletable': self.is_readonly() ? false : true,
|
||||
'addable': self.get("effective_readonly") ? null : _t("Add"),
|
||||
'deletable': self.get("effective_readonly") ? false : true,
|
||||
'selectable': self.multi_selection,
|
||||
'isClarkGable': self.is_readonly() ? false : true
|
||||
'isClarkGable': self.get("effective_readonly") ? false : true
|
||||
});
|
||||
var embedded = (this.field.views || {}).tree;
|
||||
if (embedded) {
|
||||
|
@ -2722,21 +2730,6 @@ openerp.web.form.FieldMany2Many = openerp.web.form.AbstractField.extend({
|
|||
return self.list_view.reload_content();
|
||||
});
|
||||
},
|
||||
update_dom: function() {
|
||||
this._super.apply(this, arguments);
|
||||
var self = this;
|
||||
if (this.previous_readonly !== this.readonly) {
|
||||
this.previous_readonly = this.readonly;
|
||||
if (this.list_view) {
|
||||
this.is_loaded = this.is_loaded.pipe(function() {
|
||||
self.list_view.destroy();
|
||||
return $.when(self.load_view()).then(function() {
|
||||
self.reload_content();
|
||||
});
|
||||
});
|
||||
}
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
openerp.web.form.Many2ManyDataSet = openerp.web.DataSetStatic.extend({
|
||||
|
@ -2777,7 +2770,7 @@ openerp.web.form.Many2ManyListView = openerp.web.ListView.extend(/** @lends open
|
|||
var pop = new openerp.web.form.FormOpenPopup(this);
|
||||
pop.show_element(this.dataset.model, id, this.m2m_field.build_context(), {
|
||||
title: _t("Open: ") + this.name,
|
||||
readonly: this.getParent().is_readonly()
|
||||
readonly: this.getParent().get("effective_readonly")
|
||||
});
|
||||
pop.on_write_completed.add_last(function() {
|
||||
self.reload_content();
|
||||
|
|
|
@ -168,9 +168,6 @@ openerp.web.page = function (openerp) {
|
|||
}
|
||||
});
|
||||
|
||||
openerp.web.page.FieldMany2ManyReadonly = openerp.web.form.FieldMany2Many.extend({
|
||||
force_readonly: true
|
||||
});
|
||||
openerp.web.page.FieldOne2ManyReadonly = openerp.web.form.FieldOne2Many.extend({
|
||||
force_readonly: true
|
||||
});
|
||||
|
@ -211,7 +208,6 @@ openerp.web.page = function (openerp) {
|
|||
'date': 'openerp.web.page.FieldCharReadonly',
|
||||
'datetime': 'openerp.web.page.FieldCharReadonly',
|
||||
'selection' : 'openerp.web.page.FieldSelectionReadonly',
|
||||
'many2many' : 'openerp.web.page.FieldMany2ManyReadonly',
|
||||
'one2many' : 'openerp.web.page.FieldOne2ManyReadonly',
|
||||
'one2many_list' : 'openerp.web.page.FieldOne2ManyReadonly',
|
||||
'reference': 'openerp.web.page.FieldReferenceReadonly',
|
||||
|
|
Loading…
Reference in New Issue