{% extends 'pages/_base/default.twig' %} {# NOTE: This templkate needs to duplicate all of portals logic as it slightly differs on the teaser attributes being generated #} {% set options = options|default({}) + { page_type: 'competitions', page_variant: 'calendar', competitions_list_limit: 50, competitions_teaser_pool: 'competitions', competitions_teaser_pool_params: [], competitions_teaser_imagesize: 'teaser_square', competitions_teaser_autofill: false, } %} {# Required variables # record - the competitions portal page itself # objects - array of content objects (records) to display in teaserlist (optional, can select it's own records via pool parameters) # teasers - array of teasers in addition converted objects above (optional, will use it's own records) #} {# Logik ------------------------------------------------------------------------------------------------------------ #} {# select content records, convert to teasers, add calendar info #} {% if options.competitions_teaser_pool %} {% set items = RelationList.getItems(record.teasers) %} {% set parameters = RelationList.getGlobals(record.teasers) + options.competitions_teaser_pool_params %} {% if options.competitions_teaser_autofill %} {% set items = RelationFill.getItems(options.competitions_teaser_pool, options.competitions_list_limit, parameters, items) %} {% endif %} {% set teasers = teasers|default([]) %} {% for item in items %} {% set teaser = generateTeaser(item.object, { teaserImageSize: options.competitions_teaser_imagesize }) + { 'id': item.object.id, 'competitionStatus': item.object.registerstart|competitionStatus(item.object.registerend), 'registerStart': item.object.registerstart, 'registerEnd': item.object.registerend, 'isOpen': item.attributes.isopen|default(false), 'number': item.attributes.number|default(item.object.registerstart|date('d')|default(1)), } %} {% set teasers = teasers|merge([teaser]) %} {% endfor %} {% endif %} {# Templating ------------------------------------------------------------------------------------------------------- #} {% block content %} {% block portal_intro %} {% include 'blocks/intro/portal.twig' %} {% endblock %} {% block portal_teasers %} {% include "blocks/list/calendar.twig" with { teasers: teasers, options: options } %} {% endblock %} {% endblock %}