mirror of https://github.com/OCA/web.git
27 lines
830 B
Python
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"]
|
|
]
|