summaryrefslogtreecommitdiff
path: root/addons/web/static/src
diff options
context:
space:
mode:
Diffstat (limited to 'addons/web/static/src')
-rw-r--r--addons/web/static/src/js/view_form.js13
-rw-r--r--addons/web/static/src/js/view_page.js46
2 files changed, 10 insertions, 49 deletions
diff --git a/addons/web/static/src/js/view_form.js b/addons/web/static/src/js/view_form.js
index a5af970c5ef..e25a14d00b4 100644
--- a/addons/web/static/src/js/view_form.js
+++ b/addons/web/static/src/js/view_form.js
@@ -1919,6 +1919,9 @@ openerp.web.form.FieldMany2One = openerp.web.form.Field.extend({
this.last_search = [];
this.tmp_value = undefined;
},
+ is_readonly: function() {
+ return this.readonly || this.force_readonly;
+ },
start: function() {
this._super();
var self = this;
@@ -1938,12 +1941,12 @@ openerp.web.form.FieldMany2One = openerp.web.form.Field.extend({
$cmenu.append(QWeb.render("FieldMany2One.context_menu", {widget: self}));
var bindings = {};
bindings[self.cm_id + "_search"] = function() {
- if (self.readonly)
+ if (self.is_readonly())
return;
self._search_create_popup("search");
};
bindings[self.cm_id + "_create"] = function() {
- if (self.readonly)
+ if (self.is_readonly())
return;
self._search_create_popup("form");
};
@@ -1977,7 +1980,7 @@ openerp.web.form.FieldMany2One = openerp.web.form.Field.extend({
} else {
$("#" + self.cm_id + " .oe_m2o_menu_item_mandatory").addClass("oe-m2o-disabled-cm");
}
- if (!self.readonly) {
+ if (!self.is_readonly()) {
$("#" + self.cm_id + " .oe_m2o_menu_item_noreadonly").removeClass("oe-m2o-disabled-cm");
} else {
$("#" + self.cm_id + " .oe_m2o_menu_item_noreadonly").addClass("oe-m2o-disabled-cm");
@@ -2000,7 +2003,7 @@ openerp.web.form.FieldMany2One = openerp.web.form.Field.extend({
}
});
this.$drop_down.click(function() {
- if (self.readonly)
+ if (self.is_readonly())
return;
if (self.$input.autocomplete("widget").is(":visible")) {
self.$input.autocomplete("close");
@@ -2234,7 +2237,7 @@ openerp.web.form.FieldMany2One = openerp.web.form.Field.extend({
},
update_dom: function() {
this._super.apply(this, arguments);
- this.$input.prop('readonly', this.readonly);
+ this.$input.prop('readonly', this.is_readonly());
}
});
diff --git a/addons/web/static/src/js/view_page.js b/addons/web/static/src/js/view_page.js
index 95259a01927..e748c7c33e6 100644
--- a/addons/web/static/src/js/view_page.js
+++ b/addons/web/static/src/js/view_page.js
@@ -142,50 +142,8 @@ openerp.web.page = function (openerp) {
this.$element.find('div').text(option ? option[1] : this.values[0][1]);
}
});
- openerp.web.page.FieldMany2OneReadonly = openerp.web.page.FieldURIReadonly.extend({
- set_value: function (value) {
- value = value || null;
- this.invalid = false;
- var self = this;
- this.value = value;
- self.update_dom();
- self.on_value_changed();
- var real_set_value = function(rval) {
- self.value = rval;
- self.$element.find('a')
- .unbind('click')
- .text(rval ? rval[1] : '')
- .click(function () {
- self.do_action({
- type: 'ir.actions.act_window',
- res_model: self.field.relation,
- res_id: self.value[0],
- context: self.build_context(),
- views: [[false, 'page'], [false, 'form']],
- target: 'current'
- });
- return false;
- });
- };
- if (value && !(value instanceof Array)) {
- new openerp.web.DataSetStatic(
- this, this.field.relation, self.build_context())
- .name_get([value], function(data) {
- real_set_value(data[0]);
- });
- } else {
- $.async_when().then(function() {real_set_value(value);});
- }
- },
- get_value: function() {
- if (!this.value) {
- return false;
- } else if (this.value instanceof Array) {
- return this.value[0];
- } else {
- return this.value;
- }
- }
+ openerp.web.page.FieldMany2OneReadonly = openerp.web.form.FieldMany2One.extend({
+ force_readonly: true,
});
openerp.web.page.FieldReferenceReadonly = openerp.web.page.FieldMany2OneReadonly.extend({
set_value: function (value) {