From fef31e0d712b17840dec660a32b1413c88abf102 Mon Sep 17 00:00:00 2001 From: Xavier Morel Date: Thu, 8 Dec 2011 11:28:09 +0100 Subject: [PATCH] [ADD] page view reference field behaves much like the corresponding m2o field: simply links to the referenced object bzr revid: xmo@openerp.com-20111208102809-ljc9sm84pc9snda0 --- addons/web/static/src/css/base.css | 10 ++++++++-- addons/web/static/src/js/view_page.js | 20 +++++++++++++++++++- 2 files changed, 27 insertions(+), 3 deletions(-) diff --git a/addons/web/static/src/css/base.css b/addons/web/static/src/css/base.css index 9f70a5eebfb..3a163beb832 100644 --- a/addons/web/static/src/css/base.css +++ b/addons/web/static/src/css/base.css @@ -956,13 +956,19 @@ label.error { background: #f9f9f9; } /* Unedit Form */ -.openerp .field_char, .openerp .field_date, .openerp .field_float, .openerp .oe_form_field_many2one a { +.openerp .field_char, +.openerp .field_date, +.openerp .field_float, +.openerp .field_selection, +.openerp .oe_form_field_many2one a, +.openerp .oe_form_field_reference a{ vertical-align: middle; padding-top: 3px; font-size: 90%; color: #222; } -.openerp .oe_form_field_many2one a { +.openerp .oe_form_field_many2one a, +.openerp .oe_form_field_reference a { color: #9A0404; line-height: 12px; } diff --git a/addons/web/static/src/js/view_page.js b/addons/web/static/src/js/view_page.js index ee7ce2537ad..76ad81837c2 100644 --- a/addons/web/static/src/js/view_page.js +++ b/addons/web/static/src/js/view_page.js @@ -168,7 +168,24 @@ openerp.web.page = function (openerp) { } } }); - + openerp.web.form.FieldReferenceReadonly = openerp.web.form.FieldMany2OneReadonly.extend({ + set_value: function (value) { + if (!value) { + return this._super(null); + } + var reference = value.split(','); + this.field.relation = reference[0]; + var id = parseInt(reference[1], 10); + return this._super(id); + }, + get_value: function () { + if (!this.value) { + return null; + } + return _.str.sprintf('%s,%d', this.field.relation, this.value[0]); + } + }); + openerp.web.form.FieldMany2ManyReadonly = openerp.web.form.FieldMany2Many.extend({ force_readonly: true }); @@ -188,6 +205,7 @@ openerp.web.page = function (openerp) { 'many2many' : 'openerp.web.form.FieldMany2ManyReadonly', 'one2many' : 'openerp.web.form.FieldOne2ManyReadonly', 'one2many_list' : 'openerp.web.form.FieldOne2ManyReadonly', + 'reference': 'openerp.web.form.FieldReferenceReadonly', 'boolean': 'openerp.web.form.FieldBooleanReadonly', 'float': 'openerp.web.form.FieldCharReadonly', 'integer': 'openerp.web.form.FieldCharReadonly',