Icono de desplegable Menú de navegación

Nueva versión

Comparte tu experiencia y sugerencias sobre nuestro servicio.

Listas de reserva de personal laboral

Encuentra rápidamente la lista de reserva de personal laboral que buscas.
Selecciona la letra inicial del puesto de trabajo para localizarlo.
Se ha producido un error al procesar la plantilla.
The following has evaluated to null or missing:
==> pdfField.url  [in template "97672940819578#20119#438253" at line 54, column 88]

----
Tip: It's the step after the last dot that caused this error, not those before it.
----
Tip: If the failing expression is known to 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 url = pdfField.url?replace("?...  [in template "97672940819578#20119#438253" at line 54, column 73]
----
1<#if !entries?has_content> 
2    <#if !themeDisplay.isSignedIn()> 
3        ${renderRequest.setAttribute("PORTLET_CONFIGURATOR_VISIBILITY", true)} 
4    </#if> 
5</#if> 
6 
7<#assign letterTitle = "" /> 
8 
9<div class="wrapper-data-list"> 
10	<#list entries as entry> 
11    <#assign  
12		  assetRenderer = entry.getAssetRenderer() 
13      entryTitle = htmlUtil.escape(assetRenderer.getTitle(locale))  
14			dateFormat = "dd/MM/yyyy" 
15      viewURL = assetPublisherHelper.getAssetViewURL(renderRequest, renderResponse, assetRenderer, entry, !stringUtil.equals(assetLinkBehavior, "showFullContent" )) 
16      fields = entry.getAssetRenderer().getDDMFormValuesReader().getDDMFormValues().getDDMFormFieldValues() 
17			fieldsValuesMap = entry.getAssetRenderer().getDDMFormValuesReader().getDDMFormValues().getDDMFormFieldValuesMap() 
18			text = entry.getDescription()  
19			content = htmlUtil.stripHtml(assetRenderer.getAssetObject().getContent())?replace(']]>', '') 
20			entryUrl = htmlUtil.escape(assetRenderer.getUrlTitle())  
21			startDate = "" 
22			endDate = "" 
23			type = "" 
24			url = "" 
25    /> 
26				 
27    <#if entryTitle?substring(0, 1) != letterTitle> 
28			<#assign letterTitle=entryTitle?substring(0, 1) /> 
29	    <div class="wrapper-letter wrapper-data-${letterTitle?lower_case}" data-id="${letterTitle?lower_case}">${letterTitle}</div> 
30    </#if> 
31			    
32		<div class="wrapper-data wrapper-data-${letterTitle?lower_case}"> 
33			 
34			<div class="wrapper-data-left"> 
35			 
36				<div class="wrapper-data-title">${entryTitle}</div> 
37			 
38  			<#list fieldsValuesMap?keys as key> 
39  			  <#list fieldsValuesMap[key] as data>	 
40  				  <#switch data.getDDMFormField().getLabel().getString(locale)> 
41    			    <#case "Inicio vigencia"> 
42  					    <#assign startDate = data.getValue().getString(locale) />		 
43       			  <#break> 
44  						<#case "Fin vigencia"> 
45  					    <#assign endDate = data.getValue().getString(locale) />		 
46       			  <#break> 
47  						<#case "Tipo de proceso del que deriva"> 
48  					    <#assign type = data.getValue().getString(locale) />		 
49       			  <#break> 
50							<#case "Documento asociado"> 
51						    <#if data.getValue().getString(locale)?has_content> 
52						      <#assign pdfFielData = data.getValue().getString(locale) />		 
53									<#assign pdfField = jsonFactoryUtil.createJSONObject(pdfFielData) />		 
54									<#assign url = pdfField.url?replace("?previewFileIndex=1", "") />													 
55    						<#else> 
56								  <#assign url = "" />		 
57						    </#if> 
58  					   
59       			  <#break>								 
60  			    </#switch> 
61  				</#list> 
62			  </#list>			 
63			 
64			  <div class="wrapper-data-date">Inicio de vigencia: ${startDate}  |  Fin de vigencia: ${endDate}</div>		 
65			  <div class="wrapper-data-description">Tipo de proceso del que deriva: ${type}</div> 
66				 
67			</div> 
68			<div class="wrapper-data-right"> 
69				<div class="wrapper-button big secondary"> 
70					<a href="${url}" target="_blank"> 
71						<img class="wrapper-button-icon" alt="Icono del portal del cabildo" src="/documents/d/portal/icon-download" />Descargar documento</a> 
72				</div> 
73			</div> 
74							 
75		</div> 
76  </#list>   
77</div> 
78<style> 
79	.wrapper-letter{ 
80		max-height: 31px; 
81		margin-bottom: 24px; 
82		padding: 8px 16px; 
83		display: flex; 
84		flex-direction: column; 
85		justify-content: center; 
86		align-items: flex-start; 
87		gap: 24px; 
88		align-self: stretch; 
89		border-radius: 8px; 
90		background: var(--neutros-claros-gris-000, #F3F5F5);		 
91		color: #000; 
92		font-size: 23px; 
93		font-style: normal; 
94		font-weight: 700; 
95		line-height: 130%; 
96	}	 
97	.wrapper-data{ 
98	  margin-bottom: 32px; 
99		display: flex; 
100    align-items: center; 
101    gap: 16px; 
102    align-self: stretch; 
103		justify-content: space-between; 
104
105	.wrapper-data-title, .wrapper-data-title a{ 
106		margin-bottom: 8px; 
107	  color: var(--semnticos-texto-enlace-defecto-negro, #050505); 
108		font-size: 16px; 
109		font-style: normal; 
110		font-weight: 600; 
111		line-height: 150%;  
112
113	.wrapper-data-date, .wrapper-data-description{	 
114		color: var(--Semnticos-Texto-Base-Gris-600, #677379); 
115    font-size: 16px; 
116		font-style: normal; 
117		font-weight: 600; 
118		line-height: 150%; /* 24px */ 
119
120	.wrapper-data-date{ 
121	  margin-bottom: 8px; 
122
123	.wrapper-data:has(+.wrapper-letter){ 
124		margin-bottom: 40px; 
125
126	.wrapper-data-right{ 
127	  min-width: 190px; 
128
129	 
130	.wrapper-data-left{ 
131		width: 70%; 
132
133	 
134	.wrapper-button .wrapper-button-icon{ 
135	  display: inline-block; 
136    margin-right: 8px; 
137
138		 
139	@media (max-width: 1023px) { 
140	  .wrapper-data-list { 
141      padding: 8px 24px; 
142
143
144	@media (min-width: 321px) and (max-width: 672px) { 
145		.wrapper-data{ 
146		  margin-bottom: 32px; 
147      display: flex; 
148      align-items: center; 
149      gap: 16px; 
150      align-self: stretch; 
151      justify-content: space-between; 
152      flex-direction: row; 
153      flex-wrap: wrap; 
154      align-content: center; 
155
156
157	@media (max-width: 320px) { 
158	   
159		.wrapper-data{ 
160		  margin-bottom: 32px; 
161      display: flex; 
162      align-items: center; 
163      gap: 16px; 
164      align-self: stretch; 
165      justify-content: space-between; 
166      flex-direction: row; 
167      flex-wrap: wrap; 
168      align-content: center; 
169
170		.wrapper-data-list { 
171      padding: 8px 16px; 
172
173
174</style> 

¿Te ha sido de ayuda esta página?

Utilizamos estos comentarios para mejorar nuestra documentación.