def _form_filter(form): app_id = form.get('app_id', None) if app_id and app_id != MISSING_APP_ID: return es_filters.AND( form_es.app(app_id), form_es.xmlns(form['xmlns']) ) return form_es.xmlns(form['xmlns'])
def es_query(self): time_filter = form_es.submitted if self.by_submission_time else form_es.completed mobile_user_and_group_slugs = self.request.GET.getlist(EMWF.slug) query = (form_es.FormES().domain(self.domain).filter( time_filter( gte=self.datespan.startdate, lt=self.datespan.enddate_adjusted)).filter( self._get_users_filter(mobile_user_and_group_slugs))) if not self.request.can_access_all_locations: query = query.filter(self.scope_filter()) # filter results by app and xmlns if applicable if FormsByApplicationFilter.has_selections(self.request): form_values = self.all_relevant_forms.values() if form_values: query = query.OR(*[self._form_filter(f) for f in form_values]) # Exclude system forms unless they selected "Unknown User" if HQUserType.UNKNOWN not in EMWF.selected_user_types( mobile_user_and_group_slugs): query = query.NOT(form_es.xmlns(SYSTEM_FORM_XMLNS)) return query
def es_query(self): time_filter = form_es.submitted if self.by_submission_time else form_es.completed mobile_user_and_group_slugs = self.request.GET.getlist(EMWF.slug) query = (form_es.FormES() .domain(self.domain) .filter(time_filter(gte=self.datespan.startdate, lt=self.datespan.enddate_adjusted)) .filter(self._get_users_filter(mobile_user_and_group_slugs))) # filter results by app and xmlns if applicable if FormsByApplicationFilter.has_selections(self.request): form_values = self.all_relevant_forms.values() if form_values: query = query.OR(*[self._form_filter(f) for f in form_values]) # Exclude system forms unless they selected "Unknown User" if HQUserType.UNKNOWN not in EMWF.selected_user_types(mobile_user_and_group_slugs): query = query.NOT(form_es.xmlns(SYSTEM_FORM_XMLNS)) return query