def _listing(request): 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) navparams = QuarantineNavigationParameters(request) navparams.store() lst = SQLlisting( request.user, navparams=navparams, elems_per_page=int( parameters.get_user(request.user, "MESSAGES_PER_PAGE") ) ) page = lst.paginator.getpage(navparams.get('page')) if not page: return empty_quarantine(request) content = lst.fetch(request, page.id_start, page.id_stop) ctx = getctx( "ok", listing=content, paginbar=pagination_bar(page), page=page.number ) if request.session.get('location', 'listing') != 'listing': ctx['menu'] = quar_menu() request.session['location'] = 'listing' return render_to_json_response(ctx)
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) navparams = QuarantineNavigationParameters(request) navparams.store() pattern = navparams.get('pattern', '') if pattern: criteria = navparams.get('criteria') if criteria == "both": criteria = "from_addr,subject,to" for c in criteria.split(","): if c == "from_addr": nfilter = Q(mail__from_addr__contains=pattern) elif c == "subject": nfilter = Q(mail__subject__contains=pattern) elif c == "to": rcptfilter = pattern continue else: raise BadRequest("unsupported search criteria %s" % c) flt = nfilter if flt is None else flt | nfilter msgtype = navparams.get('msgtype', None) if msgtype is not None: nfilter = Q(mail__msgrcpt__content=msgtype) flt = flt | nfilter if flt is not None else nfilter msgs = get_wrapper().get_mails(request, rcptfilter) page = navparams.get('page') lst = SQLlisting(request.user, msgs, flt, navparams=request.session["quarantine_navparams"], elems_per_page=int( parameters.get_user(request.user, "MESSAGES_PER_PAGE"))) page = lst.paginator.getpage(page) if not page: return empty_quarantine(request) content = lst.fetch(request, page.id_start, page.id_stop) ctx = getctx("ok", listing=content, paginbar=pagination_bar(page), page=page.number) if request.session.get('location', 'listing') != 'listing': ctx['menu'] = quar_menu() request.session['location'] = 'listing' return render_to_json_response(ctx)
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) navparams = QuarantineNavigationParameters(request) navparams.store() pattern = navparams.get('pattern', '') if pattern: criteria = navparams.get('criteria') if criteria == "both": criteria = "from_addr,subject,to" for c in criteria.split(","): if c == "from_addr": nfilter = Q(mail__from_addr__contains=pattern) elif c == "subject": nfilter = Q(mail__subject__contains=pattern) elif c == "to": rcptfilter = pattern continue else: raise BadRequest("unsupported search criteria %s" % c) flt = nfilter if flt is None else flt | nfilter msgtype = navparams.get('msgtype', None) if msgtype is not None: nfilter = Q(mail__msgrcpt__content=msgtype) flt = flt | nfilter if flt is not None else nfilter msgs = get_wrapper().get_mails(request, rcptfilter) page = navparams.get('page') lst = SQLlisting( request.user, msgs, flt, navparams=request.session["quarantine_navparams"], elems_per_page=int(parameters.get_user(request.user, "MESSAGES_PER_PAGE")) ) page = lst.paginator.getpage(page) if not page: return empty_quarantine(request) content = lst.fetch(request, page.id_start, page.id_stop) ctx = getctx( "ok", listing=content, paginbar=pagination_bar(page), page=page.number ) if request.session.get('location', 'listing') != 'listing': ctx['menu'] = quar_menu() request.session['location'] = 'listing' return render_to_json_response(ctx)
def _listing(request): """Listing initial view. Called the first time the listing page is displayed. """ if not request.user.is_superuser and request.user.group != 'SimpleUsers': if not Domain.objects.get_for_admin(request.user).count(): return empty_quarantine() navparams = QuarantineNavigationParameters(request) navparams.store() connector = get_connector(user=request.user, navparams=navparams) context = get_listing_pages(request, connector) if context is None: return empty_quarantine() context["listing"] = _render_to_string(request, "amavis/email_list.html", {"email_list": context["rows"]}) del context["rows"] if request.session.get('location', 'listing') != 'listing': context["menu"] = quar_menu(request.user) request.session["location"] = "listingx" return render_to_json_response(context)
def _listing(request): """Listing initial view. Called the first time the listing page is displayed. """ if not request.user.is_superuser and request.user.group != 'SimpleUsers': if not Domain.objects.get_for_admin(request.user).count(): return empty_quarantine() navparams = QuarantineNavigationParameters(request) navparams.store() connector = get_connector(user=request.user, navparams=navparams) context = get_listing_pages(request, connector) if context is None: return empty_quarantine() context["listing"] = _render_to_string( request, "amavis/email_list.html", {"email_list": context["rows"]} ) del context["rows"] if request.session.get('location', 'listing') != 'listing': context["menu"] = quar_menu(request.user) request.session["location"] = "listingx" return render_to_json_response(context)