Пример #1
0
def _build_dynamic_choice_list_filter(spec, report):
    wrapped = DynamicChoiceListFilterSpec.wrap(spec)
    choice_provider_spec = wrapped.get_choice_provider_spec()
    choice_provider = FilterChoiceProviderFactory.from_spec(
        choice_provider_spec)(report, wrapped.slug)
    choice_provider.configure(choice_provider_spec)

    invalid_spec = (wrapped.ancestor_expression and not set(
        wrapped.ancestor_expression.keys()) == set(['field', 'location_type']))
    if invalid_spec:
        raise BadSpecError(
            _("'ancestor_expression' must be empty dictionary or have 'field', 'location_type' keys"
              ))

    if wrapped.ancestor_expression and not isinstance(choice_provider,
                                                      LocationChoiceProvider):
        raise BadSpecError(
            _("'ancestor_expression' is applicable only for location choices"))

    return DynamicChoiceListFilter(
        name=wrapped.slug,
        datatype=wrapped.datatype,
        field=wrapped.field,
        label=wrapped.display,
        show_all=wrapped.show_all,
        url_generator=dynamic_choice_list_url,
        choice_provider=choice_provider,
        ancestor_expression=wrapped.ancestor_expression,
    )
Пример #2
0
 def _get_dynamic_choice_list_ui_filter(self):
     return DynamicChoiceListFilter(
         "my name",
         "my_field",
         "string",
         "my label",
         True,
         dynamic_choice_list_url,
         DataSourceColumnChoiceProvider(None, None),
     )
Пример #3
0
def _build_dynamic_choice_list_filter(spec):
    wrapped = DynamicChoiceListFilterSpec.wrap(spec)
    return DynamicChoiceListFilter(
        name=wrapped.slug,
        datatype=wrapped.datatype,
        field=wrapped.field,
        label=wrapped.display,
        required=wrapped.required,
        show_all=wrapped.show_all,
        url_generator=dynamic_choice_list_url,
    )
Пример #4
0
def _build_dynamic_choice_list_filter(spec, report):
    wrapped = DynamicChoiceListFilterSpec.wrap(spec)
    choice_provider_spec = wrapped.get_choice_provider_spec()
    choice_provider = FilterChoiceProviderFactory.from_spec(choice_provider_spec)(report, wrapped.slug)
    choice_provider.configure(choice_provider_spec)
    return DynamicChoiceListFilter(
        name=wrapped.slug,
        datatype=wrapped.datatype,
        field=wrapped.field,
        label=wrapped.display,
        show_all=wrapped.show_all,
        url_generator=dynamic_choice_list_url,
        choice_provider=choice_provider,
    )
Пример #5
0
def build_village_choice_list_filter_spec(spec, report):
    wrapped = VillageChoiceListFilterSpec.wrap(spec)
    choice_provider_spec = {"type": "location"}
    choice_provider = FilterChoiceProviderFactory.from_spec(
        choice_provider_spec)(report, wrapped.slug)
    choice_provider.configure(choice_provider_spec)

    return DynamicChoiceListFilter(
        name=wrapped.slug,
        datatype=wrapped.datatype,
        field=wrapped.field,
        label=wrapped.display,
        show_all=wrapped.show_all,
        url_generator=dynamic_choice_list_url,
        choice_provider=choice_provider,
        ancestor_expression=wrapped.ancestor_expression,
    )