[fix] problem with date & datetime & readonly

bzr revid: nicolas.vanhoren@openerp.com-20120319151045-vmvmm640hrd0z90g
This commit is contained in:
niv-openerp 2012-03-19 16:10:45 +01:00
parent 760f469af2
commit 4f623f86cd
2 changed files with 29 additions and 15 deletions

View File

@ -1676,36 +1676,50 @@ openerp.web.DateWidget = openerp.web.DateTimeWidget.extend({
type_of_date: "date"
});
openerp.web.form.FieldDatetime = openerp.web.form.AbstractField.extend({
openerp.web.form.FieldDatetime = openerp.web.form.AbstractField.extend(_.extend({}, openerp.web.form.ReinitializeFieldMixin, {
template: "EmptyComponent",
build_widget: function() {
return new openerp.web.DateTimeWidget(this);
},
start: function() {
var self = this;
this._super.apply(this, arguments);
this.datewidget = this.build_widget();
this.datewidget.on_change.add_last(this.on_ui_change);
this.datewidget.appendTo(this.$element);
this._super();
openerp.web.form.ReinitializeFieldMixin.start.call(this);
},
renderElement: function() {
if (this.datewidget) {
this.datewidget.stop();
this.datewidget = undefined;
}
this._super();
},
bind_events: function() {
if (!this.get("effective_readonly")) {
this.datewidget = this.build_widget();
this.datewidget.on_change.add_last(this.on_ui_change);
this.datewidget.appendTo(this.$element);
}
},
set_value: function(value) {
this._super(value);
this.datewidget.set_value(value);
this.render_value();
},
render_value: function() {
if (!this.get("effective_readonly")) {
this.datewidget.set_value(this.value);
} else {
this.$element.text(openerp.web.format_value(this.value, this, ''));
}
},
get_value: function() {
return this.datewidget.get_value();
},
update_dom: function() {
this._super.apply(this, arguments);
this.datewidget.set_readonly(this.readonly);
},
validate: function() {
this.invalid = !this.datewidget.is_valid(this.required);
this.invalid = this.get("effective_readonly") || !this.datewidget.is_valid(this.required);
},
focus: function($element) {
this._super($element || this.datewidget.$input);
}
});
}));
openerp.web.form.FieldDate = openerp.web.form.FieldDatetime.extend({
build_widget: function() {

View File

@ -99,13 +99,13 @@ openerp.web.page = function (openerp) {
'binary': 'openerp.web.page.FieldBinaryFileReadonly',
'image': 'openerp.web.page.FieldBinaryImageReaonly',
'id': 'openerp.web.form.FieldChar',
/*'id': 'openerp.web.form.FieldChar',
'text': 'openerp.web.form.FieldChar',
'date': 'openerp.web.form.FieldChar',
'datetime': 'openerp.web.form.FieldChar',
'float': 'openerp.web.form.FieldChar',
'integer': 'openerp.web.form.FieldChar',
'float_time': 'openerp.web.form.FieldChar',
'float_time': 'openerp.web.form.FieldChar',*/
});