示例#1
0
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
示例#2
0
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
示例#3
0
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