Advanced Session & BoF Scheduling

Last updated on
28 April 2017

Advanced Scheduling Features

COD supports configurable room ordering, configurable time ordering, and multiple different types of content occupying the same room + time combination. These features were introduced into COD in http://drupal.org/node/1034482.

  • Support for multiple content types within a Room and Time-slot combination on a schedule
  • Views-powered, per-display and Nodequeue optional Room order
  • Views-powered, per-display and Nodequeue optional Time-slot order
  • Field-exposed, role-controlled content scheduling controls
  • Schedule display event days

BoF scheduling

COD has support for birds-of-a-feather (BoFs) type sessions, where there is no (or little) explicit moderation and the scheduling is decided by the submitter.

  1. Enable the COD BoF Feature at admin/build/features
  2. Grant permissions for a role to 'schedule bof_session content' and to create and edit own bof_sessions
  3. The Feature adds a BoF schedule at the path program/bofs that you can customize
  4. If a room will hold a mix of content types (e.g. sessions, BoFs, and schedule items) add those content types to the View in the node type filter. (this will allow you to see availability conflicts)
  5. If you want users to schedule content while looking at the schedule grid, change the scheduling mode of the View style

Multiple BoFs in the same room

The following instructions are for holding multiple BoFs in the same room.

  • Make sure you have some time slots
  • Make sure you have some rooms
  • Rooms that can hold multiple BoFs at the same time should have a capacity greater than 1
  • Visit the BoF schedule page at programs/bofs and the links to add BoFs will appear automatically.

Scheduling "Registration", "Lunch", or a "Break"

The following instructions are for if you would like certain content to happen in many rooms concurrently.

  • The "Schedule item" content type was provided specifically for this purose.
  • Content types control whether other content can share the same Room / Time-slot combination. These settings are on the Content type Edit form for all things you want to appear on the schedule.
  • Room capacity is ignored if content that overrides capacity is scheduled (i.e, content that has the "No, content of this type overrides room availability and occupies entire time slot" option selected on the edit form)
  • Note that a schedule showing multiple content types must have its filter set to all content types you would like shown

Changing Rooms and Time-slots on schedules

By default, COD will show all rooms and time-slots on both the session schedule, and the BoF schedule. Since these are defined by views you may define your own filter and sort criteria for either the list of rooms, or the list of times. Use the Nodequeue module to allow for different rooms and/or time-slots on different displays (see below).

The COD Session schedule Views display style makes use of two views that come installed by default:

  • schedule_room_list: Defaults to all published rooms sorted alphabetically
  • cod_time_slots: Defaults to all published time slots sorted by start time, optionally takes day argument (YYYY-MM-DD) for limiting time slots to a single day

Different rooms (or time slots) for Sessions than BoFs

Tthe COD Session schedule Views display style allows different rooms and time-slots for each display of the view.

  • Install the Nodequeue module.
  • Create a specific nodequeue of rooms for each display.
  • (Optional) Create a specific nodequeue of time slots for each display.
  • Edit the schedule view. Adjust the settings for the Schedule session style. Specify the queue to use for rooms (or time slots) for each display of your schedule.

To complete Nodequeue integration with COD scheduling you'll need to add the following to the room and time slot views as well:

  • Edit the schedule_room_list view.
  • Add a relationship: Nodequeue: Queue (name). Do NOT require this relationship.
  • Sort criteria: Nodequeue: Position
  • Arguments: Nodequeue: Queue ID
  • (Optional) Edit the cod_time_slots view similarly.
  • (Optional) Add a relationship: Nodequeue: Queue (name). Do NOT require this relationship.
  • (Optional) Arguments: Nodequeue: Queue ID. You will need to re-order the arguments so this one comes first.