Merge lp:~hirt/ocb-web/6.1_ocb-web_gantt_progress into lp:ocb-web/6.1

Proposed by Etienne Hirt
Status: Needs review
Proposed branch: lp:~hirt/ocb-web/6.1_ocb-web_gantt_progress
Merge into: lp:ocb-web/6.1
Diff against target: 119 lines (+22/-9)
2 files modified
addons/web_gantt/static/lib/dhtmlxGantt/sources/dhtmlxgantt.js (+9/-6)
addons/web_gantt/static/src/js/gantt.js (+13/-3)
To merge this branch: bzr merge lp:~hirt/ocb-web/6.1_ocb-web_gantt_progress
Reviewer Review Type Date Requested Status
OpenERP Community Backports Pending
Review via email: mp+238849@code.launchpad.net

Description of the change

make the progress visible in both the gantt bar and the tooltip

~hirt/ocb-server/6.1_ocb-server_gantt_progress should be merged before with ocb-server backport

To post a comment you must log in.
2525. By Etienne Hirt

add parameter assigned_to mainly to tooltip

2526. By Etienne Hirt

fix alternative None for unassigned tasks

Unmerged revisions

2526. By Etienne Hirt

fix alternative None for unassigned tasks

2525. By Etienne Hirt

add parameter assigned_to mainly to tooltip

2524. By Etienne Hirt

enable progress in both gantt bar and bar tooltip

Preview Diff

