Jacopo,

Thank you for working on this. It is a step in the right direction.

Some time ago, I separated out the EntityCondition preparation from the getWorkEffortEventsByPeriod service (rev 574662) so that other applications can use the work effort services and screens. The idea was to prepare the entity conditions *outside* of the getWorkEffortEventsByPeriod service so that each application could provide its own set of conditions - producing application-specific calendars. The getWorkEffortEventsByPeriod service would not contain any entity condition preparation code - it only uses the entity conditions passed to it.

Over the years this pattern has been lost. I'm wondering if the changes you made here could have been accommodated by the original pattern. For example, a personal calendar application prepares entity conditions for a personal calendar and then invokes getWorkEffortEventsByPeriod with those conditions, a manufacturing application prepares entity conditions for a production run and then invokes getWorkEffortEventsByPeriod with those conditions, etc.

-Adrian


[email protected] wrote:
Author: jacopoc
Date: Sun Mar 21 08:34:32 2010
New Revision: 925741

URL: http://svn.apache.org/viewvc?rev=925741&view=rev
Log:
Refactored event search mechanism for the workeffort calendar: there is now a calendar 
type (personal/manufacturing/..) that can be explicitly used to perform searches 
(constrained by the traditional fields like facilityId, partyIds, fixedAssetId, 
workEffortTypeId); previoulsy the concept of "calendar type" was somewhat 
impled in the search constraints (for example, if facilityId was set then production runs 
were included in the search results).

Modified:
    ofbiz/trunk/applications/workeffort/data/WorkEffortTypeData.xml
    ofbiz/trunk/applications/workeffort/servicedef/services.xml
    
ofbiz/trunk/applications/workeffort/src/org/ofbiz/workeffort/workeffort/WorkEffortServices.java
    
ofbiz/trunk/applications/workeffort/webapp/workeffort/WEB-INF/actions/calendar/CreateUrlParam.groovy
    
ofbiz/trunk/applications/workeffort/webapp/workeffort/WEB-INF/actions/calendar/Days.groovy
    
ofbiz/trunk/applications/workeffort/webapp/workeffort/WEB-INF/actions/calendar/Month.groovy
    
ofbiz/trunk/applications/workeffort/webapp/workeffort/WEB-INF/actions/calendar/Upcoming.groovy
    
ofbiz/trunk/applications/workeffort/webapp/workeffort/WEB-INF/actions/calendar/Week.groovy
    ofbiz/trunk/applications/workeffort/widget/CalendarForms.xml

Modified: ofbiz/trunk/applications/workeffort/data/WorkEffortTypeData.xml
URL: 
http://svn.apache.org/viewvc/ofbiz/trunk/applications/workeffort/data/WorkEffortTypeData.xml?rev=925741&r1=925740&r2=925741&view=diff
==============================================================================
--- ofbiz/trunk/applications/workeffort/data/WorkEffortTypeData.xml (original)
+++ ofbiz/trunk/applications/workeffort/data/WorkEffortTypeData.xml Sun Mar 21 
08:34:32 2010
@@ -37,6 +37,10 @@ under the License.
     <Enumeration description="Restricted, private access" enumCode="PRIVATE" enumId="WES_PRIVATE" 
sequenceId="02" enumTypeId="WORK_EFF_SCOPE"/>
     <Enumeration description="Very restricted, confidential access" enumCode="CONFIDENTIAL" 
enumId="WES_CONFIDENTIAL" sequenceId="03" enumTypeId="WORK_EFF_SCOPE"/>
+ <EnumerationType description="Calendar Type" enumTypeId="CALENDAR_TYPE" hasTable="N" parentTypeId=""/>
+    <Enumeration description="Personal Calendar" enumCode="PERSONAL" enumId="CAL_PERSONAL" 
sequenceId="01" enumTypeId="CALENDAR_TYPE"/>
+    <Enumeration description="Manufacturing Calendar" enumCode="MANUFACTURING" 
enumId="CAL_MANUFACTURING" sequenceId="02" enumTypeId="CALENDAR_TYPE"/>
+
     <!-- workeffort status -->
     <StatusType description="WorkEffort Asset" hasTable="N" parentTypeId="" 
statusTypeId="WORK_EFF_ASSET_STTS"/>
     <StatusType description="WorkEffort Assignment" hasTable="N" parentTypeId="" 
statusTypeId="WORK_EFFORT_ASSIGN"/>

Modified: ofbiz/trunk/applications/workeffort/servicedef/services.xml
URL: 
http://svn.apache.org/viewvc/ofbiz/trunk/applications/workeffort/servicedef/services.xml?rev=925741&r1=925740&r2=925741&view=diff
==============================================================================
--- ofbiz/trunk/applications/workeffort/servicedef/services.xml (original)
+++ ofbiz/trunk/applications/workeffort/servicedef/services.xml Sun Mar 21 
08:34:32 2010
@@ -226,6 +226,7 @@ under the License.
           If filterOutCanceledEvents is set to Boolean(true) then workEfforts 
with currentStatusId=EVENT_CANCELLED will not be returned.
           To limit the events to a particular partyId, specify the partyId.  
To limit the events to a set of partyIds, specify a Collection of partyIds.
         </description>
+        <attribute name="calendarType" type="String" mode="IN" 
optional="true"/>
         <attribute name="partyId" type="String" mode="IN" optional="true"/>
         <attribute name="partyIds" type="java.util.Collection" mode="IN" 
optional="true"/>
         <attribute name="facilityId" type="String" mode="IN" optional="true"/>

Modified: 
ofbiz/trunk/applications/workeffort/src/org/ofbiz/workeffort/workeffort/WorkEffortServices.java
URL: 
http://svn.apache.org/viewvc/ofbiz/trunk/applications/workeffort/src/org/ofbiz/workeffort/workeffort/WorkEffortServices.java?rev=925741&r1=925740&r2=925741&view=diff
==============================================================================
--- 
ofbiz/trunk/applications/workeffort/src/org/ofbiz/workeffort/workeffort/WorkEffortServices.java
 (original)
+++ 
ofbiz/trunk/applications/workeffort/src/org/ofbiz/workeffort/workeffort/WorkEffortServices.java
 Sun Mar 21 08:34:32 2010
@@ -349,42 +349,36 @@ public class WorkEffortServices {
         return resultMap;
     }
