summaryrefslogtreecommitdiff
path: root/addons/web/static/src
diff options
context:
space:
mode:
authorniv-openerp <nicolas.vanhoren@openerp.com>2012-03-19 16:10:45 +0100
committerniv-openerp <nicolas.vanhoren@openerp.com>2012-03-19 16:10:45 +0100
commit4f623f86cdf988eb90699c616ec207f4cc016c24 (patch)
tree06256e0824d87c26ebc38e4f87d3301965146f09 /addons/web/static/src
parent760f469af26e402d16c67ff6d934c9078bce6e30 (diff)
[fix] problem with date & datetime & readonly
bzr revid: nicolas.vanhoren@openerp.com-20120319151045-vmvmm640hrd0z90g
Diffstat (limited to 'addons/web/static/src')
-rw-r--r--addons/web/static/src/js/view_form.js40
-rw-r--r--addons/web/static/src/js/view_page.js4
2 files changed, 29 insertions, 15 deletions
diff --git a/addons/web/static/src/js/view_form.js b/addons/web/static/src/js/view_form.js
index 04cb93175f2..8735a52c120 100644
--- a/addons/web/static/src/js/view_form.js
+++ b/addons/web/static/src/js/view_form.js
@@ -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() {
diff --git a/addons/web/static/src/js/view_page.js b/addons/web/static/src/js/view_page.js
index bd905f1d34c..147c82143ee 100644
--- a/addons/web/static/src/js/view_page.js
+++ b/addons/web/static/src/js/view_page.js
@@ -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',*/
});