[fix] problem with date & datetime & readonly
bzr revid: nicolas.vanhoren@openerp.com-20120319151045-vmvmm640hrd0z90g
This commit is contained in:
parent
760f469af2
commit
4f623f86cd
|
@ -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() {
|
||||
|
|
|
@ -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',*/
|
||||
});
|
||||
|
||||
|
||||
|
|
Loading…
Reference in New Issue