Errorea gertatu da txantiloia prozesatzerakoan.
The string doesn't match the expected date/time/date-time format. The string to parse was: "". The expected format was: "yyyy-MM-dd".
The nested reason given follows:
Unparseable date: ""
----
FTL stack trace ("~" means nesting-related):
- Failed at: #assign fechaFin_obj = fechaFin?datet... [in template "33532#33567#1238513" at line 87, column 49]
---- 1<#assign assetPublisherTool = utilLocator.findUtil('lportal-ce-hook', 'as.asac.template.tools.AssetPublisherTool') /> 2<#assign dlTool = utilLocator.findUtil('lportal-ce-hook', 'as.asac.template.tools.DLTool') /> 3<#assign assetTool = utilLocator.findUtil('lportal-ce-hook', 'as.asac.template.tools.AssetTool') /> 4<#assign layoutTool = utilLocator.findUtil('lportal-ce-hook', 'as.asac.template.tools.LayoutTool') /> 5<#assign groupTool = utilLocator.findUtil('lportal-ce-hook', 'as.asac.template.tools.GroupTool') /> 6<#assign journalTool = utilLocator.findUtil('lportal-ce-hook', 'as.asac.template.tools.JournalTool') /> 7 8<#if stringUtil.split(metadataFields)?seq_contains("social")> 9 <script src="${themeDisplay.getPathThemeJavaScript()}/needsharebutton/needsharebutton.js"></script> 10</#if> 11 12<#assign abstractFields = '' /> 13<#if classTypeIds?has_content && validator.isNotNull(classTypeIds)> 14 <#assign structureId = getterUtil.getLong(classTypeIds) /> 15 <#assign abstractFields = groupTool.getGroupStructureSettings(structureId,"abstractFields")! /> 16</#if> 17 18<#if entries?has_content> 19 20 <#assign key = "4" /> 21 <#if cols?has_content && cols!="0"> 22 <#assign key = cols /> 23 </#if> 24 <#assign colsMap = { 25 "12": "col-12", 26 "6": "col-sm-6 col-12", 27 "4": "col-lg-4 col-md-6 col-sm-6 col-12", 28 "3": "col-xl-3 col-md-4 col-sm-6 col-12" } /> 29 30 <#assign colsValue = colsMap[key]/> 31 32 <div class="template template-proyecto-participacion-cards container p-0"> 33 <div class="row"> 34 <#list entries as curEntry> 35 36 <#assign assetRenderer = curEntry.getAssetRenderer() /> 37 <#assign assetEntry = curEntry /> 38 <#assign entryTitle = htmlUtil.escape(assetRenderer.getTitle(locale)) /> 39 <#assign viewURL = assetPublisherTool.getAssetViewURL(renderRequest, renderResponse, curEntry) /> 40 <#assign thumbnailPath = assetRenderer.getThumbnailPath(renderRequest)! /> 41 <#assign layoutSetBannerUuid = layoutTool.getLayoutSetSetting(themeDisplay.getLayoutSet(), "banner")! /> 42 <#assign layoutSetBannerPath = dlTool.getPathByUuid(layoutSetBannerUuid, themeDisplay.getScopeGroupId())! /> 43 <#assign thumbnail = dlTool.getThumbnail(thumbnailPath, "3", layoutSetBannerPath)! /> 44 <#assign description = curEntry.getDescription(locale) /> 45 <#assign categoriesNames = assetTool.getCategoriesNames(curEntry, locale)!/> 46 47 <div class="${colsValue}"> 48 <div class="card card-box" href="${viewURL}" title="${languageUtil.format(request,'go-to-x',curEntry.getTitle(locale))}"> 49 <#if thumbnail?has_content> 50 <span class="lfr-meta-actions asset-actions"> 51 <@getEditIcon /> 52 </span> 53 <#assign cssClass = "image-wrapper image-wrapper-cover"/> 54 <#if validator.equals(thumbnail,layoutSetBannerPath)> <#assign cssClass = "image-wrapper image-wrapper-contain image-wrapper-blue"/> </#if> 55 56 <a class="${cssClass}" style="background-image: url('${thumbnail}');" href="${viewURL}"><img alt="Imagen ${curEntry.getTitle(locale)}" src="${thumbnail}"></a> 57 </#if> 58 59 <div class="p-4 border-left border-right"> 60 <a class="h2" href="${viewURL}">${curEntry.getTitle(locale)}</a> 61 62 <#if validator.isNotNull(abstractFields)> 63 <#assign fieldsNames = stringUtil.split(abstractFields)!/> 64 <div class="card-text mt-2"> 65 <p>${journalTool.getHTMLDescription(curEntry, fieldsNames, true, "fields-list-wrapper", "fields-list list-unstyled", locale)}</p> 66 </div> 67 <#else> 68 <#if validator.isNull(description)> 69 <#assign description = assetTool.getFieldValue(assetRenderer, "Texto", locale) /> 70 <div class="card-text mt-2">${stringUtil.shorten(htmlUtil.extractText(description),150)}</div> 71 <#else> 72 <div class="card-text mt-2">${description}</div> 73 </#if> 74 </#if> 75 76 <div class="text-right"> 77 <a class="icon-plus" href="${viewURL}"> 78 <span>${languageUtil.get(locale, "more-info")}</span> 79 </a> 80 </div> 81 </div> 82 83 <div class="more-info-cards"> 84 <#assign fechaInicio = assetTool.getFieldValue(assetRenderer, "FechaInicio") /> 85 <#assign fechaInicio_obj = fechaInicio?datetime("yyyy-MM-dd")> 86 <#assign fechaFin= assetTool.getFieldValue(assetRenderer, "FechaFin") /> 87 <#assign fechaFin_obj = fechaFin?datetime("yyyy-MM-dd")> 88 <#assign faseActual = assetTool.getFieldValue(assetRenderer, "FaseActual", locale) /> 89 <#assign enlaceParticipacion = assetTool.getFieldValue(assetRenderer, "EnlaceParticipacion", locale) /> 90 <#assign currentLocale = themeDisplay.getLocale() /> 91 <#assign fechaInicioFormat = fechaInicio_obj?string("dd-MM-yyyy")> 92 <#assign fechaFinFormat = fechaFin_obj?string("dd-MM-yyyy")> 93 <#assign fechaInicioFormatEU = fechaInicio_obj?string("yyyy-MM-dd")> 94 <#assign fechaFinFormatEU = fechaFin_obj?string("yyyy-MM-dd")> 95 96 <div class="card__icondata border-left border-right"> 97 <ul class="card-data list-unstyled <#if validator.isNull(faseActual)>ifFase</#if>"> 98 <li class="card-data__item"> 99 <div class="p-2"> 100 <span class="fas fa-clock primary-color"> 101 <span class="hide-accessible">${languageUtil.get(locale, "date")}</span> 102 </span> 103 </div> 104 </li> 105 <li class="card-data__item"> 106 <div class="p-2"> 107 <div class="important">${languageUtil.get(locale, "start-date")}</div> 108 <#if currentLocale.getLanguage() == "es"> 109 ${fechaInicioFormat} 110 <#else> 111 ${fechaInicioFormatEU} 112 </#if> 113 </div> 114 </li> 115 <li class="card-data__item"> 116 <div class="p-2"> 117 <div class="important">${languageUtil.get(locale, "end-date")}</div> 118 <#if currentLocale.getLanguage() == "es"> 119 ${fechaFinFormat} 120 <#else> 121 ${fechaFinFormatEU} 122 </#if> 123 </div> 124 </li> 125 </ul> 126 </div> 127 128 <#if validator.isNotNull(faseActual)> 129 <div class="card__icondata border-left border-right"> 130 <ul class="card-data list-unstyled"> 131 <li class="card-data__item"> 132 <div class="p-2"> 133 <div class="important">${languageUtil.get(locale, "current-phase")}</div> 134 ${faseActual} 135 </div> 136 </li> 137 </ul> 138 </div> 139 </#if> 140 141 <#if categoriesNames?contains("Abierto") || categoriesNames?contains("Irekita")> 142 <#if validator.isNotNull(enlaceParticipacion)> 143 <div class="card-foot p-4 text-center border-bottom border-left border-right"> 144 <a class="btn btn-primary bg-primary text-white" href="${enlaceParticipacion}" target="_blank">${languageUtil.get(locale, "participate-here")}</a> 145 </div> 146 </#if> 147 </#if> 148 </div> 149 </div> 150 </div> 151 152 </#list> 153 </div> 154 </div> 155<#else> 156 <div class="portlet-msg-info">Por el momento no existen contenidos para esta sección</div> 157</#if> 158 159<#macro getEditIcon> 160 <#if assetRenderer.hasEditPermission(themeDisplay.getPermissionChecker())> 161 <#assign redirectURL = renderResponse.createRenderURL() /> 162 163 ${redirectURL.setParameter("mvcPath", "/add_asset_redirect.jsp")} 164 ${redirectURL.setWindowState("pop_up")} 165 166 <#assign editPortletURL = assetRenderer.getURLEdit(renderRequest, renderResponse, windowStateFactory.getWindowState("pop_up"), redirectURL)!"" /> 167 168 <#if validator.isNotNull(editPortletURL)> 169 <#assign title = languageUtil.format(locale, "edit-x", entryTitle, false) /> 170 171 <@liferay_ui["icon"] 172 cssClass="icon-monospaced visible-interaction" 173 icon="pencil" 174 markupView="lexicon" 175 message=title 176 url="javascript:Liferay.Util.openWindow({id:'" + renderResponse.getNamespace() + "editAsset', title: '" + title + "', uri:'" + htmlUtil.escapeURL(editPortletURL.toString()) + "'});" 177 /> 178 </#if> 179 </#if> 180</#macro> 181 182 183 184<style> 185 .template-proyecto-participacion-cards .card__icondata ul { 186 border-top: 1px solid #e8e8e8; 187 } 188 189 .template-proyecto-participacion-cards .card__icondata .ifFase{ 190 border-bottom: 1px solid #e8e8e8; 191 } 192 193 .template-proyecto-participacion-cards .card-data { 194 list-style: none; 195 margin: 0; 196 display: flex; 197 flex-wrap: wrap; 198 } 199 200 .template-proyecto-participacion-cards .primary-color { 201 color: var(--primary); 202 } 203 204 205 .template-proyecto-participacion-cards .card__icondata ul li { 206 border-top: 0; 207 display: flex; 208 align-items: center; 209 justify-content: center; 210 } 211 212 .template-proyecto-participacion-cards .card-data__item { 213 display: inline-flex; 214 flex-direction: column; 215 align-items: center; 216 justify-content: center; 217 flex-grow: 1; 218 text-align: center; 219 font-size: 1rem; 220 line-height: 1.25rem; 221 color: #726a70; 222 padding: 0.5em; 223 border-right: 1px solid #e8e8e8; 224 margin-right: -1px; 225 border-top: 1px solid #e8e8e8; 226 margin-top: -1px; 227 text-transform: uppercase; 228 } 229 230 .template-proyecto-participacion-cards .card-foot{ 231 background-color: #f4f4f4; 232 } 233 234 .template-proyecto-participacion-cards .card-foot a{ 235 font-size: 1.25em; 236 text-transform: uppercase; 237 } 238</style>