diff options
| author | Christophe Matthieu <chm@openerp.com> | 2013-01-30 16:55:31 +0100 |
|---|---|---|
| committer | Christophe Matthieu <chm@openerp.com> | 2013-01-30 16:55:31 +0100 |
| commit | f2be320f04a6ea9efcf586727a4e229dc60954b2 (patch) | |
| tree | a230fbf474b1cdc4b1fb02dfcb2bea593b693f99 /addons | |
| parent | 4a4282c245149f928e0c5751147abadf3c211780 (diff) | |
[IMP] gantt view: add optional attribute in the gantt view to display the percent of completion.
bzr revid: chm@openerp.com-20130130155531-bza5gon9f8yi8lio
Diffstat (limited to 'addons')
| -rw-r--r-- | addons/web_gantt/static/lib/dhtmlxGantt/sources/dhtmlxgantt.js | 3 | ||||
| -rw-r--r-- | addons/web_gantt/static/src/js/gantt.js | 17 |
2 files changed, 13 insertions, 7 deletions
diff --git a/addons/web_gantt/static/lib/dhtmlxGantt/sources/dhtmlxgantt.js b/addons/web_gantt/static/lib/dhtmlxGantt/sources/dhtmlxgantt.js index 9d8b0db2252..e04279c6877 100644 --- a/addons/web_gantt/static/lib/dhtmlxGantt/sources/dhtmlxgantt.js +++ b/addons/web_gantt/static/lib/dhtmlxGantt/sources/dhtmlxgantt.js @@ -386,6 +386,7 @@ function GanttChart() this.hourInPixelsWork = this.dayInPixels / this.hoursInDay;
this.hourInPixels = this.dayInPixels / 24;
+ this.minWidthResize = this.hourInPixels;
this.countDays = 0;
this.startDate = null;
this.initialPos = 0;
@@ -4812,7 +4813,7 @@ GanttTask.prototype.getResizeInfo = function() childParentPosX = posChildTaskItem;
}
- this.minWidthResize = this.Chart.dayInPixels;
+ this.minWidthResize = this.Chart.minWidthResize;
if (this.childTask.length > 0)
{
diff --git a/addons/web_gantt/static/src/js/gantt.js b/addons/web_gantt/static/src/js/gantt.js index e6b12038126..ff621d0e74b 100644 --- a/addons/web_gantt/static/src/js/gantt.js +++ b/addons/web_gantt/static/src/js/gantt.js @@ -44,7 +44,7 @@ instance.web_gantt.GanttView = instance.web.View.extend({ n_group_bys = group_bys; } // gather the fields to get - var fields = _.compact(_.map(["date_start", "date_delay", "date_stop"], function(key) { + var fields = _.compact(_.map(["date_start", "date_delay", "date_stop", "progress"], function(key) { return self.fields_view.arch.attrs[key] || ''; })); fields = _.uniq(fields.concat(n_group_bys)); @@ -75,7 +75,7 @@ instance.web_gantt.GanttView = instance.web.View.extend({ on_data_loaded_2: function(tasks, group_bys) { var self = this; $(".oe_gantt", this.$el).html(""); - + //prevent more that 1 group by if (group_bys.length > 0) { group_bys = [group_bys[0]]; @@ -114,6 +114,11 @@ instance.web_gantt.GanttView = instance.web.View.extend({ var task_ids = {}; // creation of the chart var generate_task_info = function(task, plevel) { + if (_.isNumber(task[self.fields_view.arch.attrs.progress])) { + var percent = task[self.fields_view.arch.attrs.progress] || 0; + } else { + var percent = 100; + } var level = plevel || 0; if (task.__is_group) { var task_infos = _.compact(_.map(task.tasks, function(sub_task) { @@ -128,7 +133,7 @@ instance.web_gantt.GanttView = instance.web.View.extend({ return memo === undefined || date > memo ? date : memo; }, undefined); var duration = (task_stop.getTime() - task_start.getTime()) / (1000 * 60 * 60); - var group_name = instance.web.format_value(task.name, self.fields[group_bys[level]]); + var group_name = task.name ? instance.web.format_value(task.name, self.fields[group_bys[level]]) : "-"; if (level == 0) { var group = new GanttProjectInfo(_.uniqueId("gantt_project_"), group_name, task_start); _.each(task_infos, function(el) { @@ -136,7 +141,7 @@ instance.web_gantt.GanttView = instance.web.View.extend({ }); return group; } else { - var group = new GanttTaskInfo(_.uniqueId("gantt_project_task_"), group_name, task_start, duration || 1, 100); + var group = new GanttTaskInfo(_.uniqueId("gantt_project_task_"), group_name, task_start, duration || 1, percent); _.each(task_infos, function(el) { group.addChildTask(el.task_info); }); @@ -151,7 +156,7 @@ instance.web_gantt.GanttView = instance.web.View.extend({ if (self.fields_view.arch.attrs.date_stop) { task_stop = instance.web.auto_str_to_date(task[self.fields_view.arch.attrs.date_stop]); if (!task_stop) - return; + task_stop = task_start; } else { // we assume date_duration is defined var tmp = instance.web.format_value(task[self.fields_view.arch.attrs.date_delay], self.fields[self.fields_view.arch.attrs.date_delay]); @@ -161,7 +166,7 @@ instance.web_gantt.GanttView = instance.web.View.extend({ } var duration = (task_stop.getTime() - task_start.getTime()) / (1000 * 60 * 60); var id = _.uniqueId("gantt_task_"); - var task_info = new GanttTaskInfo(id, task_name, task_start, ((duration / 24) * 8) || 1, 100); + var task_info = new GanttTaskInfo(id, task_name, task_start, ((duration / 24) * 8) || 1, percent); task_info.internal_task = task; task_ids[id] = task_info; return {task_info: task_info, task_start: task_start, task_stop: task_stop}; |
