Ejemplo n.º 1
0
 def headers(self):
     versions = get_all_versions()
     headers = DataTablesHeader(
         DataTablesColumn(_("Project"))
     )
     for version in versions:
         headers.add_column(DataTablesColumn(version))
     return headers
Ejemplo n.º 2
0
    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()