25 lines
1.1 KiB
Python
25 lines
1.1 KiB
Python
import db
|
|
|
|
from .widget_meta import widget_meta
|
|
from .control_value import _control_value
|
|
from ..element_types.list_element_types import list_element_types
|
|
|
|
|
|
def controls_with_values(slug, el):
|
|
"""Pour le panneau de propriétés : la liste des réglages du widget de
|
|
cet élément, chacun avec sa valeur actuelle déjà résolue. Le réglage
|
|
"définition_id" du Répéteur de données a besoin du jeu courant pour
|
|
lister les objets disponibles — d'où le paramètre slug."""
|
|
meta = widget_meta(el.get("widget"))
|
|
result = []
|
|
for control in meta.get("controls", []):
|
|
control = dict(control)
|
|
if control["key"] == "definition_id":
|
|
defs = db.list_definitions(slug)
|
|
control["options"] = [("", "(sélectionner un objet)")] + [(str(d["id"]), d["name"]) for d in defs]
|
|
if control["key"] == "template_type_id":
|
|
types = list_element_types(slug)
|
|
control["options"] = [("", "(aucun — utiliser le modèle de texte ci-dessous)")] + [(str(t["id"]), t["name"]) for t in types]
|
|
result.append({**control, "value": _control_value(el, control)})
|
|
return result
|