Produciuse un erro ao procesar o modelo.
The following has evaluated to null or missing:
==> ADTUtil.getCalendarData(calendarBooking) [in template "33534#33569#92928" at line 4, column 49]
----
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: #assign calendarData = ADTUtil.getCal... [in template "33534#33569#92928" at line 4, column 25]
---- 1<#if entries?has_content> 2 <div class="events-detail"> 3 <#list entries as calendarBooking> 4 <#assign calendarData = ADTUtil.getCalendarData(calendarBooking)/> 5 <div id="event${calendarBooking.getCalendarBookingId()}" class="event template template-calevent-detail"> 6 <div class="title-wrapper"> 7 <div class="title h3">${calendarBooking.getTitle(locale)}</div> 8 </div> 9 <div class="container p-0"> 10 <div class="row mt-4"> 11 <div class="col-sm-8 col-12"> 12 13 <#if validator.isNotNull(calendarBooking.getDescription(locale))> 14 <div class="description"> 15 ${calendarBooking.getDescription(locale)} 16 </div> 17 </#if> 18 <#if validator.isNotNull(calendarData) && validator.isNotNull(ADTUtil.getGallery(calendarData, themeDisplay))> 19 <section class="image-gallery"> 20 <div class="h4">${languageUtil.get(locale, "image-gallery")}</div> 21 ${ADTUtil.getGalleryTool(calendarData, themeDisplay)} 22 </section> 23 </#if> 24 <#if validator.isNotNull(calendarData) && validator.isNotNull(ADTUtil.getDocuments(calendarData, themeDisplay))> 25 <section class="documents"> 26 <div class="h4">${languageUtil.get(locale, "documents")}</div> 27 ${ADTUtil.getDocumentsTool(calendarData, themeDisplay)} 28 </section> 29 </#if> 30 </div> 31 <div class="col-sm-4 col-12 overflow-hidden"> 32 <#assign imagePath = ADTUtil.getImagePath(calendarData.getImageUuid(), 3 , calendarBooking.getGroupId(), themeDisplay)/> 33 <#if validator.isNotNull(calendarData) && validator.isNotNull(imagePath)> 34 <a href="${imagePath}" class="lightbox image-wrapper image-wrapper-cover image-wrapper-style" style="background-image: url(${imagePath}); background-size: cover;"> 35 <img class='image' src="${imagePath}" alt="${calendarBooking.getTitle(locale)}"/> 36 </a> 37 </#if> 38 39 <#assign inicio = ADTUtil.formatDate(calendarBooking.getStartTime(), "EEEE, dd MMMM YYYY" ,themeDisplay)/> 40 <div class="text-metadata date-wrapper card"> 41 <div class="card-header">${languageUtil.get(locale, "date")}</div> 42 <div class="card-body"> 43 <div class="date"> 44 <span class="date-begin"> 45 <span class="icon-calendar"><!--icon--></span> 46 ${inicio} 47 </span> 48 </div> 49 <div class="hour-wrapper"> 50 <span class="icon-time"><!--icon--></span> 51 <span class="hour"> 52 <#if calendarBooking.getAllDay()> 53 ${languageUtil.format(locale, 'all-day',calendarBooking.getAllDay())} 54 <#else> 55 ${ADTUtil.formatDate(calendarBooking.getStartTime(), "HH:mm" ,themeDisplay)} - ${ADTUtil.formatDate(calendarBooking.getEndTime(), "HH:mm" ,themeDisplay)} 56 </#if> 57 </span> 58 </div> 59 </div> 60 </div> 61 62 <section class="gmaps card"> 63 <div class="card-header">${languageUtil.get(locale, "location")}</div> 64 65 <#if validator.isNotNull(calendarData.getLatitude()) && validator.isNotNull(calendarData.getLongitude())> 66 <#assign latitude = calendarData.getLatitude()/> 67 <#assign longitude = calendarData.getLongitude()/> 68 <div id="map" class="card-body" style="height: 300px"><!-- map-canvas--></div> 69 70 <link rel="stylesheet" href="https://unpkg.com/leaflet@1.5.1/dist/leaflet.css" crossorigin=""/> 71 <link rel="stylesheet" href="https://unpkg.com/leaflet-control-geocoder/dist/Control.Geocoder.css" /> 72 <link rel="stylesheet" href="https://unpkg.com/leaflet-routing-machine@latest/dist/leaflet-routing-machine.css" /> 73 74 <script src="https://unpkg.com/leaflet@1.5.1/dist/leaflet.js" crossorigin=""></script> 75 <script src="https://unpkg.com/leaflet-control-geocoder/dist/Control.Geocoder.js"></script> 76 <script src="https://unpkg.com/leaflet-routing-machine@latest/dist/leaflet-routing-machine.js"></script> 77 78 <script type="text/javascript"> 79 AUI().ready('aui-node', function(A){ 80 var map; 81 82 var lat; 83 var lng; 84 85 var A = AUI(); 86 87 map = new L.Map("map", { 88 center: new L.LatLng(${latitude}, ${longitude}), 89 zoom: 15, 90 layers: new L.TileLayer("https://tile.openstreetmap.org/{z}/{x}/{y}.png") 91 }); 92 93 94 lat = "${latitude}"; 95 lng = "${longitude}"; 96 97 98 var contentString = '<div class="container-fluid">' + 99 '<div class="row-fluid">' + 100 '<div class="span10">' + 101 '<div id="title" class="title">${calendarBooking.getTitle(locale)}</div>'+ 102 '<div id="bodyContent">'+ 103 <#if validator.isNotNull(calendarData.getAddressDescription())> 104 '<div> ${htmlUtil.escapeJS(calendarData.getAddressDescription())} </div>'+ 105 </#if> 106 '</div>' + 107 '</div>' + 108 '</div>'+ 109 '</div>'; 110 111 var marker = new L.Marker(new L.LatLng(Number(lat), Number(lng))); 112 marker.bindPopup(contentString); 113 map.addLayer(marker); 114 115 }); 116 </script> 117 </#if> 118 119 120 121 122 <#if validator.isNotNull(calendarData.getAddressName()) || validator.isNotNull(calendarData.getAddressDescription())> 123 <div class="address-wrapper place"> 124 <#if validator.isNotNull(calendarData.getAddressName())> 125 <div class="address important">${calendarData.getAddressName()}</div> 126 </#if> 127 <#if validator.isNotNull(calendarData.getAddressDescription())> 128 <div class="description">${calendarData.getAddressDescription()}</div> 129 </#if> 130 </div> 131 132 </section> 133 134 </#if> 135 </div> 136 </div> 137 </div> 138 </div> 139 </#list> 140 </div> 141</#if>