[imp] added editable tasks

bzr revid: nicolas.vanhoren@openerp.com-20120124163201-bhvxfj21vwf2amhl
This commit is contained in:
niv-openerp 2012-01-24 17:32:01 +01:00
parent 31cdf276a2
commit 0a019a3504
1 changed files with 31 additions and 1 deletions

View File

@ -136,17 +136,47 @@ openerp.web_gantt.GanttView = openerp.web.View.extend({
return;
task_stop = task_start.clone().addMilliseconds(tmp * 60 * 60 * 1000);
}
if (task.id == 23)
console.log("loading", task.id, task_start.toString(), task_stop.toString());
var duration = (task_stop.getTime() - task_start.getTime()) / (1000 * 60 * 60);
var task_info = new GanttTaskInfo(_.uniqueId(), task_name, task_start, duration, 100);
task_info.internal_task = task;
return {task_info: task_info, task_start: task_start, task_stop: task_stop};
}
}
var gantt = new GanttChart();
_.each(_.compact(_.map(groups, function(e) {return generate_task_info(e, 0);})), function(project) {
gantt.addProject(project)
gantt.addProject(project);
});
gantt.setEditable(true);
gantt.setImagePath("/web_gantt/static/lib/dhtmlxGantt/codebase/imgs/");
gantt.create(this.chart_id);
gantt.attachEvent("onTaskEndDrag", function(task) {
self.on_task_changed(task);
});
gantt.attachEvent("onTaskEndResize", function(task) {
self.on_task_changed(task);
});
},
on_task_changed: function(task_obj) {
var self = this;
var itask = task_obj.TaskInfo.internal_task;
var start = task_obj.getEST();
var end = task_obj.getFinishDate();
console.log("saving", itask.id, start.toString(), end.toString());
var duration = (end.getTime() - start.getTime()) / (1000 * 60 * 60);
var data = {};
data[self.fields_view.arch.attrs.date_start] =
openerp.web.auto_date_to_str(start, self.fields[self.fields_view.arch.attrs.date_start].type);
if (self.fields_view.arch.attrs.date_stop) {
data[self.fields_view.arch.attrs.date_stop] =
openerp.web.auto_date_to_str(end, self.fields[self.fields_view.arch.attrs.date_stop].type);
} else { // we assume date_duration is defined
data[self.fields_view.arch.attrs.date_delay] = duration;
}
this.dataset.write(itask.id, data).then(function() {
console.log("task edited");
});
},
});