Beispiel #1
0
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,
    )
Beispiel #2
0
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)
Beispiel #3
0
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,
    )