SimpleLevels() and LevelsType.NONE as DefaultValue or InputHint?

How do I set “No levels” as an input hint for a SimpleLevels form field?

I tried

"levels_upper": DictElement(
    parameter_form = SimpleLevels(
        title = Title("Upper levels"),
        migrate = migrate_to_integer_simple_levels,
        level_direction = LevelDirection.UPPER,
        form_spec_template = Integer(),
        prefill_levels_type = LevelsType.NONE,
    )),

but this only yields missing 1 required keyword-only argument: 'prefill_fixed_levels'.

Then I tried:

"levels_upper": DictElement(
    parameter_form = SimpleLevels(
        title = Title("Upper levels"),
        migrate = migrate_to_integer_simple_levels,
        level_direction = LevelDirection.UPPER,
        form_spec_template = Integer(),
        prefill_levels_type = LevelsType.NONE,
        prefill_fixed_levels = InputHint((0, 0)),
    )),

but this yields

  File "/omd/sites/dev23/lib/python3/cmk/gui/utils/rule_specs/legacy_converter.py", line 2009, in _make_levels_default_value
    raise NotImplementedError()  # should never happen.
    ^^^^^^^^^^^^^^^^^^^^^^^^^^^
NotImplementedError

:scream:

Is it not possible?

"levels_upper": DictElement(
    parameter_form = SimpleLevels(
        title = Title("Upper levels"),
        migrate = migrate_to_integer_simple_levels,
        level_direction = LevelDirection.UPPER,
        form_spec_template = Integer(),
        prefill_fixed_levels = InputHint((0, 0)),
    )),

works but will show “Fixed levels” with 0 and 0.

1 Like

Hab ein einziges Beispiel im Source gefunden zu dem Problem :slight_smile:

            "duration": DictElement(
                parameter_form=SimpleLevels(
                    title=Title("Loop duration"),
                    level_direction=LevelDirection.UPPER,
                    form_spec_template=TimeSpan(
                        displayed_magnitudes=(
                            TimeMagnitude.DAY,
                            TimeMagnitude.HOUR,
                            TimeMagnitude.MINUTE,
                            TimeMagnitude.SECOND,
                        ),
                    ),
                    prefill_levels_type=DefaultValue(LevelsType.NONE),
                    prefill_fixed_levels=InputHint((30.0, 60.0)),
                    migrate=migrate_to_float_simple_levels,
                ),
            ),

Denke mal sollte helfen.

2 Likes

Ach, da gehört noch ein DefaultValue() drum. Sagt einem ja auch keiner.

2 Likes

Denke ich auch manchmal :rofl:

1 Like

Bin an einem Artikel zu solchen Formularen dran… Habt Geduld mit mir.

2 Likes