summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorniv-openerp <nicolas.vanhoren@openerp.com>2011-10-31 11:27:52 +0100
committerniv-openerp <nicolas.vanhoren@openerp.com>2011-10-31 11:27:52 +0100
commit41ebcc4079a57cbb619e00cebdb75d792f2e386e (patch)
tree9477554894e3457e038e932f5fa99808a68f0dd2
parent04b619f7bb8339259b7d17b9ec90a71669f67c61 (diff)
[imp] added non editable implementation for o2m & m2m
bzr revid: nicolas.vanhoren@openerp.com-20111031102752-qdsfzzj747h5yp1w
-rw-r--r--addons/web/static/src/js/view_form.js28
1 files changed, 22 insertions, 6 deletions
diff --git a/addons/web/static/src/js/view_form.js b/addons/web/static/src/js/view_form.js
index 6f499a0adf7..8955237ce39 100644
--- a/addons/web/static/src/js/view_form.js
+++ b/addons/web/static/src/js/view_form.js
@@ -1955,6 +1955,9 @@ openerp.web.form.FieldOne2Many = openerp.web.form.Field.extend({
self.load_views();
});
},
+ is_readonly: function() {
+ return this.readonly || this.force_readonly;
+ },
load_views: function() {
var self = this;
@@ -1972,7 +1975,7 @@ openerp.web.form.FieldOne2Many = openerp.web.form.Field.extend({
}
if(view.view_type === "list") {
view.options.selectable = self.multi_selection;
- if (self.readonly) {
+ if (self.is_readonly()) {
view.options.addable = 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) {
if (view_type == "list") {
controller.o2m = self;
- if (self.readonly)
+ if (self.is_readonly())
controller.set_editable(false);
} else if (view_type == "form") {
- if (self.readonly) {
+ if (self.is_readonly()) {
controller.on_toggle_readonly();
$(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) {
var self = this;
- if (self.o2m.readonly)
+ if (self.o2m.is_readonly)
return;
var pop = new openerp.web.form.FormOpenPopup(self.o2m.view);
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() {
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.readonly ? null : 'Add',
- 'deletable': self.readonly ? false : true,
+ 'addable': self.is_readonly() ? null : 'Add',
+ 'deletable': self.is_readonly() ? false : true,
'selectable': self.multi_selection
});
this.list_view.m2m_field = this;
@@ -3030,6 +3036,13 @@ openerp.web.form.widgets = new openerp.web.Registry({
'binary': 'openerp.web.form.FieldBinaryFile',
'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({
'char': 'openerp.web.form.FieldCharReadonly',
'email': 'openerp.web.form.FieldEmailReadonly',
@@ -3040,6 +3053,9 @@ openerp.web.form.readonly = openerp.web.form.widgets.clone({
'datetime': 'openerp.web.form.FieldCharReadonly',
'selection' : 'openerp.web.form.FieldSelectionReadonly',
'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',
'float': 'openerp.web.form.FieldCharReadonly',
'integer': 'openerp.web.form.FieldCharReadonly',