Vacation Planner

VacationPlanner takes input data for vacation days for personnel and generates image (PNG, JPG, GIF, etc.), PDF, SVG, and HTML renderings. The image and PDF renderings are done with the ReportLab graphics toolkit, and there is also a rendering to SVG done with ReportLab. VacationPlanner's own rendering routines produce SVG directly and also a simple HTML table version. The layout in is to have time on the vertical axis, with the past extending downward from the top. The example data is for one complete year, so that the resulting graphic has a very great height. Vacations are plotted in columns for individual personnel.

Current release

No stable release available yet.

Project Description

LICENSE

  • GPL: See VacationPlanner.py header.

CREDITS

AUTHORSHIP

DESCRIPTION

VacationPlanner uses the ReportLab toolkit to generate a vacation calendar plot in various rendering targets and uses its own rendering routines to directly generate SVG and other targets.

VacationPlanner is a folderish Archetypes-based Plone/Zope product. The idea is to use various renderers to create images, PDF files, and/or SVG versions of the vacation planner and store them. This allows flexibility for a user of VacationPlanner to offer several format versions, if needed, and to experiment with rendering choices before deciding on the best one for the specific usage.

VacationPlanner takes input of the following items:

  • image size (width and height, in pixels)
  • position (x and y of upper left corner, in pixels)
  • a setting for scale-to-fit
  • vacations, entered as comma-separated values on separate lines for the vacations. Vacations are specified by:
    • username
    • realname
    • groupname
    • year
    • month
    • day
    • day portion (morning, evening, all day)
    • reason
    • red, green, blue (each 0-255)

REQUIREMENTS

PLATFORM NOTES

  • So far, testing has only been done on Linux.

INSTALLATION

  1. Install Adobe Acrobat Reader, taking note of its installation directory.
  2. Install the ReportLab toolkit, first editing rl_config.py in the reportlab directory to set the Acrobat directory, if needed, so the fonts will be found by the renderer.
  3. Install the renderPM addon from ReportLab.org.
  4. Put VacationPlanner in your Zope Products directory.
  5. Restart Zope.
  6. Install VacationPlanner into your Plone site using CMFQuickInstaller. (In Plone, select "plone setup", click on "Add/Remove Products" and install VacationPlanner.) You can also use the portal_quickinstaller tool from the ZMI to install the Product.

TO DO

  • Experiment with different fonts that don't degrade badly at small size.
  • Experiment with colors, line styles, and strokes, and labeling to perhaps find a better looking graphic design.
  • Add input fields for font size of various elements, or find reasonable calculations based on the input widths and heights of component parts of the drawing.
  • Improve the simple HTML version of the output.
  • Consider making an actual Vacation type, and allow creation of these in the folder. Individuals, or web administrators or managers, would create Vacation instances in the folder, and upon creation (and recreation by edit) of the rendering, the folder would be polled and the vacation objects queried for data. The existing CSV data entry mechanism could be retained for an alternative.
  • An interface with more robust calendaring systems might be needed.

BUGS AND FEATURE REQUESTS

Please report bugs and feature requests to Jeff Pittman, who can be reached at jeff@geojeff.org. Jeff is often on the #plone irc channel as geojeff.