pyohio/symposion

Import Schedule Grid from Spreadsheet

Closed this issue · 1 comments

The goal is to set up the data in the database representing their schedule grid - days, rooms, and slots, where a slot is one or more rooms over a period of time that can be used for some event. This feature does not address assigning events to slots, just establishing the slots.

They will create a spreadsheet with data that establishes the grid, and upload it.
Each row of the spreadsheet will represent one slot in one room. Slots can extend across multiple rooms (e.g. for breaks, or plenary sessions); more about that in a bit.

Columns in order:

  • date - the day for this slot
  • time_start - the time when this slot starts
  • time_end - the time when this slot ends
  • kind - the kind of slot. Must be “talk” or “plenary”.
  • room - the name of the room. Be consistent; if a room name is misspelled in one row, it’ll create a new room in the database with that name.

For kind, the difference is that if more than one row represents the same time period, any rows with a kind of “plenary” will be combined into a single slot that includes all the row’s rooms, while each row with a kind of “talk” will be kept as an independent slot. (It is not possible to represent more than one multi-room slot in the same time period. This proposal could be extended to do that, but I’m guessing it’s not needed)

Example: suppose we have a conference with one day, two rooms, a plenary session in both rooms followed by separate talks in each room, then lunch:

date time_start time_end kind room
12/12/2013 10:00 AM 11:00 AM plenary Room2
12/12/2013 10:00 AM 11:00 AM plenary Room1
12/12/2013 11:00 AM 12:00 PM talk Room1
12/12/2013 11:00 AM 12:00 PM talk Room2
12/12/2013 12:00 PM 12:45 PM plenary Room1
12/12/2013 12:00 PM 12:45 PM plenary Room2

This will result in a schedule grid like this, where each color is a different slot.

Time Room1 Room2
10:00 Merged Merged
11:00
12:00 Merged Merged

Schedule grid import - errors and other interesting cases

  • If a schedule already has some slots defined and a spreadsheet is imported, the slots from the spreadsheet will be added to the ones that already exist.
  • If changes need to be made to existing slots, the admin will need to be used to edit or delete slots.
  • The importer will prevent creating multiple slots for the same room that overlap in time.
  • If importing the spreadsheet would result in an overlap when done, the whole import will fail.