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, )
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), )
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, )
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, )
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, )