Advertisement
Guest User

Untitled

a guest
Dec 8th, 2016
68
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.24 KB | None | 0 0
  1. from io import BytesIO
  2. import csv
  3. import sys
  4.  
  5. from pytz import timezone
  6.  
  7. from indico.modules.rb.models.reservations import RepeatMapping
  8.  
  9. tz = timezone('Europe/Zurich')
  10. room_ids = {96, 336, 97, 98}
  11. out = BytesIO()
  12.  
  13. occurrences = ReservationOccurrence.find(
  14. Reservation.room_id.in_(room_ids),
  15. ReservationOccurrence.start_dt >= tz.localize(datetime(2016, 1, 1)),
  16. ReservationOccurrence.end_dt < tz.localize(datetime(2018, 1, 1)),
  17. ReservationOccurrence.is_valid,
  18. _join=ReservationOccurrence.reservation,
  19. _eager=ReservationOccurrence.reservation
  20. ).options(ReservationOccurrence.NO_RESERVATION_USER_STRATEGY).order_by(ReservationOccurrence.start_dt).all()
  21.  
  22. writer = csv.writer(out)
  23. writer.writerow(['Room', 'Reason', 'Booked for', 'Frequency', 'Date', 'Start time', 'End time', 'URL'])
  24.  
  25. for occur in occurrences:
  26. reservation = occur.reservation
  27. data = [reservation.room.full_name.encode('utf-8'), reservation.booking_reason.encode('utf-8'),
  28. reservation.booked_for_name.encode('utf-8'),
  29. RepeatMapping.get_short_name(reservation.repeat_frequency, reservation.repeat_interval),
  30. occur.start_dt.date(), occur.start_dt.time(), occur.end_dt.time(), reservation.details_url]
  31. writer.writerow(data)
  32.  
  33. out.seek(0)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement