Merge lp:~openerp-dev/openerp-web/6.1-opw-576040-cpa into lp:openerp-web/6.1

Proposed by Chirag Patel (OpenERP)
Status: Needs review
Proposed branch: lp:~openerp-dev/openerp-web/6.1-opw-576040-cpa
Merge into: lp:openerp-web/6.1
Diff against target: 86 lines (+13/-9)
2 files modified
addons/web_gantt/static/lib/dhtmlxGantt/sources/dhtmlxgantt.js (+2/-2)
addons/web_gantt/static/src/js/gantt.js (+11/-7)
To merge this branch: bzr merge lp:~openerp-dev/openerp-web/6.1-opw-576040-cpa
Reviewer Review Type Date Requested Status
Jiten (OpenERP) (community) Approve
OpenERP Core Team Pending
Review via email: mp+112550@code.launchpad.net

Description of the change

Hello,

Gantt chart not show right duration when date_delay provide.

Demo: Sales > Meetings > Meetings
1) Switch to Gantt view.

Observed: Event bar show wrong duration.
Observed: Tooltip not show when mouse hover on event bar and event duration < 4 hours

For tooltip

Add event description (displayed right after the event bar).
Tooltip show when mouse hover on event description.

Thanks

To post a comment you must log in.
2379. By Chirag Patel (OpenERP)

[FIX] Fixed format_value change the duration decimal separator.

Revision history for this message
Chirag Patel (OpenERP) (cpa-openerp) wrote :

In revision : 2379

format_value change the value from "." to "," when decimal separator "," and duration not set for any event.
Here no need to change format of duration.

2380. By Chirag Patel (OpenERP)

[FIX] Fixed Gantt chart support day_length attr.

Revision history for this message
Chirag Patel (OpenERP) (cpa-openerp) wrote :

In revision : 2380

Gantt chart default set "8" as working hours(day_length)
and not support day_length, set by the user in xml.

Revision history for this message
Jiten (OpenERP) (jiten-openerp) :
review: Approve

Unmerged revisions

2380. By Chirag Patel (OpenERP)

[FIX] Fixed Gantt chart support day_length attr.

2379. By Chirag Patel (OpenERP)

[FIX] Fixed format_value change the duration decimal separator.

2378. By Chirag Patel (OpenERP)

[FIX] Fixed gantt chart not show right duration when date_delay provide.

Preview Diff

