Esempio n. 1
0
def export_all(request, form=None, filename='tickets',
    filterdict=None, postfiltercallback=None, *args, **kw):
    """
        Exporte tous les tickets sans aucun filtre
    """

    if request.GET.get("reset", False) and request.session.get("list_filters", {}):
        request.session["list_filters"] = {}
        return http.HttpResponseRedirect(".")

    if not form:
        if request.method == "POST" and request.POST.get("validate-filters", None):
            form = SearchTicketForm(request.POST, user=request.user)
            if form.is_valid():
                set_filters(request, filterdict)
        else:
            form = SearchTicketForm(get_filters(request), user=request.user)

    if not get_filters(request).get("state"):
        qs = Ticket.open_tickets.filter(parent__isnull=True)
    else:
        qs = Ticket.tickets.filter(parent__isnull=True)

    # Form cleaned_data ?
    if form.is_valid():
        data = form.cleaned_data.copy()
        if not request.user.has_perm("ticket.can_list_all") and form.cleaned_data["text"]:
            qs = qs.filter_or_child(Q(title__icontains=form.cleaned_data["text"]) | Q(text__icontains=form.cleaned_data["text"]), user=request.user)
            del data["text"]
        qs = qs.filter_queryset(data, user=request.user)

    # unassigned / nonvalide
    if filterdict:
        qs = qs.filter_or_child(filterdict, user=request.user)

    # On va filtrer la liste des tickets en fonction
    # de la relation user => client
    qs = qs.filter_ticket_by_user(request.user)

    if postfiltercallback:
        qs = postfiltercallback(qs)

    # Le tri
    qs = qs.add_order_by(request)
    return make_csv_response(qs, filename)
Esempio n. 2
0
def export_me(request, *args, **kw):
    form = None
    if not request.POST.get("assigned_to", None):
        form = SearchTicketForm({
                    'assigned_to': request.user.id},
                    get_filters(request),
                    user=request.user)
        set_filters(request, form.data)
    return export_all(request, form,
                      filename=request.user.username, *args, **kw)