Beispiel #1
0
 def _process(self):
     if self.action == 'reject':
         self.reject()
     elif self.action == 'cancel':
         self.occurrence.cancel(session.user)
     return jsonify(occurrence=reservation_occurrences_schema.dump(
         self.occurrence, many=False))
 def _process(self):
     q = (ReservationOccurrence.query.filter(
         ReservationOccurrence.start_dt > utc_to_server(now_utc()),
         db.or_(Reservation.booked_for_user == session.user,
                Reservation.created_by_user == session.user)).join(
                    Reservation).order_by(
                        ReservationOccurrence.start_dt.asc()).limit(5))
     return jsonify(reservation_occurrences_schema.dump(q).data)
Beispiel #3
0
 def _process(self):
     q = (ReservationOccurrence.query
          .filter(ReservationOccurrence.start_dt > utc_to_server(now_utc()),
                  db.or_(
                      Reservation.booked_for_user == session.user,
                      Reservation.created_by_user == session.user))
          .join(Reservation)
          .order_by(ReservationOccurrence.start_dt.asc())
          .limit(5))
     return jsonify(reservation_occurrences_schema.dump(q).data)
Beispiel #4
0
def _serialize_booking_details(booking):
    attributes = reservation_details_schema.dump(booking).data
    date_range, occurrences = get_booking_occurrences(booking)
    date_range = [dt.isoformat() for dt in date_range]
    booking_details = dict(attributes)
    occurrences_by_type = dict(bookings={}, cancellations={}, rejections={}, other_bookings={})
    booking_details['occurrences'] = occurrences_by_type
    booking_details['date_range'] = date_range
    for dt, [occ] in occurrences.iteritems():
        serialized_occ = reservation_occurrences_schema.dump([occ]).data
        if occ.is_cancelled:
            occurrences_by_type['cancellations'][dt.isoformat()] = serialized_occ
        elif occ.is_rejected:
            occurrences_by_type['rejections'][dt.isoformat()] = serialized_occ
        occurrences_by_type['bookings'][dt.isoformat()] = serialized_occ if occ.is_valid else []
    start_dt = datetime.combine(booking.start_dt, time.min)
    end_dt = datetime.combine(booking.end_dt, time.max)
    occurrences_by_type['other_bookings'] = get_room_bookings(booking.room, start_dt, end_dt,
                                                              skip_booking_id=booking.id)
    return booking_details
Beispiel #5
0
def serialize_occurrences(data):
    return {
        dt.isoformat(): reservation_occurrences_schema.dump(data)
        for dt, data in data.iteritems()
    }
Beispiel #6
0
def serialize_occurrences(data):
    return {dt.isoformat(): reservation_occurrences_schema.dump(data).data for dt, data in data.iteritems()}