{% extends "structure/base.html" %} {% from 'crud/_macros.html' import render_field %} {% block title %}{{ construct.compose_title(construct.t("crud-view-rec", {'recname': construct.t(view.name, {'count': 1})})) }}{% endblock %} {# This view renders its own visible

, so suppress the layout default. #} {% block page_heading %}{% endblock %} {% block content %} {# Deliberately no
, no tabs and no save control: the fields arrive already forced readonly, and a form wrapper around them would only invite a POST this page has no route for. #}
{{ icon("back", label=construct.t("crud-back-button")) }}

{{ construct.t('crud-view-rec', {'recname': construct.t(view.name, {'count': 1}) }) }}

{% if edit_actions %}
{% for action in edit_actions %} {{ icon(action.icon, label=construct.t(action.name)) }} {% endfor %}
{% endif %}
{% block view_body %}
{% for field, type in fields %} {{ render_field(construct, field, type, view, data, ds) }} {% endfor %}
{% endblock %}
{% endblock %}