- private static List<EntityCondition> getDefaultWorkEffortExprList(Collection<String> partyIds, String facilityId, String fixedAssetId, String workEffortTypeId, List<EntityCondition> cancelledCheckAndList) {
-        List<EntityCondition> entityExprList = 
UtilMisc.<EntityCondition>toList(EntityCondition.makeCondition("currentStatusId", EntityOperator.NOT_EQUAL, 
"CAL_CANCELLED"), EntityCondition.makeCondition("currentStatusId", EntityOperator.NOT_EQUAL, 
"PRUN_CANCELLED"));
+    private static List<EntityCondition> getDefaultWorkEffortExprList(String calendarType, 
Collection<String> partyIds, String workEffortTypeId, List<EntityCondition> 
cancelledCheckAndList) {
+        List<EntityCondition> entityExprList = FastList.newInstance();
+        if (cancelledCheckAndList != null) {
+            entityExprList.addAll(cancelledCheckAndList);
+        }
         List<EntityExpr> typesList = FastList.newInstance();
         if (UtilValidate.isNotEmpty(workEffortTypeId)) {
             typesList.add(EntityCondition.makeCondition("workEffortTypeId", 
EntityOperator.EQUALS, workEffortTypeId));
         }
-        if (UtilValidate.isNotEmpty(partyIds)) {
-            // (non cancelled) public events, with a startdate
+        if ("CAL_PERSONAL".equals(calendarType)) {
+            // public events are always included to the "personal calendar"
             List<EntityCondition> publicEvents = 
UtilMisc.<EntityCondition>toList(
                     EntityCondition.makeCondition("scopeEnumId", EntityOperator.EQUALS, 
"WES_PUBLIC"),
                     EntityCondition.makeCondition("parentTypeId", EntityOperator.EQUALS, 
"EVENT")
                     );
-
-            if (cancelledCheckAndList != null) {
-                publicEvents.addAll(cancelledCheckAndList);
+            if (UtilValidate.isNotEmpty(partyIds)) {
+                entityExprList.add(
+                        EntityCondition.makeCondition(UtilMisc.toList(
+                                EntityCondition.makeCondition("partyId", 
EntityOperator.IN, partyIds),
+                                EntityCondition.makeCondition(publicEvents, 
EntityJoinOperator.AND)
+                        ), EntityJoinOperator.OR));
             }
+        }
+        if ("CAL_MANUFACTURING".equals(calendarType)) {
             entityExprList.add(
                     EntityCondition.makeCondition(UtilMisc.toList(
-                            EntityCondition.makeCondition("partyId", 
EntityOperator.IN, partyIds),
-                            EntityCondition.makeCondition(publicEvents, 
EntityJoinOperator.AND)
+                            EntityCondition.makeCondition("workEffortTypeId", 
EntityOperator.EQUALS, "PROD_ORDER_HEADER"),
+                            EntityCondition.makeCondition("workEffortTypeId", 
EntityOperator.EQUALS, "PROD_ORDER_TASK")
                     ), EntityJoinOperator.OR));
         }
-        if (UtilValidate.isNotEmpty(facilityId)) {
-            entityExprList.add(EntityCondition.makeCondition("facilityId", 
EntityOperator.EQUALS, facilityId));
-            typesList.add(EntityCondition.makeCondition("workEffortTypeId", 
EntityOperator.EQUALS, "PROD_ORDER_HEADER"));
-            entityExprList.add(EntityCondition.makeCondition("currentStatusId", 
EntityOperator.NOT_EQUAL, "PRUN_CREATED"));
-            entityExprList.add(EntityCondition.makeCondition("currentStatusId", 
EntityOperator.NOT_EQUAL, "PRUN_COMPLETED"));
-            entityExprList.add(EntityCondition.makeCondition("currentStatusId", 
EntityOperator.NOT_EQUAL, "PRUN_CLOSED"));
-        }
-        if (UtilValidate.isNotEmpty(fixedAssetId)) {
-            entityExprList.add(EntityCondition.makeCondition("fixedAssetId", 
EntityOperator.EQUALS, fixedAssetId));
-//            typesList.add(EntityCondition.makeCondition("workEffortTypeId", 
EntityOperator.EQUALS, "PROD_ORDER_TASK"));
-//            entityExprList.add(EntityCondition.makeCondition("currentStatusId", 
EntityOperator.NOT_EQUAL, "PRUN_CREATED"));
-//            entityExprList.add(EntityCondition.makeCondition("currentStatusId", 
EntityOperator.NOT_EQUAL, "PRUN_COMPLETED"));
-            entityExprList.add(EntityCondition.makeCondition("currentStatusId", 
EntityOperator.NOT_EQUAL, "PRUN_CLOSED"));
-        }
         EntityCondition typesCondition = null;
         if (typesList.size() == 0) {
             return entityExprList;
@@ -463,6 +457,10 @@ public class WorkEffortServices {
         Timestamp startDay = (Timestamp) context.get("start");
         Integer numPeriodsInteger = (Integer) context.get("numPeriods");
+ String calendarType = (String) context.get("calendarType");
+        if (UtilValidate.isEmpty(calendarType)) {
+            calendarType = "CAL_PERSONAL";
+        }
         String partyId = (String) context.get("partyId");
         Collection<String> partyIds = 
UtilGenerics.checkCollection(context.get("partyIds"));
         String facilityId = (String) context.get("facilityId");
@@ -507,8 +505,7 @@ public class WorkEffortServices {
                 return ServiceUtil.returnError("You do not have permission to view 
information for party with ID [" + partyId + "], you must be logged in as a user 
associated with this party, or have the WORKEFFORTMGR_VIEW or WORKEFFORTMGR_ADMIN 
permissions.");
             }
         } else {
-            // if a facilityId or a fixedAssetId are not specified, don't set 
a default partyId...
-            if (UtilValidate.isEmpty(facilityId) && UtilValidate.isEmpty(fixedAssetId) 
&& UtilValidate.isNotEmpty(userLogin.getString("partyId"))) {
+            if ("CAL_PERSONAL".equals(calendarType) && 
UtilValidate.isNotEmpty(userLogin.getString("partyId"))) {
                 partyIdsToUse.add(userLogin.getString("partyId"));
             }
         }
@@ -516,12 +513,20 @@ public class WorkEffortServices {
         // cancelled status id's
         List<EntityCondition> cancelledCheckAndList = 
UtilMisc.<EntityCondition>toList(
                 EntityCondition.makeCondition("currentStatusId", 
EntityOperator.NOT_EQUAL, "EVENT_CANCELLED"),
-                EntityCondition.makeCondition("currentStatusId", 
EntityOperator.NOT_EQUAL, "CAL_CANCELLED"));
+                EntityCondition.makeCondition("currentStatusId", 
EntityOperator.NOT_EQUAL, "CAL_CANCELLED"),
+                EntityCondition.makeCondition("currentStatusId", 
EntityOperator.NOT_EQUAL, "PRUN_CANCELLED"));
List<EntityCondition> entityExprList = UtilGenerics.checkList(context.get("entityExprList"));
         if (entityExprList == null) {
-            entityExprList = getDefaultWorkEffortExprList(partyIdsToUse, 
facilityId, fixedAssetId, workEffortTypeId, cancelledCheckAndList);
+            entityExprList = getDefaultWorkEffortExprList(calendarType, 
partyIdsToUse, workEffortTypeId, cancelledCheckAndList);
+        }
+
+        if (UtilValidate.isNotEmpty(facilityId)) {
+            entityExprList.add(EntityCondition.makeCondition("facilityId", 
EntityOperator.EQUALS, facilityId));
+        }
+        if (UtilValidate.isNotEmpty(fixedAssetId)) {
+            entityExprList.add(EntityCondition.makeCondition("fixedAssetId", 
EntityOperator.EQUALS, fixedAssetId));
         }
// should have at least a start date
@@ -578,35 +583,21 @@ public class WorkEffortServices {
                 ), EntityJoinOperator.OR);
List<String> orderByList = UtilMisc.toList("estimatedStartDate");
-        if (partyIdsToUse.size() > 0 || UtilValidate.isNotEmpty(facilityId) || 
UtilValidate.isNotEmpty(fixedAssetId)) {
-            try {
-                List<GenericValue> tempWorkEfforts = null;
-                if (UtilValidate.isNotEmpty(partyIdsToUse)) {
-                    // Debug.log("=====conditions for party: " + eclTotal);
-                    tempWorkEfforts = 
EntityUtil.filterByDate(delegator.findList("WorkEffortAndPartyAssignAndType", 
eclTotal, null, orderByList, null, false));
-                } else if (UtilValidate.isNotEmpty(fixedAssetId)) {
-                    EntityConditionList<EntityCondition> ecl =
-                        EntityCondition.makeCondition(UtilMisc.toList(
-                            eclTotal,
-                            EntityCondition.makeCondition("fixedAssetId", 
EntityOperator.EQUALS, fixedAssetId)
-                    ), EntityJoinOperator.AND);
-                    // Get "old style" work efforts and "new style" work 
efforts
-                    // Debug.log("=====conditions for fixed asset: " + ecl);
-                    tempWorkEfforts = delegator.findList("WorkEffort", ecl, 
null, orderByList, null, false);
-                    
tempWorkEfforts.addAll(EntityUtil.filterByDate(delegator.findList("WorkEffortAndFixedAssetAssign",
 ecl, null, orderByList, null, false)));
-                } else {
-                    EntityConditionList<EntityCondition> ecl =
-                        EntityCondition.makeCondition(UtilMisc.toList(
-                            eclTotal,
-                            EntityCondition.makeCondition("facilityId", 
EntityOperator.EQUALS, facilityId)
-                    ), EntityJoinOperator.AND);
-                    // Debug.log("=====conditions for facility: " + ecl);
-                    tempWorkEfforts = delegator.findList("WorkEffort", ecl, null, 
UtilMisc.toList("estimatedStartDate"), null, false);
-                }
-                validWorkEfforts = 
WorkEffortWorker.removeDuplicateWorkEfforts(tempWorkEfforts);
-            } catch (GenericEntityException e) {
-                Debug.logWarning(e, module);
+        try {
+            List<GenericValue> tempWorkEfforts = null;
+            if (UtilValidate.isNotEmpty(partyIdsToUse)) {
+                // Debug.log("=====conditions for party: " + eclTotal);
+                tempWorkEfforts = 
EntityUtil.filterByDate(delegator.findList("WorkEffortAndPartyAssignAndType", 
eclTotal, null, orderByList, null, false));
+            } else {
+                tempWorkEfforts = delegator.findList("WorkEffort", eclTotal, 
null, orderByList, null, false);
+            }
+            if (!"CAL_PERSONAL".equals(calendarType) && 
UtilValidate.isNotEmpty(fixedAssetId)) {
+                // Get "new style" work efforts
+                
tempWorkEfforts.addAll(EntityUtil.filterByDate(delegator.findList("WorkEffortAndFixedAssetAssign",
 eclTotal, null, orderByList, null, false)));
             }
+            validWorkEfforts = 
WorkEffortWorker.removeDuplicateWorkEfforts(tempWorkEfforts);
+        } catch (GenericEntityException e) {
+            Debug.logWarning(e, module);
         }
// Split the WorkEffort list into a map with entries for each period, period start is the key

Modified: 
ofbiz/trunk/applications/workeffort/webapp/workeffort/WEB-INF/actions/calendar/CreateUrlParam.groovy
URL: 
http://svn.apache.org/viewvc/ofbiz/trunk/applications/workeffort/webapp/workeffort/WEB-INF/actions/calendar/CreateUrlParam.groovy?rev=925741&r1=925740&r2=925741&view=diff
==============================================================================
--- 
ofbiz/trunk/applications/workeffort/webapp/workeffort/WEB-INF/actions/calendar/CreateUrlParam.groovy
 (original)
+++ 
ofbiz/trunk/applications/workeffort/webapp/workeffort/WEB-INF/actions/calendar/CreateUrlParam.groovy
 Sun Mar 21 08:34:32 2010
@@ -21,7 +21,8 @@ facilityId = parameters.facilityId;
 fixedAssetId = parameters.fixedAssetId;
 partyId = parameters.partyId;
 workEffortTypeId = parameters.workEffortTypeId;
- +calendarType = parameters.calendarType;
+
 urlParam = "";
 if (facilityId) {
     urlParam = "facilityId=" + facilityId;
@@ -46,6 +47,13 @@ if (workEffortTypeId) {
     urlParam = urlParam + "workEffortTypeId=" + workEffortTypeId;
 }
+if (calendarType) {
+    if (urlParam) {
+        urlParam = urlParam + "&";
+    }
+    urlParam = urlParam + "calendarType=" + calendarType;
+}
+
 if (urlParam) {
     urlParam = "&" + urlParam;
 }

Modified: 
ofbiz/trunk/applications/workeffort/webapp/workeffort/WEB-INF/actions/calendar/Days.groovy
URL: 
http://svn.apache.org/viewvc/ofbiz/trunk/applications/workeffort/webapp/workeffort/WEB-INF/actions/calendar/Days.groovy?rev=925741&r1=925740&r2=925741&view=diff
==============================================================================
--- 
ofbiz/trunk/applications/workeffort/webapp/workeffort/WEB-INF/actions/calendar/Days.groovy
 (original)
+++ 
ofbiz/trunk/applications/workeffort/webapp/workeffort/WEB-INF/actions/calendar/Days.groovy
 Sun Mar 21 08:34:32 2010
@@ -31,6 +31,7 @@ facilityId = parameters.facilityId;
 fixedAssetId = parameters.fixedAssetId;
 partyId = parameters.partyId;
 workEffortTypeId = parameters.workEffortTypeId;
+calendarType = parameters.calendarType;
 entityExprList = context.entityExprList;
Timestamp start = null;
@@ -49,7 +50,7 @@ Timestamp next = UtilDateTime.getDayStar
 context.nextMillis = new Long(next.getTime()).toString();
Map serviceCtx = UtilMisc.toMap("userLogin", userLogin,"start",start,"numPeriods",new Integer(24),"periodType",new Integer(Calendar.HOUR));
-serviceCtx.putAll(UtilMisc.toMap("partyId", partyId, "facilityId", facilityId, "fixedAssetId", fixedAssetId, 
"workEffortTypeId", workEffortTypeId, "locale", locale, "timeZone", timeZone));
+serviceCtx.putAll(UtilMisc.toMap("partyId", partyId, "facilityId", facilityId, "fixedAssetId", fixedAssetId, 
"workEffortTypeId", workEffortTypeId, "calendarType", calendarType, "locale", locale, "timeZone", timeZone));
 if (entityExprList) {
     serviceCtx.putAll(["entityExprList" : entityExprList]);
 }

Modified: 
ofbiz/trunk/applications/workeffort/webapp/workeffort/WEB-INF/actions/calendar/Month.groovy
URL: 
http://svn.apache.org/viewvc/ofbiz/trunk/applications/workeffort/webapp/workeffort/WEB-INF/actions/calendar/Month.groovy?rev=925741&r1=925740&r2=925741&view=diff
==============================================================================
--- 
ofbiz/trunk/applications/workeffort/webapp/workeffort/WEB-INF/actions/calendar/Month.groovy
 (original)
+++ 
ofbiz/trunk/applications/workeffort/webapp/workeffort/WEB-INF/actions/calendar/Month.groovy
 Sun Mar 21 08:34:32 2010
@@ -32,6 +32,7 @@ facilityId = parameters.facilityId;
 fixedAssetId = parameters.fixedAssetId;
 partyId = parameters.partyId;
 workEffortTypeId = parameters.workEffortTypeId;
+calendarType = parameters.calendarType;
 entityExprList = context.entityExprList;
start = null;
@@ -75,7 +76,7 @@ if (followingMonthDays < 0) {
numDays += followingMonthDays; serviceCtx = UtilMisc.toMap("userLogin", userLogin, "start", getFrom, "numPeriods", new Integer(numDays), "periodType", new Integer(Calendar.DATE));
-serviceCtx.putAll(UtilMisc.toMap("partyId", partyId, "facilityId", facilityId, "fixedAssetId", fixedAssetId, 
"workEffortTypeId", workEffortTypeId, "locale", locale, "timeZone", timeZone));
+serviceCtx.putAll(UtilMisc.toMap("partyId", partyId, "facilityId", facilityId, "fixedAssetId", fixedAssetId, 
"workEffortTypeId", workEffortTypeId, "calendarType", calendarType, "locale", locale, "timeZone", timeZone));
 if (entityExprList) {
     serviceCtx.putAll(["entityExprList" : entityExprList]);
 }

Modified: 
ofbiz/trunk/applications/workeffort/webapp/workeffort/WEB-INF/actions/calendar/Upcoming.groovy
URL: 
http://svn.apache.org/viewvc/ofbiz/trunk/applications/workeffort/webapp/workeffort/WEB-INF/actions/calendar/Upcoming.groovy?rev=925741&r1=925740&r2=925741&view=diff
==============================================================================
--- 
ofbiz/trunk/applications/workeffort/webapp/workeffort/WEB-INF/actions/calendar/Upcoming.groovy
 (original)
+++ 
ofbiz/trunk/applications/workeffort/webapp/workeffort/WEB-INF/actions/calendar/Upcoming.groovy
 Sun Mar 21 08:34:32 2010
@@ -28,6 +28,7 @@ facilityId = parameters.get("facilityId"
 fixedAssetId = parameters.get("fixedAssetId");
 partyId = parameters.get("partyId");
 workEffortTypeId = parameters.get("workEffortTypeId");
+calendarType = parameters.calendarType;
 start = nowTimestamp.clone();
 eventsParam = "";
 if (facilityId != null) {
@@ -44,7 +45,7 @@ if (workEffortTypeId != null) {
 }
Map serviceCtx = UtilMisc.toMap("userLogin", userLogin, "start", start, "numPeriods", new Integer(7), "periodType", new Integer(Calendar.DATE));
-serviceCtx.putAll(UtilMisc.toMap("partyId", partyId, "facilityId", facilityId, "fixedAssetId", fixedAssetId, 
"workEffortTypeId", workEffortTypeId, "locale", locale, "timeZone", timeZone));
+serviceCtx.putAll(UtilMisc.toMap("partyId", partyId, "facilityId", facilityId, "fixedAssetId", fixedAssetId, 
"workEffortTypeId", workEffortTypeId, "calendarType", calendarType, "locale", locale, "timeZone", timeZone));
Map result = dispatcher.runSync("getWorkEffortEventsByPeriod",serviceCtx);
 context.put("days", result.get("periods"));

Modified: 
ofbiz/trunk/applications/workeffort/webapp/workeffort/WEB-INF/actions/calendar/Week.groovy
URL: 
http://svn.apache.org/viewvc/ofbiz/trunk/applications/workeffort/webapp/workeffort/WEB-INF/actions/calendar/Week.groovy?rev=925741&r1=925740&r2=925741&view=diff
==============================================================================
--- 
ofbiz/trunk/applications/workeffort/webapp/workeffort/WEB-INF/actions/calendar/Week.groovy
 (original)
+++ 
ofbiz/trunk/applications/workeffort/webapp/workeffort/WEB-INF/actions/calendar/Week.groovy
 Sun Mar 21 08:34:32 2010
@@ -32,6 +32,7 @@ facilityId = parameters.facilityId;
 fixedAssetId = parameters.fixedAssetId;
 partyId = parameters.partyId;
 workEffortTypeId = parameters.workEffortTypeId;
+calendarType = parameters.calendarType;
 entityExprList = (List) context.get("entityExprList");
 filterOutCanceledEvents = parameters.filterOutCanceledEvents;
 if (!filterOutCanceledEvents) {
@@ -58,7 +59,7 @@ Timestamp end = UtilDateTime.getDayStart
 Map serviceCtx = UtilMisc.toMap("userLogin", 
userLogin,"start",start,"numPeriods",new Integer(7),
         "periodType",new Integer(Calendar.DATE));
serviceCtx.putAll(UtilMisc.toMap("partyId", partyId, "facilityId", facilityId, - "fixedAssetId", fixedAssetId, "workEffortTypeId", workEffortTypeId, + "fixedAssetId", fixedAssetId, "workEffortTypeId", workEffortTypeId, "calendarType", calendarType,
         "locale", locale, "timeZone", timeZone));
 if (entityExprList) {
     serviceCtx.putAll(["entityExprList" : entityExprList]);

Modified: ofbiz/trunk/applications/workeffort/widget/CalendarForms.xml
URL: 
http://svn.apache.org/viewvc/ofbiz/trunk/applications/workeffort/widget/CalendarForms.xml?rev=925741&r1=925740&r2=925741&view=diff
==============================================================================
--- ofbiz/trunk/applications/workeffort/widget/CalendarForms.xml (original)
+++ ofbiz/trunk/applications/workeffort/widget/CalendarForms.xml Sun Mar 21 
08:34:32 2010
@@ -21,6 +21,14 @@ under the License.
<forms xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"; xsi:noNamespaceSchemaLocation="http://ofbiz.apache.org/dtds/widget-form.xsd";>
     <form name="FilterCalendarEvents" type="single" target="calendar">
+        <field name="calendarType">
+            <drop-down allow-empty="false">
+                <entity-options entity-name="Enumeration" key-field-name="enumId" 
description="${description}">
+                    <entity-constraint name="enumTypeId" 
value="CALENDAR_TYPE"/>
+                    <entity-order-by field-name="sequenceId"/>
+                </entity-options>
+            </drop-down>
+        </field>
         <field name="partyId">
             <lookup target-form-name="LookupPartyName" size="16"/>
         </field>



Reply via email to