def _listing(request): flt = None rcptfilter = None msgs = None if not request.user.is_superuser and request.user.group != 'SimpleUsers': if not Domain.objects.get_for_admin(request.user).count(): return empty_quarantine(request) order = request.GET.get("order", "-date") if not "navparams" in request.session: request.session["navparams"] = {} request.session["navparams"]["order"] = order parse_search_parameters(request) if "pattern" in request.session: criteria = request.session["criteria"] if criteria == "both": criteria = "from_addr,subject,to" for c in criteria.split(","): if c == "from_addr": nfilter = Q( mail__from_addr__contains=request.session["pattern"]) elif c == "subject": nfilter = Q(mail__subject__contains=request.session["pattern"]) elif c == "to": rcptfilter = request.session["pattern"] continue else: raise Exception("unsupported search criteria %s" % c) flt = nfilter if flt is None else flt | nfilter msgs = get_wrapper().get_mails(request, rcptfilter) if "page" in request.GET: request.session["page"] = request.GET["page"] pageid = int(request.session["page"]) else: if "page" in request.session: del request.session["page"] pageid = 1 lst = SQLlisting(request.user, msgs, flt, navparams=request.session["navparams"], elems_per_page=int( parameters.get_user(request.user, "MESSAGES_PER_PAGE"))) page = lst.paginator.getpage(pageid) if not page: return empty_quarantine(request) content = lst.fetch(request, page.id_start, page.id_stop) navbar = lst.render_navbar(page, "listing/?") ctx = getctx("ok", listing=content, navbar=navbar, menu=quar_menu(request.user)) return HttpResponse(simplejson.dumps(ctx), mimetype="application/json")
def empty_quarantine(request): content = "<div class='alert alert-info'>%s</div>" % _("Empty quarantine") ctx = getctx("ok", level=2, listing=content, navbar="", menu=quar_menu(request.user)) return HttpResponse(simplejson.dumps(ctx), mimetype="application/json")
def _listing(request): flt = None rcptfilter = None msgs = None if not request.user.is_superuser and request.user.group != 'SimpleUsers': if not Domain.objects.get_for_admin(request.user).count(): return empty_quarantine(request) order = request.GET.get("order", "-date") if not "navparams" in request.session: request.session["navparams"] = {} request.session["navparams"]["order"] = order parse_search_parameters(request) if "pattern" in request.session: criteria = request.session["criteria"] if criteria == "both": criteria = "from_addr,subject,to" for c in criteria.split(","): if c == "from_addr": nfilter = Q(mail__from_addr__contains=request.session["pattern"]) elif c == "subject": nfilter = Q(mail__subject__contains=request.session["pattern"]) elif c == "to": rcptfilter = request.session["pattern"] continue else: raise Exception("unsupported search criteria %s" % c) flt = nfilter if flt is None else flt | nfilter msgs = get_wrapper().get_mails(request, rcptfilter) if "page" in request.GET: request.session["page"] = request.GET["page"] pageid = int(request.session["page"]) else: if "page" in request.session: del request.session["page"] pageid = 1 lst = SQLlisting( request.user, msgs, flt, navparams=request.session["navparams"], elems_per_page=int(parameters.get_user(request.user, "MESSAGES_PER_PAGE")) ) page = lst.paginator.getpage(pageid) if not page: return empty_quarantine(request) content = lst.fetch(request, page.id_start, page.id_stop) navbar = lst.render_navbar(page, "listing/?") ctx = getctx("ok", listing=content, navbar=navbar, menu=quar_menu(request.user)) return HttpResponse(simplejson.dumps(ctx), mimetype="application/json")