Ejemplo n.º 1
0
 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'])
Ejemplo n.º 2
0
 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'])
Ejemplo n.º 3
0
    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
Ejemplo n.º 4
0
    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