[imp] added non editable implementation for o2m & m2m
bzr revid: nicolas.vanhoren@openerp.com-20111031102752-qdsfzzj747h5yp1w
This commit is contained in:
parent
04b619f7bb
commit
41ebcc4079
|
@ -1955,6 +1955,9 @@ openerp.web.form.FieldOne2Many = openerp.web.form.Field.extend({
|
||||||
self.load_views();
|
self.load_views();
|
||||||
});
|
});
|
||||||
},
|
},
|
||||||
|
is_readonly: function() {
|
||||||
|
return this.readonly || this.force_readonly;
|
||||||
|
},
|
||||||
load_views: function() {
|
load_views: function() {
|
||||||
var self = this;
|
var self = this;
|
||||||
|
|
||||||
|
@ -1972,7 +1975,7 @@ openerp.web.form.FieldOne2Many = openerp.web.form.Field.extend({
|
||||||
}
|
}
|
||||||
if(view.view_type === "list") {
|
if(view.view_type === "list") {
|
||||||
view.options.selectable = self.multi_selection;
|
view.options.selectable = self.multi_selection;
|
||||||
if (self.readonly) {
|
if (self.is_readonly()) {
|
||||||
view.options.addable = null;
|
view.options.addable = null;
|
||||||
view.options.deletable = null;
|
view.options.deletable = null;
|
||||||
}
|
}
|
||||||
|
@ -1997,10 +2000,10 @@ openerp.web.form.FieldOne2Many = openerp.web.form.Field.extend({
|
||||||
this.viewmanager.on_controller_inited.add_last(function(view_type, controller) {
|
this.viewmanager.on_controller_inited.add_last(function(view_type, controller) {
|
||||||
if (view_type == "list") {
|
if (view_type == "list") {
|
||||||
controller.o2m = self;
|
controller.o2m = self;
|
||||||
if (self.readonly)
|
if (self.is_readonly())
|
||||||
controller.set_editable(false);
|
controller.set_editable(false);
|
||||||
} else if (view_type == "form") {
|
} else if (view_type == "form") {
|
||||||
if (self.readonly) {
|
if (self.is_readonly()) {
|
||||||
controller.on_toggle_readonly();
|
controller.on_toggle_readonly();
|
||||||
$(controller.$element.find(".oe_form_buttons")[0]).children().remove();
|
$(controller.$element.find(".oe_form_buttons")[0]).children().remove();
|
||||||
}
|
}
|
||||||
|
@ -2220,7 +2223,7 @@ openerp.web.form.One2ManyListView = openerp.web.ListView.extend({
|
||||||
},
|
},
|
||||||
do_activate_record: function(index, id) {
|
do_activate_record: function(index, id) {
|
||||||
var self = this;
|
var self = this;
|
||||||
if (self.o2m.readonly)
|
if (self.o2m.is_readonly)
|
||||||
return;
|
return;
|
||||||
var pop = new openerp.web.form.FormOpenPopup(self.o2m.view);
|
var pop = new openerp.web.form.FormOpenPopup(self.o2m.view);
|
||||||
pop.show_element(self.o2m.field.relation, id, self.o2m.build_context(),{
|
pop.show_element(self.o2m.field.relation, id, self.o2m.build_context(),{
|
||||||
|
@ -2282,11 +2285,14 @@ openerp.web.form.FieldMany2Many = openerp.web.form.Field.extend({
|
||||||
validate: function() {
|
validate: function() {
|
||||||
this.invalid = false;
|
this.invalid = false;
|
||||||
},
|
},
|
||||||
|
is_readonly: function() {
|
||||||
|
return this.readonly || this.force_readonly;
|
||||||
|
},
|
||||||
load_view: function() {
|
load_view: function() {
|
||||||
var self = this;
|
var self = this;
|
||||||
this.list_view = new openerp.web.form.Many2ManyListView(this, this.dataset, false, {
|
this.list_view = new openerp.web.form.Many2ManyListView(this, this.dataset, false, {
|
||||||
'addable': self.readonly ? null : 'Add',
|
'addable': self.is_readonly() ? null : 'Add',
|
||||||
'deletable': self.readonly ? false : true,
|
'deletable': self.is_readonly() ? false : true,
|
||||||
'selectable': self.multi_selection
|
'selectable': self.multi_selection
|
||||||
});
|
});
|
||||||
this.list_view.m2m_field = this;
|
this.list_view.m2m_field = this;
|
||||||
|
@ -3030,6 +3036,13 @@ openerp.web.form.widgets = new openerp.web.Registry({
|
||||||
'binary': 'openerp.web.form.FieldBinaryFile',
|
'binary': 'openerp.web.form.FieldBinaryFile',
|
||||||
'statusbar': 'openerp.web.form.FieldStatus'
|
'statusbar': 'openerp.web.form.FieldStatus'
|
||||||
});
|
});
|
||||||
|
|
||||||
|
openerp.web.form.FieldMany2ManyReadonly = openerp.web.form.FieldMany2Many.extend({
|
||||||
|
force_readonly: true
|
||||||
|
});
|
||||||
|
openerp.web.form.FieldOne2ManyReadonly = openerp.web.form.FieldOne2Many.extend({
|
||||||
|
force_readonly: true
|
||||||
|
});
|
||||||
openerp.web.form.readonly = openerp.web.form.widgets.clone({
|
openerp.web.form.readonly = openerp.web.form.widgets.clone({
|
||||||
'char': 'openerp.web.form.FieldCharReadonly',
|
'char': 'openerp.web.form.FieldCharReadonly',
|
||||||
'email': 'openerp.web.form.FieldEmailReadonly',
|
'email': 'openerp.web.form.FieldEmailReadonly',
|
||||||
|
@ -3040,6 +3053,9 @@ openerp.web.form.readonly = openerp.web.form.widgets.clone({
|
||||||
'datetime': 'openerp.web.form.FieldCharReadonly',
|
'datetime': 'openerp.web.form.FieldCharReadonly',
|
||||||
'selection' : 'openerp.web.form.FieldSelectionReadonly',
|
'selection' : 'openerp.web.form.FieldSelectionReadonly',
|
||||||
'many2one': 'openerp.web.form.FieldMany2OneReadonly',
|
'many2one': 'openerp.web.form.FieldMany2OneReadonly',
|
||||||
|
'many2many' : 'openerp.web.form.FieldMany2ManyReadonly',
|
||||||
|
'one2many' : 'openerp.web.form.FieldOne2ManyReadonly',
|
||||||
|
'one2many_list' : 'openerp.web.form.FieldOne2ManyReadonly',
|
||||||
'boolean': 'openerp.web.form.FieldBooleanReadonly',
|
'boolean': 'openerp.web.form.FieldBooleanReadonly',
|
||||||
'float': 'openerp.web.form.FieldCharReadonly',
|
'float': 'openerp.web.form.FieldCharReadonly',
|
||||||
'integer': 'openerp.web.form.FieldCharReadonly',
|
'integer': 'openerp.web.form.FieldCharReadonly',
|
||||||
|
|
Loading…
Reference in New Issue