I am in the process of redesigning a PHP web site using Joomla or Drupal. I haven't quite decided on which I will use, so, I've been playing around with each.

The current site allows our users to specify their availability to attend a "training session". We use a calendar widget that a previous site developer acquired. That widget presents the user's calendar to him and allows him to select multiple days, with the click of a mouse, thus indicating his availability. Here's what it looks like.

I need to replace this calendar with a Joomla or Drupal equivalent if one exists. I've looked at the offerings for "registration", "event", and so called "availability" calendars, but, I haven't quite found what I need. They don't seem to store the data separately, and, seem to be "property" or "event" oriented. The major requirements are:

Each user's availability is stored separately. This allows us to produce a report that shows who's available for a specified date range.

The user must be allowed to select multiple days. The nature of the activity requires multiple selection.

The calendar must allow for future dates. Hence, the arrows at the top in the existing calendar.

I'm not sure such an extension exists, but, if you know of one, I'd love to hear about it.

2 Answers
2

Have a look at the Calendar module. Here is an excerpt from its project page:

... display any Views date field in calendar formats, including CCK date fields, node created or updated dates, etc. Switch between year, month, and day views. Back and next navigation is provided for all views. Lots of the Calendar functionality comes from the Date module, so any time you update the Calendar module you should be sure you also update to the latest version of the Date module at the same time.

The Community documentation of the calendar module is another great resource to get you going. Here is a quote of that page also:

The Date and Calendar modules are a suite of modules that work together to handle dates and calendaring. They include a Date API, a Date module to create CCK date fields that can be added to any content type (Entity Bundle in D7), and a Calendar module that works with the Views module to display dates in a calendar.

In your specific case, create a "content type" called something like "availability", "schedule", "appointment", "timeframe" (or any better name you see fit). Use the "title" and the "body" for whatever you see fit. But make sure to "add a field" to it, with some label of your choice. But with a type of "date". Using things like "data multi select", "data picker", etc, you can have any user enter the required data (even in the future if you want). After doing all that, the Calendar module will be able to dispay that all in a calendar format.

So with that your question is reduced to basically designing some content type with a date field, and users will then perform like a "create new content" (of the type you want to use). It's that easy, really. And from then on you get all those amazing extra features that Drupal offers, like theming stuff, access control, mobile options, multi language, wysiwyg editing, etc.

For an online sample, refer to this (public) calendar of some primary school (with a tiny budget). It may not be in your own language, but just note the marks in yellow or green. It shows that some parent confirmed to be available (at a give date and time) to help children pass some street with a lot of traffic. These parents just create some "nodes" (which is basically only picking dates) to confirm so. Don't bother either about the look-and-feel of that page (the theming), and be aware that this is not even using the most recent Drupal release.

PS: About your "...I haven't quite decided on which I will use ...": I'd go for Drupal, to leave all options open for future requirements also. Drupal is no longer just a CMS, it's a CMF, aka Content Management Framework.