[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
=== modified file 'addons/web_gantt/static/lib/dhtmlxGantt/sources/dhtmlxgantt.js'
--- addons/web_gantt/static/lib/dhtmlxGantt/sources/dhtmlxgantt.js 2012-07-02 13:30:16 +0000
+++ addons/web_gantt/static/lib/dhtmlxGantt/sources/dhtmlxgantt.js 2012-07-16 09:04:21 +0000
@@ -348,7 +348,7 @@
348 * @type: public348 * @type: public
349 * @topic: 0349 * @topic: 0
350 */350 */
351function GanttChart()351function GanttChart(day_length)
352{352{
353 this.Error = new GanttError();353 this.Error = new GanttError();
354 this.dhtmlXMLSenderObject = new dhtmlXMLSenderObject(this);354 this.dhtmlXMLSenderObject = new dhtmlXMLSenderObject(this);
@@ -356,7 +356,7 @@
356 //settings356 //settings
357 this.heightTaskItem = 12;357 this.heightTaskItem = 12;
358 this.dayInPixels = 24;358 this.dayInPixels = 24;
359 this.hoursInDay = 8;359 this.hoursInDay = day_length;
360 this._showTreePanel = true;360 this._showTreePanel = true;
361 this._showTooltip = true;361 this._showTooltip = true;
362 this.isShowDescTask = false;362 this.isShowDescTask = false;
363363
=== modified file 'addons/web_gantt/static/src/js/gantt.js'
--- addons/web_gantt/static/src/js/gantt.js 2012-01-27 16:06:45 +0000
+++ addons/web_gantt/static/src/js/gantt.js 2012-07-16 09:04:21 +0000
@@ -60,6 +60,7 @@
60 on_data_loaded: function(tasks, group_bys) {60 on_data_loaded: function(tasks, group_bys) {
61 var self = this;61 var self = this;
62 var ids = _.pluck(tasks, "id");62 var ids = _.pluck(tasks, "id");
63 day_length = self.fields_view.arch.attrs.day_length || 8;
63 return this.dataset.name_get(ids).pipe(function(names) {64 return this.dataset.name_get(ids).pipe(function(names) {
64 var ntasks = _.map(tasks, function(task) {65 var ntasks = _.map(tasks, function(task) {
65 return _.extend({__name: _.detect(names, function(name) { return name[0] == task.id; })[1]}, task); 66 return _.extend({__name: _.detect(names, function(name) { return name[0] == task.id; })[1]}, task);
@@ -147,26 +148,28 @@
147 task_stop = openerp.web.auto_str_to_date(task[self.fields_view.arch.attrs.date_stop]);148 task_stop = openerp.web.auto_str_to_date(task[self.fields_view.arch.attrs.date_stop]);
148 if (!task_stop)149 if (!task_stop)
149 return;150 return;
151 var duration = (task_stop.getTime() - task_start.getTime()) / (1000 * 60 * 60);
152 duration = ((duration / 24) * day_length);
150 } else { // we assume date_duration is defined153 } else { // we assume date_duration is defined
151 var tmp = openerp.web.format_value(task[self.fields_view.arch.attrs.date_delay],154 var tmp = task[self.fields_view.arch.attrs.date_delay];
152 self.fields[self.fields_view.arch.attrs.date_delay]);
153 if (!tmp)155 if (!tmp)
154 return;156 return;
155 task_stop = task_start.clone().addMilliseconds(tmp * 60 * 60 * 1000);157 task_stop = task_start.clone().addMilliseconds(tmp * 60 * 60 * 1000);
158 var duration = tmp;
156 }159 }
157 var duration = (task_stop.getTime() - task_start.getTime()) / (1000 * 60 * 60);
158 var id = _.uniqueId("gantt_task_");160 var id = _.uniqueId("gantt_task_");
159 var task_info = new GanttTaskInfo(id, task_name, task_start, ((duration / 24) * 8), 100);161 var task_info = new GanttTaskInfo(id, task_name, task_start, duration, 100);
160 task_info.internal_task = task;162 task_info.internal_task = task;
161 task_ids[id] = task_info;163 task_ids[id] = task_info;
162 return {task_info: task_info, task_start: task_start, task_stop: task_stop};164 return {task_info: task_info, task_start: task_start, task_stop: task_stop};
163 }165 }
164 }166 }
165 var gantt = new GanttChart();167 var gantt = new GanttChart(day_length);
166 _.each(_.compact(_.map(groups, function(e) {return generate_task_info(e, 0);})), function(project) {168 _.each(_.compact(_.map(groups, function(e) {return generate_task_info(e, 0);})), function(project) {
167 gantt.addProject(project);169 gantt.addProject(project);
168 });170 });
169 gantt.setEditable(true);171 gantt.setEditable(true);
172 gantt.showDescTask(true,'s-f');
170 gantt.setImagePath("/web_gantt/static/lib/dhtmlxGantt/codebase/imgs/");173 gantt.setImagePath("/web_gantt/static/lib/dhtmlxGantt/codebase/imgs/");
171 gantt.attachEvent("onTaskEndDrag", function(task) {174 gantt.attachEvent("onTaskEndDrag", function(task) {
172 self.on_task_changed(task);175 self.on_task_changed(task);
@@ -194,15 +197,16 @@
194 var self = this;197 var self = this;
195 var itask = task_obj.TaskInfo.internal_task;198 var itask = task_obj.TaskInfo.internal_task;
196 var start = task_obj.getEST();199 var start = task_obj.getEST();
197 var duration = (task_obj.getDuration() / 8) * 24;
198 var end = start.clone().addMilliseconds(duration * 60 * 60 * 1000);
199 var data = {};200 var data = {};
200 data[self.fields_view.arch.attrs.date_start] =201 data[self.fields_view.arch.attrs.date_start] =
201 openerp.web.auto_date_to_str(start, self.fields[self.fields_view.arch.attrs.date_start].type);202 openerp.web.auto_date_to_str(start, self.fields[self.fields_view.arch.attrs.date_start].type);
202 if (self.fields_view.arch.attrs.date_stop) {203 if (self.fields_view.arch.attrs.date_stop) {
204 var duration = (task_obj.getDuration() / day_length) * 24;
205 var end = start.clone().addMilliseconds(duration * 60 * 60 * 1000);
203 data[self.fields_view.arch.attrs.date_stop] = 206 data[self.fields_view.arch.attrs.date_stop] =
204 openerp.web.auto_date_to_str(end, self.fields[self.fields_view.arch.attrs.date_stop].type);207 openerp.web.auto_date_to_str(end, self.fields[self.fields_view.arch.attrs.date_stop].type);
205 } else { // we assume date_duration is defined208 } else { // we assume date_duration is defined
209 var duration = task_obj.getDuration();
206 data[self.fields_view.arch.attrs.date_delay] = duration;210 data[self.fields_view.arch.attrs.date_delay] = duration;
207 }211 }
208 this.dataset.write(itask.id, data).then(function() {212 this.dataset.write(itask.id, data).then(function() {