Teaching Schedule

by Jeff Pittman last modified Feb 16, 2011 02:10 AM

TeachingSchedule takes information about courses and times offered and generates views of the teaching schedule. It uses the ReportLab toolkit and its own routines to emit PNG, and other image types, PDF, SVG and simple HTML renderings. The plot produced has a left-to-right layout, wherein days are shown as columns and the time line for the day is shown on the y-axis. A plot for an entire semester, using the default settings, will be a very wide image. The image (for png, jpg, gif, etc. renderings) can be scrolled sideways on the Plone page. The usual zooming, scrolling, and panning functions of PDF viewers may be used for the PDF rendering. And, for SVG, newer browsers are getting close to functional support for SVG, including zooming, panning, scrolling.

Project Description

LICENSE

  • GPL: See TeachingSchedule.py header.

CREDITS

AUTHORSHIP

DESCRIPTION

TeachingSchedule uses the ReportLab toolkit to generate a teaching schedule plot and its own routines to emit SVG and simple HTML renderings.

TeachingSchedule 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 teaching schedule and store them. This allows flexibility for a user of TeachingSchedule to offer several format versions, if needed. TeachingSchedule takes input of the following items:

  • image size (width and height, in pixels)
  • position (x and y of upper left corner, in pixels)
  • courses, entered as comma-separated values on separate lines for the courses. Courses are specified by:
    • username
    • year
    • month
    • day
    • hour
    • minute
    • duration_minutes
    • recurrence_interval
    • start_year
    • start_month
    • start_day
    • end_year
    • end_month
    • end_day
    • course_name
    • red, green, blue (each 0-255)

REQUIREMENTS

PLATFORM NOTES

  • So far, testing has only been done on Linux. Browser testing has been done with Internet Explorer and Opera 8.01, and also with Mozilla Firefox DeerPark 2 Alpha. Deerpark 2 pops up a save box when viewing SVG, instead of rendering the SVG on the page -- combinations of embed, object, and iframe tags were used to no avail to get Deerpark 2 to render on the page (although it seems that it worked under some combination).

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 TeachingSchedule in your Zope Products directory.
  5. Restart Zope.
  6. Install TeachingSchedule into your Plone site using CMFQuickInstaller. (In Plone, select "plone setup", click on "Add/Remove Products" and install TeachingSchedule.) You can also use the portal_quickinstaller tool from the ZMI to install the Product.

DERIVATIONS

This product is based on work done originally for GeologicTimeScale and for a presentation at the 2005 North American Plone Symposium in New Orleans. Other similar products will follow, including VacationPlanner.

Another obvious possibility would be something called ConferenceSchedule, which would be helpful for Plone conferences and symposia.

It should be easy to strip this product of all of its "teaching" accoutrements, to make a generic "EventSchedule" product.

TO DO

  • Change the use of File to Image for png, jpg, gif, etc., and learn how to use ATImage, ATDocument that are in Plone 2.1.
  • Don't show actual titles of the documents, e.g., drawing-directly-emitted.html, show the title of the schedule, e.g. Fall 2005
  • Update the helper text that shows at the top of an SVG-containing html page to explain that usage varies by platform and browser, that right-clicking on Windows will give at least some useful info, and that key combinations can be used on certain platforms. Also, shorten and cram so that these instructions fit in minimal space at the top.
  • Make fixes for Plone 2.1 (one is to get rid of suppressHiddenFiles in the templates, where folder_contents are used).
  • SVG label items are a bit off, probably by 1/2 the day width, or other associated objects.
  • Add labels for weeks and or months so it is easier to see where you are.
  • Add image map or javascript rollover or tooltip effects.
  • Beautify and add CSS defintions for use in the simple HTML rendering.
  • Add a room info item to Event to show room use.
  • Tie to the regular Plone event system to post events.
  • Add what-if analysis to check for time conflicts on prospective events, and to find available holes in the teaching schedule for scheduling new events.
  • Explore connection to more robust "calendaring" systems.
  • Consider making a Course type. Course instances would be added to the TeachingSchedule folder by teachers or department personnel. Upon creation or recreation (by editing), the folder would be checked for course instances and the graphic would be rendered. The existing CSV style of data input could be retained as an alternative.

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.

Current Release

No stable release available yet.

All Releases

Version Released Description Compatibility Status
0.1alpha First release. More about this release…
Plone 2.0.5
alpha

Comments (1)

Frank Dimauro Nov 17, 2011 09:18 PM
This product needs to be removed from Plone.org. If it is not being maintained and only (supposedly) works with plone 2.x, time to flush it.