Publicador de contenidos

Se ha producido un error al procesar la plantilla.
The following has evaluated to null or missing:
==> FrontendService.media.getDMTJsonObject( coverBild.groupId?number, coverBild.uuid, locale ) [in template "252001#252047#252845" at line 127, column 37]
----
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: dMTJsonObject = FrontendService.media... [in template "252001#252047#252845" at line 127, column 21]
----
1<#-- used @ Veranstaltung-Detailseite Intro 
2 used @ Publikation-Detailseite Intro 
3--> 
4 
5<#-- 
6Web content templates to display teaser on thema detail page 
7 
8Generic template for detail pages Intro / Teaser element 
9--> 
10<#-- 
11Display the current page title 
12--> 
13<#include "${fullTemplatesPath}/functions/relatedContentUtil.ftl" /> 
14<#include "${fullTemplatesPath}/macros/debugging.ftl" /> 
15 
16<#include "${fullTemplatesPath}/macros/page-modules/PMIntro.ftl" /> 
17<#include "${fullTemplatesPath}/macros/atomic-modules/AMPublicationCarousel.ftl" /> 
18<#include "${fullTemplatesPath}/macros/atomic-modules/AMMetadata.ftl" /> 
19<#include "${fullTemplatesPath}/macros/atomic-modules/AMDatetime.ftl" /> 
20 
21 
22<#-- 
23 renders the Intro for nearly all Pages 
24 TODO: remove Share? (was in the designs, but not anymore?) 
25 TODO: check if languageSelect/filter are working (js) 
26 
27 - portletId 
28 - data = { 
29 "media": string (src from image), 
30 "category": string, 
31 "title": string, 
32 "author": string, 
33 "subheadline": string, 
34 "copy": string, 
35 "filter": { 
36 "id": string, 
37 "name": string, 
38 "entries": Array<Object> ({key:value}), 
39 }, 
40 "languageSelect": { 
41 "id": string, 
42 "name": string, 
43 "entries": Array<Object> ({key:value}), 
44 }, 
45 "meta": { 
46 "pos"; string (top/bottom) 
47 "date": string, 
48 "hash": string, 
49 "info": string, (url) 
50 }, 
51 "share" : { 
52 "login": string, 
53 "print": string, 
54 "mail": string, 
55 "multishare": string?? (tbd) 
56
57 - AMMetadata: macro 
58 - position: String ("top") -> defines wether the meta-data should be rendered above or below the intro-content 
59
60--> 
61 
62<#assign 
63 JournalArticleLocalService = serviceLocator.findService("com.liferay.journal.service.JournalArticleLocalService") 
64 
65 ServiceContext = staticUtil["com.liferay.portal.kernel.service.ServiceContextThreadLocal"].getServiceContext() 
66 DLAPP = serviceLocator.findService("com.liferay.document.library.kernel.service.DLAppLocalService") 
67 
68 themeDisplay = ServiceContext.getThemeDisplay() 
69 editmode = FrontendService.user.isPrivilegedUser(themeDisplay) 
70 
71 languageId = themeDisplay.getLocale() 
72 groupId = themeDisplay.getScopeGroupId() 
73 currentUrl = themeDisplay.getURLCurrent() 
74 
75 layout = themeDisplay.getLayout() 
76 layouttpl = layout.getTypeSettingsProperties().getProperty("layout-template-id") 
77/> 
78 
79<#setting locale="${languageId}"> 
80 
81<#-- get article from url --> 
82 
83<#assign entry = FrontendService.article.getArticleToUrl(currentUrl, groupId?number)! > 
84 
85 
86<#if entry?has_content> 
87 
88 <#if entry.resourcePrimKey??> 
89 <#assign primaryKey = entry.resourcePrimKey?number > 
90 <#elseif entry.classPK??> 
91 <#assign primaryKey = entry.classPK?number > 
92 </#if> 
93 
94 <#assign 
95 jsonString = FrontendService.article.getWebcontent(primaryKey) 
96 json = FrontendService.json.parseAsJson(jsonString) 
97 
98 title = entry.getTitle(languageId) 
99 data = { 
100 "title": title 
101
102 /> 
103 <@debugJsonString jsonString "ADT_KASDE_DYNAMIC_INTRO" /> 
104 
105 <#if hasContent('untertitel', languageId, json)> 
106 <#assign data = data + { "subheadline": getValueForLanguage('untertitel', languageId, json, "first") } > 
107 </#if> 
108 
109 <#if hasContent('beschreibung', languageId, json)> 
110 <#assign data = data + { "copy": getValueForLanguage('beschreibung', languageId, json, "first") } > 
111 </#if> 
112 
113 <#-- fill meta data --> 
114 <#assign meta = {} /> 
115 
116 <#-- PUBLIKATIONEN DETAIL --> 
117 <#if layouttpl?contains("LAYOUT_KASDE_PUBLIKATIONEN_DETAIL")> 
118 
119 <#if hasContent('coverDMTKASDEMEDIUM', languageId, json)> 
120 <#assign 
121 coverBildString = getValueForLanguage('coverDMTKASDEMEDIUM', languageId, json, "first") 
122 /> 
123 
124 <#if coverBildString?has_content> 
125 <#assign 
126 coverBild = FrontendService.json.parseAsJson(coverBildString) 
127 dMTJsonObject = FrontendService.media.getDMTJsonObject( coverBild.groupId?number, coverBild.uuid, locale ) 
128 linkToDMT = FrontendService.media.getImageURLForAMConfiguration('hd-resolution',coverBild.groupId?number, coverBild.uuid ) 
129 data = data + { "media": linkToDMT, "meta" : dMTJsonObject } 
130 /> 
131 <#if dMTJsonObject.altText?? > 
132 <#assign data = data + {"alt" : dMTJsonObject.altText} /> 
133 </#if> 
134 <#if dMTJsonObject.quelle??> 
135 <#assign meta = meta + { "quelle": dMTJsonObject.quelle } /> 
136 </#if> 
137 </#if> 
138 <#-- uncomment to display pdf cover as Intro Image 
139 <#elseif hasContent('document_pdfDMTBASICDOCUMENT', languageId, json)> 
140 <#assign 
141 pdfDocument = getValueForLanguage('document_pdfDMTBASICDOCUMENT', languageId, json, "first") 
142 fileEntry = FrontendService.media.getFileEntry(pdfDocument.uuid, groupId?number)!/> 
143 <#if fileEntry?has_content> 
144 <#assign 
145 linkToThumbnail = FrontendService.link.getThumbnailSrc(fileEntry , themeDisplay) 
146 data = data + { "media": linkToThumbnail } 
147 /> 
148 </#if> 
149 --> 
150 </#if> 
151 
152 <#assign 
153 meta = meta + { "orderInfo": "true" } 
154 verbundJournalArticle = FrontendService.publication.getVerbundToPublikation( entry )!"" 
155 /> 
156 
157 
158 
159 <#if hasContent('erscheinungsdatum', languageId, json)> 
160 <#assign 
161 erscheinungsdatum = getValueForLanguage('erscheinungsdatum', languageId, json, "first") 
162 /> 
163 <#if erscheinungsdatum?has_content > 
164 <#assign 
165 erscheinungsdatumFormatted = FrontendService.date.getDateFormatLong( erscheinungsdatum, languageId ) 
166 meta = meta + { "date": erscheinungsdatumFormatted } 
167 /> 
168 </#if> 
169 </#if> 
170 
171 <#if verbundJournalArticle?has_content> 
172 <#assign 
173 verbundJsonString = FrontendService.article.getWebcontent(verbundJournalArticle.resourcePrimKey) 
174 verbundJson = FrontendService.json.parseAsJson(verbundJsonString) 
175 laufendenummer = getValueForLanguage('laufendenummer', languageId, verbundJson, "first") 
176 coverImg = getValueForLanguage('mediumDMTKASDEMEDIUM', languageId, verbundJson, "first") 
177 /> 
178 <@debugJsonString verbundJsonString "ADT_KASDE_DYNAMIC_INTRO-verbundJournalArticle" /> 
179 <#assign meta = meta + { "laufendenummer": laufendenummer } > 
180 
181 <#if coverImg?has_content && coverImg.url?has_content > 
182 <#assign meta = meta + { "coverImg": coverImg.url } > 
183 </#if> 
184 </#if> 
185 
186 
187 <#if meta?has_content> 
188 <#assign data = data + {"meta": meta } > 
189 </#if> 
190 
191 </#if> 
192 <#-- PUBLIKATIONEN DETAIL END --> 
193 
194 
195 <#-- VERANSTALTUNGEN DETAIL --> 
196 <#if layouttpl?contains("LAYOUT_KASDE_VERANSTALTUNGEN_DETAIL")> 
197 <#assign 
198 friendlyUrl = FrontendService.article.getFriendlyUrl(primaryKey, languageId, groupId)!"" 
199 languages = entry.getAvailableLanguageIds() 
200 links = [] 
201 /> 
202 <#if languages?has_content && friendlyUrl?has_content> 
203 <#if (languages?size > 1) > 
204 <#list languages as language> 
205 <#assign 
206 defaultLanguage = "de_DE" 
207 defaultLocale = FrontendService.language.getLocaleByKey(defaultLanguage) 
208 linkLocale = (FrontendService.language.getLocaleByKey(language))!defaultLocale 
209 langFriendlyUrl = FrontendService.article.getFriendlyUrl(primaryKey, linkLocale, groupId) 
210 
211 link = { 
212 "key": language!defaultLanguage, 
213 "value": linkLocale.getDisplayLanguage(languageId), 
214 "url": "/c/portal/update_language?p_l_id=" + 
215 layout.plid + "&redirect=" + langFriendlyUrl + 
216 "&languageId=" + language 
217
218 /> 
219 <#if language == languageId> 
220 <#assign link = link + { "selected": "true" } > 
221 </#if> 
222 <#assign links = links + [link]> 
223 </#list> 
224 <#assign 
225 data = data + { 
226 "languageSelect": { 
227 "id": "languageSelectRedirect", 
228 "name": "languageselectRedirect", 
229 "entries": links, 
230 "label": languageUtil.get(languageId, "diese.veranstaltung.ist.in.weiteren.sprachen.verfuegbar") 
231
232
233 /> 
234 </#if> 
235 </#if> 
236 </#if> 
237 
238 <#if hasContent('erscheinungsdatum', languageId, json)> 
239 <#assign 
240 startdate = getValueForLanguage('erscheinungsdatum', languageId, json, "first") 
241 meta = meta + { "start": startdate?date.iso, "end": "" } 
242 /> 
243 </#if> 
244 
245 <#if hasContent('startdatum', languageId, json)> 
246 <#assign 
247 startdate = getValueForLanguage('startdatum', languageId, json, "first") 
248 meta = meta + { "start": startdate?date.iso, "end": "" } 
249 /> 
250 </#if> 
251 
252 <#if hasValue('einfuehrungText', locale, json)> 
253 <#assign data = data + { "einfuehrungText" : getValueForLanguage('einfuehrungText', locale, json, "first") } > 
254 <#elseif hasValue(FrontendService.article.getFieldNameByReferenceName(primaryKey, 'einfuehrungText'), locale, json, "first")> 
255 <#assign data = data + { "einfuehrungText" : getValueForLanguage(FrontendService.article.getFieldNameByReferenceName(primaryKey, 'einfuehrungText'), locale, json, "first") } > 
256 </#if> 
257 
258 <#if hasContent('endedatum', languageId, json)> 
259 <#assign 
260 enddate = getValueForLanguage('endedatum', languageId, json, "first") 
261 meta = meta + { "end": enddate?date.iso } 
262 /> 
263 </#if> 
264 
265 <#if hasContent('startzeit', languageId, json)> 
266 <#assign 
267 startzeit = getValueForLanguage('startzeit', languageId, json, "first") 
268 /> 
269 <#if startzeit?has_content > 
270 <#assign meta = meta + { "startzeit": startzeit } /> 
271 </#if> 
272 </#if> 
273 
274 <#if hasContent('endezeit', languageId, json)> 
275 <#assign 
276 endezeit = getValueForLanguage('endezeit', languageId, json, "first") 
277 meta = meta + { "endezeit": endezeit } 
278 /> 
279 </#if> 
280 
281 <#if hasContent('ortWCSKASDEORT', languageId, json)> 
282 <#assign 
283 ortWCSKASDEORT = FrontendService.json.parseAsJson(getValueForLanguage('ortWCSKASDEORT', languageId, json, "first")) 
284 ortWCSKASDEORTPrimaryKey = ortWCSKASDEORT.classPK?number 
285 ortWCSKASDEORTWebContent = FrontendService.article.getWebcontentByPk(ortWCSKASDEORTPrimaryKey)!"" 
286 /> 
287 <#if ortWCSKASDEORTWebContent?has_content > 
288 <#assign 
289 ortWCSKASDEORTTitle = ortWCSKASDEORTWebContent.getTitle(languageId)!"" 
290 /> 
291 <#if ortWCSKASDEORTTitle?has_content > 
292 <#assign 
293 meta = meta + { "ortWCSKASDEORT": ortWCSKASDEORTTitle } 
294 /> 
295 </#if> 
296 </#if> 
297 </#if> 
298 
299 
300 <#if hasContent('veranstaltungsnummer', languageId, json)> 
301 <#assign 
302 verauuid = getValueForLanguage('veranstaltungsnummer', languageId, json, "first") 
303 meta = meta + { "verauuid": verauuid } 
304 /> 
305 </#if> 
306 
307 
308 <#if (data.meta)?has_content > 
309 <#assign meta = data.meta /> 
310 </#if> 
311 
312 <#if !(data.media)?has_content && hasContent('mediumDMTKASDEMEDIUM', languageId, json)> 
313 <#assign 
314 medium = getValueForLanguage('mediumDMTKASDEMEDIUM', languageId, json, "first") 
315 mediaData = getRelatedMediaObject(medium, themeDisplay, languageId, FrontendService, "hd-resolution") 
316 /> 
317 <#assign data = data + { "media": mediaData.url , "meta" : mediaData.meta} > 
318 
319 
320 <#if mediaData.meta?? && mediaData.meta.quelle??> 
321 <#assign meta = meta + data.meta + { "quelle": mediaData.meta.quelle } /> 
322 </#if> 
323 </#if> 
324 
325 
326 <#if meta?has_content> 
327 <#assign data = data + {"meta": meta } > 
328 </#if> 
329 
330 <#-- END fill meta data --> 
331 
332 <#if hasContentForSequence('autorenWCSKASDEPERSON', languageId, json)> 
333 <#assign 
334 journalArticles = getValueForLanguageAnsprechpartner('autorenWCSKASDEPERSON', languageId, json) 
335 authors = [] 
336 /> 
337 <#list journalArticles as articleString> 
338 <#assign article = FrontendService.json.parseAsJson(articleString) /> 
339 <#if article?has_content && article?is_hash && article.classPK??> 
340 <#assign articleDereferenced = FrontendService.person.resolveContactInstanceToPerson(article, languageId)!"" /> 
341 <#if articleDereferenced?has_content > 
342 <#assign 
343 author = "" 
344 articlePrimaryKey = articleDereferenced.classPK?number 
345 articleJsonString = FrontendService.article.getWebcontent(articlePrimaryKey) 
346 articleJson = FrontendService.json.parseAsJson(articleJsonString) 
347 /> 
348 <@debugJsonString articleJsonString "ADT_KASDE_DYNAMIC_INTRO-autorenWCSKASDEPERSON" /> 
349 <#if hasValue('anredetitel', languageId, articleJson)> 
350 <#assign author = author + getValueForLanguage('anredetitel', languageId, articleJson, " ") + " "> 
351 </#if> 
352 <#if hasValue('vorname', languageId, articleJson)> 
353 <#assign author = author + getValueForLanguage('vorname', languageId, articleJson, " ") + " "> 
354 </#if> 
355 <#if hasValue('nachname', languageId, articleJson)> 
356 <#assign author = author + getValueForLanguage('nachname', languageId, articleJson, " ") + " "> 
357 </#if> 
358 
359 <#attempt> 
360 <#assign href = FrontendService.article.getFriendlyUrl(articlePrimaryKey, languageId, groupId)!"#" > 
361 <#recover> 
362 <#assign href = "#" > 
363 </#attempt> 
364 <#if href?has_content && href != "#" && href != "/_404"> 
365 <#assign author = '<a href="' + href + '">' + author?trim + '</a>'> 
366 </#if> 
367 
368 <#assign authors = authors + [author?trim]> 
369 </#if> 
370 </#if> 
371 </#list> 
372 <#if authors?has_content> 
373 <#assign data = data + { "author": authors?join(", ") } > 
374 </#if> 
375 </#if> 
376 
377 <#if layouttpl?contains("LAYOUT_KASDE_VERANSTALTUNGEN_DETAIL") > 
378 <#assign categories = FrontendService.category.getCategoriesToArticle(primaryKey, "VERANSTALTUNGSTYP")! > 
379 <#if categories?has_content && categories[0]?has_content > 
380 <#assign data = data + { "category": categories[0].getTitle(languageId,true)! } > 
381 </#if> 
382 
383 <#if hasContent('ausgebucht', languageId, json)> 
384 <#assign data = data + { "ausgebucht" : getValueForLanguage('ausgebucht', languageId, json, "first") }> 
385 </#if> 
386 
387 <#if hasContent('storniert', languageId, json)> 
388 <#assign data = data + { "storniert" : getValueForLanguage('storniert', languageId, json, "first") }> 
389 </#if> 
390 
391 <#elseif layouttpl?contains("LAYOUT_KASDE_PUBLIKATIONEN_DETAIL") > 
392 <#assign categories = FrontendService.category.getCategoriesToArticle(primaryKey, "PUBLIKATIONSREIHE")! > 
393 <#if categories?has_content && categories[0]?has_content > 
394 <#assign data = data + { "category": categories[0].getTitle(languageId,true)! } > 
395 </#if> 
396 <#else> 
397 <#assign categories = FrontendService.category.getCategoriesToArticle(primaryKey, "THEMA")! > 
398 <#if categories?has_content && categories[0]?has_content > 
399 <#assign data = data + { "category": categories[0].getTitle(languageId,true)! } > 
400 </#if> 
401 </#if> 
402 
403 
404 <#assign 
405 languages = [] 
406 /> 
407 
408 <#attempt> 
409 <#if json["document_pdfDMTBASICDOCUMENT"]?? > 
410 <#list json["document_pdfDMTBASICDOCUMENT"]?keys as pdf_language> 
411 <#if pdf_language?has_content > 
412 <#assign 
413 docRefJson = getValueForLanguage('document_pdfDMTBASICDOCUMENT', pdf_language, json, "first") 
414 docRef = FrontendService.json.parseAsJson(docRefJson) 
415 /> 
416 <#if docRef?is_hash && pdf_language != languageId > 
417 <#assign 
418 lang = FrontendService.language.getLocaleByKey(pdf_language)!"" 
419 docGroupId = docRef["groupId"]?number 
420 docUuid = docRef["uuid"] 
421 dMTJsonObject = FrontendService.media.getDMTJsonObject( docGroupId, docUuid, locale ) 
422 dMTLink = FrontendService.media.getLinkToDMT( dMTJsonObject ) 
423 /> 
424 <#if lang?has_content> 
425 <#assign 
426 languages = languages + [ 
427
428 "key": pdf_language, 
429 "value": FrontendService.language.getLocaleByKey(pdf_language).getDisplayLanguage(), 
430 "url": dMTLink 
431 }] 
432 /> 
433 </#if> 
434 </#if> 
435 </#if> 
436 </#list> 
437 </#if> 
438 <#recover> 
439 </#attempt> 
440 
441 <#if (languages?size > 0)> 
442 <#attempt> 
443 <#assign 
444 data = data + { "languageSelect": { 
445 "id": "languageSelect", 
446 "name": "languageselect", 
447 "entries": languages, 
448 "documents": "", 
449 "button": "true" 
450 }} 
451 /> 
452 <#recover> 
453 </#attempt> 
454 </#if> 
455 
456 <@PMIntro "ADT_KASDE_DYNAMIC_INTRO" data AMMetadata AMDatetime "bottom" /> 
457 ${FrontendService.article.getEditArticleHtml(primaryKey, themeDisplay)} 
458 
459 <#if data.meta?has_content> 
460 <#if data.meta.laufendenummer?has_content !isACColorScheme() && !isVLCColorScheme() && !isDPMColorScheme()> 
461 <div>  
462 <div id="publicationVerbundPagination"> 
463 <@AMPublicationCarousel data.meta.laufendenummer data.meta.date data.meta.coverImg /> 
464 </div> 
465 </div> 
466 </#if> 
467 </#if> 
468 
469<#elseif (editmode?? && editmode)> 
470 <@errorMessage languageUtil.get(locale, "kein.journalArticle.gefunden") "ADT_KASDE_DYNAMIC_INTRO" layouttpl currentUrl /> 
471</#if> 

Publicador de contenidos

Als „populär, dringend, gut und gerecht“ bezeichnet Präsident Luis Lacalle Pou ein Mammut-Gesetzeswerk seiner Regierung, das wichtige Elemente des Wahlprogramms der Regierungskoalition umsetzt. Aller Voraussicht nach wird der Präsident die Reform noch einmal landauf landab verteidigen müssen. Gegen die Erwartungen vieler gelang es der Opposition, 800.000 Unterschriften - mehr als ein Viertel der uruguayischen Wahlberechtigten - für ein Referendum zu sammeln. Sollten diese Unterschriften vom Wahlgericht für gültig erklärt werden, wird voraussichtlich im März 2022 an die Urnen gerufen. Da es an der Gültigkeit der Unterschriften kaum Zweifel gibt, hat hinter den Kulissen längst die Kampagne begonnen.

Das kleine Land (knapp 3,5 Mio. Einwohner bei einer Fläche rund halb so groß wie Deutschland) zwischen Brasilien und Argentinien gilt als politischer Ruhepol und blickt auf eine lange republikanische Tradition mit den ältesten Parteien Lateinamerikas zurück. Eine ausgeprägt konsensorientierte politische Kultur, ein im regionalen Vergleich geringes Wohlstandsgefälle sowie eine niedrige Armutsrate bescheren dem Land einen starken sozialen Zusammenhalt, der Uruguay in der Region den Ruf eines Stabilitätsankers einbringt. Seit dem 1. März 2020 regiert Präsident Luis Lacalle Pou mit einer von der linken Mitte bis zu konservativ-populistischen Kräften reichenden Fünf-Parteien-Koalition und löste damit die 15-jährige Regierungszeit des Linksbündnisses „Frente Amplio“ (FA) ab.

Komplexes Reformwerk

Getreu ihrer Ankündigung im Wahlkampf brachte die Regierung kurz nach Amtsantritt ein Gesetzeswerk auf den Weg, dessen insgesamt 476 Artikel am 9. Juli 2020 in Kraft traten. Das Paket wurde im Eilverfahren – also als „Ley de Urgente Consideración“ (LUC – „Gesetz im Eilverfahren“) in das Parlament eingebracht. Die Bestimmungen der LUC reichen von der Öffentlichen Sicherheit (mehr Zugriffsrechte für die Polizei, Verschärfung des Jugendstrafrechts bei schweren Verbrechen, Einführung neuer Straftatbestände, Verschärfung des Strafrechts), über Wirtschaft (Steuererleichterungen für KMUs, Abbau von Regulierungen, Wiedererlaubnis der Auszahlung von Löhnen in bar), Arbeitsrecht (Nichtstreikenden soll der freie Zugang zu ihrem Arbeitsplatz gewährleistet werden, was einem Verbot der Besetzung von Arbeitsstätten durch Gewerkschaften entspricht) und Wohnraum (Erleichterung des Abschlusses von Mietverträgen und Flexibilisierung des Kündigungsschutzes), bis hin zur Schaffung eines Umweltministeriums, der Vereinfachung des Adoptionsrechts und der Erlaubnis, die eigene Handynummer bei einem Anbieterwechsel zu behalten.

Auch wenn die Verabschiedung eines solch monumentalen Gesetzespaketes verfassungskonform ist und ähnliches in etwas geringerem Umfang auch von Vorgängerregierungen durchgeführt wurde, entbrannte schnell eine Diskussion darüber, ob ein solches Paket nicht lieber in separaten Teilen diskutiert und verabschiedet werden sollte. Insbesondere nach Meinung der Opposition war das Vorgehen der Regierung wenig transparent und demokratisch defizitär. Die Regierung argumentierte dagegen, dass das Gesetzespaket bereits vor der Wahl grundsätzlich bekannt gewesen sowie auch im Schnellverfahren adäquat vom Parlament diskutiert worden sei. Inhaltlich war es vor allem der aufs Engste mit der Frente Amplio verbundene einflussreiche Gewerkschaftsdachverband „Plenario Intersindical de Trabajadores-Convención Nacional de Trabajadores“ (PIT-CNT), der gegen die LUC mobilmachte und gemeinsam mit der FA eine Unterschriftensammlung für ein Referendum über 135 der 476 LUC-Artikel startete.

Der überraschende Erfolg dieser Unterschriftensammlung hauchte einer bis dahin nach ihrer Rolle suchenden und desartikuliert wirkenden Opposition neues Leben ein. Die Aussicht auf ein mögliches Referendum trug ebenfalls dazu bei, die durchaus ideologisch sehr unterschiedlichen Fraktionen innerhalb des Linksbündnisses hinter einem gemeinsamen Anliegen zu einen. Gleichzeitig bewirkt die Abstimmung jedoch auch ein Zusammenrücken der heterogenen Regierungskoalition, die bisher weitgehend geräuschlos funktioniert.

Pandemie verliert an Bedeutung

Die Regierung geht zwar zuversichtlich, aber nicht ohne Sorge in den Wahlkampf. Aktuelle Umfragen sagen ein ungewisses Ergebnis voraus, auch wenn eine Tendenz für die Regierung zu erkennen ist.  Entscheidend wird sein, inwieweit es der Regierung gelingt, ihre positiven Zustimmungswerte bis zum Referendumstermin zu halten und ein negatives Votum im Referendum (gegen die Aussetzung der LUC) eng an die Unterstützung für die Amtsführung des Präsidenten zu knüpfen. Diese liegt je nach Umfrageinstitut zwischen 49 und 60 Prozent. Im Vergleich zu den Zahlen von April/Mai sank die Zustimmung damit um Werte zwischen fünf und zehn Prozent. Demoskopen erklären diesen Abschwung damit, dass die Corona-Pandemie immer mehr aus der politischen Diskussion verschwindet und auf der Prioritätenliste der Menschen nicht mehr an erster Stelle steht. Durch die sehr erfolgreiche Impfkampagne hat sich die Pandemielage, bei Infektionszahlen auf sehr niedrigen Niveau, in Uruguay stabilisiert. Der Präsident, der lagerübergreifend für sein Corona-Management gelobt wurde, wird also zunehmend für seine Bilanz auf den üblichen Politikfeldern bewertet, etwa Sicherheit, Bildung, Wirtschaftswachstum oder Lohnentwicklung. Die derzeit herrschende Diskussion, ob der seit März 2020 bestehende Pandemie-Ausnahmezustand bald aufgehoben wird, geht gewissermaßen einher mit einer Normalisierung der uruguayischen Politik.

Öffnung der Wirtschaft

Trotz eines Nettoverlustes von 35.000 Arbeitsplätzen im Vergleich zur Zeit vor der Pandemie erholt sich die uruguayische Wirtschaft spürbar. Laut Regierungsangaben wird sie 2021 um 3,5 Prozent wachsen. Nach einem unerwartet starken Wachstum im zweiten Trimester 2021 wird bis Ende des Jahres ein ähnliches Wirtschaftsniveau wie vor der Pandemie erwartet. Das Wachstum wird hierbei insbesondere vom Agroexport und dem Immobiliensektor angetrieben. Deutlich schwieriger ist die Situation für den Tourismus und den Handel – beides Sektoren, die von der Regierung in der Pandemie besonders unterstützt wurden. Auch wenn die Armutsrate von 2019 bis 2020 von 8,8 auf 11,6 Prozent anstieg, ist sowohl ihr Anstieg als auch ihr Niveau im lateinamerikanischen Vergleich weiterhin sehr niedrig.

Regional setzt sich Uruguay vor allem für eine Flexibilisierung des in Montevideo ansässigen Mercosur ein. Der Vier-Staaten-Bund aus Argentinien, Brasilien, Paraguay und Uruguay lässt es eigentlich nicht zu, dass einzelne Mitglieder ohne Zustimmung der anderen Freihandelsabkommen mit Drittstaaten abschließen, was das exportabhängige Uruguay als großen Nachteil empfindet. Besonders groß ist die Frustration der uruguayischen Regierung in diesem Zusammenhang über die europäischen Widerstände gegen eine Ratifikation des EU-Mercosur-Handelsabkommens, welches von Uruguay nachdrücklich unterstützt wird.

Die so entstehende Lücke füllt zunehmend China. Anfang September 2021 kündigte Präsident Lacalle Pou an, in bilaterale Gespräche mit Peking zum Abschluss eines Freihandelsabkommens eintreten zu wollen. Uruguay erhofft sich davon insbesondere mehr Absatzmöglichkeiten für seine Agroexporte. Eine kritische Diskussion über die geopolitischen Implikationen eines engeren Anschlusses an China findet in der Öffentlichkeit bisher kaum statt. Analysten und auch Stimmen aus dem Umfeld der Regierung versichern, dass der Vorstoß Richtung China auch dazu gedacht ist, zum einen dem Mercosur und dort vor allem dem protektionistischen Argentinien die Dringlichkeit einer Flexibilisierung des Staatenbundes deutlich zu machen und zum anderen Akteure wie die USA und die EU wachzurütteln und dazu zu bewegen, ihrerseits Handelsabkommen mit Uruguay zu schließen.

Nicht nur bezüglich der Freihandelsabkommen befindet sich Uruguay auf Öffnungskurs. So wirbt Staatschef Lacalle Pou aktiv um Investoren aus dem dauerhaft kriselnden Nachbarland Argentinien, was sich in mehreren Fernsehinterviews mit argentinischen Fernsehsendern widerspiegelte. Gleichzeitig vereinfachte die Regierung die Bedingungen für ausländische Hauskäufer.

Zudem sollen die Corona-Reisebeschränkungen weitestgehend fallen und das Land wieder stärker zur Normalität zurückkehren. Nachdem seit dem 1. September 2021 bereits wieder ausländische Immobilienbesitzer nach Uruguay einreisen können, sollen ab dem 1. November und damit pünktlich zur Hauptreisesaison auch wieder Touristen ins Land dürfen. Voraussetzung ist ein vollumfänglicher Impfschutz. 

Ausblick

Nach zwei von fünf Regierungsjahren steht der Regierung mit dem Referendum zur „LUC“ eine Art Midterm election bevor. Bei dieser wird es wohl weniger um die Details des schwer durchschaubaren Gesetzespaketes gehen, als vielmehr um die bisherige Bilanz der von Lacalle Pou angeführten Koalitionsregierung.

Zwar steht die Regierung dank ihres Pandemie-Managements, der Führungsstärke des Präsidenten, der guten Umfragewerte und der recht positiven wirtschaftlichen Daten gut dar, das bevorstehende Referendum birgt jedoch eine nicht zu unterschätzende Gefahr. Sollte es den verschiedenen Oppositionsgruppen gelingen, eine Mehrheit der Wahlberechtigten gegen die „LUC“ zu mobilisieren, wäre dies ein empfindlicher Wirkungstreffer, der die Reformagenda der Regierung ernsthaft ins Taumeln bringen könnte.

Sollte die Rechnung der Regierung aufgehen und sie im Referendum einen deutlichen Sieg davontragen, dürfte je nach Deutlichkeit des Ergebnisses insbesondere die Position des Präsidenten nicht nur im Volk, sondern auch innerhalb der Regierungskoalition an Durchschlagskraft gewinnen. Dies könnte Lacalle Pou dazu motivieren, weitere Reformen neu anzuschieben, über die bisher auch in der eigenen Koalition keine Einheit herrscht. Insbesondere steht hier die Aufweichung mancher Staatsmonopole, insbesondere auf Mineralölimporte, auf der Agenda. Zunächst gilt es jedoch für beide Seiten, die Wähler von der jeweils eigenen Sicht auf die „LUC“ zu überzeugen. Bis dahin herrscht in Uruguay zunächst einmal Wahlkampf.

Compartir

Publicador de contenidos

Personas de contacto

Sebastian Grundberger

Sebastian Grundberger

Representante Programa Regional Partidos Políticos y Democracia en América Latina / Programa Uruguay

sebastian.grundberger@kas.de +598 2902 0943

comment-portlet

Kommentare

Bitte melden Sie sich an, um kommentieren zu können

Publicador de contenidos