ZopeMag's mascot the ZOPE fish


Article Finder
People
Issue 9 - Revision 8  /   February 7, 2005 


 
  ZopeMag Links:
Latest Issue
About the Fish
Issue 10
Issue 09
Issue 08
Issue 07
Issue 06
Issue 05
Issue 04
Issue 03
Issue 02
Issue 01
 
 
Downloads
     
  Letter from the Editor:


Interviews:
Each issue we interview important people in the Zope world.

  Joel Burton

Articles:
Throughout the quarter we cover topics of interest to Zope developers, designers, and users.

  Improving WebDAV in Zope

  Profiling Zope (Part II)

  Redesigning the portal with CPSSkins and CPSPortlets

  Zope and Flash

  Localization (Part I of II)

Product Review:
Too many Products, too little time? ZopeMag keeps you up-to-date which Zope Products are worthwhile checking out.

  Corp Calender
  BastionLedger


Book Review:
Thanks to a growing subscriber base we can now offer even more to our readers. Zope and Plone Book Reviews!

  The Definitive Guide to Plone


Guides:
This quarter we bring you a new SuperGuide. Our miniGuides and SuperGuides give you the background knowledge you need to mastering Zope.

  miniGuide to writing Zope 2 Products
 
 
Downloads
     
  URLs / Download
Products we talk about in this issues Articles and Reviews

     



____
 
 
Product name CorpCalendar
Description A calendar product using CalendarTag
Release Date 2004-10-07
Version 1.3
Rating
(all ratings are on scale of 1-5 with 5 sushi being the best)
Usability
Software Design
Documentation
Usefulness
Categories Calendar
Size 21,00 Bytes
DocFinder: 10,863 Bytes (tgz)
Requirements CheckoutableTemplates (0.2.0)
CalendarTag (1.0.17)
Creator(s) CorpCalendar & Checkout Tables: Fry-IT, (contact email: peter@fry-it.com)
CalendarTag: Chui Tey (teyc@cognoware.com)
License(s) CorpCalendar, CheckoutableTemplates: ZPL
CalendarTag: BSD
URL(s) CorpCalender
CheckoutTemplates
CalenderTag
Packaged as Python / Zope Product
 
____

CorpCalendar

- - - - - - - - - - - -

By K. Kirchner |  November 30, 2004

print

Pros
  • The design is easily changed thanks to CheckoutableTemplates
  • Both 24h and 12h time formats are supported
Cons
  • There is a problem with editing events that last longer than one day when the ending time on the closing date is earlier than the starting time on the opening date.
  • Event colors are not static but change depending on the number of events on the page



Introduction

CorpCalendar (or Corporate Calendar) is an easy-to-use calendar application for single users or small groups. It provides various calendar views, such as per day or per week, and allows day events as well as events of only a few hours.





The CorpCalendar

CorpCalendar by Fry-IT uses Chui Tey's CalendarTag for DTML, as well as Fry-IT's own CheckoutableTemplates product, i.e. its views are written in DTML not as ZPTs. As mentioned above, it provides several kind of views: per day, per week, per month and per year.



fig. 1
Figure 1 - Month view of a Corporate Calendar instance

The per year view is rather wide so that you will need to scroll your page across as well as down to see all months (see figure below).

fig. 2
Figure 2 - Year view of a Corporate Calendar instance

In the week and month view, you add an event by clicking on the [Add event] link next to a date. In the year view, you must first click on a day before you can add a new event.

The figure below shows the 'Add Event' form. The event's description can be entered as plain text, structured text or HTML (see Format). The field 'Submitter' is not automatically filled with the logged-in user. You may enter any name you wish. The last name entered here will be remembered the next time you add an event.

fig. 3
Figure 3 - Adding a calendar event

CorpCalendar supports the AM/PM format as well as the 24h format for the start and end time of a calendar event. To switch between time formats, click the respective link in the upper right corner (in the figure above: 16:00 or 4PM, depending on which format is active). Note that your entries in the form will go lost if you haven't saved the event first before switching time formats. When using the AM/PM format, the time 22:00 will be switched to 10PM in the input fields of the form. Since the time input fields have a size restriction of 5 characters, you cannot enter a time such as 11:35PM. Instead you will have to enter the time as 23:35, which will be a hassle to those people who aren't used to the 24h system.

