def cases_in_last(domain, days, case_type=None): """ Returns the number of open cases that have been modified in the last <days> days """ now = datetime.utcnow() then = json_format_datetime(now - timedelta(days=int(days))) now = json_format_datetime(now) query = CaseES().domain(domain).modified_range(gte=then, lte=now).is_closed(False) if case_type: query = query.case_type(case_type) return query.count()
def es_results(self): query = CaseES('report_cases').domain(self.domain) if self.case_type: query = query.case_type(self.case_type) if self.case_filter: query = query.filter(self.case_filter) if self.case_status: query = query.filter(filters.term("closed", self.case_status == 'closed')) query = ( query .set_sorting_block(self.get_sorting_block()) .start(self.pagination.start) .size(self.pagination.count) ) return query.run().hits