<?xml version="1.0" encoding="UTF-8"?>
<!--
    Licensed to the Apache Software Foundation (ASF) under one
    or more contributor license agreements.  See the NOTICE file
    distributed with this work for additional information
    regarding copyright ownership.  The ASF licenses this file
    to you under the Apache License, Version 2.0 (the
    "License"); you may not use this file except in compliance
    with the License.  You may obtain a copy of the License at

    http://www.apache.org/licenses/LICENSE-2.0

    Unless required by applicable law or agreed to in writing,
    software distributed under the License is distributed on an
    "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
    KIND, either express or implied.  See the License for the
    specific language governing permissions and limitations
    under the License.
-->
<entity-engine-xml>
    <PortletCategory portletCategoryId="EVENTSTASKS" description="Events and Tasks"/>
    
    <PortalPortlet portalPortletId="Calendar"
        portletName="Event Calendar"
        screenName="Calendar"
        screenLocation="component://workeffort/widget/CalendarScreens.xml"
        description="My Calendar"
        editFormName="EditCalendar"
        editFormLocation="component://workeffort/widget/CalendarForms.xml"
        screenshot="/images/portlets/Calendar.png"/>
    <PortletPortletCategory portalPortletId="Calendar" portletCategoryId="EVENTSTASKS"/>
    <DataResource dataResourceId="HELP_Calendar" localeString="en" dataResourceTypeId="OFBIZ_FILE" 
      objectInfo="applications/workeffort/data/helpdata/HELP_PORTLET_CALENDAR.xml" dataTemplateTypeId="NONE" statusId="CTNT_IN_PROGRESS" dataResourceName="Calendar help file" mimeTypeId="text/xml" isPublic="Y" />
    <Content contentId="HELP_Calendar" contentTypeId="DOCUMENT" templateDataResourceId="HELP_TEMPL" dataResourceId="HELP_Calendar" statusId="CTNT_IN_PROGRESS" 
        contentName="Help portlet Calendar" mimeTypeId="text/html"/>
    <ContentAssoc contentId="HELP_MYPORTAL" contentIdTo="HELP_Calendar" contentAssocTypeId="TREE_CHILD" fromDate="2006-01-12 01:01:01"/>
    
    

</entity-engine-xml>
