{{!
    @template local_kid/eval_grid

    Summary mode: titre, rows[], hasrows, hasbulkactions, canexport,
      canbulkpublish, bulkscreen, bulkitemid, sesskey, canimport, importurl,
      templateurl
    Student mode: titre, steps[], formhtml, canvalidate, canfinalise,
      canreopen, ispublished, validateurl, finaliseurl, reopenurl, backurl,
      hasmoodlefeedback, moodlefeedbacktext, moodlefeedbackchanged,
      moodlefeedbacklastsync, canimport, templateoneurl, conflictjson (optional,
      JSON string — see amd/src/conflict_view.js)
}}
<div class="fr-scope">
<h2>{{titre}}</h2>

{{#summarymode}}
    {{^hasrows}}{{> local_kid/empty_state}}{{/hasrows}}
    {{#hasrows}}
    {{#canimport}}
    <p class="fr-mb-2w">
        <a class="fr-link" href="{{templateurl}}">{{#str}}eval_template_global, local_kid{{/str}}</a>
        · <a class="fr-link" href="{{importurl}}">{{#str}}eval_import_action, local_kid{{/str}}</a>
    </p>
    {{/canimport}}

    {{> local_kid/selectable_entry_table}}
    {{#hasbulkactions}}
    {{> local_kid/bulk_actions_bar}}
    {{/hasbulkactions}}
    {{/hasrows}}
{{/summarymode}}

{{^summarymode}}
<div data-region="kid-grid-student"{{#conflictjson}} data-conflict="{{conflictjson}}"{{/conflictjson}}>
{{> local_kid/eval_grid_student}}
</div>
{{/summarymode}}
</div>
