[FIX] correct default date on calendar popups

bzr revid: chs@openerp.com-20120104170118-jmvxk4vqaqgad858
This commit is contained in:
Christophe Simonis 2012-01-04 18:01:18 +01:00
parent 6ec4c670a0
commit 76f85b16e4
2 changed files with 28 additions and 14 deletions

View File

@ -135,21 +135,21 @@ openerp.web.FormView = openerp.web.View.extend( /** @lends openerp.web.FormView#
},
do_show: function () {
var self = this,
deferred = $.Deferred().resolve();
this.has_been_loaded.then(function() {
var self = this;
return this.has_been_loaded.pipe(function() {
var result;
if (self.dataset.index === null) {
// null index means we should start a new record
deferred.pipe(self.on_button_new());
result = self.on_button_new();
} else {
deferred.pipe(self.dataset.read_index(_.keys(self.fields_view.fields)).pipe(self.on_record_loaded));
result = self.dataset.read_index(_.keys(self.fields_view.fields)).pipe(self.on_record_loaded);
}
self.$element.show();
if (self.sidebar) {
self.sidebar.$element.show();
}
return result;
});
return deferred;
},
do_hide: function () {
this._super();
@ -172,7 +172,7 @@ openerp.web.FormView = openerp.web.View.extend( /** @lends openerp.web.FormView#
field.validate();
});
});
return $.when.apply(null, set_values).then(function() {
return $.when.apply(null, set_values).pipe(function() {
if (!record.id) {
self.show_invalid = false;
// New record: Second pass in order to trigger the onchanges

View File

@ -288,7 +288,9 @@ openerp.web_calendar.CalendarView = openerp.web.View.extend({
var self = this,
data = this.get_event_data(event_obj),
form = self.form_dialog.form,
fields_to_fetch = _(form.fields_view.fields).keys();
fields_to_fetch = _(form.fields_view.fields).keys(),
set_values = [],
fields_names = [];
this.dataset.index = null;
self.creating_event_id = event_id;
this.form_dialog.form.do_show().then(function() {
@ -296,14 +298,26 @@ openerp.web_calendar.CalendarView = openerp.web.View.extend({
_.each(['date_start', 'date_stop', 'date_delay'], function(field) {
var field_name = self[field];
if (field_name && form.fields[field_name]) {
field = form.fields[field_name];
field.set_value(data[field_name]);
field.dirty = true;
form.do_onchange(field);
var ffield = form.fields[field_name];
ffield.reset();
var result = ffield.set_value(data[field_name]);
set_values.push(result);
fields_names.push(field_name);
$.when(result).then(function() {
ffield.validate();
});
}
});
form.show_invalid = true;
self.form_dialog.open();
$.when(set_values).then(function() {
_.each(fields_names, function(fn) {
var field = form.fields[fn];
field.dirty = true;
form.do_onchange(field);
});
form.show_invalid = true;
self.form_dialog.open();
});
});
},
do_save_event: function(event_id, event_obj) {