web/web_custom_modifier/models/common.py

27 lines
830 B
Python

# © 2023 - today Numigi (tm) and all its contributors (https://bit.ly/numigiens)
# License LGPL-3.0 or later (http://www.gnu.org/licenses/lgpl).
from typing import List, Mapping
def set_custom_modifiers_on_fields(modifiers: List[dict], fields: Mapping[str, dict]):
_hide_selection_items(modifiers, fields)
def _hide_selection_items(modifiers, fields):
hidden_items = (
m
for m in modifiers
if m["type_"] == "field" and m["modifier"] == "selection_hide"
)
for item in hidden_items:
_hide_single_selection_item(item, fields)
def _hide_single_selection_item(modifier, fields):
field = fields.get(modifier["reference"])
if field and "selection" in field:
field["selection"] = [
(k, v) for k, v in field["selection"] if k != modifier["key"]
]