示例#1
0
def test_filter_available(
    dummy_room,
    create_reservation,
    create_blocking,
    has_booking,
    has_blocking,
    has_pre_booking,
    include_pre_bookings,
    has_pending_blocking,
    include_pending_blockings,
    filtered,
):
    if has_booking:
        create_reservation(
            start_dt=datetime.combine(date.today(), time(8)), end_dt=datetime.combine(date.today(), time(10))
        )
    if has_pre_booking:
        create_reservation(
            start_dt=datetime.combine(date.today(), time(10)),
            end_dt=datetime.combine(date.today(), time(12)),
            is_accepted=False,
        )
    if has_blocking:
        create_blocking(state=BlockedRoom.State.accepted)
    if has_pending_blocking:
        create_blocking(state=BlockedRoom.State.pending)
    availabilty_filter = Room.filter_available(
        get_day_start(date.today()),
        get_day_end(date.today()),
        (RepeatFrequency.NEVER, 0),
        include_pre_bookings=include_pre_bookings,
        include_pending_blockings=include_pending_blockings,
    )
    assert set(Room.find_all(availabilty_filter)) == (set() if filtered else {dummy_room})
示例#2
0
    def _process(self):
        form = RequestListFilterForm(request.args, csrf_enabled=False)
        results = None
        if request.args and form.validate():
            reverse = form.direction.data == 'desc'
            talks = form.granularity.data == 'talks'
            from_dt = as_utc(get_day_start(
                form.start_date.data)) if form.start_date.data else None
            to_dt = as_utc(get_day_end(
                form.end_date.data)) if form.end_date.data else None
            states = {form.state.data} if form.state.data is not None else None
            results = find_requests(talks=talks,
                                    from_dt=from_dt,
                                    to_dt=to_dt,
                                    states=states)
            if not talks:
                results = [(req, req.event, req.event.start_dt)
                           for req in results]
            results = group_list(results,
                                 lambda x: x[2].date(),
                                 itemgetter(2),
                                 sort_reverse=reverse)
            results = OrderedDict(
                sorted(results.viewitems(), key=itemgetter(0),
                       reverse=reverse))

        return WPAudiovisualManagers.render_template('request_list.html',
                                                     form=form,
                                                     results=results)
 def _process(self):
     form = RequestListFilterForm(request.args)
     results = None
     if form.validate_on_submit():
         reverse = form.direction.data == 'desc'
         from_dt = as_utc(get_day_start(form.start_date.data)) if form.start_date.data else None
         to_dt = as_utc(get_day_end(form.end_date.data)) if form.end_date.data else None
         results = _find_requests(from_dt=from_dt, to_dt=to_dt)
         results = group_list(results, lambda req: dateutil.parser.parse(req['requested_at']).date(),
                              sort_reverse=reverse)
         results = OrderedDict(sorted(results.viewitems(), reverse=reverse))
     return WPRoomAssistance.render_template('request_list.html', form=form, results=results,
                                             parse_dt=dateutil.parser.parse)
示例#4
0
 def _process(self):
     form = VCRoomListFilterForm(request.args, csrf_enabled=False)
     results = None
     if request.args and form.validate():
         reverse = form.direction.data == 'desc'
         from_dt = as_utc(get_day_start(form.start_date.data)) if form.start_date.data else None
         to_dt = as_utc(get_day_end(form.end_date.data)) if form.end_date.data else None
         results = find_event_vc_rooms(from_dt=from_dt, to_dt=to_dt, distinct=True)
         results = group_list((r for r in results if r.event_new),
                              key=lambda r: r.event_new.start_dt.date(),
                              sort_by=lambda r: r.event_new.start_dt,
                              sort_reverse=reverse)
         results = OrderedDict(sorted(results.viewitems(), key=itemgetter(0), reverse=reverse))
     return WPVCService.render_template('vc_room_list.html', form=form, results=results,
                                        action=url_for('.vc_room_list'))
示例#5
0
 def _process(self):
     form = VCRoomListFilterForm(request.args)
     results = None
     if request.args and form.validate():
         reverse = form.direction.data == 'desc'
         from_dt = as_utc(get_day_start(form.start_date.data)) if form.start_date.data else None
         to_dt = as_utc(get_day_end(form.end_date.data)) if form.end_date.data else None
         results = find_event_vc_rooms(from_dt=from_dt, to_dt=to_dt, distinct=True)
         results = group_list((r for r in results if r.event),
                              key=lambda r: r.event.getStartDate().date(),
                              sort_by=lambda r: r.event.getStartDate(),
                              sort_reverse=reverse)
         results = OrderedDict(sorted(results.viewitems(), key=itemgetter(0), reverse=reverse))
     return WPVCService.render_template('vc_room_list.html', form=form, results=results,
                                        action=url_for('.vc_room_list'))
示例#6
0
def test_filter_available(dummy_room, create_reservation, create_blocking,
                          has_booking, has_blocking,
                          has_pre_booking, include_pre_bookings,
                          has_pending_blocking, include_pending_blockings, filtered):
    if has_booking:
        create_reservation(start_dt=datetime.combine(date.today(), time(8)),
                           end_dt=datetime.combine(date.today(), time(10)))
    if has_pre_booking:
        create_reservation(start_dt=datetime.combine(date.today(), time(10)),
                           end_dt=datetime.combine(date.today(), time(12)),
                           state=ReservationState.pending)
    if has_blocking:
        create_blocking(state=BlockedRoom.State.accepted)
    if has_pending_blocking:
        create_blocking(state=BlockedRoom.State.pending)
    availabilty_filter = Room.filter_available(get_day_start(date.today()), get_day_end(date.today()),
                                               (RepeatFrequency.NEVER, 0),
                                               include_pre_bookings=include_pre_bookings,
                                               include_pending_blockings=include_pending_blockings)
    assert set(Room.find_all(availabilty_filter)) == (set() if filtered else {dummy_room})