You can also add events that go on for several days. Just select the radio button to the left of the input field 'End date' and enter the date on which the event ends.

A positive feature of CorpCalendar is that it informs you if you try to add an event in the past (see figure below).

fig.4
Figure 4 - Warning when the user creates an event in the past

Besides editing an event, you can move it to another day or delete it using the links in the event's edit page.

Checkoutable Templates

Since CorpCalendar uses the CheckoutableTemplates product, you can access a list of checkoutable templates by adding /showCheckoutableTemplates to the URL of a CorpCalendar instance. With CorpCalendar, the list contains nine DTML methods, e.g. index_html.dtml and standard_html_header.dtml (see Figure below).

fig.5
Figure 5 - Checkoutable Templates for the calendar instance – styles.css.dtml has been checked out

Clicking on one of the 'Check out' links or selecting one or more of the checkboxes to the left of the link and clicking the 'Check out selected files' button will make a copy of the respective DTML files from the filesystem and add them to your CorpCalendar instance. You can then edit these objects, making changes in the layout or design of the instance, for example. The edited checked-out template is then used for your CorpCalendar instance instead of the corresponding original file from the filesystem.

The already checked-out files are shown under the heading 'Templates checked out' below the list of checkoutable DTML files (they no longer appear then in the main list, which contains only files that have not been checked out). You can undo the checked-out status of any object you have checked out, which will delete the object, and thus the changes, from within your CorpCalendar instance. The corresponding original file from the filesystem will then be applied again inside that instance.

Negative Points

What I didn't like about CorpCalendar was that it doesn't show the start and end time of an event in the overview pages (such as the month view). The times are only shown when one views a specific event. However, with a bit of DTML knowledge and the CheckoutableTemplates product, this missing feature can easily be implemented by using the methods showStartTime() and showEndTime() provided by the CorpCalendar product.

Another feature I find poorly implemented is the highlighting of events. In the various views of the calendar, every event is highlighted in a certain color. The color of an event changes, however, if the number of events shown on the page changes, i.e. the color is not stored as an attribute of an event. This is due to the way the color for an event is chosen. There is a list of several HTML color codes, such as #CCCCFF. When the overview page for the calendar (i.e. month view or week view) is rendered, the list of HTML colors is iterated over. The first event in point of time receives the first color in the list, the second event gets the second color, and so on.

The last point is that although several impossible (or better said senseless) cases, e.g. if an event ends before it starts, are caught with exceptions when an event is edited, the exceptions aren't thrown when an event is added. This allows you to add a senseless event but only to edit it later if you edit it in such a way that it makes sense again.

Conclusion

While there are still features that could use some improvement, such as the problem with the ending time of an event across days and with times such as 11:35PM in AM/PM mode, all in all CorpCalendar is a good product for small groups to keep track of their meetings and other events. It is easy to change the calendar's design using the CheckoutableTemplates product and with a bit of Python knowledge you could even add an event type attribute (birthday, appointment, etc.)and define the color highlighting for the various event types.

The CorpCalendar product is not suitable for large-scale use, but it doesn't presume to be.

Product Review End.


Kristoph Kirchner: was born in Berlin in 1977 and finished school in 1996. After completing a degree in Commercial Correspondence, Kirchner went on to study Computer Sciences at the Technical University of Berlin. Since then Kirchner has been working for beehive writing e-books on Zope and documentation for projects of beehive's customers. Kirchner also co-authored the first German Zope book "Zope: Content Management and Web Application Server", the book "Zope: Web Application Construction Kit" and the book "Zope: How to Build and Deliver Web Applications".


shim
shim  ZopeMag is committed to bringing you the best in Zope Documentation. shim
shim


Home   Subscribe   FAQ   Contact   Write for us   Privacy Policy   Weekly News   PyZine   opensourcexperts.com  

Reproduction of material from any of ZopeMag's pages without prior written permission is strictly prohibited. Copyright 2003 - 2005 ZopeMag Zope/Plone hosting by Nidelven IT