You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@ofbiz.apache.org by ha...@apache.org on 2008/10/09 09:17:09 UTC
svn commit: r703081 - in
/ofbiz/trunk/specialpurpose/projectmgr/webapp/projectmgr:
WEB-INF/actions/GanttChart.groovy project/gantChart.ftl
Author: hansbak
Date: Thu Oct 9 00:17:09 2008
New Revision: 703081
URL: http://svn.apache.org/viewvc?rev=703081&view=rev
Log:
some more improvements to the ganttchart....nor perfect yet however improoving
Modified:
ofbiz/trunk/specialpurpose/projectmgr/webapp/projectmgr/WEB-INF/actions/GanttChart.groovy
ofbiz/trunk/specialpurpose/projectmgr/webapp/projectmgr/project/gantChart.ftl
Modified: ofbiz/trunk/specialpurpose/projectmgr/webapp/projectmgr/WEB-INF/actions/GanttChart.groovy
URL: http://svn.apache.org/viewvc/ofbiz/trunk/specialpurpose/projectmgr/webapp/projectmgr/WEB-INF/actions/GanttChart.groovy?rev=703081&r1=703080&r2=703081&view=diff
==============================================================================
--- ofbiz/trunk/specialpurpose/projectmgr/webapp/projectmgr/WEB-INF/actions/GanttChart.groovy (original)
+++ ofbiz/trunk/specialpurpose/projectmgr/webapp/projectmgr/WEB-INF/actions/GanttChart.groovy Thu Oct 9 00:17:09 2008
@@ -22,24 +22,71 @@
import org.ofbiz.entity.*;
import org.ofbiz.base.util.*;
import org.ofbiz.entity.util.*;
-import org.ofbiz.base.util.*;
projectId = parameters.projectId;
userLogin = parameters.userLogin;
+//project info
+result = dispatcher.runSync("getProject", [projectId : projectId, userLogin : userLogin]);
+project = result.projectInfo;
+if (project && project.startDate)
+ context.chartStart = project.startDate;
+else
+ context.chartStart = UtilDateTime.nowTimestamp(); // default todays date
+if (project && project.completionDate)
+ context.chartEnd = project.completionDate;
+else
+ context.chartEnd = UtilDateTime.addDaysToTimestamp(UtilDateTime.nowTimestamp(), 14); // default 14 days long
+
+if (project == null) return;
+
ganttList = new LinkedList();
result = dispatcher.runSync("getProjectPhaseList", [userLogin : userLogin , projectId : projectId]);
-phases = result.get("phaseList");
+phases = result.phaseList;
if (phases){
phases.each { phase ->
+ newPhase = phase;
+ if (!newPhase.estimatedStartDate && newPhase.actualStartDate) {
+ newPhase.estimatedStartDate = newPhase.actualStartDate;
+ }
+ if (!newPhase.estimatedStartDate) {
+ newPhase.estimatedStartDate = context.chartStart;
+ }
+ if (!newPhase.estimatedCompletionDate && newPhase.actualCompletionDate) {
+ newPhase.estimatedCompletionDate = newPhase.actualCompletionDateDate;
+ }
+ if (!newPhase.estimatedCompletionDate) {
+ newPhase.estimatedCompletionDate = UtilDateTime.addDaysToTimestamp(newPhase.estimatedStartDate, 3);
+ }
+ newPhase.workEffortTypeId = "PHASE";
+ Debug.log("===start: " + newPhase.estimatedStartDate + "===end: " + newPhase.estimatedCompletionDate);
+ ganttList.add(newPhase);
+ Debug.log("=======" + phase.phaseName + "======" + phase.workEffortTypeId + " phaseId" + phase.phaseId);
tasks = delegator.findByAnd("WorkEffort", ["workEffortParentId" : phase.phaseId]);
if (tasks){
tasks.each { task ->
- ganttList.add(task);
+ Debug.log("===name====" + task.workEffortName + "===type===" + task.workEffortTypeId + "===id===" + task.workEffortId);
+ resultTaskInfo = dispatcher.runSync("getProjectTask", [userLogin : userLogin , taskId : task.workEffortId]);
+ Debug.log("===restaskinfo " + resultTaskInfo);
+ taskInfo = resultTaskInfo.taskInfo;
+ Debug.log("===taskinfo " + taskInfo);
+ if (!taskInfo.estimatedStartDate && taskInfo.actualStartDate) {
+ taskInfo.estimatedStartDate = taskInfo.actualStartDate;
+ }
+ if (!taskInfo.estimatedStartDate) {
+ taskInfo.estimatedStartDate = newPhase.estimatedStartDate;
+ }
+ if (!taskInfo.estimatedCompletionDate && taskInfo.actualCompletionDate) {
+ taskInfo.estimatedCompletionDate = taskInfo.actualCompletionDate;
+ }
+ if (!taskInfo.estimatedCompletionDate) {
+ taskInfo.estimatedCompletionDate = UtilDateTime.addDaysToTimestamp(newPhase.estimatedStartDate, 3);
+ }
+ taskInfo.workEffortTypeId = "TASK";
+ ganttList.add(taskInfo);
}
}
}
}
-context.phases = phases;
-context.tasks = ganttList;
+context.phaseTaskList = ganttList;
Modified: ofbiz/trunk/specialpurpose/projectmgr/webapp/projectmgr/project/gantChart.ftl
URL: http://svn.apache.org/viewvc/ofbiz/trunk/specialpurpose/projectmgr/webapp/projectmgr/project/gantChart.ftl?rev=703081&r1=703080&r2=703081&view=diff
==============================================================================
--- ofbiz/trunk/specialpurpose/projectmgr/webapp/projectmgr/project/gantChart.ftl (original)
+++ ofbiz/trunk/specialpurpose/projectmgr/webapp/projectmgr/project/gantChart.ftl Thu Oct 9 00:17:09 2008
@@ -22,8 +22,9 @@
<#assign phasesummary2 = 0/>
<#assign summary2 = 0/>
<#assign day = 24 * 60 * 60 * 1000/>
-<#if phases?has_content>
-<#list phases as phases>
+<#if phaseTaskList?has_content>
+<#list phaseTaskList as phases>
+<#if phases.workEffortTypeId == "PHASE">
<#assign phaseId = phases.phaseId/>
<#assign phasesStart = Static["org.ofbiz.base.util.UtilDateTime"].toCalendar(phases.estimatedStartDate)/>
<#assign phasesEnd = Static["org.ofbiz.base.util.UtilDateTime"].toCalendar(phases.estimatedCompletionDate)/>
@@ -57,13 +58,14 @@
<img src="/images/busy.gif" height="15px;" width="${phasesummary2}px;">
</td>
</tr>
- </#if>
- <#if tasks?has_content>
- <#list tasks as tasks>
+ </#if>
+</#if>
+<#if phases.workEffortTypeId == "TASK">
+ <#assign tasks = phases/>
<#assign phasesId = tasks.workEffortParentId/>
- <#assign taskId = tasks.workEffortId/>
- <#assign taskStart = Static["org.ofbiz.base.util.UtilDateTime"].toCalendar(tasks.estimatedStartDate)/>
- <#assign taskEnd = Static["org.ofbiz.base.util.UtilDateTime"].toCalendar(tasks.estimatedCompletionDate)/>
+ <#assign taskId = tasks.taskId/>
+ <#assign taskStart = Static["org.ofbiz.base.util.UtilDateTime"].toCalendar(tasks.estimatedStartDate?if_exists)/>
+ <#assign taskEnd = Static["org.ofbiz.base.util.UtilDateTime"].toCalendar(tasks.estimatedCompletionDate?if_exists)/>
<#assign t3 = taskStart.getTime().getTime()/>
<#assign t4 = taskEnd.getTime().getTime()/>
<#assign startMonth = tasks.estimatedStartDate?substring(5,7)?number/>
@@ -79,7 +81,7 @@
<#assign spacer2 = 732 - (spacer + summary)/>
<tr>
<td style="width: 150px; vertical-align: bottom;" >
- <a href="/projectmgr/control/taskView?workEffortId=${tasks.workEffortId}">${tasks.workEffortName?if_exists}</a>
+ <a href="/projectmgr/control/taskView?workEffortId=${tasks.taskId}">${tasks.taskName?if_exists}</a>
</td>
<td colspan="12">
<img src="/images/spacer.gif" height="15px;" width="${spacer}px;"><img src="/images/bluebar.gif" height="15px;" width="${summary}px;"><img src="/images/spacer.gif" height="15px;" width="${spacer2}px;">
@@ -96,8 +98,7 @@
</tr>
</#if>
</#if>
- </#list>
- </#if>
+</#if>
</#list>
</#if>
</table>
Re: svn commit: r703081 - in /ofbiz/trunk/specialpurpose/projectmgr/webapp/projectmgr:
WEB-INF/actions/GanttChart.groovy project/gantChart.ftl
Posted by Adrian Crum <ad...@hlmksw.com>.
Hans,
It is better to use the UtilDateTime.adjustTimestamp(...) method instead
of UtilDateTime.addDaysToTimestamp(...). The
UtilDateTime.addDaysToTimestamp method will give unpredictable results.
-Adrian
hansbak@apache.org wrote:
> Author: hansbak
> Date: Thu Oct 9 00:17:09 2008
> New Revision: 703081
>
> URL: http://svn.apache.org/viewvc?rev=703081&view=rev
> Log:
> some more improvements to the ganttchart....nor perfect yet however improoving
>
> Modified:
> ofbiz/trunk/specialpurpose/projectmgr/webapp/projectmgr/WEB-INF/actions/GanttChart.groovy
> ofbiz/trunk/specialpurpose/projectmgr/webapp/projectmgr/project/gantChart.ftl
>
> Modified: ofbiz/trunk/specialpurpose/projectmgr/webapp/projectmgr/WEB-INF/actions/GanttChart.groovy
> URL: http://svn.apache.org/viewvc/ofbiz/trunk/specialpurpose/projectmgr/webapp/projectmgr/WEB-INF/actions/GanttChart.groovy?rev=703081&r1=703080&r2=703081&view=diff
> ==============================================================================
> --- ofbiz/trunk/specialpurpose/projectmgr/webapp/projectmgr/WEB-INF/actions/GanttChart.groovy (original)
> +++ ofbiz/trunk/specialpurpose/projectmgr/webapp/projectmgr/WEB-INF/actions/GanttChart.groovy Thu Oct 9 00:17:09 2008
> @@ -22,24 +22,71 @@
> import org.ofbiz.entity.*;
> import org.ofbiz.base.util.*;
> import org.ofbiz.entity.util.*;
> -import org.ofbiz.base.util.*;
>
> projectId = parameters.projectId;
> userLogin = parameters.userLogin;
>
> +//project info
> +result = dispatcher.runSync("getProject", [projectId : projectId, userLogin : userLogin]);
> +project = result.projectInfo;
> +if (project && project.startDate)
> + context.chartStart = project.startDate;
> +else
> + context.chartStart = UtilDateTime.nowTimestamp(); // default todays date
> +if (project && project.completionDate)
> + context.chartEnd = project.completionDate;
> +else
> + context.chartEnd = UtilDateTime.addDaysToTimestamp(UtilDateTime.nowTimestamp(), 14); // default 14 days long
> +
> +if (project == null) return;
> +
> ganttList = new LinkedList();
> result = dispatcher.runSync("getProjectPhaseList", [userLogin : userLogin , projectId : projectId]);
> -phases = result.get("phaseList");
> +phases = result.phaseList;
> if (phases){
> phases.each { phase ->
> + newPhase = phase;
> + if (!newPhase.estimatedStartDate && newPhase.actualStartDate) {
> + newPhase.estimatedStartDate = newPhase.actualStartDate;
> + }
> + if (!newPhase.estimatedStartDate) {
> + newPhase.estimatedStartDate = context.chartStart;
> + }
> + if (!newPhase.estimatedCompletionDate && newPhase.actualCompletionDate) {
> + newPhase.estimatedCompletionDate = newPhase.actualCompletionDateDate;
> + }
> + if (!newPhase.estimatedCompletionDate) {
> + newPhase.estimatedCompletionDate = UtilDateTime.addDaysToTimestamp(newPhase.estimatedStartDate, 3);
> + }
> + newPhase.workEffortTypeId = "PHASE";
> + Debug.log("===start: " + newPhase.estimatedStartDate + "===end: " + newPhase.estimatedCompletionDate);
> + ganttList.add(newPhase);
> + Debug.log("=======" + phase.phaseName + "======" + phase.workEffortTypeId + " phaseId" + phase.phaseId);
> tasks = delegator.findByAnd("WorkEffort", ["workEffortParentId" : phase.phaseId]);
> if (tasks){
> tasks.each { task ->
> - ganttList.add(task);
> + Debug.log("===name====" + task.workEffortName + "===type===" + task.workEffortTypeId + "===id===" + task.workEffortId);
> + resultTaskInfo = dispatcher.runSync("getProjectTask", [userLogin : userLogin , taskId : task.workEffortId]);
> + Debug.log("===restaskinfo " + resultTaskInfo);
> + taskInfo = resultTaskInfo.taskInfo;
> + Debug.log("===taskinfo " + taskInfo);
> + if (!taskInfo.estimatedStartDate && taskInfo.actualStartDate) {
> + taskInfo.estimatedStartDate = taskInfo.actualStartDate;
> + }
> + if (!taskInfo.estimatedStartDate) {
> + taskInfo.estimatedStartDate = newPhase.estimatedStartDate;
> + }
> + if (!taskInfo.estimatedCompletionDate && taskInfo.actualCompletionDate) {
> + taskInfo.estimatedCompletionDate = taskInfo.actualCompletionDate;
> + }
> + if (!taskInfo.estimatedCompletionDate) {
> + taskInfo.estimatedCompletionDate = UtilDateTime.addDaysToTimestamp(newPhase.estimatedStartDate, 3);
> + }
> + taskInfo.workEffortTypeId = "TASK";
> + ganttList.add(taskInfo);
> }
> }
> }
> }
> -context.phases = phases;
> -context.tasks = ganttList;
> +context.phaseTaskList = ganttList;
>
>
> Modified: ofbiz/trunk/specialpurpose/projectmgr/webapp/projectmgr/project/gantChart.ftl
> URL: http://svn.apache.org/viewvc/ofbiz/trunk/specialpurpose/projectmgr/webapp/projectmgr/project/gantChart.ftl?rev=703081&r1=703080&r2=703081&view=diff
> ==============================================================================
> --- ofbiz/trunk/specialpurpose/projectmgr/webapp/projectmgr/project/gantChart.ftl (original)
> +++ ofbiz/trunk/specialpurpose/projectmgr/webapp/projectmgr/project/gantChart.ftl Thu Oct 9 00:17:09 2008
> @@ -22,8 +22,9 @@
> <#assign phasesummary2 = 0/>
> <#assign summary2 = 0/>
> <#assign day = 24 * 60 * 60 * 1000/>
> -<#if phases?has_content>
> -<#list phases as phases>
> +<#if phaseTaskList?has_content>
> +<#list phaseTaskList as phases>
> +<#if phases.workEffortTypeId == "PHASE">
> <#assign phaseId = phases.phaseId/>
> <#assign phasesStart = Static["org.ofbiz.base.util.UtilDateTime"].toCalendar(phases.estimatedStartDate)/>
> <#assign phasesEnd = Static["org.ofbiz.base.util.UtilDateTime"].toCalendar(phases.estimatedCompletionDate)/>
> @@ -57,13 +58,14 @@
> <img src="/images/busy.gif" height="15px;" width="${phasesummary2}px;">
> </td>
> </tr>
> - </#if>
> - <#if tasks?has_content>
> - <#list tasks as tasks>
> + </#if>
> +</#if>
> +<#if phases.workEffortTypeId == "TASK">
> + <#assign tasks = phases/>
> <#assign phasesId = tasks.workEffortParentId/>
> - <#assign taskId = tasks.workEffortId/>
> - <#assign taskStart = Static["org.ofbiz.base.util.UtilDateTime"].toCalendar(tasks.estimatedStartDate)/>
> - <#assign taskEnd = Static["org.ofbiz.base.util.UtilDateTime"].toCalendar(tasks.estimatedCompletionDate)/>
> + <#assign taskId = tasks.taskId/>
> + <#assign taskStart = Static["org.ofbiz.base.util.UtilDateTime"].toCalendar(tasks.estimatedStartDate?if_exists)/>
> + <#assign taskEnd = Static["org.ofbiz.base.util.UtilDateTime"].toCalendar(tasks.estimatedCompletionDate?if_exists)/>
> <#assign t3 = taskStart.getTime().getTime()/>
> <#assign t4 = taskEnd.getTime().getTime()/>
> <#assign startMonth = tasks.estimatedStartDate?substring(5,7)?number/>
> @@ -79,7 +81,7 @@
> <#assign spacer2 = 732 - (spacer + summary)/>
> <tr>
> <td style="width: 150px; vertical-align: bottom;" >
> - <a href="/projectmgr/control/taskView?workEffortId=${tasks.workEffortId}">${tasks.workEffortName?if_exists}</a>
> + <a href="/projectmgr/control/taskView?workEffortId=${tasks.taskId}">${tasks.taskName?if_exists}</a>
> </td>
> <td colspan="12">
> <img src="/images/spacer.gif" height="15px;" width="${spacer}px;"><img src="/images/bluebar.gif" height="15px;" width="${summary}px;"><img src="/images/spacer.gif" height="15px;" width="${spacer2}px;">
> @@ -96,8 +98,7 @@
> </tr>
> </#if>
> </#if>
> - </#list>
> - </#if>
> +</#if>
> </#list>
> </#if>
> </table>
>
>
>