[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
This commit is contained in:
Xavier Morel 2011-12-08 11:28:09 +01:00
parent 5d0ce16a66
commit fef31e0d71
2 changed files with 27 additions and 3 deletions

View File

@ -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;
}

View File

@ -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',