Vídeos de Plenos
Ruta de navegación
Publicador de contenidos
-
Publicador de contenidos
-
-
Publicador de contenidos
-
-
Publicador de contenidos
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
Pleno ordinario del 23 de febrero de 2023 del Ayuntamiento de Leganés
- Pleno ordinario del 23 de febrero de 2023 - Parte 1
- Pleno ordinario del 23 de febrero de 2023 - Parte 2
Enlaces de interés
-
-
-
-
Pleno ordinario del 26 de enero de 2023 del Ayuntamiento de Leganés
Enlaces de interés
-
Publicador de contenidos
Se ha producido un error al procesar la plantilla.The following has evaluated to null or missing: ==> Nombre [in template "20098#20124#92839" at line 22, column 46] ---- 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: ${Nombre.getData()?html} [in template "20098#20124#92839" at line 22, column 44] ----1<#--2 PLANTILLA DE ELEMENTO PARA EL PUBLICADOR DE LIFERAY3 La galería queda DENTRO del desplegable, después de documentos.4 Sustituye todo el contenido de la plantilla por este archivo.5-->6<#function rand min max>7 <#local now = .now?long?c />8 <#local randomNum = _rand + ("0." + now?substring(now?length - 1) + now?substring(now?length - 2))?number />9 <#if randomNum gt 1>10 <#assign _rand = randomNum % 1 />11 <#else>12 <#assign _rand = randomNum />13 </#if>14 <#return (min + ((max - min) * _rand))?round />15</#function>1617<#assign _rand = 0.36 />18<#assign numrand = rand(1, 1000) />19<#assign uid = "directorio" + numrand />2021<li class="item-directorio">22 <input type="checkbox" name="list" id="${Nombre.getData()?html}${numrand}" />23 <label for="${Nombre.getData()?html}${numrand}">${Nombre.getData()}</label>2425 <ul class="interior">26 <li class="contenido-interior">27 <div class="ficha-servicio">28 <div class="top-content m-0 pl-4">29 <#if Imagen.getData()?has_content>30 <div class="image">31 <img32 alt="${Imagen.getAttribute('alt')!''?html}"33 data-fileentryid="${Imagen.getAttribute('fileEntryId')!''?html}"34 src="${Imagen.getData()?html}"35 />36 </div>37 </#if>3839 <div class="content">40 <#if Descripcion.getData()?has_content>41 <div class="description">${Descripcion.getData()}</div>42 </#if>4344 <div class="share">45 <#if twitter?exists && twitter.getData()?has_content>46 <a href="${twitter.getData()?html}" target="_blank" rel="noopener noreferrer" aria-label="X">47 <i class="fa-brands fa-x-twitter" aria-hidden="true"></i>48 </a>49 </#if>50 <#if facebook?exists && facebook.getData()?has_content>51 <a href="${facebook.getData()?html}" target="_blank" rel="noopener noreferrer" aria-label="Facebook">52 <i class="fa fa-facebook" aria-hidden="true"></i>53 </a>54 </#if>55 <#if instagram?exists && instagram.getData()?has_content>56 <a href="${instagram.getData()?html}" target="_blank" rel="noopener noreferrer" aria-label="Instagram">57 <i class="fa fa-instagram" aria-hidden="true"></i>58 </a>59 </#if>60 </div>6162 <#if Direccion.getData()?has_content>63 <span class="text-direccion"><i class="fa-light fa-location-dot" aria-hidden="true"></i> ${Direccion.getData()}</span>64 </#if>6566 <#if Latitud.getData()?has_content && Longitud.getData()?has_content>67 <a href="https://www.google.es/maps/dir/${Direccion.getData()?url('UTF-8')},/@${Latitud.getData()?url('UTF-8')},${Longitud.getData()?url('UTF-8')}" class="link-arrow" target="_blank" rel="noopener noreferrer">68 ¿CÓMO LLEGAR? <i class="fa-solid fa-chevron-right" aria-hidden="true"></i>69 </a>70 </#if>7172 <#if horario?exists && horario.getData()?has_content>73 <p class="link-mail"><i class="fa-light fa-clock" aria-hidden="true"></i> ${horario.getData()}</p>74 </#if>7576 <#if Email.getData()?has_content && Email.getSiblings()?has_content>77 <div class="d-flex flex-wrap">78 <#list Email.getSiblings() as curEmail>79 <#if curEmail.getData()?has_content>80 <a href="mailto:${curEmail.getData()?html}" class="<#if curEmail?index == 0>link-mail<#else>ml-2</#if>" <#if curEmail?index != 0>style="color:#2b2b2b"</#if>>81 <#if curEmail?index == 0><i class="fa-light fa-envelope" aria-hidden="true"></i><#else>/</#if> ${curEmail.getData()}82 </a>83 </#if>84 </#list>85 </div>86 </#if>8788 <#if Fax.getData()?has_content>89 <p class="link-mail"><i class="fa-light fa-fax" aria-hidden="true"></i> ${Fax.getData()}</p>90 </#if>9192 <#if Telefono.getData()?has_content && Telefono.getSiblings()?has_content>93 <div class="d-flex flex-wrap">94 <#list Telefono.getSiblings() as curTelefono>95 <#if curTelefono.getData()?has_content>96 <a href="tel:${curTelefono.getData()?html}" class="<#if curTelefono?index == 0>link-telephone<#else>ml-2</#if>" <#if curTelefono?index != 0>style="color:#2b2b2b"</#if>>97 <#if curTelefono?index == 0><i class="fa-light fa-phone-volume" aria-hidden="true"></i><#else>/</#if> ${curTelefono.getData()}98 </a>99 </#if>100 </#list>101 </div>102 </#if>103104 <#if Web.getData()?has_content>105 <a href="${Web.getData()?html}" target="_blank" rel="noopener noreferrer" class="link-web"><i class="fa-light fa-globe" aria-hidden="true"></i> ${Web.getData()}</a>106 </#if>107108 <#if accesos?exists && accesos.getData()?has_content>109 <p class="mb-2"><strong class="blue-color">Accesos:</strong> ${accesos.getData()}</p>110 </#if>111 <#if otrosDatos?exists && otrosDatos.getData()?has_content>112 <p>${otrosDatos.getData()}</p>113 </#if>114115 <#assign hayEnlaces = false />116 <#assign hayDocumentos = false />117 <#if GrupoDeCampos89655952?exists && GrupoDeCampos89655952.getSiblings()?has_content>118 <#list GrupoDeCampos89655952.getSiblings() as item>119 <#if item.enlaceExterno?exists && item.enlaceExterno.getData()?has_content><#assign hayEnlaces = true /></#if>120 <#if item.documento?exists && item.documento.getData()?has_content><#assign hayDocumentos = true /></#if>121 </#list>122 </#if>123124 <#if hayEnlaces || hayDocumentos>125 <div class="grid-2">126 <#if hayEnlaces>127 <div class="grid">128 <p class="title-column">Enlaces de interés</p>129 <div class="d-flex flex-wrap">130 <#list GrupoDeCampos89655952.getSiblings() as item>131 <#if item.enlaceExterno?exists && item.enlaceExterno.getData()?has_content>132 <a href="${item.enlaceExterno.getData()?html}" target="_blank" rel="noopener noreferrer" class="link-icon w-100"><i class="fa-light fa-link" aria-hidden="true"></i> ${item.titulo.getData()}</a>133 </#if>134 </#list>135 </div>136 </div>137 </#if>138 <#if hayDocumentos>139 <div class="grid">140 <p class="title-column">Documentos</p>141 <div class="d-flex flex-wrap">142 <#list GrupoDeCampos89655952.getSiblings() as item>143 <#if item.documento?exists && item.documento.getData()?has_content>144 <a href="${item.documento.getData()?html}" target="_blank" rel="noopener noreferrer" class="link-icon w-100" download><i class="fa-light fa-file-arrow-down" aria-hidden="true"></i> ${item.titulo.getData()}</a>145 </#if>146 </#list>147 </div>148 </div>149 </#if>150 </div>151 </#if>152 </div>153 </div>154 </div>155156 <#-- GALERÍA: sigue dentro de .interior y se ocultará con el desplegable. -->157 <#if ImagenExtra?exists && ImagenExtra.getSiblings()?has_content>158 <#assign hayImagenes = false />159 <#list ImagenExtra.getSiblings() as imagen>160 <#if imagen.getData()?has_content><#assign hayImagenes = true /></#if>161 </#list>162 <#if hayImagenes>163 <section class="galeria-multimedia" data-galeria="${uid}" aria-labelledby="titulo-${uid}">164 <h2 id="titulo-${uid}" class="title-underline-dest text-primary titulo-galeria">Galería multimedia</h2>165 <div class="galeria-carrusel">166 <button type="button" class="galeria-flecha galeria-anterior" aria-label="Imágenes anteriores">❮</button>167 <div class="galeria-ventana">168 <div class="galeria-pista">169 <#list ImagenExtra.getSiblings() as imagen>170 <#if imagen.getData()?has_content>171 <#assign altImagen = imagen.getAttribute('alt')!'Imagen de la galería' />172 <div class="galeria-item">173 <button type="button" class="galeria-boton" data-imagen="${imagen.getData()?html}" data-alt="${altImagen?html}" aria-label="Ampliar imagen: ${altImagen?html}">174 <img src="${imagen.getData()?html}" alt="${altImagen?html}" loading="lazy" />175 </button>176 </div>177 </#if>178 </#list>179 </div>180 </div>181 <button type="button" class="galeria-flecha galeria-siguiente" aria-label="Imágenes siguientes">❯</button>182 </div>183 </section>184185 <div class="visor-galeria" data-visor="${uid}" role="dialog" aria-modal="true" aria-label="Visor de imágenes" aria-hidden="true">186 <button type="button" class="visor-cerrar" aria-label="Cerrar imagen ampliada">×</button>187 <button type="button" class="visor-anterior" aria-label="Imagen anterior">❮</button>188 <div class="visor-contenido">189 <img class="visor-imagen" src="" alt="" />190 <p class="visor-pie"></p>191 <a class="visor-descargar" href="#" download aria-label="Descargar imagen mostrada" title="Descargar imagen">192 <i class="fa-light fa-download" aria-hidden="true"></i><span>Descargar imagen</span>193 </a>194 </div>195 <button type="button" class="visor-siguiente" aria-label="Imagen siguiente">❯</button>196 </div>197 </#if>198 </#if>199 </li>200 </ul>201</li>202203<style>204.interior > .contenido-interior { width:100%; margin:0; padding:0; list-style:none; }205.interior .galeria-multimedia { clear:both; width:100%; margin:25px 0 45px; padding:0 20px; box-sizing:border-box; }206.titulo-galeria { margin:0 0 20px; text-align:center; }207.galeria-carrusel { position:relative; display:flex; align-items:center; gap:12px; }208.galeria-ventana { width:100%; overflow:hidden; }209.galeria-pista { display:flex; justify-content:center; transition:transform .3s ease; }210.galeria-item { flex:0 0 33.333%; padding:7px; box-sizing:border-box; }211.galeria-boton { display:block; width:100%; height:260px; padding:0; overflow:hidden; cursor:pointer; background:#f2f2f2; border:1px solid #333; border-radius:3px; }212.galeria-boton img { display:block; width:100%; height:100%; object-fit:cover; transition:transform .25s ease; }213.galeria-boton:hover img, .galeria-boton:focus img { transform:scale(1.04); }214.galeria-flecha { flex:0 0 40px; width:40px; height:40px; padding:0; color:#fff; background:#378fc6; border:0; border-radius:50%; font-size:25px; cursor:pointer; }215.galeria-flecha[hidden] { display:none; }216.galeria-flecha:disabled { opacity:.35; cursor:default; }217.visor-galeria { position:fixed; inset:0; z-index:100000; display:none; align-items:center; justify-content:center; padding:60px 80px; background:rgba(0,0,0,.88); }218.visor-galeria.visor-abierto { display:flex; }219.visor-contenido { display:flex; flex-direction:column; align-items:center; max-width:100%; max-height:100%; }220.visor-imagen { max-width:90vw; max-height:80vh; object-fit:contain; background:#fff; }221.visor-pie { margin:14px 0 0; color:#fff; text-align:center; }222.visor-descargar { display:inline-flex; align-items:center; gap:8px; margin-top:14px; min-height:40px; padding:9px 16px; color:#fff; background:#378fc6; border-radius:4px; font-size:14px; font-weight:600; line-height:1; text-decoration:none; }223.visor-descargar:hover,.visor-descargar:focus { color:#fff; background:#0066b3; text-decoration:none; }224.visor-cerrar,.visor-anterior,.visor-siguiente { position:absolute; z-index:2; color:#fff; border:0; cursor:pointer; }225.visor-cerrar { top:12px; right:22px; width:50px; height:50px; background:transparent; font-size:46px; }226.visor-anterior,.visor-siguiente { top:50%; width:48px; height:70px; background:rgba(0,0,0,.4); font-size:40px; transform:translateY(-50%); }227.visor-anterior { left:14px; }.visor-siguiente { right:14px; }228body.visor-sin-scroll { overflow:hidden; }229@media (max-width:1025px) { .galeria-item { flex-basis:50%; } }230@media (max-width:600px) { .interior .galeria-multimedia { padding:0; }.galeria-item { flex-basis:100%; }.galeria-boton { height:230px; }.galeria-flecha { flex-basis:34px; width:34px; height:34px; }.visor-galeria { padding:55px 42px; }.visor-imagen { max-width:100%; max-height:74vh; }.visor-descargar { margin-top:12px; padding:9px 14px; } }231</style>232233<script>234(function () {235 function iniciarGalerias() {236 var galerias = document.querySelectorAll('[data-galeria]:not([data-iniciada="true"])');237 Array.prototype.forEach.call(galerias, function (galeria) {238 galeria.setAttribute('data-iniciada', 'true');239 var uid = galeria.getAttribute('data-galeria');240 var visor = document.querySelector('[data-visor="' + uid + '"]');241 var pista = galeria.querySelector('.galeria-pista');242 var botones = Array.prototype.slice.call(galeria.querySelectorAll('.galeria-boton'));243 var anterior = galeria.querySelector('.galeria-anterior');244 var siguiente = galeria.querySelector('.galeria-siguiente');245 var cerrar = visor.querySelector('.visor-cerrar');246 var visorAnterior = visor.querySelector('.visor-anterior');247 var visorSiguiente = visor.querySelector('.visor-siguiente');248 var imagenVisor = visor.querySelector('.visor-imagen');249 var pieVisor = visor.querySelector('.visor-pie');250 var descargar = visor.querySelector('.visor-descargar');251 var posicion = 0, indice = 0, ultimoBoton = null;252 function visibles() { return window.innerWidth <= 600 ? 1 : (window.innerWidth <= 1025 ? 2 : 3); }253 function actualizar() {254 var numeroVisibles = visibles();255 var max = Math.max(0, botones.length - numeroVisibles);256 var hayDesplazamiento = max > 0;257258 posicion = Math.max(0, Math.min(posicion, max));259 pista.style.transform = 'translateX(-' + (posicion * (100 / numeroVisibles)) + '%)';260261 /*262 * Si todas las imágenes caben en pantalla, la pista las263 * centra y se retiran las flechas, que no tendrían función.264 */265 galeria.classList.toggle('galeria-sin-desplazamiento', !hayDesplazamiento);266 anterior.hidden = !hayDesplazamiento;267 siguiente.hidden = !hayDesplazamiento;268 anterior.disabled = posicion === 0;269 siguiente.disabled = posicion === max;270 }271 function mostrar(n) { var urlImagen; if (n < 0) { n = botones.length - 1; } if (n >= botones.length) { n = 0; } indice = n; urlImagen = botones[n].getAttribute('data-imagen'); imagenVisor.src = urlImagen; imagenVisor.alt = botones[n].getAttribute('data-alt') || ''; pieVisor.textContent = imagenVisor.alt; descargar.href = urlImagen; descargar.setAttribute('download', 'imagen-galeria-' + (n + 1)); visorAnterior.style.display = botones.length > 1 ? '' : 'none'; visorSiguiente.style.display = botones.length > 1 ? '' : 'none'; }272 function abrir(n, boton) { ultimoBoton = boton; mostrar(n); visor.classList.add('visor-abierto'); visor.setAttribute('aria-hidden', 'false'); document.body.classList.add('visor-sin-scroll'); cerrar.focus(); }273 function cerrarVisor() { visor.classList.remove('visor-abierto'); visor.setAttribute('aria-hidden', 'true'); document.body.classList.remove('visor-sin-scroll'); imagenVisor.src = ''; if (ultimoBoton) { ultimoBoton.focus(); } }274 anterior.addEventListener('click', function () { posicion--; actualizar(); });275 siguiente.addEventListener('click', function () { posicion++; actualizar(); });276 botones.forEach(function (boton, n) { boton.addEventListener('click', function () { abrir(n, boton); }); });277 cerrar.addEventListener('click', cerrarVisor); visorAnterior.addEventListener('click', function () { mostrar(indice - 1); }); visorSiguiente.addEventListener('click', function () { mostrar(indice + 1); });278 visor.addEventListener('click', function (e) { if (e.target === visor) { cerrarVisor(); } });279 document.addEventListener('keydown', function (e) { if (!visor.classList.contains('visor-abierto')) { return; } if (e.key === 'Escape') { cerrarVisor(); } else if (e.key === 'ArrowLeft') { mostrar(indice - 1); } else if (e.key === 'ArrowRight') { mostrar(indice + 1); } });280 window.addEventListener('resize', actualizar); actualizar();281 });282 }283 if (document.readyState === 'loading') { document.addEventListener('DOMContentLoaded', iniciarGalerias); } else { iniciarGalerias(); }284 if (window.Liferay && typeof Liferay.on === 'function') { Liferay.on('endNavigate', function () { window.setTimeout(iniciarGalerias, 100); }); }285})();286</script> -
-
-
-
Pleno ordinario del 21 de diciembre de 2022 del Ayuntamiento de Leganés
Enlaces de interés
-
-
-
Pleno extraordinario del 12 de diciembre de 2022 del Ayuntamiento de Leganés
Enlaces de interés
-
-
-
Pleno ordinario del 24 de noviembre de 2022 del Ayuntamiento de Leganés
- Pleno ordinario del 24 de noviembre de 2022 - Parte 1
- Pleno ordinario del 24 de noviembre de 2022 - Parte 2
- Pleno ordinario del 24 de noviembre de 2022 - Parte 3
Enlaces de interés
-
-
-
Pleno extraordinario del 17 de noviembre de 2022 del Ayuntamiento de Leganés
Enlaces de interés
-
-
-
Pleno ordinario del 27 de octubre de 2022 del Ayuntamiento de Leganés
- Pleno ordinario del 27 de octubre de 2022 - Parte 1
- Pleno ordinario del 27 de octubre de 2022 - Parte 2
Enlaces de interés
-
-
-
Pleno extraordinario del 18 de octubre de 2022 del Ayuntamiento de Leganés
Enlaces de interés
-
-
-
Pleno ordinario del 29 de septiembre de 2022 del Ayuntamiento de Leganés
Enlaces de interés
-
-
-
Pleno extraordinario del 1 de septiembre de 2022 del Ayuntamiento de Leganés
Enlaces de interés
-
-
-
Pleno extraordinario del 11 de agosto de 2022 del Ayuntamiento de LeganésEnlaces de interés
-
-
-
Pleno ordinario del 20 de julio de 2022 del Ayuntamiento de Leganés
Enlaces de interés
-
-
-
Pleno ordinario del 30 de junio de 2022 del Ayuntamiento de Leganés
Enlaces de interés
-
-
-
Pleno Debate Estado de la Ciudad 16-17 de junio de 2022 del Ayuntamiento de Leganés
- Pleno Debate Estado de la Ciudad 16 de junio de 2022 - Parte 1
- Pleno Debate Estado de la Ciudad 17 de junio de 2022 - Parte 2
Enlaces de interés
-
-
-
Pleno extraordinario del 10 de junio de 2022 del Ayuntamiento de Leganés
Enlaces de interés
-
-
-
Pleno extraordinario del 7 de junio de 2022 del Ayuntamiento de Leganés
Enlaces de interés
-
-
-
Pleno ordinario del 26 de mayo de 2022 del Ayuntamiento de Leganés
Enlaces de interés
-
-
-
Pleno extraordinario del 18 de mayo de 2022 del Ayuntamiento de Leganés
Enlaces de interés
-
-
-
Pleno extraordinario del 6 de mayo de 2022 del Ayuntamiento de Leganés
Enlaces de interés
-
-
-
Pleno extraordinario del 28 de abril de 2022 del Ayuntamiento de Leganés
Enlaces de interés
-
-
-
Pleno ordinario del 28 de abril de 2022 del Ayuntamiento de Leganés
Enlaces de interés
-
-
-
Pleno ordinario del 31 de marzo de 2022 del Ayuntamiento de Leganés- Pleno ordinario del 31 de marzo de 2022 - Parte 1
- Pleno ordinario del 31 de marzo de 2022 - Parte 2
- Pleno ordinario del 31 de marzo de 2022 - Parte 3
Enlaces de interés
-
-
-
Pleno ordinario del 24 de febrero de 2022 del Ayuntamiento de Leganés
- Pleno ordinario del 24 de febrero de 2022 - Parte 1
- Pleno ordinario del 24 de febrero de 2022 - Parte 2
Enlaces de interés
-
-
-
Pleno extraordinario del 27 de enero de 2022 del Ayuntamiento de Leganés
Enlaces de interés
-
-
-
Pleno extraordinario del 13 de enero de 2022 del Ayuntamiento de Leganés
Enlaces de interés
-
-
-
Pleno extraordinario del 13 de enero de 2022 del Ayuntamiento de Leganés
- Pleno extraordinario del 13 de enero de 2022 - Parte 1
- Pleno extraordinario del 13 de enero de 2022 - Parte 2
Enlaces de interés
-
Publicador de contenidos
-
-
-
-
Pleno ordinario del 25 de noviembre de 2021 del Ayuntamiento de Leganés
Enlaces de interés
-
-
-
Pleno extraordinario del 22 de noviembre de 2021 del Ayuntamiento de Leganés
Enlaces de interés
-
-
-
Pleno ordinario del 28 de octubre de 2021 del Ayuntamiento de Leganés
- Pleno ordinario del 28 de octubre de 2021 - Parte 1
- Pleno ordinario del 28 de octubre de 2021 - Parte 2
Enlaces de interés
-
-
-
Enlaces de interés
-
-
-
Pleno extraordinario del 19 de agosto de 2021 del Ayuntamiento de Leganés
Enlaces de interés
-
-
-
Pleno ordinario del 8 de julio de 2021 del Ayuntamiento de Leganés
Enlaces de interés
-
-
-
Debate del Estado de la Ciudad. 23 y 24 de junio de 2021 del Ayuntamiento de Leganés
- Debate del Estado de la Ciudad. 23 de junio de 2021
- Debate del Estado de la Ciudad. 24 de junio de 2021
Enlaces de interés
-
-
-
Pleno ordinario del 10 de junio de 2021 del Ayuntamiento de Leganés
Enlaces de interés
-
-
-
Pleno ordinario del 13 de mayo de 2021 del Ayuntamiento de Leganés
Enlaces de interés
-
-
-
Pleno extraordinario del 22 de abril de 2021 del Ayuntamiento de Leganés
Enlaces de interés
-
-
-
Pleno ordinario del 8 de abril de 2021 del Ayuntamiento de Leganés
- Pleno ordinario del 8 de abril de 2021 - Parte 1
- Pleno ordinario del 8 de abril de 2021 - Parte 2
- Pleno ordinario del 8 de abril de 2021 - Parte 3
Enlaces de interés
-
-
-
Pleno extraordinario del 5 de abril de 2021 del Ayuntamiento de Leganés
Enlaces de interés
-
-
-
Pleno ordinario del 11 de marzo de 2021 del Ayuntamiento de Leganés
- Pleno ordinario del 11 de marzo de 2021 - Parte 1
- Pleno ordinario del 11 de marzo de 2021 - Parte 2
- Pleno ordinario del 11 de marzo de 2021 - Parte 3
- Pleno ordinario del 11 de marzo de 2021 - Parte 4
Enlaces de interés
-
-
-
Pleno ordinario del 11 de febrero de 2021 del Ayuntamiento de Leganés
- Pleno ordinario del 11 de febrero de 2021 - Parte 1
- Pleno ordinario del 11 de febrero de 2021 - Parte 2
- Pleno ordinario del 11 de febrero de 2021 - Parte 3
Enlaces de interés
-
-
-
Pleno extraordinario del 5 de febrero de 20211 del Ayuntamiento de Leganés
Enlaces de interés
-
-
-
Pleno extraordinario del 21 de enero de 2021 del Ayuntamiento de Leganés
Enlaces de interés
-
-
-
Pleno ordinario del 14 de enero de 2021 del Ayuntamiento de Leganés
- Pleno ordinario del 14 de enero de 2021 - Parte 1
- Pleno ordinario del 14 de enero de 2021 - Parte 2
- Pleno ordinario del 14 de enero de 2021 - Parte 3
Enlaces de interés
-
-
-
Pleno extraordinario del 14 de enero de 2021 del Ayuntamiento de Leganés
Enlaces de interés
-
Publicador de contenidos
-