def _case_results(self, case_id_list): def _filter(res): if self.filters: for path, val in self.filters.items(): actual_val = safe_index(res.case_json, path.split("/")) if actual_val != val: # closed=false => case.closed == False if val in ('null', 'true', 'false'): if actual_val != json.loads(val): return False else: return False return True if not self.ids_only or self.filters or self.footprint: # optimization hack - we know we'll need the full cases eventually # so just grab them now. base_results = [CaseAPIResult(couch_doc=case, id_only=self.ids_only) \ for case in self.iter_cases(case_id_list)] else: base_results = [ CaseAPIResult(id=id, id_only=True) for id in case_id_list ] if self.filters: base_results = filter(_filter, base_results) if self.footprint: return [CaseAPIResult(couch_doc=case, id_only=self.ids_only) for case in \ get_footprint([res.couch_doc for res in base_results], strip_history=self.strip_history).values()] else: return base_results
def _case_results(self, case_id_list): def _filter(res): if self.filters: for path, val in self.filters.items(): actual_val = safe_index(res.case_json, path.split("/")) if actual_val != val: # closed=false => case.closed == False if val in ('null', 'true', 'false'): if actual_val != json.loads(val): return False else: return False return True if not self.ids_only or self.filters or self.footprint: # optimization hack - we know we'll need the full cases eventually # so just grab them now. base_results = [CaseAPIResult(couch_doc=case, id_only=self.ids_only) \ for case in self.iter_cases(case_id_list)] else: base_results = [CaseAPIResult(id=id, id_only=True) for id in case_id_list] if self.filters: base_results = filter(_filter, base_results) if self.footprint: return [CaseAPIResult(couch_doc=case, id_only=self.ids_only) for case in \ get_footprint([res.couch_doc for res in base_results], strip_history=self.strip_history).values()] else: return base_results
def _all_relevant_cases_dict(self, cases): return get_footprint(cases, domain=self.domain, strip_history=True)