{# This file is part of the Sonata package. (c) Thomas Rabaix For the full copyright and license information, please view the LICENSE file that was distributed with this source code. #} {% set route_name = field_description.option('route').name|default(sonata_config.getOption('default_admin_route')) %} {% set route_parameters = field_description.option('route').parameters|default([]) %} {% if field_description.option('identifier', false) and admin.hasRoute(route_name) and admin.hasAccess(route_name, route_name in ['show', 'edit'] ? object : null) %} {%- block field %} {% apply spaceless %} {% if field_description.option('collapse') is not null %} {% set collapse = field_description.option('collapse') %}
{{ value }}
{% else %} {{ value }} {% endif %} {% endapply %} {% endblock -%}
{% else %} {% set is_editable = field_description.option('editable', false) and admin.hasAccess('edit', object) %} {% if is_editable and field_description.option('multiple', false) and value is iterable %} {# multiple editable field should be real multiple #} {# https://vitalets.github.io/x-editable/docs.html#checklist #} {% set x_editable_type = 'checklist' %} {% else %} {% set x_editable_type = field_description.type|sonata_xeditable_type %} {% endif %} {% if is_editable and x_editable_type %} {% set url = path( 'sonata_admin_set_object_field_value', { '_sonata_admin': admin.baseCodeRoute, 'context': 'list', 'field': field_description.name, 'objectId': admin.urlSafeIdentifier(object) } + (admin.hasRequest() ? admin.request.attributes.get('_route_params', {}) : {}) + admin.getPersistentParameters() + app.request.query.all|default({}) ) %} {% if field_description.type == constant('Sonata\\AdminBundle\\FieldDescription\\FieldDescriptionInterface::TYPE_DATE') and value is not empty %} {# it is a x-editable format https://vitalets.github.io/x-editable/docs.html#date #} {% set data_value = value|date('Y-m-d', options.timezone|default(null)) %} {% elseif field_description.type == constant('Sonata\\AdminBundle\\FieldDescription\\FieldDescriptionInterface::TYPE_BOOLEAN') and value is empty %} {% set data_value = 0 %} {% elseif value is iterable %} {% set data_value = value|json_encode %} {% else %} {% set data_value = value %} {% endif %} {{ block('field') }} {% else %} {{ block('field') }} {% endif %} {% endif %}