Addign links to entry pages.
This commit is contained in:
parent
775600e140
commit
668924ba10
5 changed files with 121 additions and 10 deletions
|
|
@ -639,9 +639,14 @@ def _normalize_field_spec(spec, mapper, session, label_specs_model_default):
|
|||
"template": spec.get("template"),
|
||||
"template_name": spec.get("template_name"),
|
||||
"template_ctx": spec.get("template_ctx"),
|
||||
"label_spec": spec.get("label_spec")
|
||||
"label_spec": spec.get("label_spec"),
|
||||
}
|
||||
|
||||
if "link" in spec:
|
||||
field["link"] = spec["link"]
|
||||
if "label_deps" in spec:
|
||||
field["label_deps"] = spec["label_deps"]
|
||||
|
||||
if rel_prop:
|
||||
if field["type"] is None:
|
||||
field["type"] = "select"
|
||||
|
|
@ -970,6 +975,7 @@ def _format_label_from_values(spec: Any, values: dict) -> Optional[str]:
|
|||
return "" if v is None else str(v)
|
||||
|
||||
def _build_href(spec: Dict[str, Any], row: Dict[str, Any], obj) -> Optional[str]:
|
||||
print(spec)
|
||||
if not spec:
|
||||
return None
|
||||
params = {}
|
||||
|
|
@ -982,6 +988,7 @@ def _build_href(spec: Dict[str, Any], row: Dict[str, Any], obj) -> Optional[str]
|
|||
params[k] = val
|
||||
else:
|
||||
params[k] = v
|
||||
print(params)
|
||||
if any(v is None for v in params.values()):
|
||||
return None
|
||||
try:
|
||||
|
|
@ -1061,6 +1068,7 @@ def render_field(field, value):
|
|||
label_attrs=_sanitize_attrs(field.get('label_attrs') or {}),
|
||||
help=field.get('help'),
|
||||
value_label=field.get('value_label'),
|
||||
link_href=field.get("link_href"),
|
||||
)
|
||||
|
||||
|
||||
|
|
@ -1231,6 +1239,15 @@ def render_form(
|
|||
if vl2 is not None:
|
||||
f["value_label"] = vl2
|
||||
|
||||
link_spec = f.get("link")
|
||||
if link_spec:
|
||||
try:
|
||||
href = _build_href(link_spec, values_map, instance)
|
||||
except Exception:
|
||||
href = None
|
||||
if href:
|
||||
f["link_href"] = href
|
||||
|
||||
# Build rows (supports nested layout with parents)
|
||||
rows_map = _normalize_rows_layout(layout)
|
||||
rows_tree = _assign_fields_to_rows(fields, rows_map)
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue