Te encuentras en:
-
- Trabaja y fórmate con nosotros
- Histórico de ofertas de prácticas
Histórico de ofertas de prácticas
Te facilitamos la relación de los procesos de selección de estudiantes cerrados que hemos solicitado para que realicen prácticas formativas en nuestra empresa.
Se ha producido un error al procesar la plantilla.
The following has evaluated to null or missing:
==> numReferenciaSel.selectSingleNode(rootElement) [in template "20155#20195#427709" at line 69, column 58]
----
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 numReferencia = numReferencia... [in template "20155#20195#427709" at line 69, column 33]
----
1<#assign groupId = getterUtil.getLong(groupId)>
2<#assign group = serviceLocator.findService("com.liferay.portal.kernel.service.GroupLocalService").getGroup(groupId)>
3<#assign theme_display = request.getAttribute("LIFERAY_SHARED_THEME_DISPLAY")>
4<#assign imagesFolder = theme_display.getPathThemeImages()>
5
6<#if locale == "en_US">
7 <#assign newLocale = "ca_ES">
8<#else>
9 <#assign newLocale = locale>
10</#if>
11
12<#function miliSeconds dateString firstDate>
13 <#assign params = dateString?split(":")>
14
15 <#if params?size == 2>
16 <#assign param1 = params[0]>
17 <#assign param2 = params[1]>
18 <#assign param1 = getterUtil.getLong(param1)*3600000>
19 <#assign param2 = getterUtil.getLong(param2)*60000>
20 <#assign finalMilSec = param1 + param2>
21 <#assign finalMilSecLong = getterUtil.getLong(finalMilSec)>
22 <#assign resultLong = firstDate + finalMilSecLong>
23
24 <#return resultLong>
25 </#if>
26</#function>
27
28<#-- Función para validar el formato de hora hh:mm -->
29<#function isValidTimeFormat timeString>
30 <#return timeString?matches("^[0-2]?\\d:[0-5]\\d$")>
31</#function>
32
33<#if entries?has_content>
34 <#if locale != "en_US">
35 <div class="choose-ticket__search-bar">
36 <div class="form__field">
37 <div class="f__text__6_wrapper">
38 <input id="oferta-practicas-search-input" type="text" placeholder="<@liferay.language key="offer.helperSearchHistoric"/>" value=""/>
39 </div>
40 </div>
41 </div>
42 </#if>
43 <#assign today = .now?date>
44
45 <#if locale != "en_US">
46 <ul id="historical-students-offers-ul" class="list list--links list--links-b">
47 </#if>
48 <#assign count = 0>
49 <#foreach curEntry in entries>
50 <#assign renderer = curEntry.getAssetRenderer()>
51 <#assign className = renderer.getClassName()>
52
53 <#assign dataPub = "">
54 <#assign dataExp = "">
55 <#assign isExpired = false>
56
57 <#if className == "com.liferay.journal.model.JournalArticle">
58 <#assign journalArticle = renderer.getArticle()>
59 <#assign journalArticleId = journalArticle.getArticleId()>
60 <#assign document = saxReaderUtil.read(journalArticle.getContent())>
61 <#assign rootElement = document.getRootElement()>
62 <#assign title = "">
63 <#assign titleSel = saxReaderUtil.createXPath("dynamic-element[@field-reference='position']/dynamic-content[@language-id='" + newLocale + "']")>
64 <#if titleSel.selectSingleNode(rootElement)??>
65 <#assign title = titleSel.selectSingleNode(rootElement).getStringValue()>
66 </#if>
67 <#assign numReferencia = "">
68 <#assign numReferenciaSel = saxReaderUtil.createXPath("dynamic-element[@field-reference='reference_number']/dynamic-content[@language-id='" + newLocale + "']")>
69 <#assign numReferencia = numReferenciaSel.selectSingleNode(rootElement).getStringValue()>
70 <#assign referenceSel = saxReaderUtil.createXPath("dynamic-element[@field-reference='reference_text']/dynamic-content[@language-id='" + newLocale + "']")>
71 <#if referenceSel.selectSingleNode(rootElement)?has_content>
72 <#assign reference = referenceSel.selectSingleNode(rootElement).getStringValue()>
73 <#else>
74 <#assign reference = "">
75 </#if>
76 <#assign refNumSel = saxReaderUtil.createXPath("dynamic-element[@field-reference='reference_text']/dynamic-element[@field-reference='reference_number']/dynamic-content[@language-id='" + newLocale + "']")>
77 <#if refNumSel.selectSingleNode(rootElement)?has_content>
78 <#assign refNumber = refNumSel.selectSingleNode(rootElement).getStringValue()>
79 <#else>
80 <#assign refNumber = "">
81 </#if>
82 <#assign sumissionSel = saxReaderUtil.createXPath("dynamic-element[@field-reference='text_submission']/dynamic-content[@language-id='" + newLocale + "']")>
83 <#if sumissionSel.selectSingleNode(rootElement)?has_content>
84 <#assign sumission = sumissionSel.selectSingleNode(rootElement).getStringValue()>
85 <#else>
86 <#assign sumission = "">
87 </#if>
88 <#assign requestDateSel = saxReaderUtil.createXPath("dynamic-element[@field-reference='text_submission']/dynamic-element[@field-reference='request_date']/dynamic-content[@language-id='" + newLocale + "']")>
89 <#if requestDateSel.selectSingleNode(rootElement)?has_content>
90 <#assign requestDate = requestDateSel.selectSingleNode(rootElement).getStringValue()>
91 <#else>
92 <#assign requestDate = "">
93 </#if>
94 <#assign link = renderer.getURLViewInContext(renderRequest, renderResponse, "")>
95 <#assign pubDateSel = saxReaderUtil.createXPath("dynamic-element[@field-reference='pubDate']/dynamic-content[@language-id='" + newLocale + "']")>
96 <#assign dataPub = pubDateSel.selectSingleNode(rootElement).getStringValue()>
97 <#assign expDateSel = saxReaderUtil.createXPath("dynamic-element[@field-reference='expDate']/dynamic-content[@language-id='" + newLocale + "']")>
98 <#assign dataExp = expDateSel.selectSingleNode(rootElement).getStringValue()>
99 <#assign timePubSel = saxReaderUtil.createXPath("dynamic-element[@field-reference='pubTime']/dynamic-content[@language-id='" + newLocale + "']")>
100 <#assign timePub = timePubSel.selectSingleNode(rootElement).getStringValue()>
101 <#assign timeExpSel = saxReaderUtil.createXPath("dynamic-element[@field-reference='expTime']/dynamic-content[@language-id='" + newLocale + "']")>
102 <#assign timeExp = timeExpSel.selectSingleNode(rootElement).getStringValue()>
103
104 <#assign isExpiredSel = saxReaderUtil.createXPath("dynamic-element[@field-reference='isExpired']/dynamic-content[@language-id='" + newLocale + "']")>
105 <#if isExpiredSel.selectSingleNode(rootElement)?has_content>
106 <#assign isExpired = isExpiredSel.selectSingleNode(rootElement).getStringValue()>
107 </#if>
108
109 <#-- Data publicació i expiració -----------------------------------------------
110 -->
111
112 <#if (dataPub?has_content)>
113 <#if timePub?? && timePub?has_content>
114
115 <#if isValidTimeFormat(timePub) && timePub?has_content>
116 <#assign timePubDate = timePub?date["HH:mm"]>
117 <#assign timePubFormat = timePubDate?string["HH:mm"]>
118 <#else>
119 <#-- Si el formato no es válido, asignar un valor predeterminado o manejar el error -->
120 <#assign timePubDate = "">
121 <#assign timePubFormat = "">
122 </#if>
123
124 <#else>
125 <#assign timePubDate = "">
126 <#assign timePubDate = "">
127 </#if>
128 <#attempt>
129 <#assign dataPub = dataPub?date["yyyy-MM-dd"]>
130
131 <#if timePubFormat?has_content && timePubFormat != "">
132 <#assign dataPubMil = miliSeconds(timePubFormat dataPub?long)>
133 <#assign dataPub = dateUtil.newDate(getterUtil.getLong(dataPubMil))>
134 </#if>
135 <#assign dataPubMil = dataPub?long-timeZoneUtil.getTimeZone("Europe/Madrid").getOffset(dataPub?long)>
136 <#recover>
137 </#attempt>
138 </#if>
139
140
141 <#if (dataExp?has_content)>
142
143
144
145 <#if timeExp?? && timeExp?has_content>
146 <#if isValidTimeFormat(timeExp)>
147 <#assign timeExpDate = timeExp?date["HH:mm"]>
148 <#assign timeExpFormat = timeExpDate?string["HH:mm"]>
149 <#else>
150 <#-- Si el formato no es válido, asignar un valor predeterminado o manejar el error -->
151 <#assign timeExpFormat = "">
152 <#assign timeExpDate = "">
153 </#if>
154 <#else>
155 <#assign timeExpDate = "">
156 <#assign timeExpFormat = "">
157 </#if>
158 <#attempt>
159 <#assign dataExp = dataExp?date["yyyy-MM-dd"]>
160
161 <#if timeExpFormat?has_content && timeExpFormat != "">
162 <#assign dataExpMil = miliSeconds(timeExpFormat dataExp?long)>
163 <#assign dataExp = dateUtil.newDate(getterUtil.getLong(dataExpMil))>
164 </#if>
165 <#assign dataExpMil = dataExp?long-timeZoneUtil.getTimeZone("Europe/Madrid").getOffset(dataExp?long)>
166 <#recover>
167 </#attempt>
168 </#if>
169
170
171 <#if dataPub?has_content && dataExp?has_content && (today?long>=dataPubMil) && (today?long>dataExpMil) || getterUtil.getBoolean(isExpired)>
172 <#if title != "">
173 <#assign count = 1>
174
175 <#if locale != "en_US">
176 <li class="list__item oferta-practicas" data-title="${title}" data-fechapub="${dataPubMil}">
177 <a class="list__label" href="${link}">
178 ${numReferencia} - ${title}
179 <#--$dataPub
180 -->
181 </a>
182 <#if reference?has_content>
183 <p>
184 ${reference}: ${refNumber} <#if sumission>- ${sumission}</#if><#if requestDate>: ${requestDate}</#if>
185 </p>
186 </#if>
187 </li>
188 </#if>
189 </#if>
190 </#if>
191 </#if>
192 </#foreach>
193 <#if locale != "en_US">
194 </ul>
195 </#if>
196 <#if locale == "en_US" && count != 0>
197 <div class="content intro">
198
199 <#if (dataExp?has_content)>
200 <#if timeExp?? && timeExp?has_content>
201 <#if isValidTimeFormat(timeExp)>
202 <#assign timeExpDate = timeExp?date["HH:mm"]>
203 <#assign timeExpFormat = timeExpDate?string["HH:mm"]>
204 <#else>
205 <#-- Si el formato no es válido, asignar un valor predeterminado o manejar el error -->
206 <#assign timeExpDate = "">
207 <#assign timeExpFormat = "">
208 </#if>
209 <#else>
210 <#assign timeExpDate = "">
211 <#assign timeExpFormat = "">
212 </#if>
213 <#attempt>
214 <#assign dataExp = dataExp?date["yyyy-MM-dd"]>
215
216 <#if timeExpFormat?has_content && timeExpFormat != "">
217 <#assign dataExpMil = miliSeconds(timeExpFormat dataExp?long)>
218 <#assign dataExp = dateUtil.newDate(getterUtil.getLong(dataExpMil))>
219 </#if>
220 <#assign dataExpMil = dataExp?long-timeZoneUtil.getTimeZone("Europe/Madrid").getOffset(dataExp?long)>
221 <#recover>
222 </#attempt>
223 </#if>
224 <p>
225 <@liferay.language key="offer.studentHistoric.noResStudents"/>
226 </p>
227 </div>
228
229 <#elseif count == 0>
230 <div class="content intro">
231 <p>
232 <@liferay.language key="offer.studentHistoric.noResults"/>
233 </p>
234 </div>
235 </#if>
236<#else>
237 <div class="content intro">
238 <p>
239 <@liferay.language key="offer.studentHistoric.noResults"/>
240 </p>
241 </div>
242</#if>
243
244<div class="content intro no-results" style="display:none;">
245 <p>
246 <@liferay.language key="offer.studentHistoric.noResults.js"/>
247 </p>
248
249</div>
250<script type="text/javascript">
251
252 $(document).ready(function(){
253 historicalStudentOffers.init();
254 });
255
256 historicalStudentOffers= {
257 init: function(){
258 if($("li.oferta-practicas").length==0){
259 return;
260 }
261
262 var maxDate = new Date("3000/06/25");
263 var orderList = $("li.oferta-practicas").sort(function(a,b){
264 var date1 = $(a).data("fechapub")==""?maxDate:new Date($(a).data("fechapub"));
265 var date2 = $(b).data("fechapub")==""?maxDate:new Date($(b).data("fechapub"));
266 //console.log($(a).data("fechapub"));
267 //console.log($(b).data("fechapub"));
268 //console.log(date1 + "----" + date2);
269 return date2 - date1;
270 });
271
272
273 var offers = [];
274 var year = null;
275 jQuery.each(orderList,function(index,li){
276 var date = new Date($(li).data("fechapub"));
277 if(year != date.getFullYear()){
278 year = date.getFullYear();
279 offers.push('<li><h2 class="title title--2" data-year-title="' + year + '">' + year + '</h2></li>');
280 }
281 //$(li).data("year",year);
282 li.dataset.year = year;
283 offers.push(li);
284 });
285
286 $("#historical-students-offers-ul").html(offers);
287
288 $('#oferta-practicas-search-input').keyup(function(event){
289 <#--if(event.which == 13)
290--> <#-- {
291--> event.preventDefault();
292 this.search();
293 <#-- }
294--> }.bind(this));
295 },
296 search: function(){
297 $('.no-results').hide();
298 var text = $("#oferta-practicas-search-input").val();
299 if(text==""){
300 $("[data-year-title]").show();
301 $(".oferta-practicas").show();
302 }else{
303 $("[data-year-title]").hide();
304 var found = false;
305 $(".oferta-practicas").each(function(index,item){
306 var title = $(item).data("title");
307 if(title.toUpperCase().includes(text.toUpperCase())){
308 var year = $(item).data("year");
309 $("[data-year-title='" + year + "']").show();
310 $(item).show();
311 found = true;
312 }else{
313 $(item).hide();
314 }
315 });
316 if(!found){
317 var txt = "<@liferay.language key="offer.studentHistoric.noResults.js"/>";
318 txt = txt.replace("@@@@", text);
319 $('.no-results p').html(txt);
320 $('.no-results').show();
321 }
322 }
323 }
324 };
325
326
327 </script>
Cerrar
© OpenStreetMap contributors
