Idyllic landscapes to reconnect with nature and traditional and avant-garde gastronomy. Asturias has all the ingredients to create a unique event. Only in Asturias can a business trip become a pleasure trip: meetings in unique spaces, activities in seven Biosphere Reserves ideal for incentives, historical sites that invite you to discover the essence of the region and an unparalleled Landscape Cuisine, where sea and mountain intertwine in perfect harmony.
In addition to its privileged natural surroundings, Asturias stands out for its commitment to sustainability and the environment, making the organisation of events an experience aligned with the values of responsibility and respect for nature. Its communications network is another of its great attractions: it has a wide range of national and international flights, a high-speed railway line that connects it directly with Madrid and an infrastructure that facilitates access to the main sites in the Principality.
Spectacular venues for corporate events
The region has more than 200,000 m² of congress facilities, two exhibition centres and a wide range of unique spaces designed to host all kinds of events. Among its main architectural landmarks are the following:
Java method "as.asac.template.tools.DLToolImpl.getThumbnailByJSON(String, String)" threw an exception when invoked on as.asac.template.tools.DLToolImpl object "as.asac.template.tools.DLToolImpl@1d931f40"; see cause exception in the Java stack trace.
----
FTL stack trace ("~" means nesting-related):
- Failed at: #assign slideThumbnail1 = dlTool.getT... [in template "37703#37743#8810222" at line 70, column 73]
----
1<#-- Services -->
2<#assign assetEntryLocalServiceUtil = serviceLocator.findService("com.liferay.asset.kernel.service.AssetEntryLocalService")/>
3<#assign assetLinkLocalService = serviceLocator.findService("com.liferay.asset.kernel.service.AssetLinkLocalService")/>
4<#assign journalArticleResourceServiceUtil = serviceLocator.findService("com.liferay.journal.service.JournalArticleResourceLocalService")/>
5<#assign assetVocabularyLocalService = serviceLocator.findService("com.liferay.asset.kernel.service.AssetVocabularyLocalService") />
6<#assign assetCategoryLocalService = serviceLocator.findService("com.liferay.asset.kernel.service.AssetCategoryLocalService")>
7<#assign ddmStructureLocalService = serviceLocator.findService("com.liferay.dynamic.data.mapping.service.DDMStructureLocalService")/>
8
9<#-- Reserved vbles -->
10<#assign title = .vars['reserved-article-title'].data>
11<#assign articleId=.vars["reserved-article-id"].data />
12<#assign description=.vars["reserved-article-description"].data />
13<#assign smallImageUrl=.vars["reserved-article-small-image-url"].data />
14<#assign date=.vars["reserved-article-display-date"].data />
15<#assign request = .vars['request']>
16
17<#-- Init -->
18
19<#assign assetEntry = journalTool.getAssetEntryByArticleId(groupId, articleId)>
20<#assign journalArticle = journalTool.getJournalArticleByAssetEntry(assetEntry)>
21<#assign ddmStructureNameNormalize = "template-${friendlyURLNormalizerTool.normalize(journalArticle.getDDMStructure().getName(localeUtil.getDefault()))}" />
22<#assign articleURL = themeDisplay.getURLPortal()+themeDisplay.getURLCurrent()>
23<#assign articleMainImageThumbnail4 = dlTool.getThumbnail(smallImageUrl, "4", layoutSetBannerPath)! />
24<#assign articleMainImageThumbnail1 = dlTool.getThumbnail(smallImageUrl, "1")! />
25
26
27<#-- Categories -->
28<#assign serviciosSede = journalTool.getCategories(groupId, articleId, ["MICE :: Sedes :: Servicios"])/>
29<#assign serviciosSalas = journalTool.getCategories(groupId, articleId, ["MICE :: Sedes :: Salas :: Servicios"])/>
30<#assign tipoSede = journalTool.getCategories(groupId, articleId, ["MICE :: Sedes :: Tipos"])/>
31<#assign concejo = journalTool.getCategories(groupId, articleId, ["MICE :: Concejo"])/>
32
33
34<article class="template template-mice template-${ddmStructureNameNormalize} template-mice-article" role="article" >
35
36 <div class="container">
37 <div class="row no-gutters">
38 <div class="col-12">
39
40 <h2 class="article-title" itemprop="name">${title}</h2>
41 <#if tipoSede?size gt 0 >
42 <ul class="list-inline list-unstyled sede-type list-group list-group-horizontal">
43 <#list tipoSede as sede>
44 <li class="list-group-item">${sede.getTitle(locale)}</li>
45 </#list>
46 </ul>
47 </#if>
48
49 <#if validator.isNotNull(Descripcion.getData())>
50 <div class="article-description mt-2 mb-4">
51 ${Descripcion.getData()}
52 </div>
53 </#if>
54
55 <#assign slideImagesCount = 0 />
56 <#assign slideImagesSize = Visualizador.Imagen.getSiblings()?size />
57 <#if validator.isNotNull(Visualizador.Imagen.data) || validator.isNotNull(smallImageUrl)>
58 <div id="article-carousel" class="carousel slide carousel-fade carousel-article" data-ride="carousel" data-interval="5000">
59 <span aria-hidden="true" class="loading-animation loading-bg"></span>
60 <div class="carousel-inner">
61 <#if validator.isNotNull(smallImageUrl)>
62 <div class="carousel-item active aspect-ratio-bg-cover" style="background-image: url(${articleMainImageThumbnail4});">
63 <img class="hide" src="${articleMainImageThumbnail1}" alt="${title}" title="${title}"/>
64 </div>
65 <#assign slideImagesCount = slideImagesCount + 1 />
66 </#if>
67 <#list Visualizador.Imagen.getSiblings() as Slide>
68 <#if Slide?? && validator.isNotNull(Slide) && Slide.data?? && validator.isNotNull(Slide.data)>
69
70 <#assign slideThumbnail1 = dlTool.getThumbnailByJSON(Slide.data, "1")! />
71 <#assign slideThumbnail3 = dlTool.getThumbnailByJSON(Slide.data, "3")! />
72 <#assign slideTitle = "${languageUtil.get(request, 'image')} ${title}" />
73 <#assign slideAlt = slideTitle />
74 <#if Slide.TituloImagen?? && Slide.TituloImagen.data?has_content>
75 <#assign slideTitle = Slide.TituloImagen.data />
76 <#assign slideAlt = slideTitle />
77 </#if>
78 <#if Slide.AltImagen?? && validator.isNotNull(Slide.AltImagen.getData())>
79 <#assign slideAlt = Slide.AltImagen.getData() />
80 </#if>
81 <#else>
82 <#continue>
83 </#if>
84 <div class="carousel-item aspect-ratio-bg-cover" style="background-image: url(${slideThumbnail3});">
85 <img class="hide" src="${slideThumbnail1}" alt="${slideAlt}" title="${slideTitle}"/>
86 </div>
87 <#assign slideImagesCount = slideImagesCount + 1 />
88 </#list>
89 </div>
90 <#if Visualizador.Imagen.getSiblings()?size gt 1>
91 <a class="carousel-control-prev" href="#article-carousel" data-slide="prev">
92 <span class="carousel-control-prev-icon" aria-hidden="true"><!-- ${languageUtil.get(request, "previous")} --></span>
93 <span class="hide-accessible">${languageUtil.get(request, "previous")}</span>
94 </a>
95 <a class="carousel-control-next" href="#article-carousel" data-slide="next">
96 <span class="carousel-control-next-icon" aria-hidden="true"><!-- ${languageUtil.get(request, "next")}--></span>
97 <span class="hide-accessible">${languageUtil.get(request, "next")}</span>
98 </a>
99 <ol class="carousel-indicators ">
100 <#assign index = 0 />
101 <#list 1..slideImagesCount as item>
102 <li data-target="#article-carousel" data-slide-to="${index}" <#if index==0> class="active"</#if>></li>
103 <#assign index = index + 1 />
104 </#list>
105 </ol>
106 </#if>
107 </div>
108 </#if>
109 </div>
110 </div>
111 <#if validator.isNotNull(Geolocalizacion.Coordenadas.getData())>
112 <div class="article-map-switch mt-2 mb-4">
113 <label class="toggle-switch">
114 <input class="toggle-switch-check mapShow" type="checkbox" onclick="showArticleMap(${articleId})"/>
115 <span aria-hidden="true" class="toggle-switch-bar">
116 <span class="toggle-switch-handle"></span>
117 </span>
118 </label>
119 <span class="label-map text-lowercase">${languageUtil.get(request, "infoasturias-mice-mostrar-ubicacion")}</span>
120 </div>
121 <#assign coordenadas=stringUtil.split(Geolocalizacion.Coordenadas.data) />
122 <div id="article-map-wrapper-${articleId}" class="article-section-map article-map-wrapper my-4 hide-visibility">
123 <div id="article-map-content-${articleId}" style="width: 100%; height: 388px; z-index:1"><!-- MAP --></div>
124 <div class="article-map-form">
125 <div class="name important">${title}</div>
126 <div class="gps"><span class="label">GPS:</span> <span class="value important" itemprop="geo">${Geolocalizacion.Coordenadas.data}</span></div>
127 <form action="https://maps.google.es/maps" method="get" target="_blank">
128 <input type="hidden" name="daddr" value="${coordenadas[0]},${coordenadas[1]}">
129 <label for="saddrText"><span class="label hide-accessible">${languageUtil.get(request,'infoasturias-insert-from')}: </span></label>
130 <label for="saddr"><span class="label">${languageUtil.get(request,'infoasturias-from')}: </span></label>
131 <input class="form-control" type="text" maxlength="40" name="saddrText" id="saddrText" value="" placeholder="${languageUtil.get(request,'infoasturias-insert-from')}">
132 <input class="form-control" type="hidden" name="saddr" id="saddr" value="" placeholder="${languageUtil.get(request,'infoasturias-insert-from')}">
133 <button class="btn btn-text" type="submit">${languageUtil.get(request,'infoasturias-como-llegar')} »</button>
134 </form>
135 </div>
136 <div class="article-section-scripts">
137 <script src="/o/turismo-asturias-theme/js/leaflet/leaflet.js"></script>
138 <script type="text/javascript">
139 AUI().ready('aui-base', function(A){
140 var lat = ${coordenadas[0]},
141 lng = ${coordenadas[1]},
142 zoom = 16;
143 mapContent = new L.map('article-map-content-${articleId}', {center: [lat, lng], zoom: 16});
144
145 //Marker
146 var defaultIconTheme = '/o/turismo-asturias-theme/css/images/icons/mark-box.png';
147 var defaultIcon = L.icon({
148 iconUrl: defaultIconTheme,
149 iconSize: [36, 53],
150 iconAnchor: [18, 53],
151 iconShadow: [0,0],
152 popupAnchor: [0, -30]
153 });
154 var marker = L.marker([lat, lng], {icon: defaultIcon}).addTo(mapContent);
155
156 //Contributor
157 L.tileLayer('https://{s}.tile.openstreetmap.org/{z}/{x}/{y}.png', {
158 attribution: '© <a href="https://www.openstreetmap.org/copyright">OpenStreetMap</a> contributors.'
159 }).addTo(mapContent);
160
161 }); //AUI.ready
162
163 function showArticleMap(articleId){
164 if($("#article-map-wrapper-"+articleId).hasClass("hide-visibility")){
165 $(".toggle-switch-check").attr( 'checked', '' );
166 $(".label-map").text("${languageUtil.get(request, 'infoasturias-mice-ocultar-ubicacion')}");
167 $("#article-map-wrapper-"+articleId).removeClass("hide-visibility");
168 }else{
169 $(".toggle-switch-check").removeAttr( 'checked');
170 $(".label-map").text("${languageUtil.get(request, 'infoasturias-mice-mostrar-ubicacion')}");
171 $("#article-map-wrapper-"+articleId).addClass("hide-visibility");
172 }
173 }
174 </script>
175 </div>
176 </div>
177 </#if>
178 <#if concejo?size gt 0 || validator.isNotNull(Direccion.getData()) || validator.isNotNull(CP.getData()) || validator.isNotNull(Poblacion.getData()) || validator.isNotNull(Telefono.getData()) || validator.isNotNull(Email.getData()) || validator.isNotNull(Web.getData()) || validator.isNotNull(PersonaDeContacto.getData()) || validator.isNotNull(NSalas.getData()) || validator.isNotNull(Capacidad.getData()) || serviciosSede?size gt 0 || validator.isNotNull(RedesSociales.Facebook.getData()) || validator.isNotNull(RedesSociales.Twitter.getData()) || validator.isNotNull(RedesSociales.Instagram.getData()) || validator.isNotNull(RedesSociales.Linkedin.getData()) || validator.isNotNull(RedesSociales.TikTok.getData()) || validator.isNotNull(RedesSociales.Youtube.getData()) || validator.isNotNull(RedesSociales.Pinterest.getData())>
179 <div class="article-info-table mb-4">
180 <div class="article-info-table-row">
181 <#if concejo?size gt 0 || validator.isNotNull(Direccion.getData()) || validator.isNotNull(CP.getData()) || validator.isNotNull(Poblacion.getData()) || validator.isNotNull(Telefono.getData()) || validator.isNotNull(Email.getData()) || validator.isNotNull(Web.getData()) || validator.isNotNull(PersonaDeContacto.getData())>
182 <div class="article-info-table-cell col-lg-7 col-12">
183 <ul class="article-list list-unstyled article-list-info">
184 <#if concejo?size gt 0>
185 <li class="article-list-item">
186 <span class="far fa-map-marker-alt">
187 <span class="hide-accessible">${languageUtil.get(request,"address")}</span>
188 </span>
189 <span class="important text-uppercase">${concejo[0].getTitle(locale)}</span>
190 <#if concejo[0].getParentCategoryId()!=0>
191 <#assign zone = assetCategoryLocalService.fetchAssetCategory(concejo[0].getParentCategoryId())/>
192 <#if validator.isNotNull(zone)>
193 <span class="d-block">${zone.getTitle(locale)}</span>
194 </#if>
195 </#if>
196 </li>
197 </#if>
198 <#if validator.isNotNull(Direccion.getData())>
199 <li class="article-list-item">
200 <span class="far fa-address-card">
201 <span class="hide-accessible">${languageUtil.get(request,"address")}</span>
202 </span>
203 <span class="field-wrapper">
204 <span class="field">${languageUtil.get(request, "address")}:</span>
205 <span class="text">${Direccion.getData()}</span>
206 <#if validator.isNotNull(CP.getData()) && validator.isNotNull(Poblacion.getData())>
207 <span class="text"> ■ ${CP.getData()} - ${Poblacion.getData()}</span>
208 </#if>
209 </span>
210 </li>
211 </#if>
212 <#if Telefono.getSiblings()?has_content>
213 <li class="article-list-item">
214 <span class="fas fa-phone-alt">
215 <span class="hide-accessible">${languageUtil.get(request,"phone")}</span>
216 </span>
217 <span class="field-wrapper">
218 <span class="field">${languageUtil.get(request, "phone")}:</span>
219 <#list Telefono.getSiblings() as telephone>
220 <#assign numberTelefono = telephone.data?replace(" ", "")/>
221 <#assign numberLength = numberTelefono?length/>
222 <#if numberLength == 9>
223 <#assign number = "+34${numberTelefono}"/>
224 <#else>
225 <#assign number = numberTelefono/>
226 </#if>
227 <span class="text">
228 <a href="tel:${number}" itemprop="telephone">${telephone.data}</a>
229 <#if !telephone?is_last>|</#if>
230 </span>
231 </#list>
232 </span>
233 </li>
234 </#if>
235 <#if validator.isNotNull(Email.getData())>
236 <li class="article-list-item">
237 <span class="far fa-envelope">
238 <span class="hide-accessible">${languageUtil.get(request,"email")}</span>
239 </span>
240 <span class="field-wrapper">
241 <span class="field">${languageUtil.get(request, "email")}:</span>
242
243 <span class="text">
244 <a class="" href="mailto:${Email.getData()}" title="${languageUtil.format(request,'send-email-to-x', 'Email.getData()')}" itemprop="email">${Email.getData()}</a>
245 </span>
246
247 </span>
248 </li>
249 </#if>
250 <#if validator.isNotNull(Web.getData())>
251 <li class="article-list-item web">
252 <span class="fas fa-link">
253 <span class="hide-accessible">${languageUtil.get(request,"site")}</span>
254 </span>
255 <span class="field-wrapper">
256 <span class="field">${languageUtil.get(request, "site")}:</span>
257 <span class="text">
258 <#assign linkURL = Web.getData()/>
259 <#if !stringUtil.startsWith(linkURL, "http")>
260 <#assign linkURL = "https://${Web.getData()}"/>
261 </#if>
262 <a href="${linkURL}" title="${languageUtil.format(request,'go-to-x', 'site')}" itemprop="url">${Web.getData()}</a>
263 </span>
264 </span>
265 </li>
266 </#if>
267 </ul>
268 </div>
269 </#if>
270
271 <#if serviciosSede?size gt 0 || validator.isNotNull(NSalas.getData()) || validator.isNotNull(Capacidad.getData()) || validator.isNotNull(RedesSociales.Facebook.getData()) || validator.isNotNull(RedesSociales.Twitter.getData()) || validator.isNotNull(RedesSociales.Instagram.getData()) || validator.isNotNull(RedesSociales.Linkedin.getData()) || validator.isNotNull(RedesSociales.TikTok.getData()) || validator.isNotNull(RedesSociales.Youtube.getData()) || validator.isNotNull(RedesSociales.Pinterest.getData())>
272 <div class="article-info-table-cell col-lg-5 col-12">
273 <#if serviciosSede?size gt 0 >
274 <div class="article-info-table-cell-great mb-4">
275 <p class="article-info-table-cell-great-title">${languageUtil.get(request,"infoasturias-mice-servicios-sede")}</p>
276 <p>
277 <#list serviciosSede as servSede>
278 ${servSede.getTitle(locale)}</span><#if !servSede?is_last>, </#if>
279 </#list>
280 </p>
281 <#if validator.isNotNull(NSalas.getData()) && validator.isNotNull(Capacidad.getData())>
282 <p>
283 <#if validator.isNotNull(NSalas.getData())>
284 ${NSalas.getData()} ${languageUtil.get(request, "infoasturias-mice-salas")}
285 </#if>
286 <#if validator.isNotNull(Capacidad.getData())>
287 | ${languageUtil.get(request, "infoasturias-mice-aforo")}: ${Capacidad.getData()}
288 </#if>
289 </p>
290 </#if>
291 </div>
292 </#if>
293
294 <#if validator.isNotNull(RedesSociales.Facebook.getData()) || validator.isNotNull(RedesSociales.Twitter.getData()) || validator.isNotNull(RedesSociales.Instagram.getData()) || validator.isNotNull(RedesSociales.Linkedin.getData()) || validator.isNotNull(RedesSociales.TikTok.getData()) || validator.isNotNull(RedesSociales.Youtube.getData()) || validator.isNotNull(RedesSociales.Pinterest.getData())>
295 <div class="socials-wrapper">
296 <div class="socials">
297 <ul class="list-inline items socials">
298 <#if validator.isNotNull(RedesSociales.Facebook.getData())>
299 <#assign linkURL = RedesSociales.Facebook.data/>
300
301 <#if !stringUtil.startsWith(linkURL, "http")>
302 <#assign linkURL = "https://${RedesSociales.Facebook.data}"/>
303 </#if>
304 <li class="list-inline-item item facebook">
305 <a href="${linkURL}" title="${languageUtil.format(request,'go-to-x','Facebook')}" onclick="this.target='_blank'">
306 <span class="fab fa-facebook-f">
307 <span class="hide-accessible">${languageUtil.format(request,'go-to-x','Facebook')}</span>
308 </span>
309 </a>
310 </li>
311 </#if>
312 <#if validator.isNotNull(RedesSociales.Twitter.getData())>
313 <#assign linkURL = RedesSociales.Twitter.data/>
314
315 <#if !stringUtil.startsWith(linkURL, "http")>
316 <#assign linkURL = "https://${RedesSociales.Twitter.data}"/>
317 </#if>
318 <li class="list-inline-item item twitter">
319 <a href="${linkURL}" title="${languageUtil.format(request,'go-to-x','Twitter')}" onclick="this.target='_blank'">
320 <span class="fab fa-twitter">
321 <span class="hide-accessible">${languageUtil.format(request,'go-to-x','Twitter')}</span>
322 </span>
323 </a>
324 </li>
325 </#if>
326 <#if validator.isNotNull(RedesSociales.Instagram.getData())>
327
328 <#if RedesSociales.Instagram.data?has_content>
329 <#assign linkURL = RedesSociales.Instagram.data/>
330
331 <#if !stringUtil.startsWith(linkURL, "http")>
332 <#assign linkURL = "https://${RedesSociales.Instagram.data}"/>
333 </#if>
334 <li class="list-inline-item item instagram">
335 <a href="${linkURL}" title="${languageUtil.format(request,'go-to-x','Instagram')}" onclick="this.target='_blank'">
336 <span class="fab fa-instagram">
337 <span class="hide-accessible">${languageUtil.format(request,'go-to-x','Instagram')}</span>
338 </span>
339 </a>
340 </li>
341 </#if>
342 </#if>
343 <#if validator.isNotNull(RedesSociales.Youtube.getData())>
344 <#assign linkURL = RedesSociales.Youtube.data/>
345
346 <#if !stringUtil.startsWith(linkURL, "http")>
347 <#assign linkURL = "https://${RedesSociales.Youtube.data}"/>
348 </#if>
349 <li class="list-inline-item item youtube">
350 <a href="${linkURL}" title="${languageUtil.format(request,'go-to-x','Youtube')}" onclick="this.target='_blank'">
351 <span class="fab fa-youtube">
352 <span class="hide-accessible">${languageUtil.format(request,'go-to-x','Youtube')}</span>
353 </span>
354 </a>
355 </li>
356 </#if>
357 <#if validator.isNotNull(RedesSociales.Linkedin.getData())>
358 <#if RedesSociales.Linkedin.data?has_content>
359 <#assign linkURL = RedesSociales.Linkedin.data/>
360
361 <#if !stringUtil.startsWith(linkURL, "http")>
362 <#assign linkURL = "https://${RedesSociales.Linkedin.data}"/>
363 </#if>
364 <li class="list-inline-item item linkedin">
365 <a href="${linkURL}" title="${languageUtil.format(request,'go-to-x','Linkedin')}" onclick="this.target='_blank'">
366 <span class="fab fa-linkedin">
367 <span class="hide-accessible">${languageUtil.format(request,'go-to-x','Linkedin')}</span>
368 </span>
369 </a>
370 </li>
371 </#if>
372 </#if>
373 <#if validator.isNotNull(RedesSociales.TikTok.getData())>
374 <#if RedesSociales.TikTok.data?has_content>
375 <#assign linkURL = RedesSociales.TikTok.data/>
376
377 <#if !stringUtil.startsWith(linkURL, "http")>
378 <#assign linkURL = "https://${RedesSociales.TikTok.data}"/>
379 </#if>
380 <li class="list-inline-item item tiktok">
381 <a href="${linkURL}" title="${languageUtil.format(request,'go-to-x','Tiktok')}" onclick="this.target='_blank'">
382 <span class="fab fa-tiktok">
383 <span class="hide-accessible">${languageUtil.format(request,'go-to-x','Tiktok')}</span>
384 </span>
385 </a>
386 </li>
387 </#if>
388 </#if>
389 <#if validator.isNotNull(RedesSociales.Pinterest.getData())>
390 <#assign linkURL = RedesSociales.Pinterest.data/>
391
392 <#if !stringUtil.startsWith(linkURL, "http")>
393 <#assign linkURL = "https://${RedesSociales.Pinterest.data}"/>
394 </#if>
395 <li class="list-inline-item item pinterest">
396 <a href="${linkURL}" title="${languageUtil.format(request,'go-to-x','Pinterest')}" onclick="this.target='_blank'">
397 <span class="fab fa-pinterest-p">
398 <span class="hide-accessible">${languageUtil.format(request,'go-to-x','Pinterest')}</span>
399 </span>
400 </a>
401 </li>
402 </#if>
403 </ul>
404 </div>
405 </div>
406 </#if>
407 </div>
408 </#if>
409 </div>
410 </div>
411 </#if>
412 </div>
413 <#if Sala.getSiblings()?has_content>
414 <#assign showFirstTab = true/>
415 <div class="row">
416 <div class="col-12">
417 <h3 class="title-section my-4">${languageUtil.get(request, 'infoasturias-mice-informacion-salas')}</h3>
418 <#list Sala.getSiblings() as sala>
419 <div id="tab${sala?index}" class="article-section accordion-item col-12 bg-grey">
420 <a href="#tabContent${sala?index}" id="tabHeading" class="h3 accordion-header <#if !showFirstTab>collapsed</#if>" aria-expanded="${getterUtil.getString(showFirstTab)}" data-toggle="liferay-collapse" aria-controls="tabContent1" role="button">
421 ${sala.NombreSala.getData()}
422 </a>
423 <div id="tabContent${sala?index}" class="article-section-content article-section-info accordion-collapse collapse <#if showFirstTab>show</#if>" aria-labelledby="tabHeading">
424 <#if validator.isNotNull(sala.DescripcionSala.getData())>
425 <div class="text mb-4">${sala.DescripcionSala.getData()}</div>
426 </#if>
427 <#if validator.isNotNull(sala.UbicacionSala.getData()) || validator.isNotNull(sala.Superficie.getData()) || validator.isNotNull(sala.Altura.getData()) || validator.isNotNull(sala.CapacidadTeatro.getData()) || validator.isNotNull(sala.CapacidadEscuela.getData()) || validator.isNotNull(sala.CapacidadBanquete.getData()) || validator.isNotNull(sala.CapacidadImperial.getData()) || validator.isNotNull(sala.CapacidadU.getData()) || validator.isNotNull(sala.CapacidadCoctel.getData()) || validator.isNotNull(sala.Servicios.getData())>
428 <ul class="sala-list-info list-unstyled">
429 <#if validator.isNotNull(sala.UbicacionSala.getData())>
430 <li class="article-list-item">
431 <span class="field-wrapper">
432 <span class="field">${languageUtil.get(request, 'infoasturias-mice-ubicacion-sala')}</span>
433 <span class="text">${sala.UbicacionSala.getData()}</span>
434 </span>
435 </li>
436 </#if>
437 <#if validator.isNotNull(sala.Superficie.getData())>
438 <li class="article-list-item">
439 <span class="field-wrapper">
440 <span class="field">${languageUtil.get(request, 'infoasturias-mice-superficie-sala')}</span>
441 <span class="text">${sala.Superficie.getData()}</span>
442 </span>
443 </li>
444 </#if>
445 <#if validator.isNotNull(sala.Altura.getData())>
446 <li class="article-list-item">
447 <span class="field-wrapper">
448 <span class="field">${languageUtil.get(request, 'infoasturias-mice-altura-sala')}</span>
449 <span class="text">${sala.Altura.getData()}</span>
450 </span>
451 </li>
452 </#if>
453 <#if validator.isNotNull(sala.CapacidadTeatro.getData())>
454 <li class="article-list-item">
455 <span class="field-wrapper">
456 <span class="field">${languageUtil.get(request, 'infoasturias-mice-capacidad-maxima-teatro')}</span>
457 <span class="text">${sala.CapacidadTeatro.getData()}</span>
458 </span>
459 </li>
460 </#if>
461 <#if validator.isNotNull(sala.CapacidadEscuela.getData())>
462 <li class="article-list-item">
463 <span class="field-wrapper">
464 <span class="field">${languageUtil.get(request, 'infoasturias-mice-capacidad-maxima-escuela')}</span>
465 <span class="text">${sala.CapacidadEscuela.getData()}</span>
466 </span>
467 </li>
468 </#if>
469 <#if validator.isNotNull(sala.CapacidadBanquete.getData())>
470 <li class="article-list-item">
471 <span class="field-wrapper">
472 <span class="field">${languageUtil.get(request, 'infoasturias-mice-capacidad-maxima-banquete')}</span>
473 <span class="text">${sala.CapacidadBanquete.getData()}</span>
474 </span>
475 </li>
476 </#if>
477 <#if validator.isNotNull(sala.CapacidadImperial.getData())>
478 <li class="article-list-item">
479 <span class="field-wrapper">
480 <span class="field">${languageUtil.get(request, 'infoasturias-mice-capacidad-maxima-imperial')}</span>
481 <span class="text">${sala.CapacidadImperial.getData()}</span>
482 </span>
483 </li>
484 </#if>
485 <#if validator.isNotNull(sala.CapacidadU.getData())>
486 <li class="article-list-item">
487 <span class="field-wrapper">
488 <span class="field">${languageUtil.get(request, 'infoasturias-mice-capacidad-maxima-u')}</span>
489 <span class="text">${sala.CapacidadU.getData()}</span>
490 </span>
491 </li>
492 </#if>
493 <#if validator.isNotNull(sala.CapacidadCoctel.getData())>
494 <li class="article-list-item">
495 <span class="field-wrapper">
496 <span class="field">${languageUtil.get(request, 'infoasturias-mice-capacidad-maxima-coctel')}</span>
497 <span class="text">${sala.CapacidadCoctel.getData()}</span>
498 </span>
499 </li>
500 </#if>
501
502 <#if validator.isNotNull(sala.Servicios.getData()) && validator.isNotNull(sala.Servicios.getOptions()) && sala.Servicios.getOptions()[0]?has_content>
503 <li class="article-list-item">
504 <span class="field-wrapper">
505 <span class="field">${languageUtil.get(request, 'infoasturias-mice-servicios-disponibles')}</span>
506 <span class="text">
507 <#assign values = sala.Servicios.getOptionsMap()/>
508 <#assign options = sala.Servicios.getOptions()/>
509 <#list options as option>
510 ${values[option]}<#if !option?is_last>, </#if>
511 </#list>
512 </span>
513 </span>
514 </li>
515 </#if>
516 </ul>
517 </#if>
518 </div>
519 </div>
520 <#assign showFirstTab = false/>
521 </#list>
522 </div>
523 </div>
524 </#if>
525</article>
Added to this is a unique strategic advantage: the proximity between its three main urban centres - Oviedo/Uviéu, Gijón/Xixón and Avilés - all located within a radius of just 30 km and perfectly connected to the rest of the region. This allows attendees to travel conveniently between cities, each equipped with modern congress facilities, dream natural parks and unique venues, all in a matter of minutes. Furthermore, Asturias is only three hours away from Madrid thanks to the high-speed train and has a hotel capacity of close to 17,000 beds, including options in both urban areas and in charming rural enclaves on the coast or in the mountains, which ensures alternatives for all tastes and needs.
In addition, the region complements its infrastructure with a wide range of activities designed for incentive trips. From gastronomic and cultural experiences to immersions in its impressive natural or industrial wealth, Asturias offers the possibility of combining these options in unique and personalised activities.
Explore all the possibilities that Asturias Meeting Land has to offer!