Пример #1
0
def request_search_and_display( request ):
    '''
    Searches for RideRequests with the given filters in <request>.POST
    Renders results of the search into "browse.html".
    This view is different from 'request_search' because it returns HTML, not JSON.
    '''
    form = RideRequestOfferSearchForm( request.POST )
    if form.is_valid():
        rectangles = json.loads( form.cleaned_data['polygon'] )['rectangles']
        bboxArea, bboxContour = _merge_boxes( rectangles )

        offer_start_time = form.cleaned_data['date']
        offer_fuzziness = form.cleaned_data['fuzziness']

        requestEncoder = RideRequestEncoder()
        ride_requests =  _request_search( polygon=bboxContour,
                                          date=offer_start_time,
                                          fuzziness=offer_fuzziness )
        # Filter out outdated requests
        ride_requests = [r for r in ride_requests if r.date >= datetime.now()]
        return _browse( request, locals() )

    return render_to_response( "index.html",
                               locals(),
                               context_instance=RequestContext(request) )
Пример #2
0
def offer_search( request ):
    '''
    Searches for and returns any RideOffers whose driving area encompasses that
    of this RideRequest.
    '''
    # Use the form data
    form = RideRequestOfferSearchForm( request.POST )
    if form.is_valid():
        filtered_offers = _offer_search( **form.cleaned_data )
        return HttpResponse( json.dumps({"offers":filtered_offers}, cls=RideOfferEncoder),
                             mimetype='application/json' )
    # Something went wrong.... return an empty response?
    return HttpResponse()
Пример #3
0
def offer_search_and_display( request ):
    '''
    Searches for ride offers per the restrictions given in <request>.POST.
    Renders the results into the "browse.html" page. This is different from
    the 'offer_search' view because it renders HTML instead of giving JSON.
    '''
    form = RideRequestOfferSearchForm( request.POST )
    if form.is_valid():
        ride_offers = _offer_search( **form.cleaned_data )
        # Filter outdated results
        ride_offers = [o for o in ride_offers if o.date >= datetime.now()]
        return _browse( request, locals() )
    return render_to_response( "index.html",
                               locals(),
                               context_instance=RequestContext(request) )