summaryrefslogtreecommitdiff
path: root/addons/web/static/src/js/fields
diff options
context:
space:
mode:
Diffstat (limited to 'addons/web/static/src/js/fields')
-rw-r--r--addons/web/static/src/js/fields/relational_fields.js26
1 files changed, 24 insertions, 2 deletions
diff --git a/addons/web/static/src/js/fields/relational_fields.js b/addons/web/static/src/js/fields/relational_fields.js
index 7522bb3bc37..89fcb4fe406 100644
--- a/addons/web/static/src/js/fields/relational_fields.js
+++ b/addons/web/static/src/js/fields/relational_fields.js
@@ -99,7 +99,7 @@ var FieldMany2One = AbstractField.extend({
this.nodeOptions = _.defaults(this.nodeOptions, {
quick_create: true,
});
- this.m2o_value = field_utils.format.many2one(this.value);
+ this.m2o_value = this._formatValue(this.value);
// 'recordParams' is a dict of params used when calling functions
// 'getDomain' and 'getContext' on this.record
this.recordParams = {fieldName: this.name, viewType: this.viewType};
@@ -2029,7 +2029,20 @@ var FieldReference = FieldMany2One.extend({
// needs to be copied as it is an unmutable object
this.field = _.extend({}, this.field);
if (this.value) {
- this._setRelation(this.value.model);
+ var model = null;
+ // The value of a Reference field can either be a string in the form
+ // of model,record_id or an object
+ if (typeof this.value === "string") {
+ var value = this.value.split(',');
+ model = value[0];
+ this.value = {
+ res_id: parseInt(value[1]),
+ };
+ } else {
+ model = this.value.model;
+ }
+
+ this._setRelation(model);
}
},
/**
@@ -2045,6 +2058,15 @@ var FieldReference = FieldMany2One.extend({
//--------------------------------------------------------------------------
/**
+ * Get the encompassing record's display_name
+ *
+ * @override
+ */
+ _formatValue: function () {
+ return this.recordData.display_name;
+ },
+
+ /**
* Add a select in edit mode (for the model).
*
* @override