def headers(self): versions = get_all_versions() headers = DataTablesHeader( DataTablesColumn(_("Project")) ) for version in versions: headers.add_column(DataTablesColumn(version)) return headers
def rows(self): versions = get_all_versions() now = datetime.utcnow() days = now - timedelta(days=90) def get_data(): terms = [ AggregationTerm('domain', 'domain'), AggregationTerm('commcare_version', 'form.meta.commcare_version') ] query = FormES().submitted(gte=days, lte=now) return NestedTermAggregationsHelper(base_query=query, terms=terms).get_data() rows = {} for domain in self.es_results.get('hits', {}).get('hits', []): domain_name = domain['_source']['name'] rows.update({domain_name: [domain_name] + [0] * len(versions)}) for data in get_data(): if data.commcare_version in versions: row = rows.get(data.domain) version_index = versions.index(data.commcare_version) row[version_index + 1] = data.doc_count return rows.values()