Convocatorias
Se ha producido un error al procesar la plantilla.
Java method "pa.mtl.asset.service.impl.MtlAssetServiceImpl.getArticleFormFieldValueAssetEntry(com.liferay.dynamic.data.mapping.storage.DDMFormFieldValue, Locale)" threw an exception when invoked on pa.mtl.asset.service.impl.MtlAssetServiceImpl object "pa.mtl.asset.service.impl.MtlAssetServiceImpl@1714b24b"; see cause exception in the Java stack trace.
----
FTL stack trace ("~" means nesting-related):
- Failed at: #assign aeEnlace = (mtlAssetService.g... [in template "46946443565472#3068291#TPL_ARTICULO" at line 34, column 13]
----
1<#assign journalArticleId = .vars['reserved-article-id'].data/>
2
3<div class="tpl-articulo id-${journalArticleId}">
4
5<#assign mtlAssetService = serviceLocator.findService("pa.mtl.asset.service.api.MtlAssetService")>
6<#assign journalArticleLocalService = serviceLocator.findService("com.liferay.journal.service.JournalArticleLocalService")>
7<#assign articleId = .vars['reserved-article-id'].data/>
8<#assign journalArticle = journalArticleLocalService.getArticle(groupId, articleId) />
9<#assign ddmFormFieldValuesMap = mtlAssetService.getDDMFormFieldValuesMap(journalArticle) />
10
11<#assign dlFileEntryLocalService = serviceLocator.findService("com.liferay.document.library.kernel.service.DLFileEntryLocalService")>
12
13<#if imagen.getData()?? && imagen.getData() != "">
14 <div class="tpl-articulo__image">
15 <img alt="${(imagen.getAttribute("alt"))!"Imagen"}" data-fileentryid="${(imagen.getAttribute("fileEntryId"))!""}" src="${imagen.getData()}" />
16 </div>
17</#if>
18
19<#if (titulo.getData())??>
20 <p class="title-article">${titulo.getData()}</p>
21</#if>
22
23<#if entradilla?? && entradilla.getData()??>
24 ${entradilla.getData()}
25</#if>
26
27${cuerpo.getData()}
28
29<#-- Procesar enlaces relacionados -->
30<#assign ddmffvEnlacesRelacionados = ddmFormFieldValuesMap["enlacesRelacionados"] />
31<#if ddmffvEnlacesRelacionados?has_content>
32 <ul class="enlaces_relacionados gpa-docs-list">
33 <#list ddmffvEnlacesRelacionados as ddmffvEnlace>
34 <#assign aeEnlace = (mtlAssetService.getArticleFormFieldValueAssetEntry(ddmffvEnlace, locale))!"" />
35 <#if aeEnlace?has_content>
36 <li>
37 <#-- Verificamos si assetObject tiene el método getArticleId(), que es característico de JournalArticle -->
38 <#assign assetRenderer = aeEnlace.getAssetRenderer() />
39 <#if assetRenderer?has_content>
40 <#assign assetObject = assetRenderer.getAssetObject() />
41 <#if assetObject?has_content && assetObject.getArticleId??>
42 <#assign relatedJournalArticle = assetObject />
43
44 <#-- Asegurémonos de usar el método adecuado pasando un long (groupId) y el articleId -->
45
46 ${journalArticleLocalService.getArticleContent(relatedJournalArticle, relatedJournalArticle.getDDMTemplateKey(), "VIEW", locale, null, themeDisplay)}
47 </#if>
48 </#if>
49 </li>
50 </#if>
51 </#list>
52 </ul>
53</#if>
54
55<#-- Procesar ficheros relacionados -->
56<#if ficherosRelacionados.getSiblings()?has_content>
57 <ul class="gpa-docs-list ficheros_relacionados">
58 <#list ficherosRelacionados.getSiblings() as cur_ficherosRelacionados>
59 <#if cur_ficherosRelacionados?? && cur_ficherosRelacionados.getData() != "">
60 <#if cur_ficherosRelacionados.getData()?has_content>
61 <#assign fileEntryUrl = cur_ficherosRelacionados.getData()
62 fileUuidPosition = (fileEntryUrl?last_index_of("/")) + 1
63 fileEntryUrlLength = (fileEntryUrl?length) - 1
64 fileUuid = fileEntryUrl[fileUuidPosition..fileEntryUrlLength]
65 fileUuidPosition2 = (fileUuid?last_index_of("?")) - 1
66 fileUuid2 = fileUuid[0..fileUuidPosition2]
67 fileEntry = dlFileEntryLocalService.getFileEntryByUuidAndGroupId(fileUuid2, groupId)
68 />
69 <#assign fieldsMap = fileEntry.getDDMFormValuesMap(fileEntry.getFileVersion().getFileVersionId()) />
70 <#assign titulo = fileEntry.getTitle()/>
71
72 <#list fieldsMap?values as fields>
73 <#list fields.getDDMFormFieldValues() as field>
74 <#if field.getName() == "titulo">
75 <#assign titulo = field.getValue().getString(locale)/>
76 </#if>
77 </#list>
78 </#list>
79 <li>
80 <a data-type="${fileEntry.extension?upper_case}" data-size="${fileEntry.size} KB" href="${fileEntryUrl}" title="${titulo}">
81 ${titulo}
82 </a>
83 </li>
84 </#if>
85 </#if>
86 </#list>
87 </ul>
88</#if>
89
90<#-- Subapartados -->
91<#if subapartado.getSiblings()?has_content>
92 <#list subapartado.getSiblings() as cur_subapartado>
93 <div class="description">
94 <#if cur_subapartado.tituloSubapartado.getData()?? && cur_subapartado.tituloSubapartado.getData() != "">
95 <h4>${cur_subapartado.tituloSubapartado.getData()}</h4>
96 </#if>
97 <#if cur_subapartado.descripcionSubapartado.getData()?? && cur_subapartado.descripcionSubapartado.getData() != "">
98 ${cur_subapartado.descripcionSubapartado.getData()}
99 </#if>
100 </div>
101 </#list>
102</#if>
103
104<#-- Artículos relacionados -->
105<#if (articulosRelacionados?has_content && articulosRelacionados.getSiblings()?has_content && articulosRelacionados.getSiblings()[0].getData()?has_content)>
106 <#list articulosRelacionados.getSiblings() as cur_articulosRelacionados>
107 <#if cur_articulosRelacionados.getData()?has_content>
108 <#assign curArticuloId = cur_articulosRelacionados.getData()?keep_after("\"classPK\":\"")?keep_before("\"")/>
109 <#if curArticuloId?has_content>
110 <#assign curArticuloJournal = journalArticleLocalService.getLatestArticle(curArticuloId?number)/>
111 <h2 class="portlet-title-text">${curArticuloJournal.getTitle(locale)}</h2>
112 ${journalArticleLocalService.getArticleContent(
113 curArticuloJournal.getGroupId(),
114 curArticuloJournal.getArticleId(),
115 "VIEW",
116 locale.toString(),
117 null,
118 themeDisplay
119 )}
120 </#if>
121 </#if>
122 </#list>
123</#if>
124
125<#-- Fecha de finalización del plazo -->
126<#if fechaFinPlazo?? && fechaFinPlazo.getData() != "">
127 <#assign today = .now?date?iso_utc/>
128 <#if fechaFinPlazo.getData()?date("yyyy-MM-dd") <= today?date("yyyy-MM-dd")>
129 <a href="${paginaPlazoCerrado.getData()}">Plazo cerrado</a>
130 </#if>
131</#if>
132
133</div>

