def es_query(self, paginated): reviewed_form_ids = get_form_ids_by_status( self.domain, getattr(self, 'display_status', None)) if len(reviewed_form_ids) > 0: if not getattr(self, 'es_response', None): date_tuple = _get_date_range( self.request_params.get('range', None)) filtered_case_ids = self._get_filtered_cases( date_tuple[0], date_tuple[1]) location_ids = get_location_hierarchy_by_id( self.request_params.get("location_id", None), self.domain, CCT_only=True) q = _get_report_query(date_tuple[0], date_tuple[1], filtered_case_ids, location_ids) if len(reviewed_form_ids) > 0: q["filter"]["and"].append( {"ids": { "values": reviewed_form_ids }}) q["sort"] = self.get_sorting_block() if self.get_sorting_block( ) else [{ "form.meta.timeEnd": { "order": "desc" } }] if paginated: self.es_response = es_query( params={"domain.exact": self.domain}, q=q, es_url=ES_URLS.get('forms'), start_at=self.pagination.start, size=self.pagination.count) else: self.es_response = es_query( params={"domain.exact": self.domain}, q=q, es_url=ES_URLS.get('forms')) else: self.es_response = {'hits': {'total': 0}} return self.es_response
def es_query(self, paginated): if not getattr(self, 'es_response', None): date_tuple = _get_date_range(self.request_params.get( 'range', None)) filtered_case_ids = self._get_filtered_cases( date_tuple[0], date_tuple[1]) location_ids = get_location_hierarchy_by_id( self.request_params.get("location_id", None), self.domain, CCT_only=True) q = _get_report_query(date_tuple[0], date_tuple[1], filtered_case_ids, location_ids) xmlnss = _get_relevant_xmlnss_for_service_type( self.request.GET.get("service_type_filter")) if xmlnss: q["filter"]["and"].append({"terms": {"xmlns.exact": xmlnss}}) modify_close = filter(None, [u'Modify/Close Client']) q["filter"]["and"].append( {"not": { "terms": { "form.@name": modify_close } }}) q["sort"] = self.get_sorting_block() \ if self.get_sorting_block() else [{"form.meta.timeEnd": {"order": "desc"}}] if paginated: self.es_response = es_query( params={"domain.exact": self.domain}, q=q, es_url=ES_URLS.get('forms'), start_at=self.pagination.start, size=self.pagination.count) else: self.es_response = es_query( params={"domain.exact": self.domain}, q=q, es_url=ES_URLS.get('forms')) return self.es_response
def _get_filtered_cases(self, start_date, end_date): query = { "query": { "bool": { "must_not": [{ "range": { "modified_on.date": { "lt": start_date } } }, { "range": { "opened_on.date": { "gt": end_date } } }] } } } case_search = self.request.GET.get("case_search", "") if len(case_search) > 0: query["filter"] = { "and": [{ "regexp": { "name.exact": ".*?%s.*?" % case_search } }] } es_response = es_query(params={"domain.exact": self.domain}, q=query, es_url=ES_URLS.get('cases')) return [ res['_source']['_id'] for res in es_response.get('hits', {}).get('hits', []) ]
def es_query(self, paginated): if not getattr(self, 'es_response', None): date_tuple = _get_date_range(self.request_params.get('range', None)) filtered_case_ids = self._get_filtered_cases(date_tuple[0], date_tuple[1]) location_ids = get_location_hierarchy_by_id(self.request_params.get("location_id", None), self.domain, CCT_only=True) q = _get_report_query(date_tuple[0], date_tuple[1], filtered_case_ids, location_ids) xmlnss = _get_relevant_xmlnss_for_service_type(self.request.GET.get("service_type_filter")) if xmlnss: q["filter"]["and"].append({"terms": {"xmlns.exact": xmlnss}}) modify_close = filter(None, [u'Modify/Close Client']) q["filter"]["and"].append({"not": {"terms": {"form.@name": modify_close}}}) q["sort"] = self.get_sorting_block() \ if self.get_sorting_block() else [{"form.meta.timeEnd": {"order": "desc"}}] if paginated: self.es_response = es_query(params={"domain.exact": self.domain}, q=q, es_url=ES_URLS.get('forms'), start_at=self.pagination.start, size=self.pagination.count) else: self.es_response = es_query(params={"domain.exact": self.domain}, q=q, es_url=ES_URLS.get('forms')) return self.es_response
def es_query(self, paginated): reviewed_form_ids = get_form_ids_by_status(self.domain, getattr(self, 'display_status', None)) if len(reviewed_form_ids) > 0: if not getattr(self, 'es_response', None): date_tuple = _get_date_range(self.request_params.get('range', None)) filtered_case_ids = self._get_filtered_cases(date_tuple[0], date_tuple[1]) location_ids = get_location_hierarchy_by_id(self.request_params.get("location_id", None), self.domain, CCT_only=True) q = _get_report_query(date_tuple[0], date_tuple[1], filtered_case_ids, location_ids) if len(reviewed_form_ids) > 0: q["filter"]["and"].append({"ids": {"values": reviewed_form_ids}}) q["sort"] = self.get_sorting_block() if self.get_sorting_block() else [{"form.meta.timeEnd" : {"order": "desc"}}] if paginated: self.es_response = es_query(params={"domain.exact": self.domain}, q=q, es_url=ES_URLS.get('forms'), start_at=self.pagination.start, size=self.pagination.count) else: self.es_response = es_query(params={"domain.exact": self.domain}, q=q, es_url=ES_URLS.get('forms')) else: self.es_response = {'hits': {'total': 0}} return self.es_response
def es_query(self, paginated): if not getattr(self, 'es_response', None): range = self.request_params.get('range', None) start_date = None end_date = None if range is not None: dates = str(range).split(_(" to ")) start_date = dates[0] end_date = dates[1] filtered_case_ids = self._get_filtered_cases(start_date, end_date) exclude_form_ids = [mcct_status.form_id for mcct_status in McctStatus.objects.filter( domain=self.domain, received_on__range=(start_date, end_date)) if (mcct_status.status != "eligible" or (mcct_status.immunized == False and (date.today() - mcct_status.registration_date).days < 272 and mcct_status.is_booking == False))] location_ids = get_location_hierarchy_by_id(self.request_params.get("location_id", None), self.domain, CCT_only=True) q = _get_report_query(start_date, end_date, filtered_case_ids, location_ids) if len(exclude_form_ids) > 0: q["filter"]["and"].append({"not": {"ids": {"values": exclude_form_ids}}}) xmlnss = _get_relevant_xmlnss_for_service_type(self.request.GET.get("service_type_filter")) if xmlnss: q["filter"]["and"].append({"terms": {"xmlns.exact": xmlnss}}) modify_close = filter(None, [u'Modify/Close Client']) q["filter"]["and"].append({"not": {"terms": {"form.@name": modify_close}}}) q["sort"] = self.get_sorting_block() \ if self.get_sorting_block() else [{"form.meta.timeEnd" : {"order": "desc"}}] if paginated: self.es_response = es_query(params={"domain.exact": self.domain}, q=q, es_url=ES_URLS.get('forms'), start_at=self.pagination.start, size=self.pagination.count) else: self.es_response = es_query(params={"domain.exact": self.domain}, q=q, es_url=ES_URLS.get('forms')) return self.es_response
def _get_filtered_cases(self, start_date, end_date): query = { "query": { "bool": { "must_not": [ {"range": {"modified_on.date": {"lt": start_date}}}, {"range": {"opened_on.date": {"gt": end_date}}} ] } } } case_search = self.request.GET.get("case_search", "") if len(case_search) > 0: query["filter"] = { "and": [ {"regexp": {"name.exact": ".*?%s.*?" % case_search}} ] } es_response = es_query(params={"domain.exact": self.domain}, q=query, es_url=ES_URLS.get('cases')) return [res['_source']['_id'] for res in es_response.get('hits', {}).get('hits', [])]
def es_query(self, paginated): if not getattr(self, 'es_response', None): range = self.request_params.get('range', None) start_date = None end_date = None if range is not None: dates = str(range).split(_(" to ")) start_date = dates[0] end_date = dates[1] filtered_case_ids = self._get_filtered_cases(start_date, end_date) exclude_form_ids = [ mcct_status.form_id for mcct_status in McctStatus.objects.filter( domain=self.domain, received_on__range=(start_date, end_date)) if (mcct_status.status != "eligible" or ( mcct_status.immunized == False and (date.today() - mcct_status.registration_date).days < 272 and mcct_status.is_booking == False)) ] location_ids = get_location_hierarchy_by_id( self.request_params.get("location_id", None), self.domain, CCT_only=True) q = _get_report_query(start_date, end_date, filtered_case_ids, location_ids) if len(exclude_form_ids) > 0: q["filter"]["and"].append( {"not": { "ids": { "values": exclude_form_ids } }}) xmlnss = _get_relevant_xmlnss_for_service_type( self.request.GET.get("service_type_filter")) if xmlnss: q["filter"]["and"].append({"terms": {"xmlns.exact": xmlnss}}) modify_close = filter(None, [u'Modify/Close Client']) q["filter"]["and"].append( {"not": { "terms": { "form.@name": modify_close } }}) q["sort"] = self.get_sorting_block() \ if self.get_sorting_block() else [{"form.meta.timeEnd" : {"order": "desc"}}] if paginated: self.es_response = es_query( params={"domain.exact": self.domain}, q=q, es_url=ES_URLS.get('forms'), start_at=self.pagination.start, size=self.pagination.count) else: self.es_response = es_query( params={"domain.exact": self.domain}, q=q, es_url=ES_URLS.get('forms')) return self.es_response