Example #1
0
def get_reserve_url(room, day, time_from, time_to):
  """Figures out where to send the user if they click the "reserve" button"""
  ss_to_library = dict([(v, k) for k, v in library_map().iteritems()])
  # when passing library argument to IDs
  library_to_ids = dict([(v, k) for k, v in library_name_to_ids().iteritems()])
  key = (room.name, room.kind.building.name)

  if key in ss_to_library:  # set up parameters for library
    library_name = ss_to_library[key]
    library_id = library_to_ids[library_name]
    date = day.strftime("%A, %B %d, %Y")
    time = "%d:%02d" % (time_from / 100, time_from % 100)
    (hour_diff, min_diff) = (time_to / 100 - time_from / 100,
                             time_to % 100 - time_from % 100)
    num_people = room.kind.max_occupancy
    duration = 60 * hour_diff + min_diff
    return PENN_LIBRARY_BASE_URL + urlencode((
      ("library", library_name_to_shortlib(library_name)),
      ("date", date),
      ("inquiry", "roomBook"),
      ("dev", 0),
      ("roomid", library_id),
      ("time", time),
      ("length", duration),
      ("numPeople", num_people)))
  elif room.kind.building.name == HUNTSMAN_BUILDING_NAME:
    # Huntsman Deep Linking
    date = day.strftime("%m/%d/%Y")
    time = "%02d:%02d" % (time_from / 100, time_from % 100)
    (hour_diff, min_diff) = (time_to / 100 - time_from / 100,
                             time_to % 100 - time_from % 100)
    duration = 60 * hour_diff + min_diff
    return WHARTON_SPIKE_BASE_URL + urlencode((
      ("date", date),
      ("start_time", time),
      ("duration", duration),
      ("room_number", room.name)))
    # TODO: verify that things on the G floor work
  # else no deep linking
  return room.kind.reserve_url