def _build_boolean_expression_filter(spec, context): wrapped = BooleanExpressionFilterSpec.wrap(spec) return SinglePropertyValueFilter( expression=ExpressionFactory.from_spec(wrapped.expression, context), operator=get_operator(wrapped.operator), reference_value=wrapped.property_value, )
def _build_choice_list_indicator(spec, context): wrapped_spec = ChoiceListIndicatorSpec.wrap(spec) base_display_name = wrapped_spec.display_name def _construct_display(choice): return '{base} ({choice})'.format(base=base_display_name, choice=choice) def _construct_column(choice): return '{col}_{choice}'.format(col=spec['column_id'], choice=choice) choice_indicators = [ BooleanIndicator( display_name=_construct_display(choice), column_id=_construct_column(choice), filter=SinglePropertyValueFilter( expression=wrapped_spec.getter, operator=wrapped_spec.get_operator(), reference_expression=ExpressionFactory.from_spec(choice), ), wrapped_spec=None, ) for choice in spec['choices'] ] return CompoundIndicator(base_display_name, choice_indicators, wrapped_spec)
def _build_property_match_filter(spec, context): warnings.warn( "property_match are deprecated. Use boolean_expression instead.", DeprecationWarning, ) wrapped = PropertyMatchFilterSpec.wrap(spec) return SinglePropertyValueFilter( expression=wrapped.getter, operator=EQUAL, reference_value=wrapped.property_value, )