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 132, 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 132, 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 availablelanguages = FrontendService.article.getAssetEntryToUrl(primaryKey).getAvailableLanguageIds() 
98 
99 title = entry.getTitle(languageId) 
100 data = { 
101 "title": title 
102
103 /> 
104 <@debugJsonString jsonString "ADT_KASDE_DYNAMIC_INTRO" /> 
105 
106 <#if hasContent('untertitel', languageId, json)> 
107 <#assign data = data + { "subheadline": getValueForLanguage('untertitel', languageId, json, "first") } > 
108 </#if> 
109 
110 <#if hasValue(FrontendService.article.getFieldNameByReferenceName(primaryKey, 'detailsubtitle'), languageId, json)> 
111 <#assign data = data + { "detailsubtitle": getValueForLanguage(FrontendService.article.getFieldNameByReferenceName(primaryKey, 'detailsubtitle'), languageId, json, "first") } > 
112 </#if> 
113 
114 <#if hasContent('beschreibung', languageId, json)> 
115 <#assign data = data + { "copy": getValueForLanguage('beschreibung', languageId, json, "first") } > 
116 </#if> 
117 
118 <#-- fill meta data --> 
119 <#assign meta = {} /> 
120 
121 <#-- PUBLIKATIONEN DETAIL --> 
122 <#if layouttpl?contains("LAYOUT_KASDE_PUBLIKATIONEN_DETAIL")> 
123 
124 <#if hasContent('coverDMTKASDEMEDIUM', languageId, json)> 
125 <#assign 
126 coverBildString = getValueForLanguage('coverDMTKASDEMEDIUM', languageId, json, "first") 
127 /> 
128 
129 <#if coverBildString?has_content> 
130 <#assign 
131 coverBild = FrontendService.json.parseAsJson(coverBildString) 
132 dMTJsonObject = FrontendService.media.getDMTJsonObject( coverBild.groupId?number, coverBild.uuid, locale ) 
133 linkToDMT = FrontendService.media.getImageURLForAMConfiguration('hd-resolution',coverBild.groupId?number, coverBild.uuid ) 
134 data = data + { "media": linkToDMT, "meta" : dMTJsonObject } 
135 /> 
136 <#if dMTJsonObject.altText?? > 
137 <#assign data = data + {"alt" : dMTJsonObject.altText} /> 
138 </#if> 
139 <#if dMTJsonObject.quelle??> 
140 <#assign meta = meta + { "quelle": dMTJsonObject.quelle } /> 
141 </#if> 
142 </#if> 
143 <#-- uncomment to display pdf cover as Intro Image 
144 <#elseif hasContent('document_pdfDMTBASICDOCUMENT', languageId, json)> 
145 <#assign 
146 pdfDocument = getValueForLanguage('document_pdfDMTBASICDOCUMENT', languageId, json, "first") 
147 fileEntry = FrontendService.media.getFileEntry(pdfDocument.uuid, groupId?number)!/> 
148 <#if fileEntry?has_content> 
149 <#assign 
150 linkToThumbnail = FrontendService.link.getThumbnailSrc(fileEntry , themeDisplay) 
151 data = data + { "media": linkToThumbnail } 
152 /> 
153 </#if> 
154 --> 
155 </#if> 
156 
157 <#assign 
158 meta = meta + { "orderInfo": "true" } 
159 verbundJournalArticle = FrontendService.publication.getVerbundToPublikation( entry )!"" 
160 /> 
161 
162 
163 
164 <#if hasContent('erscheinungsdatum', languageId, json)> 
165 <#assign 
166 erscheinungsdatum = getValueForLanguage('erscheinungsdatum', languageId, json, "first") 
167 /> 
168 <#if erscheinungsdatum?has_content > 
169 <#assign 
170 erscheinungsdatumFormatted = FrontendService.date.getDateFormatLong( erscheinungsdatum, languageId ) 
171 meta = meta + { "date": erscheinungsdatumFormatted } 
172 /> 
173 </#if> 
174 </#if> 
175 
176 <#if verbundJournalArticle?has_content> 
177 <#assign 
178 verbundJsonString = FrontendService.article.getWebcontent(verbundJournalArticle.resourcePrimKey) 
179 verbundJson = FrontendService.json.parseAsJson(verbundJsonString) 
180 laufendenummer = getValueForLanguage('laufendenummer', languageId, verbundJson, "first") 
181 coverImg = getValueForLanguage('mediumDMTKASDEMEDIUM', languageId, verbundJson, "first") 
182 /> 
183 <@debugJsonString verbundJsonString "ADT_KASDE_DYNAMIC_INTRO-verbundJournalArticle" /> 
184 <#assign meta = meta + { "laufendenummer": laufendenummer } > 
185 
186 <#if coverImg?has_content && coverImg.url?has_content > 
187 <#assign meta = meta + { "coverImg": coverImg.url } > 
188 </#if> 
189 </#if> 
190 
191 
192 <#if meta?has_content> 
193 <#assign data = data + {"meta": meta } > 
194 </#if> 
195 
196 </#if> 
197 <#-- PUBLIKATIONEN DETAIL END --> 
198 
199 
200 <#-- VERANSTALTUNGEN DETAIL --> 
201 <#if layouttpl?contains("LAYOUT_KASDE_VERANSTALTUNGEN_DETAIL")> 
202 <#assign 
203 friendlyUrl = FrontendService.article.getFriendlyUrl(primaryKey, languageId, groupId)!"" 
204 links = [] 
205 /> 
206 <#if availablelanguages?has_content && friendlyUrl?has_content> 
207 <#if (availablelanguages?size > 1) > 
208 <#list availablelanguages as language> 
209 <#assign 
210 defaultLanguage = "de_DE" 
211 defaultLocale = FrontendService.language.getLocaleByKey(defaultLanguage) 
212 linkLocale = (FrontendService.language.getLocaleByKey(language))!defaultLocale 
213 langFriendlyUrl = FrontendService.article.getFriendlyUrl(primaryKey, linkLocale, groupId) 
214 
215 link = { 
216 "key": language!defaultLanguage, 
217 "value": linkLocale.getDisplayLanguage(languageId), 
218 "url": "/c/portal/update_language?p_l_id=" + 
219 layout.plid + "&redirect=" + langFriendlyUrl + 
220 "&languageId=" + language 
221
222 /> 
223 <#if language == languageId> 
224 <#assign link = link + { "selected": "true" } > 
225 </#if> 
226 <#assign links = links + [link]> 
227 </#list> 
228 <#assign 
229 data = data + { 
230 "languageSelect": { 
231 "id": "languageSelectRedirect", 
232 "name": "languageselectRedirect", 
233 "entries": links, 
234 "label": languageUtil.get(languageId, "diese.veranstaltung.ist.in.weiteren.sprachen.verfuegbar") 
235
236
237 /> 
238 </#if> 
239 </#if> 
240 </#if> 
241 
242 <#if hasContent('erscheinungsdatum', languageId, json)> 
243 <#assign 
244 startdate = getValueForLanguage('erscheinungsdatum', languageId, json, "first") 
245 meta = meta + { "start": startdate?date.iso, "end": "" } 
246 /> 
247 </#if> 
248 
249 <#if hasContent('startdatum', languageId, json)> 
250 <#assign 
251 startdate = getValueForLanguage('startdatum', languageId, json, "first") 
252 meta = meta + { "start": startdate?date.iso, "end": "" } 
253 /> 
254 </#if> 
255 
256 <#if hasValue('einfuehrungText', locale, json)> 
257 <#assign data = data + { "einfuehrungText" : getValueForLanguage('einfuehrungText', locale, json, "first") } > 
258 <#elseif hasValue(FrontendService.article.getFieldNameByReferenceName(primaryKey, 'einfuehrungText'), locale, json, "first")> 
259 <#assign data = data + { "einfuehrungText" : getValueForLanguage(FrontendService.article.getFieldNameByReferenceName(primaryKey, 'einfuehrungText'), locale, json, "first") } > 
260 </#if> 
261 
262 <#if hasContent('endedatum', languageId, json)> 
263 <#assign 
264 enddate = getValueForLanguage('endedatum', languageId, json, "first") 
265 meta = meta + { "end": enddate?date.iso } 
266 /> 
267 </#if> 
268 
269 <#if hasContent('startzeit', languageId, json)> 
270 <#assign 
271 startzeit = getValueForLanguage('startzeit', languageId, json, "first") 
272 /> 
273 <#if startzeit?has_content > 
274 <#assign meta = meta + { "startzeit": startzeit } /> 
275 </#if> 
276 </#if> 
277 
278 <#if hasContent('endezeit', languageId, json)> 
279 <#assign 
280 endezeit = getValueForLanguage('endezeit', languageId, json, "first") 
281 meta = meta + { "endezeit": endezeit } 
282 /> 
283 </#if> 
284 
285 <#if hasContent('ortWCSKASDEORT', languageId, json)> 
286 <#assign 
287 ortWCSKASDEORT = FrontendService.json.parseAsJson(getValueForLanguage('ortWCSKASDEORT', languageId, json, "first")) 
288 ortWCSKASDEORTPrimaryKey = ortWCSKASDEORT.classPK?number 
289 ortWCSKASDEORTWebContent = FrontendService.article.getWebcontentByPk(ortWCSKASDEORTPrimaryKey)!"" 
290 /> 
291 <#if ortWCSKASDEORTWebContent?has_content > 
292 <#assign 
293 ortWCSKASDEORTTitle = ortWCSKASDEORTWebContent.getTitle(languageId)!"" 
294 /> 
295 <#if ortWCSKASDEORTTitle?has_content > 
296 <#assign 
297 meta = meta + { "ortWCSKASDEORT": ortWCSKASDEORTTitle } 
298 /> 
299 </#if> 
300 </#if> 
301 </#if> 
302 
303 
304 <#if hasContent('veranstaltungsnummer', languageId, json)> 
305 <#assign 
306 verauuid = getValueForLanguage('veranstaltungsnummer', languageId, json, "first") 
307 meta = meta + { "verauuid": verauuid } 
308 /> 
309 </#if> 
310 
311 
312 <#if (data.meta)?has_content > 
313 <#assign meta = data.meta /> 
314 </#if> 
315 
316 <#if !(data.media)?has_content && hasContent('mediumDMTKASDEMEDIUM', languageId, json)> 
317 <#assign 
318 medium = getValueForLanguage('mediumDMTKASDEMEDIUM', languageId, json, "first") 
319 mediaData = getRelatedMediaObject(medium, themeDisplay, languageId, FrontendService, "hd-resolution") 
320 /> 
321 <#assign data = data + { "media": mediaData.url , "meta" : mediaData.meta} > 
322 
323 
324 <#if mediaData.meta?? && mediaData.meta.quelle??> 
325 <#assign meta = meta + data.meta + { "quelle": mediaData.meta.quelle } /> 
326 </#if> 
327 </#if> 
328 
329 
330 <#if meta?has_content> 
331 <#assign data = data + {"meta": meta } > 
332 </#if> 
333 
334 <#-- END fill meta data --> 
335 
336 <#if hasContentForSequence('autorenWCSKASDEPERSON', languageId, json)> 
337 <#assign 
338 journalArticles = getValueForLanguageAnsprechpartner('autorenWCSKASDEPERSON', languageId, json) 
339 authors = [] 
340 /> 
341 <#list journalArticles as articleString> 
342 <#assign article = FrontendService.json.parseAsJson(articleString) /> 
343 <#if article?has_content && article?is_hash && article.classPK??> 
344 <#assign articleDereferenced = FrontendService.person.resolveContactInstanceToPerson(article, languageId)!"" /> 
345 <#if articleDereferenced?has_content > 
346 <#assign 
347 author = "" 
348 articlePrimaryKey = articleDereferenced.classPK?number 
349 articleJsonString = FrontendService.article.getWebcontent(articlePrimaryKey) 
350 articleJson = FrontendService.json.parseAsJson(articleJsonString) 
351 /> 
352 <@debugJsonString articleJsonString "ADT_KASDE_DYNAMIC_INTRO-autorenWCSKASDEPERSON" /> 
353 <#if hasValue('anredetitel', languageId, articleJson)> 
354 <#assign author = author + getValueForLanguage('anredetitel', languageId, articleJson, " ") + " "> 
355 </#if> 
356 <#if hasValue('vorname', languageId, articleJson)> 
357 <#assign author = author + getValueForLanguage('vorname', languageId, articleJson, " ") + " "> 
358 </#if> 
359 <#if hasValue('nachname', languageId, articleJson)> 
360 <#assign author = author + getValueForLanguage('nachname', languageId, articleJson, " ") + " "> 
361 </#if> 
362 
363 <#attempt> 
364 <#assign href = FrontendService.article.getFriendlyUrl(articlePrimaryKey, languageId, groupId)!"#" > 
365 <#recover> 
366 <#assign href = "#" > 
367 </#attempt> 
368 <#if href?has_content && href != "#" && href != "/_404"> 
369 <#assign author = '<a href="' + href + '">' + author?trim + '</a>'> 
370 </#if> 
371 
372 <#assign authors = authors + [author?trim]> 
373 </#if> 
374 </#if> 
375 </#list> 
376 <#if authors?has_content> 
377 <#assign data = data + { "author": authors?join(", ") } > 
378 </#if> 
379 </#if> 
380 
381 <#if layouttpl?contains("LAYOUT_KASDE_VERANSTALTUNGEN_DETAIL") > 
382 <#assign categories = FrontendService.category.getCategoriesToArticle(primaryKey, "VERANSTALTUNGSTYP")! > 
383 <#if categories?has_content && categories[0]?has_content > 
384 <#assign data = data + { "category": categories[0].getTitle(languageId,true)! } > 
385 </#if> 
386 
387 <#if hasContent('ausgebucht', languageId, json)> 
388 <#assign data = data + { "ausgebucht" : getValueForLanguage('ausgebucht', languageId, json, "first") }> 
389 </#if> 
390 
391 <#if hasContent('storniert', languageId, json)> 
392 <#assign data = data + { "storniert" : getValueForLanguage('storniert', languageId, json, "first") }> 
393 </#if> 
394 
395 <#elseif layouttpl?contains("LAYOUT_KASDE_PUBLIKATIONEN_DETAIL") > 
396 <#assign categories = FrontendService.category.getCategoriesToArticle(primaryKey, "PUBLIKATIONSREIHE")! > 
397 <#if categories?has_content && categories[0]?has_content > 
398 <#assign data = data + { "category": categories[0].getTitle(languageId,true)! } > 
399 </#if> 
400 <#else> 
401 <#assign categories = FrontendService.category.getCategoriesToArticle(primaryKey, "THEMA")! > 
402 <#if categories?has_content && categories[0]?has_content > 
403 <#assign data = data + { "category": categories[0].getTitle(languageId,true)! } > 
404 </#if> 
405 </#if> 
406 
407 
408 <#assign 
409 languages = [] 
410 /> 
411 
412 <#attempt> 
413 <#if json["document_pdfDMTBASICDOCUMENT"]?? > 
414 <#if availablelanguages?has_content> 
415 <#list availablelanguages as pdf_language> 
416 <#assign 
417 docRefJson = getValueForLanguage('document_pdfDMTBASICDOCUMENT', pdf_language, json, "first") 
418 docRef = FrontendService.json.parseAsJson(docRefJson) 
419 /> 
420 <#if docRef?is_hash && pdf_language != languageId > 
421 <#assign 
422 lang = FrontendService.language.getLocaleByKey(pdf_language)!"" 
423 docGroupId = docRef["groupId"]?number 
424 docUuid = docRef["uuid"] 
425 dMTJsonObject = FrontendService.media.getDMTJsonObject( docGroupId, docUuid, locale ) 
426 dMTLink = FrontendService.media.getLinkToDMT( dMTJsonObject ) 
427 /> 
428 <#if lang?has_content> 
429 <#assign 
430 languages = languages + [ 
431
432 "key": pdf_language, 
433 "value": FrontendService.language.getLocaleByKey(pdf_language).getDisplayLanguage(), 
434 "url": dMTLink 
435 }] 
436 /> 
437 </#if> 
438 </#if> 
439 </#list> 
440 </#if> 
441 </#if> 
442 <#recover> 
443 </#attempt> 
444 
445 <#if (languages?size > 0)> 
446 <#attempt> 
447 <#assign 
448 data = data + { "languageSelect": { 
449 "id": "languageSelect", 
450 "name": "languageselect", 
451 "entries": languages, 
452 "documents": "", 
453 "button": "true" 
454 }} 
455 /> 
456 <#recover> 
457 </#attempt> 
458 </#if> 
459 
460 <@PMIntro "ADT_KASDE_DYNAMIC_INTRO" data AMMetadata AMDatetime "bottom" /> 
461 ${FrontendService.article.getEditArticleHtml(primaryKey, themeDisplay)} 
462 
463 <#if data.meta?has_content> 
464 <#if data.meta.laufendenummer?has_content !isACColorScheme() && !isVLCColorScheme() && !isDPMColorScheme()> 
465 <div>  
466 <div id="publicationVerbundPagination"> 
467 <@AMPublicationCarousel data.meta.laufendenummer data.meta.date data.meta.coverImg /> 
468 </div> 
469 </div> 
470 </#if> 
471 </#if> 
472 
473<#elseif (editmode?? && editmode)> 
474 <@errorMessage languageUtil.get(locale, "kein.journalArticle.gefunden") "ADT_KASDE_DYNAMIC_INTRO" layouttpl currentUrl /> 
475</#if> 

Publicador de contenidos

Compartir

Lange Unklarheit im Nachgang der Stichwahl

Die Stichwahl um das Präsidentschaftsamt in Peru am 6. Juni 2021 ist mit ca. 0,25 Prozent Unterschied der Wählerstimmen so knapp ausgefallen, dass das Nationale Wahlgericht 43 Tage brauchte, um das Ergebnis und die Rechtmäßigkeit der Wahl endgültig zu bestätigen.

Nachdem die konservative Kandidatin Keiko Fujimori in der Wahlnacht zunächst vorne lag, holte ihr sozialistischer Konkurrent Pedro Castillo nach Auszählung der Stimmen auf dem Land auf. Zwar erklärte sich Castillo schon in der Woche nach der Wahl zum Präsidenten und erhielt Glückwünsche von seinen sozialistischen Mitstreitern aus weiten Teilen Lateinamerikas. Doch Fujimori zweifelte die Rechtmäßigkeit der Auszählung unter dem Vorwurf systematischer Manipulation an und stellte damit über 200.000 Stimmen in Frage.

Grundlage waren Unregelmäßigkeiten wie gefälschte Unterschriften von Wahlhelfern sowie statistisch fragwürdig hohe Stimmabgaben für Castillo in bestimmen Distrikten. Der Überprüfungsprozess wurde schließlich durch die Partei Fujimoris selbst verzögert, die die zu überprüfenden Akten der Wahlergebnisse nicht fristgerecht beim Wahlgericht eingereicht hatte. Zudem gab es Anschuldigungen, dass das Wahlgericht selbst parteiisch auf der Seite des Sozialisten agiere, in Folge dessen ein konservativer Richter aus Frust seinen Rücktritt erklärte und nachbesetzt werden musste. In weiten Teilen der Bevölkerung haben die Wahlbehörden durch die lange Verzögerung der Bekanntgabe des neuen Präsidenten an Vertrauen verloren. Auf den Straßen der Innenstadt Limas kam es zu Protestmärschen von Anhängern beider Lager.

Nach dem sechswöchigen institutionellen Chaos hat das Wahlgericht alle Beschwerden geprüft und entschieden: die Wahl war rechtmäßig und Pedro Castillo wird das Präsidentenamt übernehmen. Zwar erkennt Fujimori die Entscheidung der Wahlbehörde an, jedoch sprechen sie und ihre Anhänger weiterhin von Wahlbetrug.

Der Überraschungssieger und seine radikale Agenda

Der Sieg des Dorflehrers Pedro Castillo kam trotz des guten Abschneidens in der ersten Runde der Präsidentschaftswahlen überraschend, denn in Peru wird traditionell konservativ gewählt. Der Erfolg des Sozialisten kann auf drei wesentliche Gründe zurückgeführt werden. Erstens, die Frustration der Wählerschaft gegenüber Vertretern des Establishments, die in den Augen vieler Peruaner eher ihre Eigeninteressen als die ihres Volkes vertreten. Die Enttäuschung verstärkte sich durch die politische Krise der letzten Jahre sowie das bislang desaströse Management der Corona-Krise. Zweitens kann das Wahlergebnis als Wunsch weiter Teile der Bevölkerung nach grundlegenden Reformen des Wirtschaftssystems interpretiert werden. Auch hier hatten die schweren Auswirkungen der Pandemie einen entscheidenden Einfluss: neben dem Einbruch der Wirtschaft um elf Prozent im Jahr 2020, stiegen die Preise für Miete, Wasser, Strom, Öl und Gas um durchschnittlich sieben Prozent in den letzten zwölf Monaten. Damit wurde insbesondere die arme Bevölkerung des Landes belastet. Drittens haben sich trotz Zweifel an Castillo viele Wähler nicht dafür mobilisieren lassen, für die umstrittene Kandidatin Fujimori zu stimmen. Gründe hierfür sind hauptsächlich ihre autoritäre Familiengeschichte und ihre Verwicklung in Korruptionsskandale.

Castillo hat im Wahlkampf mit einer radikalen Veränderung des Wirtschaftssystems geworben. Er kündigt an, die Verfassung zu ersetzen, um Bodenschätze und Privateigentum zu verstaatlichen sowie internationale Handelsabkommen außer Kraft zu setzen. Das Verfassungsgericht solle abgeschafft und die Pressfreiheit eingeschränkt werden.[1]

Diese Politikvorhaben sind maßgeblich durch seinen Parteichef Vladimir Cerrón geprägt. Der in Kuba ausgebildete Mediziner orientiert sich am Vorbild Venezuelas und hat seine sozialistischen Bestrebungen schon während des linksgerichteten internationalen Parteientreffens „São Paulo Forum“ in Havana im Jahr 2018 angekündigt: „Fidel [Castro] hat uns gelehrt, dass für eine Utopie zu kämpfen auch bedeutet, sie zu errichten“.[2] 2019 wurde der ehemalige Gouverneur der Region Junín wegen Korruption zu vier Jahren und acht Monaten Freiheitsstrafe auf Bewährung verurteilt, wurde aber frühzeitig entlassen.[3] Auch die aktuelle Kampagne seiner Partei soll durch kriminelle Gruppen finanziert worden sein, z.B. durch ein Netzwerk von staatlichen Mitarbeitern regionaler Behörden, das Verwaltungsposten sowie offizielle Dokumente (z.B. Führerscheine) verkauft haben soll.[4] Diese Vorwürfe, die gerade von der Staatsanwaltschaft untersucht werden, werden auch den neuen Präsidenten begleiten.

Drei Szenarien für die neue Regierung unter Castillo

Damit Castillo seine angekündigten Reformen tatsächlich umsetzen kann, bedarf es einer Verfassungsänderung. Dafür ist laut Artikel 206 der peruanischen Verfassung aber die Zustimmung des Kongresses notwendig.[5] Im konservativ dominierten Kongress ist seine marxistisch-leninistisch orientierte Partei „Perú Libre“ mit 37 der 130 Sitze jedoch weit von einer Mehrheit entfernt, auch wenn eine Koalition mit der Partei „Juntos por el Perú“ mit weiteren fünf Sitzen möglich erscheint.

Auf dieser Basis ergeben sich drei mögliche Szenarien:

  • Castillo umgeht den Kongress und initiiert eigenmächtig entgegen der Verfassung eine Volksabstimmung.
  • Castillo versucht im Rahmen der rechtlichen Bestimmungen die Verfassung zu ändern. Da er aber nicht über die notwendigen Stimmen im Kongress verfügt, wäre eine Konfrontation mit der Legislative vorprogrammiert.
  • Castillo gibt seine radikale Agenda auf und arrangiert sich mit dem Kongress, um gemäßigtere Reformen durchzusetzen.

Szenario 1 („das Extrem“): Aushebelung der demokratischen Institutionen

Castillos Parteichef Cerrón hat schon vor der Wahl klargestellt, dass die Regierung keine Zustimmung vom Kongress benötigen würde, um eine Volksabstimmung für eine neue Verfassung einzuberufen.[6] Statt durch die Zustimmung des Kongresses, soll die Legitimität einer neuen verfassungsgebenden Versammlung direkt durch einen Volksentscheid hergestellt werden. Um diesen einzuberufen, hat die Partei des neuen Präsidenten bereits angekündigt, im großen Maße Unterschriften zu sammeln. Dieser Prozess widerspricht dem Wortlaut des Artikels 206, der die Voraussetzungen für die Einberufung einer neuen verfassungsgebenden Versammlung eindeutig an die Zustimmung des Kongresses knüpft, anstatt an einen Volksentscheid oder eine Volksinitiative.[7]

Aber selbst wenn der Kongress umgangen werden würde, gäbe es weitere „Checks and Balances“: Volksentscheide werden von den Wahlbehörden organisiert, deren Leitungen von der Judikative bestimmt wird und die sich Castillos Vorhaben entgegenstellen könnten; das sich bisher zurückhaltende Militär könnte eingreifen; das Volk könnte sich zu Protesten gegen die Vorhaben des Präsidenten formieren und schlussendlich müsste das Volk einem möglichen Volksentscheid natürlich auch zustimmen.

Wenn es Castillo gegen allen Zweifel gelingen sollte, eine neue verfassungsgebende Versammlung einzuberufen, dann hätte dies schwere Folgen für internationale Investoren, insbesondere im Bergbausektor: bestehende Verträge könnten aufgelöst und Eigentum enteignet werden; erhöhte Abgaben, Lohnkosten und Anschaffungskosten für Technologien könnten die Wirtschaftlichkeit des für Peru wichtigen Wirtschaftssektors in Frage stellen. Mittelfristig würde das Land dann an strategischem Wert für westliche Investoren verlieren. Hier liegt auch ein Einfallstor für eine verstärkte strategische Partnerschaft Perus mit China.

Szenario 2 („business as usual“): Konfrontation zwischen Exekutive und Legislative

In diesem Szenario würde Castillo die Verfassungsordnung zwar einhalten, dem Kongress bezüglich der verweigerten Zustimmung zur Verfassungsänderung aber die Vertrauensfrage stellen und so Neuwahlen provozieren. Laut Artikel 134 der Verfassung darf der Präsident den Kongress auflösen, wenn dieser sich zweimal weigert, dem Kabinett das Vertrauen auszusprechen. Verfassungsrechtlich kann Castillo die notwendige Zustimmung des Kongresses für eine mögliche Verfassungsänderung zwar nicht umgehen. Jedoch könnte er das Zeitfenster bis zur Neuwahl nutzen, um wie im ersten Szenario beschrieben, einen Volksentscheid durchzuführen oder direkt eine verfassungsgebende Versammlung einzuberufen.

Diesem Schritt könnte der Kongress zuvorkommen, indem er mit einer Zwei-Drittel-Mehrheit ein Amtsenthebungsverfahren gegen den Präsidenten einleitet, um die wohl gemäßigtere Vizepräsidentin Dina Boluarte als Staatsoberhaupt einzusetzen (obwohl diese sich auch für eine neue Verfassung ausgesprochen hat).

Dies würde für das Land eine weitere Phase der Konfrontation zwischen Exekutive und Legislative bedeuten, allerdings im Rahmen der gültigen (gleichwohl in dieser Hinsicht mehrmals als dysfunktional angeprangerten) Verfassungsordnung. Somit würde die Instabilität der politischen Institutionen, die das Land seit 2016 prägt, fortgeführt werden. Der Bergbau- und Geschäftssektor würden auf Autopilot weiterlaufen; Investoren wären jedoch weiterhin zurückhaltend.

Szenario 3 („die realpolitische Lösung“): Mäßigung des neuen Präsidenten

Es bestünde auch die Möglichkeit, dass sich Castillo von Vladimir Cerrón und seiner Partei distanziert und sich stattdessen der gemäßigteren Linkspartei „Juntos por el Perú“ und dem linken Flügel anderer Parteien im Kongress (wie „Accion Popular“, „Podemos Perú“ und „Somos Perú“) annähert. Auf diese Art könnten auf demokratischen Wegen und im Rahmen der aktuellen Verfassung Reformen im Bereich Gesundheit und Bildung, die sogar gemäßigte politische Akteure als unerlässlich erachten, durchgeführt werden. Castillo würde allerdings weiterhin auf erhöhte Steuersätze für die Ober- und Mittelschicht, sowie auf einer Überregulierung der Märkte und internationalen Investitionen beharren.

Dieses Szenario wäre mit der Regierung von Ex-Präsident Ollanta Humala (2011-2016) zu vergleichen, der in der vorletzten Präsidentenwahl den Sieg erreichte, indem er von seinem radikalen Diskurs abwich und sich zu einem demokratischen Kompromiss verpflichtete. Unter Humala wurde der staatliche Apparat und die damit verbundene Bürokratie aufgebläht; dennoch wuchs die peruanische Wirtschaft durchschnittlich um fünf Prozent jährlich.

Einschätzung

Castillo eilt sein radikaler Ruf voraus, jedoch ist er politisch ein relativ unbeschriebenes Blatt. Es ist daher nicht abzusehen, ob und wie er seine radikalen Reformvorhaben tatsächlich in die Tat umsetzen wird. Von den drei geschilderten Szenarien ist das zweite („Konfrontation zwischen Exekutive und Legislative“) am wahrscheinlichsten, weil das Volk eine wie im ersten Szenario beschriebene Aushebelung der demokratischen Ordnung kaum zulassen würde, Castillo aber auch kaum Indizien für eine wie im dritten Szenario beschriebene Mäßigung gezeigt hat.

Ein wesentlicher Faktor der Ausrichtung Castillos ist seine Beziehung zu Vladimir Cerrón. Zwar ist Cerróns Rolle in der neuen Regierung weiterhin unklar, er wird aber als enger Berater Castillos starken Einfluss auf den designierten Präsidenten haben. Außerdem ist Castillo auf die Stimmen der Kongressabgeordneten von „Perú Libre“ angewiesen, deren Loyalität sich Cerrón zum großen Teil sicher sein kann. Andererseits hat Castillo auch gemäßigtere Kräfte in seinen Beraterkreis aufgenommen. So hat sich sein wirtschaftspolitischer Chefberater, Pedro Francke, mehrmals für den Erhalt des Wirtschaftssystems Perus ausgesprochen. Es bleibt abzuwarten, ob sich Castillo dieser Forderung anschließt.

Selbst wenn Castillo demokratische Institutionen wie Wahlbehörden, Gerichte und den Presserat unterwandern würde, um den Einfluss der linken Kräfte dauerhaft im Staatssystem zu zementieren, ist es unwahrscheinlich, dass Peru das gleiche Schicksal wie Venezuela oder Kuba widerfährt. So kann Castillo durch die Verstaatlichung des Bergbausektors mittelfristig wesentlich weniger Macht an sich binden, als dies etwa mit der Verstaatlichung des ungleich größeren Ölsektors in Venezuela und des Zuckerrohrsektors in Kuba möglich war.[8] Denn für einen radikalen und dauerhaften Wandel des bestehenden Wirtschaftssystems bedarf es neben ideologischen Anhängern und politischem Kalkül auch langanhaltend hohen Geldflüssen, um wichtige Akteure wie die Sicherheitsbehörden durch Anreize – etwa lukrative Posten und finanzielle Vorteile – an sich zu binden.

Zudem ist nicht klar, wie die Sicherheitsbehörden auf eine mögliche Aushebelung der demokratischen Institutionen reagieren würden. Das Militär hält traditionell Abstand zu politischen Belangen. Nach Experteneinschätzungen positionieren sich die Polizei und der Geheimdienst intern jedoch dezidiert gegen die radikalen Vorhaben Castillos. Sie seien unter Umständen bereit, gegen Verfassungsverletzungen zu intervenieren. In diesem Szenario könnte ein Polizeistreik zu Chaos auf den Straßen der Städte führen, der das Militär nötigt, einzugreifen und den Präsidenten zwingt, die Verantwortung zu übernehmen und schließlich zurückzutreten. Ähnliche Ereignisse konnten in den Nachbarstaaten Ecuador im Jahr 2010 und Bolivien im Jahr 2019, als Reaktion gegen Rafael Correa und Evo Morales, beobachtet werden.

Auch wenn Peru wahrscheinlich nicht vor einem radikalen Umbruch des gesamten politischen und ökonomischen Systems steht, ist zu erwarten, dass die peruanische Wirtschaftsleistung, die Landeswährung sowie Unternehmenswerte weiter an Wert verlieren werden. Wie hoch der Verlust ausfällt wird je nach Szenario unterschiedlich sein. Nach Experteneinschätzungen wäre die Einberufung einer neuen verfassungsgebenden Versammlung, wie sie im ersten Szenario beschrieben wird, besonders schmerzhaft, da die Wirtschaft aufgrund der Unsicherheit im Vergleich zu den anderen Szenarien bis 2026 jährlich bis zu zehn Prozent des Bruttoinlandsproduktes einbüßen würde. Folglich würden auch mehr Peruaner unter die Armutsgrenze fallen.[9]

Fazit

Die Wahl Castillos war ein Ausdruck des Frusts großer Teile der Bevölkerung gegenüber der politischen Klasse und des wirtschaftlichen Systems. Ob die Wahl des Sozialisten zu einer Verbesserung des politischen Systems sowie der Lebensverhältnisse der Peruaner führen wird, ist fraglich. Wie der neue Präsident seine radikalen Reformen umzusetzen vermag, bleibt auch unklar. Je nach Szenario werden die Demokratie und Wirtschaft mehr oder weniger darunter leiden. Eine aufgeheizte politische Stimmung im Kongress und auf den Straßen ist zumindest vorprogrammiert.

 

--------------------------------------------------------------

[1] Eine genauere Beschreibung der Reformagenda findet sich im Länderbericht vom 7. Juni 2021, https://www.kas.de/de/laenderberichte/detail/-/content/spannendes-kopf-an-kopf-rennen-bei-den-stichwahlen-um-die-praesidentschaft-in-peru (abgerufen am 19. Juli 2021).

[2] https://diariocorreo.pe/politica/vladimir-cerron-foro-de-sao-paulo-fidel-castro-es-un-ejemplo-vivo-en-nuestra-sociedad-peru-libre-pedro-castillo-video-noticia/ (abgerufen am19. Juli 2021).

[3] Das Urteil gegen Cerrón wurde jedoch am 9. Juni aufgehoben. Gegen diese Entscheidung soll Berufung eingelegt werden. https://andina.pe/agencia/noticia-poder-judicial-presentara-recurso-apelacion-caso-cerron-848703.aspx (abgerufen am 19. Juli 2021).

[4] https://gestion.pe/peru/fiscalia-de-junin-revela-que-los-dinamicos-del-centro-habrian-financiado-campana-de-peru-libre-nndc-noticia/ (abgerufen am 19. Juli 2021).

[5] Jede Verfassungsreform muss vom Kongress mit der absoluten Mehrheit der gesetzlichen Anzahl seiner Mitglieder gebilligt und per Referendum ratifiziert werden. Das Referendum kann entfallen, wenn die Zustimmung des Kongresses in zwei aufeinanderfolgenden Jahren mit jeweils mehr als zwei Dritteln der Abgeordneten erreicht wird.

[6] https://twitter.com/VLADIMIR_CERRON/status/1389728839035654144 (abgerufen am 19. Juli 2021).

[7] Cerrón und Castillo stützen sich auf die Artikel 31 und 32 der peruanischen Verfassung. Artikel 31 garantiert das allgemeine Teilnahmerecht der Bürger an politischen und öffentlichen Prozessen durch das Stimmrecht und das Recht, Amtsenthebungsverfahren gegen Funktionäre einzuleiten (usw.). Artikel 32 enthält die besonderen Voraussetzungen und legitimen Gründe für eine Volksabstimmung. Danach dürfen zwar Gesetze durch Volksabstimmungen geändert werden, aber nicht internationale Verträge, die durch die Verfassung garantierten Grundrechte und die Verfassung selbst, es sei denn die Voraussetzungen von Artikel 206 sind erfüllt.

[8] Ein Vergleich zeigt, dass der Anteil des venezolanischen Erdölsektors zur Zeit der Amtsübernehme von Hugo Chavez im Jahr 1999 etwa ein Drittel des venezolanischen BIPs betrug (https://heinonline.org/HOL/LandingPage?handle=hein.journals/energy20&div=25&id=&page, abgerufen am 19. Juli 2021). Im Falle von Kuba betrug der Anteil des Zuckerrohrsektors zur Zeit der Amtsübernahme von Fidel Castro im Jahr 1958 auch etwa 30 Prozent der kubanischen Wirtschaft (https://foresightcuba.com/la-industria-azucarera-cubana/, abgerufen am 19. Juli 2021).  In Peru hingegen erbringt der Bergbausektor weniger als zehn Prozent der Wirtschaftsleistung, wenn auch der prozentuale Anteil der Exporte wesentlich höher ist (https://www.bcrp.gob.pe/docs/Publicaciones/Notas-Estudios/2021/nota-de-estudios-21-2021.pdf, abgerufen am 19. Juli 2021).

[9] Martín Tanaka und José Carlos Saavedra, SAE Report. "Procesos políticos en América Latina y lecciones para el Perú", SAE Especial Briefing 27. Mai 2021.

Publicador de contenidos

Contacto

Dr. Robert Helbig

Dr. Robert Helbig

Representante de la KAS en el Perú

robert.helbig@kas.de
Reportajes internacionales
7 de junio de 2021
Leer ahora

comment-portlet

Publicador de contenidos

Publicador de contenidos

Sobre esta serie

La Fundación Konrad Adenauer está representada con oficina propia en unos 70 países en cinco continentes . Los empleados del extranjero pueden informar in situ de primera mano sobre acontecimientos actuales y desarrollos a largo plazo en su país de emplazamiento. En los "informes de países", ellos ofrecen de forma exclusiva a los usuarios de la página web de la fundación Konrad Adenauer análisis, informaciones de trasfondo y evaluaciones.