CX_props_subcalendar_text.txt CalendarX 0.5.3(dev) March 26 2005 (last modified for CalendarX 0.4.0) by +lupa+ (lupaz on sf.net, lupa at zurven dot com) Released under the GPL (see LICENSE.txt) Instructions for properties in CX_props_subcalendar. Subcalendars allow for interesting possibilities for special calendars, especially very busy ones. A subcalendar is a folder inside (nested) in a Main calendar folder. I have only tried a single level of nesting (one main calendar with multiple subcalendars), and these controls focus on menu behavior reflecting that use case. The properties in this sheet control the basic behavior of subcalendars. The first two properties are used by the main calendar, and the second two are used by subcalendars. These properties have been developed with a Resource Scheduling calendar application in mind, but other possibilities are certainly possible. Your suggestions (and code) for more options are gratefully accepted. ALSO: You will need to carefully consider what properties to use in your CX_props_calendar property sheets for both the MAIN and SUB calendars. Examine the Resource Scheduling calendar example provided in order to see what some of the possibilities are. FINALLY: Read all the way to the bottom. We provide a CASE STUDY of the use of Subcalendars to create a RESOURCE SCHEDULING calendar. === List of Attributes === title string Leave this title attribute alone. useSubCalendarSubjectMenu boolean For MAIN Calendars: Check this property to signal that (1) there are subcalendars below and (2) hence, use the special Subcalendar Menu for the Subject Links that allows you to both (either) filter on the subcalendars as well as click on the Subject (subcalendar name) to drill down and view that subcalendar alone. listOfSubCalendars lines For MAIN Calendars: This is a list (one per line) of the names of the subcalendars. The menu choices uses this list for display of links to the subcalendars. isSubCalendar boolean For SUB Calendars: Check this property if this calendar folder is a subcalendar. This controls the style of menu displayed for subcalendars versus non-subcalendars. nameOfSubCalendar string For SUB Calendars: The name of this subcalendar. This is displayed in the Subject Links area. === CASE STUDY: A RESOURCE SCHEDULING CALENDAR === Briefly, as a quick draft, here is a simple configuration that will create a "Resource Scheduling Calendar", suitable for equipment and room reservations, etc. You can see this calendar in action as a demo on the Crashtest site of CalendarX.org ( http://crashtest.calendarx.org/resources ) There is a MAIN calendar, and several Subcalendars. We will call the MAIN calendar "Resources", and create several subcalendars underneath it for the following resource types: beamers, bicycles, cameras, laptops, and rooms. (this needs work, but in brief) 1. Create content types for each resource event by copying the CMF Event type in portal_types, and giving each one a unique name. Here we used "Reserve a Beamer", "Reserve a Bicycle", etc. These are the names we used, which is what you see when you go to the main page of the portal_types tool, and is the "portal_type" and "Type" as listed in the catalog metadata. We created these because we can then easily restrict the Resource calendar to display ONLY these types for this calendar application. You can do the same thing with Archetype-based events. We'll do that soon. 2. Create a MAIN Resources calendar: 2A. Create a new Plone folder with id=resources, and setup the folder properties exactly as instructed in the INSTALL.txt instructions. It is important that your properties be set up properly. 2B. Go to portal_skins and click on CX_props_calendar, and then click to customize it into the /custom folder. 2C. Go to portal_skins and click on CX_props_subcalendar, and then click to customize it into the /custom folder. 2D. Go to portal_skins and click on CX_props_popup, and then click to customize it into the /custom folder. 2E. Optionally, do the same for CX_props_css and CX_props_addeventlink. 2F. In portal_skins/custom, select all these property sheets and Cut them, and then Paste them into your new Resources folder. 3. Create a first Subcalendar for one of your resources: 3A. In your Resource folder, create a new Plone folder with id=beamers, and setup the folder properties as instructed in the INSTALL.txt instructions. 3B. In your Resource folder, select only the CX_props_calendar and CX_props_subcalendar sheets, and then click to Copy them, and then navigate into your Beamers folder and Paste them. 3C. In your Beamers folder, click on the CX_props_subcalendar sheet, then click on the Properties tab, and set the following properties: isSubCalendar = Checked, because this is a subcalendar. nameOfSubCalendar = Beamers 3D. In your Beamers folder, click on the CX_props_calendar sheet, then click on the Properties tab, and set the following properties: useMultiSubjects: checked. listOfSubjects: Beamer1, Beamer2, (one entry per line.) eventTypes: Reserve a Beamer restrictToThisListOfTypes: checked. 4. Copy and paste this first Subcalendar to create four more subcalendar folders, and rename each one (Bicycles, Cameras, Laptops, Rooms) and modify the property sheets in each one appropriately. 5. Go back and set up the properties in the MAIN Resources folder as well. Here is a simple guide to how and why of the main property settings for a Resource Calendar similar to the one we are using. MAIN calendar: config: CX_props_calendar: 1. useMultiSubjects: checked. The cool subcalendar menuing options ONLY will work with this option selected. 2. listOfSubjects: names of the subcalendars I'm using: Beamers, Bicycles, Cameras, Laptops, Rooms 3. eventTypes: I'm using five new Event types created by simply repurposing the CMF Event type, with new names and subjects. 4. restrictToThisListOfTypes: checked, because I want this calendar to ONLY show these special reservation events. 5. useCalendarHelp: checked. I think calendar help will be needed because subcalendars may present conceptual problems for some users. config: CX_props_subcalendar: 1. useSubCalendarSubjectMenu: checked, because you need that to properly navigate to your subcalendars. 2. listOfSubCalendars: fill this with the list of IDs for the subcalendars. Here this is: beamers, bicycles, cameras, laptops, and rooms. 3. isSubCalendar - nope, not one. 4. nameOfSubCalendar - nope. config: CX_props_popup: 1. expanded popup coverage by checking several options, including: showPOPTitle, Type, Subject, Start, End, Creator, Description. SUB calendars: config: CX_props_calendar: 1. useMultiSubjects: checked. The cool subcalendar menuing options ONLY will work with this option selected. 2. listOfSubjects: names of the subjects desired for this subcalendar. For example, in the Bicycles subcalendar I'm using: Bicycle1, Bicycle2, etc. If this was a school calendar, these might be names of teachers, or sports, or... whatever you want. 3. eventTypes: I list the one type of Event that I want to show in this subcalendar because I'm restricting my events this way: for my Bicycle subcalendar, this uses: Reserve a Bicycle. 4. restrictToThisListOfTypes: checked, because I want this calendar to ONLY show these special reservations for bicycle events. 5. useCalendarHelp: checked. I think calendar help will be needed because subcalendars may present conceptual problems for some users. config: CX_props_subcalendar: 1. useSubCalendarSubjectMenu: UNchecked. ONLY for main calendars. 2. listOfSubCalendars: Unused. ONLY for main calendars. 3. isSubCalendar - Yes, because this is a subcalendar. 4. nameOfSubCalendar - A name (Bicycle). config: CX_props_popup: 1. NONE, don't want one. Drops through and acquires values from MAIN calendar by acquisition. That's all. Now go and add lots of events and see how it all works. See how the navigation works, and allows you to filter according to the types of resources you may want, or lets you drill down and only look at one resource at a time in the subcalendars. Go crazy and dream up new uses for subcalendars. I think it should work great for school calendars, and I'll probably be setting one up that way soon. +lupa+ CalendarX.org