def stats_data(request): histo_type = request.GET.get('histogram_type') interval = request.GET.get("interval", "week") datefield = request.GET.get("datefield") get_request_params_json = request.GET.get("get_request_params", None) get_request_params = ( json.loads(HTMLParser.HTMLParser().unescape(get_request_params_json)) if get_request_params_json is not None else {} ) stats_kwargs = { k: get_request_params[k] for k in get_request_params if k != "domain_params_es" } if datefield is not None: stats_kwargs['datefield'] = datefield domain_params_es = get_request_params.get("domain_params_es", {}) if not request.GET.get("enddate"): # datespan should include up to the current day when unspecified request.datespan.enddate += timedelta(days=1) domain_params, __ = parse_args_for_es(request, prefix='es_') domain_params.update(domain_params_es) domains = get_project_spaces(facets=domain_params) return json_response(get_stats_data( histo_type, domains, request.datespan, interval, **stats_kwargs ))
def stats_data(request): histo_type = request.GET.get('histogram_type') interval = request.GET.get("interval", "week") datefield = request.GET.get("datefield") get_request_params_json = request.GET.get("get_request_params", None) get_request_params = ( json.loads(six.moves.html_parser.HTMLParser().unescape(get_request_params_json)) if get_request_params_json is not None else {} ) stats_kwargs = { k: get_request_params[k] for k in get_request_params if k != "domain_params_es" } if datefield is not None: stats_kwargs['datefield'] = datefield domain_params_es = get_request_params.get("domain_params_es", {}) if not request.GET.get("enddate"): # datespan should include up to the current day when unspecified request.datespan.enddate += timedelta(days=1) domain_params, __ = parse_args_for_es(request, prefix='es_') domain_params.update(domain_params_es) domains = get_project_spaces(facets=domain_params) try: return json_response(get_stats_data( histo_type, domains, request.datespan, interval, **stats_kwargs )) except HistoTypeNotFoundException: return HttpResponseBadRequest( 'histogram_type param must be one of <ul><li>{}</li></ul>' .format('</li><li>'.join(HISTO_TYPE_TO_FUNC)))