def handle(self, *args, **options): start = options['startdate'] end = options['enddate'] print 'Starting...\n' ids = get_build_ids(start, end) print 'Checking {} builds\n'.format(len(ids)) case_types_by_domain = {} all_form_xmlns = set() for build in iter_docs(Application.get_db(), ids): domain = build.get('domain') errors = forms_with_empty_case_block(build) if not errors: continue case_types, form_xmlns = errors all_form_xmlns |= form_xmlns domain_case_counts = case_types_by_domain.setdefault(domain, {}) case_counts = { case_type: get_number_of_cases_in_domain(domain, case_type) for case_type in case_types if case_type not in domain_case_counts } domain_case_counts.update(case_counts) import pprint pprint.pprint(case_types_by_domain) print print all_form_xmlns
def update_indicators_for_case_type(self, case_type, domain): print "\n\n\nFetching %s cases in domain %s...." % (case_type, domain) relevant_indicators = CaseIndicatorDefinition.get_all( namespace=MVP.NAMESPACE, domain=domain, case_type=case_type ) if relevant_indicators: num_cases = get_number_of_cases_in_domain(domain, type=case_type) print ("\nFound the following Case Indicator Definitions " "for Case Type %s in Domain %s") % ( case_type, domain, ) print "--%s\n" % "\n--".join([i.slug for i in relevant_indicators]) print "Found %d possible cases for update." % num_cases case_ids = get_case_ids_in_domain(domain, type=case_type) self._throttle_updates( "Cases of type %s in %s" % (case_type, domain), relevant_indicators, num_cases, domain, case_ids, CommCareCase, )
def test_get_number_of_cases_in_domain__type(self): self.assertEqual( get_number_of_cases_in_domain(self.domain, type='type1'), len([ case for case in self.cases if case.domain == self.domain and case.type == 'type1' ]))
def get_pact_cases(cls): # query couch to get reduce count of all PACT cases case_es = ReportCaseES(PACT_DOMAIN) # why 'or 100'?? total_count = \ get_number_of_cases_in_domain('pact', type=PACT_CASE_TYPE) or 100 fields = ['_id', 'name', 'pactid.#value'] query = case_es.base_query(terms={'type': PACT_CASE_TYPE}, fields=fields, start=0, size=total_count) query['filter']['and'].append({"prefix": {"dot_status.#value": "dot"}}) results = case_es.run_query(query) for res in results['hits']['hits']: yield res['fields']
def update_indicators_for_case_type(self, case_type, domain): print "\n\n\nFetching %s cases in domain %s...." % (case_type, domain) relevant_indicators = CaseIndicatorDefinition.get_all( namespace=MVP.NAMESPACE, domain=domain, case_type=case_type) if relevant_indicators: num_cases = get_number_of_cases_in_domain(domain, type=case_type) print( "\nFound the following Case Indicator Definitions " "for Case Type %s in Domain %s") % (case_type, domain) print "--%s\n" % "\n--".join([i.slug for i in relevant_indicators]) print "Found %d possible cases for update." % num_cases case_ids = get_case_ids_in_domain(domain, type=case_type) self._throttle_updates( "Cases of type %s in %s" % (case_type, domain), relevant_indicators, num_cases, domain, case_ids, CommCareCase)
def cases(domain, *args): return get_number_of_cases_in_domain(domain)
def test_get_number_of_cases_in_domain(self): self.assertEqual( get_number_of_cases_in_domain(self.domain), len([case for case in self.cases if case.domain == self.domain]))
def test_get_number_of_cases_in_domain__type(self): self.assertEqual( get_number_of_cases_in_domain(self.domain, type='type1'), len([case for case in self.cases if case.domain == self.domain and case.type == 'type1']) )
def test_get_number_of_cases_in_domain(self): self.assertEqual( get_number_of_cases_in_domain(self.domain), len([case for case in self.cases if case.domain == self.domain]) )