def _sql_to_json_data(domains, sql_data, datespan, individual_domain_limit=16): """ Helper function to transform sql queries into what the admin reports framework likes. Handles initial values and historical data sql_data needs {'timestamp': t, 'domain': d} """ all_domains = len(domains) > individual_domain_limit start = get_timestamp_millis(datespan.startdate) if all_domains: histo_data = {"All Domains": dict()} init_ret = {"All Domains": 0} ret = {"All Domains": list()} else: histo_data = {d: dict() for d in domains} init_ret = {d: 0 for d in domains} ret = {d: list() for d in domains} for data in sql_data: tstamp = get_timestamp_millis(data['timestamp']) domain = "All Domains" if all_domains else data['domain'] if tstamp < start: init_ret[domain] += 1 else: if tstamp not in histo_data[domain]: histo_data[domain][tstamp] = 1 else: histo_data[domain][tstamp] += 1 for k, v in histo_data.iteritems(): for l, w in v.iteritems(): ret[k].append({'count': w, 'time': l}) return init_ret, ret
def get_data_point(count, date): return { "count": count, "time": get_timestamp_millis(date), }