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)
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)