def create_export_filter(request, domain, export_type='form'): request_obj = request.POST if request.method == 'POST' else request.GET from corehq.apps.reports.filters.users import UserTypeFilter app_id = request_obj.get('app_id', None) user_filters, use_user_filters = UserTypeFilter.get_user_filter(request) use_user_filters &= bool(user_filters) group = None if use_user_filters else get_group( **json_request(request_obj)) if export_type == 'case': if use_user_filters: groups = [g.get_id for g in Group.get_case_sharing_groups(domain)] filtered_users = users_matching_filter(domain, user_filters) filter = SerializableFunction(case_users_filter, users=filtered_users, groups=groups) else: filter = SerializableFunction(case_group_filter, group=group) else: filter = SerializableFunction(app_export_filter, app_id=app_id) datespan = request.datespan if datespan.is_valid(): datespan.set_timezone( get_timezone_for_user(request.couch_user, domain)) filter &= SerializableFunction(datespan_export_filter, datespan=datespan) if use_user_filters: filtered_users = users_matching_filter(domain, user_filters) filter &= SerializableFunction(users_filter, users=filtered_users) else: filter &= SerializableFunction(group_filter, group=group) return filter
def create_export_filter(request, domain, export_type='form'): request_obj = request.POST if request.method == 'POST' else request.GET from corehq.apps.reports.filters.users import UserTypeFilter app_id = request_obj.get('app_id', None) user_filters, use_user_filters = UserTypeFilter.get_user_filter(request) use_user_filters &= bool(user_filters) group = None if use_user_filters else get_group(**json_request(request_obj)) if export_type == 'case': if use_user_filters: groups = [g.get_id for g in Group.get_case_sharing_groups(domain)] filtered_users = users_matching_filter(domain, user_filters) filter = SerializableFunction(case_users_filter, users=filtered_users, groups=groups) else: filter = SerializableFunction(case_group_filter, group=group) else: filter = SerializableFunction(app_export_filter, app_id=app_id) datespan = request.datespan if datespan.is_valid(): datespan.set_timezone(get_timezone_for_user(request.couch_user, domain)) filter &= SerializableFunction(datespan_export_filter, datespan=datespan) if use_user_filters: filtered_users = users_matching_filter(domain, user_filters) filter &= SerializableFunction(users_filter, users=filtered_users) else: filter &= SerializableFunction(group_filter, group=group) return filter
def create_export_filter(request, domain, export_type='form'): from corehq.apps.reports.filters.users import UserTypeFilter app_id = request.GET.get('app_id', None) group, users = get_group_params(domain, **json_request(request.GET)) user_filters, use_user_filters = UserTypeFilter.get_user_filter(request) if export_type == 'case': if user_filters and use_user_filters: filtered_users = users_matching_filter(domain, user_filters) filter = SerializableFunction(case_users_filter, users=filtered_users) else: filter = SerializableFunction(case_group_filter, group=group) else: filter = SerializableFunction(app_export_filter, app_id=app_id) datespan = request.datespan if datespan.is_valid(): datespan.set_timezone(get_timezone(request.couch_user, domain)) filter &= SerializableFunction(datespan_export_filter, datespan=datespan) if user_filters and use_user_filters: filtered_users = users_matching_filter(domain, user_filters) filter &= SerializableFunction(users_filter, users=filtered_users) else: filter &= SerializableFunction(group_filter, group=group) return filter