def _process(self, args): query = search_for_rooms(args, only_available=True) if 'limit' in args: query = query.limit(args.pop('limit')) rooms = query.all() if 'additional_room_ids' in args: rooms.extend( Room.query.filter(Room.is_active, Room.id.in_( args.pop('additional_room_ids')))) date_range, availability = get_rooms_availability( rooms, args['start_dt'], args['end_dt'], args['repeat_frequency'], args['repeat_interval'], flexibility=0) date_range = [dt.isoformat() for dt in date_range] for data in availability.viewvalues(): # add additional helpful attributes data.update({ 'num_days_available': len(date_range) - len(data['conflicts']), 'all_days_available': not data['conflicts'] }) return jsonify_data(flash=False, availability=_serialize_availability(availability), date_range=date_range)
def _process(self, args): query = search_for_rooms(args, only_available=True) if 'limit' in args: query = query.limit(args.pop('limit')) rooms = query.all() if 'additional_room_ids' in args: rooms.extend( Room.query.filter(Room.is_active, Room.id.in_( args.pop('additional_room_ids')))) date_range, availability = get_rooms_availability( rooms, args['start_dt'], args['end_dt'], args['repeat_frequency'], args['repeat_interval'], flexibility=0) date_range = [dt.isoformat() for dt in date_range] for room_id in availability: data = availability[room_id] data['room'] = rooms_schema.dump(data['room'], many=False).data data.update({ k: serialize_occurrences(data[k]) for k in [ 'candidates', 'pre_bookings', 'bookings', 'conflicts', 'pre_conflicts' ] }) data.update({ 'num_days_available': len(date_range) - len(data['conflicts']), 'all_days_available': not data['conflicts'] }) return jsonify_data(flash=False, availability=availability, date_range=date_range)
def _process(self, args): filter_availability = args.get('start_dt') and args.get('end_dt') query = search_for_rooms(args, only_available=filter_availability) return jsonify(map_rooms_schema.dump(query.all()).data)
def _process(self, args): filter_availability = args.get('start_dt') and args.get('end_dt') query = search_for_rooms(args, only_available=filter_availability) query = query.limit(args['limit']).offset(args['offset']) rooms, total = with_total_rows(query) return jsonify(total=total, rooms=rooms_schema.dump(rooms).data)