def graphs(request): gset = request.GET.get("gset", None) gsets = events.raiseDictEvent("GetGraphSets") if not gset in gsets: raise ModoboaException(_("Unknown graphic set")) searchq = request.GET.get("searchquery", None) period = request.GET.get("period", "day") tplvars = dict(graphs=[], period=period) if searchq in [None, "global"]: if not request.user.is_superuser: if not Domain.objects.get_for_admin(request.user).count(): return ajax_simple_response({"status": "ok"}) tplvars.update( domain=Domain.objects.get_for_admin(request.user)[0].name ) else: tplvars.update(domain="global") else: domain = Domain.objects.filter(name__contains=searchq) if domain.count() != 1: return ajax_simple_response({"status": "ok"}) if not request.user.can_access(domain[0]): raise PermDeniedException tplvars.update(domain=domain[0].name) if period == "custom": if not "start" in request.GET or not "end" in request.GET: raise ModoboaException(_("Bad custom period")) start = request.GET["start"] end = request.GET["end"] G = Grapher() period_name = "%s_%s" % (start.replace('-', ''), end.replace('-', '')) for tpl in gsets[gset].get_graphs(): tplvars['graphs'].append(tpl.display_name) G.process( tplvars["domain"], period_name, str2Time(*start.split('-')), str2Time(*end.split('-')), tpl ) tplvars["period_name"] = period_name tplvars["start"] = start tplvars["end"] = end else: tplvars['graphs'] = gsets[gset].get_graph_names() return ajax_simple_response(dict( status="ok", content=_render_to_string(request, "stats/graphs.html", tplvars) ))
def graphs(request): gset = request.GET.get("gset", None) gsets = events.raiseDictEvent("GetGraphSets") if not gset in gsets: raise NotFound(_("Unknown graphic set")) searchq = request.GET.get("searchquery", None) period = request.GET.get("period", "day") tplvars = dict(graphs=[], period=period) if searchq in [None, "global"]: if not request.user.is_superuser: if not Domain.objects.get_for_admin(request.user).count(): return render_to_json_response({}) tplvars.update( domain=Domain.objects.get_for_admin(request.user)[0].name ) else: tplvars.update(domain="global") else: domain = Domain.objects.filter(name__contains=searchq) if domain.count() != 1: return render_to_json_response({}) if not request.user.can_access(domain[0]): raise PermDeniedException tplvars.update(domain=domain[0].name) if period == "custom": if not "start" in request.GET or not "end" in request.GET: raise BadRequest(_("Bad custom period")) start = request.GET["start"] end = request.GET["end"] G = Grapher() expr = re.compile(r'[:\- ]') period_name = "%s_%s" % (expr.sub('', start), expr.sub('', end)) for tpl in gsets[gset].get_graphs(): tplvars['graphs'].append(tpl.display_name) G.process( tplvars["domain"], period_name, str2Time(*expr.split(start)), str2Time(*expr.split(end)), tpl ) tplvars["period_name"] = period_name tplvars["start"] = start tplvars["end"] = end else: tplvars['graphs'] = gsets[gset].get_graph_names() return render_to_json_response({ 'content': _render_to_string(request, "stats/graphs.html", tplvars) })
def graphs(request): gset = request.GET.get("gset", None) gsets = events.raiseDictEvent("GetGraphSets") if not gset in gsets: raise NotFound(_("Unknown graphic set")) searchq = request.GET.get("searchquery", None) period = request.GET.get("period", "day") tplvars = dict(graphs=[], period=period) if searchq in [None, "global"]: if not request.user.is_superuser: if not Domain.objects.get_for_admin(request.user).count(): return render_to_json_response({}) tplvars.update( domain=Domain.objects.get_for_admin(request.user)[0].name) else: tplvars.update(domain="global") else: domain = Domain.objects.filter(name__contains=searchq) if domain.count() != 1: return render_to_json_response({}) if not request.user.can_access(domain[0]): raise PermDeniedException tplvars.update(domain=domain[0].name) if period == "custom": if not "start" in request.GET or not "end" in request.GET: raise BadRequest(_("Bad custom period")) start = request.GET["start"] end = request.GET["end"] G = Grapher() expr = re.compile(r'[:\- ]') period_name = "%s_%s" % (expr.sub('', start), expr.sub('', end)) for tpl in gsets[gset].get_graphs(): tplvars['graphs'].append(tpl.display_name) G.process(tplvars["domain"], period_name, str2Time(*expr.split(start)), str2Time(*expr.split(end)), tpl) tplvars["period_name"] = period_name tplvars["start"] = start tplvars["end"] = end else: tplvars['graphs'] = gsets[gset].get_graph_names() return render_to_json_response( {'content': _render_to_string(request, "stats/graphs.html", tplvars)})