Ejemplo n.º 1
0
def _get_date_filter(request, context, df, dt, date_fields):
    query = models.Q()
    GET = request.GET
    has_df = (df in GET) and GET[df].strip()
    has_dt = (dt in GET) and GET[dt].strip()
    if has_df and has_dt:
        query_date_from_string = GET[df]
        query_date_to_string = GET[dt]
        context[df] = query_date_from_string
        context[dt] = query_date_to_string
        query = search.get_date_query(query_date_from_string, query_date_to_string, date_fields)
    elif has_df:
        query_date_from_string = GET[df]
        context[df] = query_date_from_string
        query = search.get_date_query(query_date_from_string, None, date_fields)
    elif has_dt:
        query_date_to_string = GET[dt]
        context[dt] = query_date_to_string
        query = search.get_date_query(None, query_date_to_string, date_fields)

    if query is None:
        query = models.Q()
        messages.add_message(request, messages.WARNING, "Invalid date. Please use MM/DD/YYYY.")

    return query
Ejemplo n.º 2
0
def _date_search(request, fields, model, queryset=None):
    if not queryset:
        queryset = model.objects.all()

    if ("df" in request.GET) and request.GET["df"].strip() and ("dt" in request.GET) and request.GET["dt"].strip():
        query_date_from_string = request.GET["df"]
        query_date_to_string = request.GET["dt"]
        date_query = get_date_query(query_date_from_string, query_date_to_string, fields)
        if date_query:
            if queryset:
                queryset = queryset.filter(date_query)
            else:
                queryset = model.objects.filter(date_query)
        else:
            messages.add_message(request, messages.WARNING, "Invalid date. Please use MM/DD/YYYY.")
    elif ("df" in request.GET) and request.GET["df"].strip():
        query_date_from_string = request.GET["df"]
        date_query = get_date_query(query_date_from_string, None, fields)
        if date_query:
            if queryset:
                queryset = queryset.filter(date_query)
            else:
                queryset = model.objects.filter(date_query)
        else:
            messages.add_message(request, messages.WARNING, "Invalid date. Please use MM/DD/YYYY.")
    elif ("dt" in request.GET) and request.GET["dt"].strip():
        query_date_to_string = request.GET["dt"]
        date_query = get_date_query(None, query_date_to_string, fields)
        if date_query:
            if queryset:
                queryset = queryset.filter(date_query)
            else:
                queryset = model.objects.filter(date_query)
        else:
            messages.add_message(request, messages.WARNING, "Invalid date. Please use MM/DD/YYYY.")

    return queryset