Events
An error occurred while processing the template.
The following has evaluated to null or missing:
==> months[startDate?string('M')]  [in template "20116#20152#118707" at line 135, column 66]

----
Tip: It's the final [] step that caused this error, not those before it.
----
Tip: If the failing expression is known to be legally refer to something that's sometimes null or missing, either specify a default value like myOptionalVar!myDefault, or use <#if myOptionalVar??>when-present<#else>when-missing</#if>. (These only cover the last step of the expression; to cover the whole expression, use parenthesis: (myOptionalVar.foo)!myDefault, (myOptionalVar.foo)??
----

----
FTL stack trace ("~" means nesting-related):
	- Failed at: ${months[startDate?string("M")]}  [in template "20116#20152#118707" at line 135, column 64]
----
1<#include "${templatesPath}/227209" /> 
2 
3<#----------------------------------------------------------------------------- 
4    INIT 
5------------------------------------------------------------------------------> 
6<#assign url = request.getAttribute('CURRENT_URL') /> 
7<#if !url?contains("/-/")> 
8 
9<#--- show only on Event page - not if Event is opened ---> 
10 
11    <#assign cmsContentService = serviceLocator.findService("com.ch5finland.genelec.cms.service.CMSContentService") > 
12    <#assign cmsContentFormatterService = serviceLocator.findService("com.ch5finland.genelec.cms.service.CMSContentFormatterService") > 
13    <#assign profileService = serviceLocator.findService("com.ch5finland.genelec.cms.service.ProfileService") > 
14    <#assign profile = profileService.getProfile(request) > 
15 
16    <#switch themeDisplay.getLanguageId()> 
17        <#case "fi_FI"> 
18            <#assign months = {  
19                "1" : "Tammikuu",  
20                "2" : "Helmikuu",  
21                "3" : "Maaliskuu",  
22                "4" : "Huhtikuu",  
23                "5" : "Toukokuu",  
24                "6" : "Kesäkuu",  
25                "7" : "Heinäkuu",  
26                "8" : "Elokuu",  
27                "9" : "Syyskuu",  
28                "10" : "Lokakuu",  
29                "11" : "Marraskuu",  
30                "12" : "Joulukuu"     
31            }> 
32             
33        <#break> 
34        <#default> 
35            <#assign months = {  
36                "1" : "January",  
37                "2" : "February",  
38                "3" : "March",  
39                "4" : "April",  
40                "5" : "May",  
41                "6" : "June",  
42                "7" : "July",  
43                "8" : "August",  
44                "9" : "September",  
45                "10" : "October",  
46                "11" : "November",  
47                "21y" : "December"     
48            }> 
49    </#switch> 
50 
51    <#switch themeDisplay.getLanguageId()> 
52        <#case "fi_FI">                                     
53            <#assign t = {  
54                "eventsTitle" : "Tulevat tapahtumat", 
55                "frontpageEventsTitle" : "Tapahtumat", 
56                "allEventsLink" : "/fi/events", 
57                "allEventsText" : "Kaikki tapahtumat" 
58            }> 
59        <#break> 
60        <#default> 
61            <#assign t = {  
62                "eventsTitle" : "Upcoming Events", 
63                "frontpageEventsTitle" : "Events", 
64                "allEventsLink" : "/en/events", 
65                "allEventsText" : "All Events" 
66            }> 
67    </#switch> 
68 
69    <#if sectionColour?has_content> 
70    <#else> 
71        <#assign sectionColour="bg-white" > 
72    </#if> 
73    <#----------------------------------------------------------------------------- 
74        LOOP ENTRIES 
75    ------------------------------------------------------------------------------> 
76    <#if entries?has_content>  
77    <section class="${sectionColour} events"> 
78 
79        <#--  on events page remove unnecessary padding-top from container-padding --> 
80        <#assign paddingTop = ""> 
81        <#if themeDisplay.getPlid() == 380295> 
82            <#assign paddingTop = "pt-0"> 
83        </#if> 
84 
85        <div class="container container-1440 container-padding ${sectionColour} ${paddingTop}"> 
86        <#--  <div class="${sectionColour} ${paddingTop}">  --> 
87            <#if  themeDisplay.getPlid() == 31220 && t?has_content && t.frontpageEventsTitle?has_content> 
88                <div class="row"> 
89                    <h2 class="section-heading col-xs-12 text-bolder">${t.frontpageEventsTitle}</h2> 
90                </div> 
91            <#elseif themeDisplay.getPlid() == 380295 && t?has_content && t.eventsTitle?has_content> 
92                <div class="row"> 
93                    <div class="col-12 mb-5"> 
94                        <div class="h1 theme-title">${t.eventsTitle}</div> 
95                    </div> 
96                </div> 
97            </#if> 
98        <#list entries as curEntry>  
99                <#assign articleIdAsString = curEntry.getAssetRenderer().getArticle().getArticleId() > 
100                <#assign cmsEntity = cmsContentService.getEntityByArticleId(profile, curEntry.getGroupId(), articleIdAsString) > 
101                 
102                <#assign title = cmsEntity.getLocalizedField(profile, "/entity/fields/title") > 
103                <#assign startDate = "" > 
104                <#if cmsEntity.getFieldAsDate("/entity/fields/startDate")?has_content> 
105                        <#assign startDate = cmsEntity.getFieldAsDate("/entity/fields/startDate") > 
106                </#if> 
107                <#assign endDate = "" > 
108                <#if cmsEntity.getFieldAsDate("/entity/fields/endDate")?has_content> 
109                        <#assign endDate = cmsEntity.getFieldAsDate("/entity/fields/endDate") > 
110                </#if>             
111 
112                <#assign assetRenderer = curEntry.getAssetRenderer() > 
113 
114             
115                <#assign viewURL = "${getViewURL(renderRequest, renderResponse, curEntry)}"/> 
116                <#if assetLinkBehavior != "showFullContent"> 
117                        <#assign viewURL = "${getURLViewInContext(renderRequest, renderResponse, viewURL)}" /> 
118                </#if>             
119                 
120                <#assign bgCardBar = "bg-blue-dark"> 
121                <#if curEntry?is_even_item> 
122                    <#assign bgCardBar = "bg-black"> 
123                </#if> 
124                 
125            <div id="event-${cmsEntity.getEntityId()}" class="row"> 
126 
127                <div class="col-12"> 
128                    <div class="card-horizontal bg-white"> 
129                         
130                        <div class="card-left-container"> 
131                            <div class="card-img-bar ${bgCardBar}"> 
132                                <div class="card-img-bar-content"> 
133                                    <#if startDate?has_content> 
134                                        <div class="card-img-bar-number text-bold">${startDate?string('d')}</div> 
135                                        <div class="text-bold">${months[startDate?string('M')]} </div> 
136                                        <div class="text-bold">${startDate?string('yyyy')}</div> 
137                                    </#if> 
138                                    <#if endDate?has_content && (endDate?string('d') != startDate?string('d') || endDate?string('M') != startDate?string('M'))> 
139                                        <!-- if event lasts longer than one day --> 
140                                        <div class="bar-vertical"></div> 
141                                        <div class="card-img-bar-number text-bold">${endDate?string('d')}</div> 
142                                        <div class="text-bold">${months[endDate?string('M')]} </div> 
143                                        <div class="text-bold">${endDate?string('yyyy')}</div> 
144                                    </#if> 
145                                </div> 
146                            </div> 
147 
148                            <div class="event-image"> 
149                            <#if cmsEntity.getLocalizedField(profile, "/entity/assets/listingImage")?has_content> 
150                                <#assign img = cmsEntity.getLocalizedField(profile, "/entity/assets/listingImage") > 
151                                <a href="${viewURL}" class="aspect-ratio aspect-ratio-16-to-9 aspect-ratio-bg-cover"></a> 
152                            <#else> 
153                                <a href="${viewURL}" class="aspect-ratio aspect-ratio-16-to-9 aspect-ratio-bg-cover"></a> 
154                            </#if> 
155 
156                                 
157                            </div> 
158                        </div> 
159 
160                        <div class="card-text"> 
161                            <h3 class="text-bold"><a href="${viewURL}" class="inherit-color">${title}</a></h3> 
162                             
163                            <#if cmsEntity.getLocalizedField(profile, "/entity/fields/city")?has_content ||  
164                                cmsEntity.getLocalizedField(profile, "/entity/fields/location")?has_content 
165
166                                <p class="place text-weight-light mb-3"> 
167                                <#if cmsEntity.getLocalizedField(profile, "/entity/fields/location")?has_content> 
168                                    <#--  <span class="d-block">${cmsEntity.getLocalizedField(profile, "/entity/fields/location")}</span>  --> 
169                                    <span>${cmsEntity.getLocalizedField(profile, "/entity/fields/location")}<#if cmsEntity.getLocalizedField(profile, "/entity/fields/city")?has_content>,</#if></span> 
170 
171                                </#if> 
172                                 
173                                <#if cmsEntity.getLocalizedField(profile, "/entity/fields/city")?has_content> 
174                                    <#--  <span class="d-block">${cmsEntity.getLocalizedField(profile, "/entity/fields/city")}</span>  --> 
175                                    <span>${cmsEntity.getLocalizedField(profile, "/entity/fields/city")}</span> 
176                                </#if> 
177                                </p> 
178                            </#if> 
179                             
180                            <#if cmsEntity.getLocalizedField(profile, "/entity/fields/summary")?has_content> 
181                                <div class="event-card-description"> 
182                                    <a href="${viewURL}" class="inherit-color">${cmsEntity.getLocalizedField(profile, "/entity/fields/summary")}</a> 
183                                </div> 
184                            </#if> 
185                        </div> 
186 
187                    </div> 
188 
189                    <#if themeDisplay.getPlid() == 31220 && t?has_content && t.allEventsLink?has_content && t.allEventsText?has_content && curEntry?is_last> 
190                        <div class="btn-container float-right">  
191                            <a href="${t.allEventsLink}" class="btn btn-dark btn-medium btn-margin-top text-bold"> 
192                                ${t.allEventsText} 
193                                <img src="/o/genelec-site-theme/images/icons/basic-icons/arrow_white.png" alt="" class="icon tiny-icon"> 
194                            </a>  
195                        </div> 
196                    </#if> 
197 
198                </div> 
199 
200            </div> 
201            <style>         
202                .no-webp .events #event-${cmsEntity.getEntityId()} .card-horizontal .aspect-ratio-bg-cover { 
203                    background-image: url('${img.url}?h=350&fm=jpg&q=80') 
204
205             
206                .webp .events #event-${cmsEntity.getEntityId()} .card-horizontal .aspect-ratio-bg-cover { 
207                    background-image: url('${img.url}?h=350&fm=webp&q=80') 
208                }   
209 
210                a.inherit-color, a.inherit-color:hover, a.inherit-color:focus, a.inherit-color:visited { 
211                    color: inherit; 
212
213 
214 
215                @media (max-width: 767px){ 
216                    .card-img-bar-number { 
217                        font-size: 28px; 
218                        line-height: 30px; 
219
220 
221                    .card-left-container .card-img-bar-content { 
222                        top: 10px !important; 
223
224 
225                    .bar-vertical { 
226                        margin: 5px auto; 
227
228
229 
230                @media (min-width: 992px){ 
231                    .events .card-left-container .card-img-bar-content { 
232                        width: calc(0.2 * 100%); 
233
234
235 
236                @media (min-width: 1201px){ 
237                    .events .card-left-container .card-img-bar-content { 
238                        width: calc(0.2 * 50%); 
239
240
241 
242                .event-image { 
243                    width: 80%; 
244
245 
246                @media (max-width: 576px){ 
247                    .card-img-bar-content { 
248                        font-size: 0.7em !important; 
249
250                    .card-img-bar-number { 
251                        font-size: 16px; 
252                        line-height: 15px; 
253
254                    .bar-vertical { 
255                        margin: 5px auto 6px; 
256                        height: 10px; 
257
258
259 
260                @media (min-width: 1200px){ 
261                    .event-card-description { 
262                        height: 90px; 
263                        position: relative; 
264                        overflow: hidden; 
265
266 
267                    .event-card-description::before { 
268                        content: ''; 
269                        width: 100%; 
270                        height: 30px; 
271                        position: absolute; 
272                        left: 0; 
273                        bottom: -6px; 
274                        background: linear-gradient(transparent, white); 
275
276
277 
278 
279 
280                @media (max-width: 767px){ 
281                    .card-left-container { 
282                        display: inline-block !important; 
283                    }    
284 
285                    .card-img-bar { 
286                        width: 100% !important;  
287                        height: 50px; 
288
289 
290                    .card-img-bar-content { 
291                        position: inherit; 
292                        width: 100% !important; 
293                        line-height: 50px; 
294
295 
296                    .card-img-bar-content > div { 
297                        display: inline-block; 
298                        font-size: 0.8rem !important; 
299
300 
301                    .bar-vertical { 
302                        width: 10px !important; 
303                        height: 3px !important; 
304                        margin: 0px 6px 3px !important; 
305
306
307             
308            </style> 
309        </#list>  
310        </div> 
311    </section>     
312    </#if> 
313</#if> 

Past events

Year

All
2020
2019
2018
2017