[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
1=== modified file 'addons/web_gantt/static/lib/dhtmlxGantt/sources/dhtmlxgantt.js'
2--- addons/web_gantt/static/lib/dhtmlxGantt/sources/dhtmlxgantt.js 2012-07-02 13:30:16 +0000
3+++ addons/web_gantt/static/lib/dhtmlxGantt/sources/dhtmlxgantt.js 2014-11-29 21:24:12 +0000
4@@ -169,17 +169,19 @@
5 * @param: est - specifies Estimated Start Date of task
6 * @param: duration - specifies duration of task in hours
7 * @param: percentCompleted - specifies percentCompleted of task
8+ * @param: assignedTo - specifies the assigned user of task
9 * @param: predecessorTaskId - specifies predecessorTask Id of task
10 * @type: public
11 * @topic: 0
12 */
13-function GanttTaskInfo(id, name, est, duration, percentCompleted, predecessorTaskId)
14+function GanttTaskInfo(id, name, est, duration, percentCompleted, assignedTo, predecessorTaskId)
15 {
16 this.Id = id;
17 this.Name = name;
18 this.EST = est;
19 this.Duration = duration;
20 this.PercentCompleted = percentCompleted;
21+ this.AssignedTo = assignedTo;
22 this.PredecessorTaskId = predecessorTaskId;
23 this.ChildTasks = [];
24 this.ChildPredTasks = [];
25@@ -1204,7 +1206,7 @@
26 return false;
27 }
28
29- task = new GanttTaskInfo(id, name, EST, Duration, PercentCompleted, predecessorTaskId);
30+ task = new GanttTaskInfo(id, name, EST, Duration, PercentCompleted, "None", predecessorTaskId);
31
32 if (!this.Chart.checkPosParentTask(parentTask, task)) {
33 this.Chart.Error.throwError("DATA_INSERT_ERROR", 19, [parentTaskId,id]);
34@@ -1299,7 +1301,7 @@
35
36 EST = EST || this.Project.StartDate;
37
38- task = new GanttTaskInfo(id, name, EST, Duration, PercentCompleted, predecessorTaskId);
39+ task = new GanttTaskInfo(id, name, EST, Duration, PercentCompleted, "None", predecessorTaskId);
40
41 if (task.EST <= this.Chart.startDate) {
42 this.Chart.Error.throwError("DATA_INSERT_ERROR", 18, [task.Id]);
43@@ -2228,7 +2230,7 @@
44 percentCompleted = (this.xmlLoader.doXPath("./percentcompleted", taskArr[i])[0].firstChild == null) ? "" : this.xmlLoader.doXPath("./percentcompleted", taskArr[i])[0].firstChild.nodeValue;
45 predecessorTaskId = (this.xmlLoader.doXPath("./predecessortasks", taskArr[i])[0].firstChild == null) ? "" : this.xmlLoader.doXPath("./predecessortasks", taskArr[i])[0].firstChild.nodeValue;
46
47- var task = new GanttTaskInfo(id, name, new Date(est[0], (parseInt(est[1]) - 1), est[2]), duration, percentCompleted, predecessorTaskId);
48+ var task = new GanttTaskInfo(id, name, new Date(est[0], (parseInt(est[1]) - 1), est[2]), duration, percentCompleted, "none", predecessorTaskId);
49 var childTasksNode = this.xmlLoader.doXPath("./childtasks", taskArr[i]);
50 var childTasksArr = this.xmlLoader.doXPath("./task", childTasksNode[0]);
51
52@@ -2267,7 +2269,7 @@
53 duration = (this.xmlLoader.doXPath("./duration", childTasksArrXML[i])[0].firstChild == null) ? "" : this.xmlLoader.doXPath("./duration", childTasksArrXML[i])[0].firstChild.nodeValue;
54 percentCompleted = (this.xmlLoader.doXPath("./percentcompleted", childTasksArrXML[i])[0].firstChild == null) ? "" : this.xmlLoader.doXPath("./percentcompleted", childTasksArrXML[i])[0].firstChild.nodeValue;
55 predecessorTaskId = (this.xmlLoader.doXPath("./predecessortasks", childTasksArrXML[i])[0].firstChild == null) ? "" : this.xmlLoader.doXPath("./predecessortasks", childTasksArrXML[i])[0].firstChild.nodeValue;
56- var task = new GanttTaskInfo(id, name, new Date(est[0], (parseInt(est[1]) - 1), est[2]), duration, percentCompleted, predecessorTaskId);
57+ var task = new GanttTaskInfo(id, name, new Date(est[0], (parseInt(est[1]) - 1), est[2]), duration, percentCompleted, "none", predecessorTaskId);
58 task.ParentTask = parentTask;
59
60 parentTask.addChildTask(task);
61@@ -3142,7 +3144,8 @@
62 tblInfo.rows[0].cells[0].innerHTML += "<span class='st'>Start Date:&nbsp;</span><span class='ut'>" + this.TaskInfo.EST.getDate() + "." + (this.TaskInfo.EST.getMonth() + 1) + "." + this.TaskInfo.EST.getFullYear() + "</span><br/>";
63 // Hidden because currently misleading or unavailable:
64 // tblInfo.rows[0].cells[0].innerHTML += "<span class='st'>Duration:&nbsp;</span><span class='ut'>" + this.TaskInfo.Duration + " hours </span><br/>";
65- // tblInfo.rows[0].cells[0].innerHTML += "<span class='st'>Percent Complete:&nbsp;</span><span class='ut'>" + this.TaskInfo.PercentCompleted + "% </span><br/>";
66+ tblInfo.rows[0].cells[0].innerHTML += "<span class='st'>Percent Complete:&nbsp;</span><span class='ut'>" + this.TaskInfo.PercentCompleted + "% </span><br/>";
67+ tblInfo.rows[0].cells[0].innerHTML += "<span class='st'>Assigned To:&nbsp;</span><span class='ut'>" + this.TaskInfo.AssignedTo + " </span><br/>";
68
69 //show predecessor task
70 if (this.predTask)
71
72=== modified file 'addons/web_gantt/static/src/js/gantt.js'
73--- addons/web_gantt/static/src/js/gantt.js 2012-01-27 16:06:45 +0000
74+++ addons/web_gantt/static/src/js/gantt.js 2014-11-29 21:24:12 +0000
75@@ -39,7 +39,7 @@
76 n_group_bys = group_bys;
77 }
78 // gather the fields to get
79- var fields = _.compact(_.map(["date_start", "date_delay", "date_stop"], function(key) {
80+ var fields = _.compact(_.map(["date_start", "date_delay", "date_stop", "progress", "assigned_to"], function(key) {
81 return self.fields_view.arch.attrs[key] || '';
82 }));
83 fields = _.uniq(fields.concat(n_group_bys));
84@@ -109,7 +109,17 @@
85 var task_ids = {};
86 // creation of the chart
87 var generate_task_info = function(task, plevel) {
88+ if (_.isNumber(task[self.fields_view.arch.attrs.progress])) {
89+ var percent = task[self.fields_view.arch.attrs.progress] || 0;
90+ } else {
91+ var percent = 100;
92+ }
93 var level = plevel || 0;
94+
95+ var assigned_to_input = task[self.fields_view.arch.attrs.assigned_to] || "0,None";
96+ //alert(assigned_to);
97+ var assigned_to = String(assigned_to_input);
98+ assigned_to = assigned_to.split(",")[1];
99 if (task.__is_group) {
100 var task_infos = _.compact(_.map(task.tasks, function(sub_task) {
101 return generate_task_info(sub_task, level + 1);
102@@ -131,7 +141,7 @@
103 });
104 return group;
105 } else {
106- var group = new GanttTaskInfo(_.uniqueId("gantt_project_task_"), group_name, task_start, duration, 100);
107+ var group = new GanttTaskInfo(_.uniqueId("gantt_project_task_"), group_name, task_start, duration || 1, percent, assigned_to);
108 _.each(task_infos, function(el) {
109 group.addChildTask(el.task_info);
110 });
111@@ -156,7 +166,7 @@
112 }
113 var duration = (task_stop.getTime() - task_start.getTime()) / (1000 * 60 * 60);
114 var id = _.uniqueId("gantt_task_");
115- var task_info = new GanttTaskInfo(id, task_name, task_start, ((duration / 24) * 8), 100);
116+ var task_info = new GanttTaskInfo(id, task_name, task_start, ((duration / 24) * 8) || 1, percent, assigned_to);
117 task_info.internal_task = task;
118 task_ids[id] = task_info;
119 return {task_info: task_info, task_start: task_start, task_stop: task_stop};

Subscribers

People subscribed via source and target branches