Water supply cut-off notices

A continuación, encontrarás los avisos de todas esas interrupciones en el servicio necesarias para realizar un mantenimiento imprescindible en la red de distribución y que podemos prever con una anticipación de más de 24 horas.

En esta relación no se incluyen los cortes de suministro provocados por incidencias inesperadas

Agradecemos tu comprensión por las molestias que los cortes de suministro pueden ocasionarte

An error occurred while processing the template.
The following has evaluated to null or missing:
==> renderer.getCreateDate  [in template "20116#20152#60223347" at line 31, column 32]

----
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 displayDate = renderer.getCre...  [in template "20116#20152#60223347" in function "getDay" at line 31, column 9]
	- Reached through: ${getDay(fecha, assetRenderer)}  [in template "20116#20152#60223347" in macro "pintarAviso" at line 110, column 31]
	- Reached through: @pintarAviso entry=curEntry id=contador  [in template "20116#20152#60223347" at line 272, column 33]
----
1<style> 
2.tab-content{ 
3    overflow-x:scroll; 
4
5</style> 
6 
7<#setting time_zone="Europe/Madrid"> 
8<#setting date_format="yyyy-MM-dd HH:mm"> 
9<#setting locale="es_ES"> 
10<#assign actualDate =.now?date?iso_utc> 
11<#assign datenow = .now?date?iso_utc +" "+ .now?time?iso_local_nz> 
12<#assign dateTimeNow = datenow?datetime("yyyy-MM-dd HH:mm")?date>  
13 
14<#assign currentGroupId = themeDisplay.getScopeGroupId()> 
15<#assign cookieMunicipalityNameKey = "LR_MUNICIPIO_NOMBRE_" + currentGroupId> 
16<#assign cookieOneMunicipality = "LR_ONLY_ONE_MUNICIPIO_" + currentGroupId> 
17<#assign CookieKeys = staticUtil["com.liferay.portal.kernel.util.CookieKeys"]> 
18<#assign HttpUtil = staticUtil["com.liferay.portal.kernel.util.HttpComponentsUtil"]> 
19<#assign cookieMunicipalityNameValue = HttpUtil.decodeURL(CookieKeys.getCookie(request, cookieMunicipalityNameKey))!""> 
20<#assign cookieOneMunicipalityValue = HttpUtil.decodeURL(CookieKeys.getCookie(request, cookieOneMunicipality))!""> 
21 
22<#function escapeId text> 
23    <#assign id = text?replace('^[^a-z]', '', 'ri')> 
24    <#assign id = id?replace('[^a-z|0-9|_]', '-', 'ri')> 
25    <#return id> 
26</#function> 
27<#function getDay date renderer> 
28    <#attempt> 
29        <#assign displayDate = dateUtil.parseDate("yyyy-MM-dd", date, locale)?date> 
30    <#recover> 
31        <#assign displayDate = renderer.getCreateDate()?date> 
32    </#attempt> 
33    <#return dateUtil.getDate(displayDate, "dd MMM", locale)/> 
34</#function> 
35 
36<#function getTime dateField> 
37    <#assign time = "00:00"/> 
38    <#attempt> 
39       <#assign time = dateField/> 
40    <#recover> 
41        <#assign time = "00:00"/> 
42    </#attempt> 
43    <#return time/> 
44</#function> 
45<#function normalizeDate field textTime renderer> 
46    <#assign date_Data = getterUtil.getString(field.getValue().getString(locale))> 
47    <#attempt> 
48        <#assign displayDate = dateUtil.parseDate("yyyy-MM-dd", date_Data + " " + getTime(textTime), locale)?date> 
49    <#recover> 
50        <#assign displayDate = renderer.getCreateDate()?date> 
51    </#attempt> 
52    <#return displayDate/> 
53</#function> 
54 
55<#macro pintarAviso entry id> 
56    <#assign 
57        assetRenderer = entry.getAssetRenderer() 
58		docXml = saxReaderUtil.read(assetRenderer.getArticle().getContentByLocale(locale))																														  
59        ddmFormValuesReader = assetRenderer.getDDMFormValuesReader() 
60        textFields = ddmFormValuesReader.getDDMFormFieldValues('text') 
61        htmlFields = ddmFormValuesReader.getDDMFormFieldValues('rich_text') 
62        dateFields = ddmFormValuesReader.getDDMFormFieldValues('date') 
63		ddmFormValuesReaderHijo = ddmFormValuesReader.getDDMFormFieldValues('fieldset')																		  
64        titulo = "" 
65        fecha = "" 
66        entradilla = "" 
67        descripcion = "" 
68        zonas = "" 
69		horaInit = "" 
70		horaEnd = ""	    
71    /> 
72    <#assign titulo = entry.getTitle(locale) /> 
73    <#list htmlFields as htmlField> 
74        <#if htmlField.name == 'ContenidoDeAviso'> 
75            <#assign descripcion = htmlField.getValue().getString(locale) /> 
76        </#if> 
77        <#if htmlField.name == 'Zonas'> 
78            <#assign zonas = htmlField.getValue().getString(locale) /> 
79        </#if>                                 
80    </#list>                                 
81    <#list textFields as textField> 
82        <#if textField.name == 'Entradilla'> 
83            <#assign entradilla = textField.getValue().getString(locale) /> 
84        </#if> 
85    </#list> 
86	<#list ddmFormValuesReaderHijo as ddmFormValueReaderHijo> 
87	       
88        <#if ddmFormValueReaderHijo.name == 'FechaInicioAvisoFieldSetFieldSet'> 
89					  <#assign horaInit=docXml.valueOf( "//dynamic-element[@name='FechaInicioAvisoFieldSet']/dynamic-element[@name='FechaInicioAvisoFieldSetFieldSet']/dynamic-element[@name='horaInicio']/dynamic-content/text()") />  
90        </#if> 
91		    <#if ddmFormValueReaderHijo.name == 'FechaFinAvisoFieldSetFieldSet'> 
92			      <#assign horaEnd=docXml.valueOf( "//dynamic-element[@name='FechaFinAvisoFieldSet']/dynamic-element[@name='FechaFinAvisoFieldSetFieldSet']/dynamic-element[@name='horaFin']/dynamic-content/text()") />  
93        </#if> 
94    </#list>													   
95    <#list dateFields as dateField> 
96        <#if dateField.name == 'FechaInicioAviso'> 
97            <#assign fecha = dateField.getValue().getString(locale) /> 
98            <#assign initTime = getTime(horaInit)/> 
99        </#if> 
100        <#if dateField.name == 'FechaFinAviso'> 
101            <#assign fechaFin = dateField.getValue().getString(locale) /> 
102            <#assign endTime = getTime(horaEnd)/> 
103        </#if>    		 
104    </#list> 
105    <div class="aviso"> 
106        <div class="icono-aviso col-sm-2 col-md-1"> 
107            <span class="icon-aviso"></span> 
108        </div> 
109        <div class="fecha-aviso col-sm-3 col-md-2"> 
110            <span class="dia">${getDay(fecha, assetRenderer)} - ${getDay(fechaFin, assetRenderer)}</span> 
111            <span class="hora">${initTime} - ${endTime}</span> 
112        </div> 
113        <div class="descripcion-aviso col-sm-7 col-md-9"> 
114            <a href="#" title="#" data-target="#detalleAviso${id}" id="${escapeId(titulo)}" data-toggle="modal" >${titulo}</a> 
115            <span class="municipios">${entradilla}</span> 
116            <!--Aqui iría el detalle de aviso en plan emergente--> 
117            <@pintarDetalleAviso titulo=titulo entradilla=entradilla fecha=fecha fechaFin=fechaFin descripcion=descripcion zonas=zonas id=id/> 
118        </div> 
119    </div> 
120</#macro> 
121<#macro pintarDetalleAviso titulo entradilla fecha fechaFin descripcion zonas id> 
122<div aria-labelledby="detalleAviso${id}Label" class="fade modal detalleAviso" id="detalleAviso${id}" role="dialog" tabindex="-1"> 
123    <div class="modal-dialog modal-full-screen"> 
124        <div class="modal-content"> 
125            <div class="modal-header"> 
126                <button aria-labelledby="Close" class="btn btn-default close" data-dismiss="modal" role="button" type="button" title="Cerrar"/> 
127            </div> 
128            <div class="modal-body modal-body-no-footer"> 
129                <div class="generic-content"> 
130                     
131                    <article class="detalle-aviso"> 
132                 
133                            <header> 
134                            <div class="container"> 
135                                <div class="row"> 
136                                    <div class="content-header"> 
137                                        <span class="icon-aviso"></span> 
138                                        <h1>${titulo}</h1> 
139                                        <summary> 
140                                            <span class="horario">${fecha} - ${fechaFin}</span> 
141                                            <#if zonas!= ""> 
142                                            <span class="zonas">${zonas}</span> 
143                                            </#if> 
144                                        </summary> 
145                                    </div> 
146                                </div> 
147                            </div> 
148                        </header>  
149                 
150                        <section class="container-generic-content"> 
151                            <div class="container"> 
152                                <div class="row"> 
153                                    <div class="col-md-8 col-md-offset-2"> 
154                                        ${descripcion}										 
155                                    </div> 
156                                </div> 
157                            </div> 
158                        </section> 
159                 
160                    </article> 
161                </div><!-- .generic-content --> 
162            </div><!-- modal-body --> 
163        </div> 
164    </div> 
165</div> 
166</#macro> 
167 
168<#assign currentAlerts = []> 
169<#assign plannedAlerts = []> 
170<#assign pastAlerts = []> 
171 
172<#if entries?has_content> 
173    <#list entries as curEntry> 
174        <#assign assetRenderer = curEntry.getAssetRenderer() 
175            ddmFormValuesReader = assetRenderer.getDDMFormValuesReader() 
176			textFields = ddmFormValuesReader.getDDMFormFieldValues('text') 
177            dateFields = ddmFormValuesReader.getDDMFormFieldValues('date')  
178			textInitTime="" 
179			textEndTime="" 
180			categoryList = curEntry.getCategories()/> 
181		<#list textFields as textField> 
182			<#if textField.name == 'horaInicio'> 
183				<#assign textInitTime =textField.getValue().getString(locale) /> 
184			</#if> 
185			<#if textField.name == 'horaFin'> 
186				<#assign textEndTime =textField.getValue().getString(locale) /> 
187			</#if> 
188		</#list> 
189        <#list dateFields as dateField> 
190            <#if dateField.name == 'FechaInicioMostrar'> 
191                <#assign initDate = normalizeDate(dateField, textInitTime, curEntry) /> 
192				<#assign initShowDate = dateUtil.getDate(initDate, "yyyy-MM-dd HH:mm", locale, time_zone)/> 
193            </#if> 
194			<#if dateField.name == 'FechaInicioAviso'> 
195                <#assign startDate = normalizeDate(dateField,textInitTime, curEntry) /> 
196				<#assign startShowDate = dateUtil.getDate(startDate, "yyyy-MM-dd HH:mm", locale, time_zone)/> 
197            </#if>   
198            <#if dateField.name == 'FechaFinAviso'> 
199                <#assign endDate = normalizeDate(dateField, textEndTime,curEntry) /> 
200				<#assign endShowDate = dateUtil.getDate(endDate, "yyyy-MM-dd HH:mm", locale, time_zone)/> 
201            </#if>    		 
202        </#list> 
203 
204		<#if categoryList?size != 0> 
205			<#list categoryList as category> 
206				<#if category.getName() == cookieMunicipalityNameValue> 
207					<#if (dateTimeNow >= startShowDate?date ) && (dateTimeNow <= endShowDate?date ) > 
208						<#assign currentAlerts = currentAlerts + [curEntry] /> 
209 
210					<#elseif (startShowDate?date > dateTimeNow ) > 
211						<#assign plannedAlerts = plannedAlerts + [curEntry] /> 
212 
213					<#elseif (startShowDate?date < dateTimeNow ) && (endShowDate?date < dateTimeNow)> 
214						<#assign pastAlerts = pastAlerts + [curEntry] /> 
215					</#if> 
216				</#if> 
217			</#list> 
218		<#else> 
219			<#if cookieMunicipalityNameValue == ""> 
220				<#if (dateTimeNow >= startShowDate?date ) && (dateTimeNow <= endShowDate?date ) > 
221					<#assign currentAlerts = currentAlerts + [curEntry] /> 
222 
223				<#elseif (startShowDate?date > dateTimeNow ) > 
224					<#assign plannedAlerts = plannedAlerts + [curEntry] /> 
225 
226				<#elseif (startShowDate?date < dateTimeNow ) && (endShowDate?date < dateTimeNow)> 
227					<#assign pastAlerts = pastAlerts + [curEntry] /> 
228				</#if> 
229			</#if> 
230		</#if> 
231    </#list> 
232</#if> 
233 
234<#assign contador=1> 
235<div class="generic-content"> 
236    <div class="list-avisos"> 
237<section> 
238    <div class="container"> 
239        <div class="row"> 
240            <div class="wrapper-avisos"> 
241                <ul class="nav nav-tabs nav-tabs-default tab-avisos" role="tablist"> 
242                    <li id="actuales" class="col-xs-4" role="presentation"> 
243                        <a href="#tab1" aria-controls="settings" role="tab" data-toggle="tab"><@liferay.language key="aqualogy.liferay.current.alerts" /></a> 
244                    </li> 
245                    <li id="previstos" class="col-xs-4" role="presentation"> 
246                        <a href="#tab2" aria-controls="settings" role="tab" data-toggle="tab"><@liferay.language key="aqualogy.liferay.plannet.alerts" /></a> 
247                    </li> 
248                    <li id="finalizados" class="col-xs-4" role="presentation"> 
249                        <a href="#tab3" aria-controls="settings" role="tab" data-toggle="tab"><@liferay.language key="aqualogy.liferay.finished.alerts" /></a> 
250                    </li> 
251                </ul> 
252                <div class="tab-content"> 
253                    <div role="tabpanel" class="tab-content-actuales tab-pane fade" id="tab1"> 
254                        <#if currentAlerts?has_content> 
255                            <#list currentAlerts as curEntry> 
256                                <@pintarAviso entry=curEntry id=contador /> 
257                                <#assign contador += 1> 
258                            </#list> 
259                        </#if> 
260                    </div>           
261                    <div role="tabpanel" class="tab-content-actuales tab-pane fade" id="tab2">       
262                        <#if plannedAlerts?has_content> 
263                            <#list plannedAlerts as curEntry> 
264                                <@pintarAviso entry=curEntry id=contador /> 
265                                <#assign contador += 1> 
266                            </#list> 
267                        </#if> 
268                    </div>           
269                    <div role="tabpanel" class="tab-content-actuales tab-pane fade" id="tab3">   
270                        <#if pastAlerts?has_content> 
271                            <#list pastAlerts as curEntry> 
272                                <@pintarAviso entry=curEntry id=contador /> 
273                                <#assign contador += 1> 
274                            </#list> 
275                        </#if> 
276                    </div>                     
277                </div> 
278            </div> 
279        </div> 
280    </div> 
281</section> 
282 
283</div> 
284</div> 
285<script> 
286 
287    function openAlertAnchor() { 
288        var id = window.location.hash.substring(1); 
289        if (id != null && id != '') { 
290            var alertLink = document.getElementById(id); 
291            if (alertLink != null) { 
292                alertLink.click(); 
293
294
295
296    openAlertAnchor(); 
297	 
298	$( document ).ready(function() { 
299	   var url = window.location.href;  
300	   var actuales = document.getElementById('actuales'); 
301	   var previstos = document.getElementById('previstos'); 
302	   var tab1 = document.getElementById('tab1'); 
303	   var tab2 = document.getElementById('tab2'); 
304	   if (url.indexOf("tab2") >= 0) { 
305			$(previstos).addClass('active'); 
306			$(tab2).addClass('active'); 
307			$(tab2).addClass('in'); 
308
309	   else { 
310			$(actuales).addClass('active'); 
311			$(tab1).addClass('active'); 
312			$(tab1).addClass('in'); 
313
314	}); 
315 
316</script>