Author: hansbak
Date: Sun Dec 16 01:43:35 2007
New Revision: 604589
URL: http://svn.apache.org/viewvc?rev=604589&view=rev
Log:
added resource demo data, renamed some screens, improved the project resource
assignment
Modified:
ofbiz/trunk/specialpurpose/projectmgr/config/ProjectMgrUiLabels.properties
ofbiz/trunk/specialpurpose/projectmgr/data/ProjectMgrDemoData.xml
ofbiz/trunk/specialpurpose/projectmgr/script/org/ofbiz/project/ProjectServices.xml
ofbiz/trunk/specialpurpose/projectmgr/webapp/projectmgr/WEB-INF/controller.xml
ofbiz/trunk/specialpurpose/projectmgr/widget/ProjectScreens.xml
ofbiz/trunk/specialpurpose/projectmgr/widget/forms/ProjectForms.xml
Modified:
ofbiz/trunk/specialpurpose/projectmgr/config/ProjectMgrUiLabels.properties
URL:
http://svn.apache.org/viewvc/ofbiz/trunk/specialpurpose/projectmgr/config/ProjectMgrUiLabels.properties?rev=604589&r1=604588&r2=604589&view=diff
==============================================================================
--- ofbiz/trunk/specialpurpose/projectmgr/config/ProjectMgrUiLabels.properties
(original)
+++ ofbiz/trunk/specialpurpose/projectmgr/config/ProjectMgrUiLabels.properties
Sun Dec 16 01:43:35 2007
@@ -24,7 +24,7 @@
# Override Page and Label title
PageTitleAddDependencyAfter=Add Dependency After the current Task
PageTitleAddDependencyBefore=Add Dependency before the current Task
-PageTitleAddPartyAssign=Add Party Assign
+PageTitleAddPartyAssign=Add Resource Assignment
PageTitleAddProject=Add Project
PageTitleAddPhase=Add Phase
PageTitleAddProjectNotes=Add Project Notes
@@ -49,7 +49,7 @@
PageTitleFindSubProject=Find Sub Project
PageTitleFindSubTask=Find Sub Task
PageTitleFindTask=Find Task
-PageTitleListPartyAssigns=Party Assigns
+PageTitleListPartyAssigns=Current Resource Assignments
PageTitleListProjectNotes=List Project Notes
PageTitleListResources=Resources
PageTitleListTaskNotes=List Task Notes
Modified: ofbiz/trunk/specialpurpose/projectmgr/data/ProjectMgrDemoData.xml
URL:
http://svn.apache.org/viewvc/ofbiz/trunk/specialpurpose/projectmgr/data/ProjectMgrDemoData.xml?rev=604589&r1=604588&r2=604589&view=diff
==============================================================================
--- ofbiz/trunk/specialpurpose/projectmgr/data/ProjectMgrDemoData.xml (original)
+++ ofbiz/trunk/specialpurpose/projectmgr/data/ProjectMgrDemoData.xml Sun Dec
16 01:43:35 2007
@@ -1,5 +1,29 @@
<?xml version="1.0" encoding="UTF-8"?>
<entity-engine-xml>
+
+ <!-- Resources -->
+ <!-- Demo Employee1 -->
+ <Party partyId="DemoEmployee1" partyTypeId="PERSON" statusId="PARTY_ENABLED" createdDate="2007-12-16 10:01:45.941"
createdByUserLogin="admin" lastModifiedDate="2007-12-16 10:01:45.941" lastModifiedByUserLogin="admin" lastUpdatedStamp="2007-12-16 10:01:46.118"
lastUpdatedTxStamp="2007-12-16 10:01:45.919" createdStamp="2007-12-16 10:01:46.118" createdTxStamp="2007-12-16 10:01:45.919"/>
+ <Person partyId="DemoEmployee1" firstName="Peter" lastName="Manager" lastUpdatedStamp="2007-12-16
10:01:46.483" lastUpdatedTxStamp="2007-12-16 10:01:45.919" createdStamp="2007-12-16 10:01:46.483" createdTxStamp="2007-12-16
10:01:45.919"/>
+ <UserLogin userLoginId="DemoEmployee1" currentPassword="47ca69ebb4bdc9ae0adec130880165d2cc05db1a"
lastUpdatedStamp="2007-12-16 10:01:47.444" lastUpdatedTxStamp="2007-12-16 10:01:45.919" createdStamp="2007-12-16
10:01:47.444" createdTxStamp="2007-12-16 10:01:45.919" partyId="10010"/>
+ <PartyRole partyId="DemoEmployee1" roleTypeId="EMPLOYEE"/>
+ <PartyContactMech partyId="DemoEmployee1" contactMechId="9020" fromDate="2007-12-16 10:01:48.933"
roleTypeId="EMPLOYEE" lastUpdatedStamp="2007-12-16 10:01:48.933" lastUpdatedTxStamp="2007-12-16 10:01:45.919"
createdStamp="2007-12-16 10:01:48.933" createdTxStamp="2007-12-16 10:01:45.919"/>
+ <PartyContactMech partyId="DemoEmployee1" contactMechId="9001" fromDate="2007-12-16 10:01:48.933"
roleTypeId="EMPLOYEE" lastUpdatedStamp="2007-12-16 10:01:48.933" lastUpdatedTxStamp="2007-12-16 10:01:45.919"
createdStamp="2007-12-16 10:01:48.933" createdTxStamp="2007-12-16 10:01:45.919"/>
+ <PartyContactMech partyId="DemoEmployee1" contactMechId="9023" fromDate="2007-12-16 10:01:48.933"
roleTypeId="EMPLOYEE" lastUpdatedStamp="2007-12-16 10:01:48.933" lastUpdatedTxStamp="2007-12-16 10:01:45.919"
createdStamp="2007-12-16 10:01:48.933" createdTxStamp="2007-12-16 10:01:45.919"/>
+ <PartyRole partyId="DemoEmployee1" roleTypeId="PROVIDER_MANAGER"/>
+ <!-- Demo Employee2 -->
+ <Party partyId="DemoEmployee2" partyTypeId="PERSON" statusId="PARTY_ENABLED" createdDate="2007-12-16 10:01:45.941"
createdByUserLogin="admin" lastModifiedDate="2007-12-16 10:01:45.941" lastModifiedByUserLogin="admin" lastUpdatedStamp="2007-12-16 10:01:46.118"
lastUpdatedTxStamp="2007-12-16 10:01:45.919" createdStamp="2007-12-16 10:01:46.118" createdTxStamp="2007-12-16 10:01:45.919"/>
+ <Person partyId="DemoEmployee2" firstName="Jo" lastName="Analist" lastUpdatedStamp="2007-12-16
10:01:46.483" lastUpdatedTxStamp="2007-12-16 10:01:45.919" createdStamp="2007-12-16 10:01:46.483" createdTxStamp="2007-12-16
10:01:45.919"/>
+ <PartyRole partyId="DemoEmployee2" roleTypeId="EMPLOYEE"/>
+ <UserLogin userLoginId="DemoEmployee2" currentPassword="47ca69ebb4bdc9ae0adec130880165d2cc05db1a"
lastUpdatedStamp="2007-12-16 10:01:47.444" lastUpdatedTxStamp="2007-12-16 10:01:45.919" createdStamp="2007-12-16
10:01:47.444" createdTxStamp="2007-12-16 10:01:45.919" partyId="10010"/>
+ <PartyContactMech partyId="DemoEmployee2" contactMechId="9020" fromDate="2007-12-16 10:01:48.933"
roleTypeId="EMPLOYEE" lastUpdatedStamp="2007-12-16 10:01:48.933" lastUpdatedTxStamp="2007-12-16 10:01:45.919"
createdStamp="2007-12-16 10:01:48.933" createdTxStamp="2007-12-16 10:01:45.919"/>
+ <PartyContactMech partyId="DemoEmployee2" contactMechId="9001" fromDate="2007-12-16 10:01:48.933"
roleTypeId="EMPLOYEE" lastUpdatedStamp="2007-12-16 10:01:48.933" lastUpdatedTxStamp="2007-12-16 10:01:45.919"
createdStamp="2007-12-16 10:01:48.933" createdTxStamp="2007-12-16 10:01:45.919"/>
+ <PartyContactMech partyId="DemoEmployee2" contactMechId="9023" fromDate="2007-12-16 10:01:48.933"
roleTypeId="EMPLOYEE" lastUpdatedStamp="2007-12-16 10:01:48.933" lastUpdatedTxStamp="2007-12-16 10:01:45.919"
createdStamp="2007-12-16 10:01:48.933" createdTxStamp="2007-12-16 10:01:45.919"/>
+ <PartyRole partyId="DemoEmployee2" roleTypeId="PROVIDER_ANALYST"/>
+ <!-- Demo customer -->
+ <PartyRole partyId="DemoCustomer" roleTypeId="CLIENT_MANAGER"/>
+
+ <!-- Demo project, phases and tasks -->
<WorkEffort workEffortId="9000" workEffortTypeId="PROJECT" currentStatusId="CAL_ACCEPTED" lastStatusUpdate="2007-12-14 15:07:52.901" scopeEnumId="WES_PUBLIC" workEffortName="Demo Project"
estimatedStartDate="2007-12-18 00:00:00.0" estimatedCompletionDate="2007-12-05 00:00:00.0" revisionNumber="2" createdDate="2007-12-14 15:07:52.901" createdByUserLogin="admin"
lastModifiedDate="2007-12-15 07:47:57.609" lastModifiedByUserLogin="admin" lastUpdatedStamp="2007-12-15 07:47:57.615" lastUpdatedTxStamp="2007-12-15 07:47:57.175" createdStamp="2007-12-14 15:07:52.901"
createdTxStamp="2007-12-14 15:07:52.435"/>
<WorkEffort workEffortId="9001" workEffortTypeId="PHASE" currentStatusId="CAL_ACCEPTED" lastStatusUpdate="2007-12-14 16:45:14.226" workEffortParentId="9000"
workEffortName="phase1" revisionNumber="1" createdDate="2007-12-14 16:45:14.226" createdByUserLogin="admin" lastModifiedDate="2007-12-14 16:45:14.226"
lastModifiedByUserLogin="admin" lastUpdatedStamp="2007-12-14 16:45:14.226" lastUpdatedTxStamp="2007-12-14 16:45:13.956" createdStamp="2007-12-14 16:45:14.226" createdTxStamp="2007-12-14
16:45:13.956"/>
<WorkEffort workEffortId="9002" workEffortTypeId="TASK" currentStatusId="CAL_ACCEPTED" lastStatusUpdate="2007-12-14 16:45:21.831" workEffortParentId="9001" scopeEnumId="WES_PUBLIC"
workEffortName="task1" estimatedStartDate="2007-12-03 00:00:00.0" estimatedCompletionDate="2007-12-05 00:00:00.0" revisionNumber="2" createdDate="2007-12-14 16:45:21.831" createdByUserLogin="admin"
lastModifiedDate="2007-12-14 17:15:47.898" lastModifiedByUserLogin="admin" lastUpdatedStamp="2007-12-14 17:15:47.9" lastUpdatedTxStamp="2007-12-14 17:15:47.659" createdStamp="2007-12-14 16:45:21.833"
createdTxStamp="2007-12-14 16:45:21.827"/>
@@ -8,6 +32,7 @@
<WorkEffort workEffortId="9005" workEffortTypeId="TASK" currentStatusId="CAL_ACCEPTED" lastStatusUpdate="2007-12-14 16:45:50.84" workEffortParentId="9004" scopeEnumId="WES_PUBLIC"
workEffortName="task3" estimatedStartDate="2007-12-16 00:00:00.0" estimatedCompletionDate="2007-12-17 00:00:00.0" revisionNumber="2" createdDate="2007-12-14 16:45:50.84" createdByUserLogin="admin"
lastModifiedDate="2007-12-14 17:16:11.232" lastModifiedByUserLogin="admin" lastUpdatedStamp="2007-12-14 17:16:11.233" lastUpdatedTxStamp="2007-12-14 17:16:11.218" createdStamp="2007-12-14 16:45:50.841"
createdTxStamp="2007-12-14 16:45:50.559"/>
<WorkEffort workEffortId="9006" workEffortTypeId="TASK" currentStatusId="CAL_ACCEPTED" lastStatusUpdate="2007-12-14 16:45:58.857" workEffortParentId="9004" scopeEnumId="WES_PUBLIC"
workEffortName="task4" estimatedStartDate="2007-12-18 00:00:00.0" estimatedCompletionDate="2007-12-20 00:00:00.0" revisionNumber="2" createdDate="2007-12-14 16:45:58.857" createdByUserLogin="admin"
lastModifiedDate="2007-12-14 17:16:24.359" lastModifiedByUserLogin="admin" lastUpdatedStamp="2007-12-14 17:16:24.36" lastUpdatedTxStamp="2007-12-14 17:16:24.143" createdStamp="2007-12-14 16:45:58.858"
createdTxStamp="2007-12-14 16:45:58.846"/>
+ <!-- task dependencies -->
<WorkEffortAssoc workEffortIdFrom="9002" workEffortIdTo="9003" workEffortAssocTypeId="WORK_EFF_DEPENDENCY" sequenceNum="0"
fromDate="2007-12-15 07:48:47.856" lastUpdatedStamp="2007-12-15 07:48:47.857" lastUpdatedTxStamp="2007-12-15 07:48:47.636"
createdStamp="2007-12-15 07:48:47.857" createdTxStamp="2007-12-15 07:48:47.636"/>
<WorkEffortAssoc workEffortIdFrom="9003" workEffortIdTo="9005" workEffortAssocTypeId="WORK_EFF_DEPENDENCY" sequenceNum="0"
fromDate="2007-12-15 07:56:09.61" lastUpdatedStamp="2007-12-15 07:56:09.61" lastUpdatedTxStamp="2007-12-15 07:56:09.414"
createdStamp="2007-12-15 07:56:09.61" createdTxStamp="2007-12-15 07:56:09.414"/>
<WorkEffortAssoc workEffortIdFrom="9005" workEffortIdTo="9006" workEffortAssocTypeId="WORK_EFF_DEPENDENCY" sequenceNum="0"
fromDate="2007-12-15 07:56:18.588" lastUpdatedStamp="2007-12-15 07:56:18.588" lastUpdatedTxStamp="2007-12-15 07:56:18.556"
createdStamp="2007-12-15 07:56:18.588" createdTxStamp="2007-12-15 07:56:18.556"/>
Modified:
ofbiz/trunk/specialpurpose/projectmgr/script/org/ofbiz/project/ProjectServices.xml
URL:
http://svn.apache.org/viewvc/ofbiz/trunk/specialpurpose/projectmgr/script/org/ofbiz/project/ProjectServices.xml?rev=604589&r1=604588&r2=604589&view=diff
==============================================================================
---
ofbiz/trunk/specialpurpose/projectmgr/script/org/ofbiz/project/ProjectServices.xml
(original)
+++
ofbiz/trunk/specialpurpose/projectmgr/script/org/ofbiz/project/ProjectServices.xml
Sun Dec 16 01:43:35 2007
@@ -20,7 +20,40 @@
<simple-methods xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:noNamespaceSchemaLocation="http://ofbiz.apache.org/dtds/simple-methods.xsd">
-
+
+ <simple-method method-name="projectScheduler" short-description="Project Schulers
sets the planningdates according task requirements and available resources">
+ <!--
+ theory behind the program
+ - - - - - - - - - - - - -
+
+ Assumptions for tasks and resources
+ 1. a workday has 8 hours
+ 2. a workweek has 40 hours and 5 days
+ 3. The default order of the Tasks is by name
+ 4. The default order of the tasks can be modified by the
priority
+
+ The steps of the program are:
+ 1. read all tasks into a list with the following fields:
+ name, id, length in hours, sequence
+ for critical path processing:
+ * ES - Earliest Start time
+ * EF - Earliest Finish time
+ * LS - Latest Start time
+ * LF - Latest Finish time
+
+ EF = LF task is on the critical path
+
+
+ The program will allocate certain values for certain facts to indicate the importance
+ and add the values to the sequence field.
+
+ order by name: 10 for every position
+ priority 1000 for every number
+
+ The system will then sort the list by sequence and will insert the planned dates
+ according the startdate and sat and sundays.
+ -->
+ </simple-method>
<simple-method method-name="updateTimeEntryByWorkeffort" short-description="Update workeffort by workeffort and timesheetId ">
<if-empty field-name="parameters.workEffortId">
Modified:
ofbiz/trunk/specialpurpose/projectmgr/webapp/projectmgr/WEB-INF/controller.xml
URL:
http://svn.apache.org/viewvc/ofbiz/trunk/specialpurpose/projectmgr/webapp/projectmgr/WEB-INF/controller.xml?rev=604589&r1=604588&r2=604589&view=diff
==============================================================================
---
ofbiz/trunk/specialpurpose/projectmgr/webapp/projectmgr/WEB-INF/controller.xml
(original)
+++
ofbiz/trunk/specialpurpose/projectmgr/webapp/projectmgr/WEB-INF/controller.xml
Sun Dec 16 01:43:35 2007
@@ -431,7 +431,7 @@
<view-map name="EditTaskList" type="screen"
page="component://projectmgr/widget/TaskScreens.xml#EditTaskList"/>
<view-map name="EditTaskListAndAssoc" type="screen"
page="component://projectmgr/widget/TaskScreens.xml#EditTaskListAndAssoc"/>
<view-map name="ChildTaskWorkEfforts" type="screen"
page="component://projectmgr/widget/TaskScreens.xml#ChildTaskWorkEfforts"/>
- <view-map name="ListWorkEffortPartyAssigns" type="screen" page="component://projectmgr/widget/ProjectScreens.xml#ListWorkEffortPartyAssigns"/>
+ <view-map name="ListWorkEffortPartyAssigns" type="screen" page="component://projectmgr/widget/ProjectScreens.xml#EditProjectParties"/>
<view-map name="FindPhase" type="screen" page="component://projectmgr/widget/ProjectScreens.xml#FindPhase"/>
<view-map name="EditProjectSkills" type="screen"
page="component://projectmgr/widget/ProjectScreens.xml#EditProjectSkills"/>
<view-map name="EditTaskSkills" type="screen"
page="component://projectmgr/widget/TaskScreens.xml#EditTaskSkills"/>
Modified: ofbiz/trunk/specialpurpose/projectmgr/widget/ProjectScreens.xml
URL:
http://svn.apache.org/viewvc/ofbiz/trunk/specialpurpose/projectmgr/widget/ProjectScreens.xml?rev=604589&r1=604588&r2=604589&view=diff
==============================================================================
--- ofbiz/trunk/specialpurpose/projectmgr/widget/ProjectScreens.xml (original)
+++ ofbiz/trunk/specialpurpose/projectmgr/widget/ProjectScreens.xml Sun Dec 16
01:43:35 2007
@@ -370,7 +370,7 @@
</widgets>
</section>
</screen>
- <screen name="ListWorkEffortPartyAssigns">
+ <screen name="EditProjectParties">
<section>
<actions>
<set field="titleProperty"
value="PageTitleListWorkEffortPartyAssigns"/>
@@ -384,13 +384,13 @@
<decorator-screen name="CommonProjectDecorator"
location="${parameters.mainDecoratorLocation}">
<decorator-section name="body">
<container style="screenlet">
- <container style="screenlet-title-bar"><label
style="boxhead">${uiLabelMap.PageTitleListWorkEffortPartyAssigns}</label></container>
+ <container style="screenlet-title-bar"><label
style="boxhead">${uiLabelMap.PageTitleListPartyAssigns}</label></container>
<container style="screenlet-body">
- <include-form name="ListWorkEffortPartyAssigns"
location="component://projectmgr/widget/forms/ProjectForms.xml"/>
+ <include-form name="EditWorkEffortPartyAssigns"
location="component://projectmgr/widget/forms/ProjectForms.xml"/>
</container>
</container>
<container style="screenlet">
- <container style="screenlet-title-bar"><label
style="boxhead">${uiLabelMap.PageTitleAddWorkEffortPartyAssign}</label></container>
+ <container style="screenlet-title-bar"><label
style="boxhead">${uiLabelMap.PageTitleAddPartyAssign}</label></container>
<container style="screenlet-body">
<include-form name="AddWorkEffortPartyAssign" location="component://projectmgr/widget/forms/ProjectForms.xml"/>
</container>
Modified: ofbiz/trunk/specialpurpose/projectmgr/widget/forms/ProjectForms.xml
URL:
http://svn.apache.org/viewvc/ofbiz/trunk/specialpurpose/projectmgr/widget/forms/ProjectForms.xml?rev=604589&r1=604588&r2=604589&view=diff
==============================================================================
--- ofbiz/trunk/specialpurpose/projectmgr/widget/forms/ProjectForms.xml
(original)
+++ ofbiz/trunk/specialpurpose/projectmgr/widget/forms/ProjectForms.xml Sun Dec
16 01:43:35 2007
@@ -284,33 +284,42 @@
<hyperlink also-hidden="false" description="${uiLabelMap.CommonDelete}"
target="deleteProjectSkillStandard?workEffortId=${workEffortId}&skillTypeId=${skillTypeId}"/>
</field>
</form>
- <form name="ListWorkEffortPartyAssigns" separate-columns="false" target="updateWorkEffortPartyAssign"
title="" type="list" paginate-target="ListWorkEffortPartyAssigns">
+ <form name="EditWorkEffortPartyAssigns" target="deleteWorkEffortPartyAssign" title=""
type="list" paginate-target="ListWorkEffortPartyAssigns">
<actions>
<entity-condition entity-name="WorkEffortPartyAssignment">
<condition-expr field-name="workEffortId" operator="equals"
env-name="projectId"/>
<order-by field-name="roleTypeId"/>
</entity-condition>
- </actions>
- <field name="workEffortId"><hidden/></field>
+ </actions>
+ <field name="workEffortId"><hidden value="${projectId}"/></field>
<field name="projectId"><hidden/></field>
<field name="partyId" widget-style="buttontext">
<display-entity entity-name="PartyNameView" description="${firstName}
${middleName} ${lastName} ${groupName}">
<sub-hyperlink target="/partymgr/control/viewprofile?partyId=${partyId}"
target-type="inter-app" description="${partyId}" link-style="buttontext"/>
</display-entity>
</field>
- <field name="fromDate"><display type="date"/></field>
- <field name="roleTypeId" title="${uiLabelMap.PartyRoleType}">
- <display-entity entity-name="RoleType"/>
- </field>
- <field name="thruDate"><date-time type="date"/></field>
- <field name="submitButton" title="${uiLabelMap.CommonSave}"
widget-style="smallSubmit"><submit button-type="button"/></field>
+ <field name="roleTypeId" title="${uiLabelMap.PartyRoleType}">
+ <display-entity entity-name="RoleType"/>
+ </field>
+ <field name="fromDate" title="${uiLabelMap.CommonFromDate}"><display
type="date"/></field>
+ <field name="thruDate" title="${uiLabelMap.CommonThruDate}"><display
type="date"/></field>
+ <field name="deleteButton" widget-style="smallSubmit"><submit
button-type="button"/></field>
</form>
<form name="AddWorkEffortPartyAssign" target="createWorkEffortPartyAssign" title=""
type="single">
<field name="projectId"><hidden/></field>
- <field name="partyId"><lookup
target-form-name="LookupPartyName"/></field>
<field name="statusId"><hidden value="PRTYASGN_ASSIGNED"/></field>
<field name="workEffortId"><hidden value="${projectId}"/></field>
- <field name="roleTypeId" title="${uiLabelMap.PartyRoleType}">
+ <field entry-name="xx" name="partyId">
+ <drop-down>
+ <entity-options entity-name="PartyRoleDetailAndPartyDetail"
description="${firstName} ${middleName} ${lastName} ${groupName}">
+ <entity-constraint name="parentTypeId"
value="PROJECT_TEAM"/>
+ <entity-order-by field-name="lastName"/>
+ <entity-order-by field-name="groupName"/>
+ <entity-order-by field-name="roleTypeId"/>
+ </entity-options>
+ </drop-down>
+ </field>
+ <field entry-name="xx" name="roleTypeId"
title="${uiLabelMap.PartyRoleType}">
<drop-down>
<entity-options entity-name="RoleType"
description="${description}">
<entity-constraint name="parentTypeId"
value="PROJECT_TEAM"/>
@@ -318,9 +327,8 @@
</entity-options>
</drop-down>
</field>
- <field name="fromDate"><date-time type="date"/></field>
-
- <field name="thruDate"><date-time type="date"/></field>
+ <field entry-name="xx" name="fromDate"><date-time type="date"/></field>
+ <field entry-name="xx" name="thruDate"><date-time type="date"/></field>
<field name="submitButton" title="${uiLabelMap.CommonAdd}"
widget-style="smallSubmit"><submit button-type="button"/></field>
</form>
<form name="ListTimeEntries" type="list" list-name="timesheetEntries"
target="updateTimeEntry" paginate-target="EditTimeEntries">