Asset-Herausgeber

Fehler bei der Verarbeitung der Vorlage.
The following has evaluated to null or missing:
==> FrontendService.media.getDMTJsonObject( coverBild.groupId?number, coverBild.uuid, locale ) [in template "252001#252047#252845" at line 128, 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 128, 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 hasContent('beschreibung', languageId, json)> 
111 <#assign data = data + { "copy": getValueForLanguage('beschreibung', languageId, json, "first") } > 
112 </#if> 
113 
114 <#-- fill meta data --> 
115 <#assign meta = {} /> 
116 
117 <#-- PUBLIKATIONEN DETAIL --> 
118 <#if layouttpl?contains("LAYOUT_KASDE_PUBLIKATIONEN_DETAIL")> 
119 
120 <#if hasContent('coverDMTKASDEMEDIUM', languageId, json)> 
121 <#assign 
122 coverBildString = getValueForLanguage('coverDMTKASDEMEDIUM', languageId, json, "first") 
123 /> 
124 
125 <#if coverBildString?has_content> 
126 <#assign 
127 coverBild = FrontendService.json.parseAsJson(coverBildString) 
128 dMTJsonObject = FrontendService.media.getDMTJsonObject( coverBild.groupId?number, coverBild.uuid, locale ) 
129 linkToDMT = FrontendService.media.getImageURLForAMConfiguration('hd-resolution',coverBild.groupId?number, coverBild.uuid ) 
130 data = data + { "media": linkToDMT, "meta" : dMTJsonObject } 
131 /> 
132 <#if dMTJsonObject.altText?? > 
133 <#assign data = data + {"alt" : dMTJsonObject.altText} /> 
134 </#if> 
135 <#if dMTJsonObject.quelle??> 
136 <#assign meta = meta + { "quelle": dMTJsonObject.quelle } /> 
137 </#if> 
138 </#if> 
139 <#-- uncomment to display pdf cover as Intro Image 
140 <#elseif hasContent('document_pdfDMTBASICDOCUMENT', languageId, json)> 
141 <#assign 
142 pdfDocument = getValueForLanguage('document_pdfDMTBASICDOCUMENT', languageId, json, "first") 
143 fileEntry = FrontendService.media.getFileEntry(pdfDocument.uuid, groupId?number)!/> 
144 <#if fileEntry?has_content> 
145 <#assign 
146 linkToThumbnail = FrontendService.link.getThumbnailSrc(fileEntry , themeDisplay) 
147 data = data + { "media": linkToThumbnail } 
148 /> 
149 </#if> 
150 --> 
151 </#if> 
152 
153 <#assign 
154 meta = meta + { "orderInfo": "true" } 
155 verbundJournalArticle = FrontendService.publication.getVerbundToPublikation( entry )!"" 
156 /> 
157 
158 
159 
160 <#if hasContent('erscheinungsdatum', languageId, json)> 
161 <#assign 
162 erscheinungsdatum = getValueForLanguage('erscheinungsdatum', languageId, json, "first") 
163 /> 
164 <#if erscheinungsdatum?has_content > 
165 <#assign 
166 erscheinungsdatumFormatted = FrontendService.date.getDateFormatLong( erscheinungsdatum, languageId ) 
167 meta = meta + { "date": erscheinungsdatumFormatted } 
168 /> 
169 </#if> 
170 </#if> 
171 
172 <#if verbundJournalArticle?has_content> 
173 <#assign 
174 verbundJsonString = FrontendService.article.getWebcontent(verbundJournalArticle.resourcePrimKey) 
175 verbundJson = FrontendService.json.parseAsJson(verbundJsonString) 
176 laufendenummer = getValueForLanguage('laufendenummer', languageId, verbundJson, "first") 
177 coverImg = getValueForLanguage('mediumDMTKASDEMEDIUM', languageId, verbundJson, "first") 
178 /> 
179 <@debugJsonString verbundJsonString "ADT_KASDE_DYNAMIC_INTRO-verbundJournalArticle" /> 
180 <#assign meta = meta + { "laufendenummer": laufendenummer } > 
181 
182 <#if coverImg?has_content && coverImg.url?has_content > 
183 <#assign meta = meta + { "coverImg": coverImg.url } > 
184 </#if> 
185 </#if> 
186 
187 
188 <#if meta?has_content> 
189 <#assign data = data + {"meta": meta } > 
190 </#if> 
191 
192 </#if> 
193 <#-- PUBLIKATIONEN DETAIL END --> 
194 
195 
196 <#-- VERANSTALTUNGEN DETAIL --> 
197 <#if layouttpl?contains("LAYOUT_KASDE_VERANSTALTUNGEN_DETAIL")> 
198 <#assign 
199 friendlyUrl = FrontendService.article.getFriendlyUrl(primaryKey, languageId, groupId)!"" 
200 links = [] 
201 /> 
202 <#if availablelanguages?has_content && friendlyUrl?has_content> 
203 <#if (availablelanguages?size > 1) > 
204 <#list availablelanguages 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 <#if availablelanguages?has_content> 
411 <#list availablelanguages as pdf_language> 
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 </#list> 
436 </#if> 
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> 

Asset-Herausgeber

Ausgangslage und Wahlkampf

Seit Jahren befindet sich Peru in einer politischen Dauerkrise. Zudem wurde das Land hart von der COVID-19 Pandemie getroffen. Mit über 180.000 Toten verzeichnet es gemessen an der Bevölkerungsgröße weltweit die meisten Toten.  Gleichzeitig ist die Wirtschaft 2020 um über elf Prozent eingebrochen, was auch die sozialen Unterschiede weiter verstärkte. Der Interimsregierung des scheidenden Präsidenten Francisco Sagasti gelang es nicht, wirkungsvolle Maßnahmen zur Bekämpfung der Pandemie und Wiederbelebung der Wirtschaft zu ergreifen.

Folglich haben die Politik und das „Establishment“ das Vertrauen in der Bevölkerung weiter verloren und die Wähler orientierten sich an den Rändern des politischen Spektrums. Der Ausgang der ersten Runde der Präsidentschaftswahlen im April war Ausdruck dafür: von den achtzehn Präsidentschaftskandidaten konnten sich zwei Kandidaten für die Stichwahl qualifizieren, die zusammen weniger als zwanzig Prozent der Wählerstimmen auf sich vereinen, der sozialistische Pedro Castillo und die konservative Keiko Fujimori, Tochter des ehemaligen Präsidenten Alberto Fujimori (1990-2000).

Nach dieser ersten Wahlrunde herrschte in Peru ein erbitterter Wahlkampf. Wahlplakate im ganzen Land warnten vor den Folgen des Kommunismus wie Armut, Arbeitslosigkeit und Hunger. Viele Analysten verglichen den möglichen Sieg von Pedro Castillo mit einem Szenario wie in Venezuela nach Amtsübernahme von Hugo Chavez. Wichtige Vertreter des gesellschaftlichen Spektrums – inklusive des Literatur-Nobelpreisträgers Mario Vargas Llosa – riefen zur Wahl von Fujimori auf.

Auf die Möglichkeit, dass ein Sozialist neuer Staatspräsident werden könnte, reagierten im Vorfeld der Wahlen auch die Märkte: der Dollar stieg gegenüber dem peruanischen Sol auf ein Allzeithoch; Investitionsvorhaben wurden verschoben; viele Peruaner transferierten aus Angst vor Enteignung ihr Geld ins Ausland, nicht zuletzt, weil die ältere Generation eine Enteignung durch den Staat bereits unter dem damaligen Präsidenten Juan Velasco Alvarado (1968-1975) miterlebt hatte.

Auf der anderen Seite ließen die Anhänger von Castillo nicht von populistischen Forderungen, wie Enteignung und Verstaatlichung, bis hin zur Einschränkung der „neoliberalen“ Presse, ab. Die kontroverse Vergangenheit und Familiengeschichte der Fujimoris wurde in den Vordergrund gerückt. Zwei Wochen vor der Wahl überschattete ein Terroranschlag den Wahlkampf. Eine Gruppierung, die laut Sicherheitsbehörden der Terrororganisation „Sendero Luminoso“ („Leuchtender Pfad“) zugeordnet wird, massakrierte sechzehn Zivilisten, darunter auch Kinder, um vor einer Wahl von Fujimori abzuschrecken.

In den Debatten konnte Fujimori durch technische und politische Expertise Punkten. Hingegen brachte Castillo sein volksnahes Auftreten Sympathie ein. Bis kurz vor der Wahl lagen die Kandidaten gleichauf. Die ersten Hochrechnungen sehen Fujimori nun mit 51,014 Prozent der Wählerstimmen vorne. Wer das Rennen um die Präsidentschaftswahl tatsächlich macht, wird sich offiziell nach Angaben der obersten Wahlbehörde in den kommenden Tagen, aber bis spätestens bis Samstag, den 12. Juni, entscheiden.

Szenario 1: Staatspräsident Pedro Castillo – Radikale Reformen und Aushebelung der Demokratie?

Der 51-jährige Castillo stammt aus der armen Bergbauregion Cajamarca im Norden des Landes und war bisher hauptsächlich als Dorfschullehrer tätig. Er gilt als volksnah, zeigt sich stets mit Cowboy-Hut und propagiert Gerechtigkeit gegenüber den Reichen, die das Land ausbeuten würden. Er gehört einer evangelikalen Freikirche an und vertritt höchst konservative gesellschaftliche Ansichten, weshalb er sich gegen die Anerkennung gleichgeschlechtlicher Partnerschaften und die Legalisierung von Abtreibung ausspricht.

In der Politik ist Castillo als Anführer eines Lehrerstreiks im Jahr 2017 bekannt geworden. In diesem Zusammenhang werden ihm auch Verbindungen zu einer Unterorganisation der maoistischen Terrororganisation „Leuchtender Pfad“ vorgeworfen. Aufgrund seiner radikalen linksgerichteten Forderungen wird er von Analysten oft mit Evo Morales aus Bolivien verglichen.

Castillos Reformagenda ist in der Tat radikal: Verstaatlichung von Bodenschätzen; Neuaushandlung oder Außerkraftsetzung bestehender Verträge mit ausländischen Unternehmen sowie bestehender Freihandelsabkommen (inkl. Pazifikallianz, Freihandelsabkommen mit der EU und den USA); Abschaffung privater Rentenfonds; Importverbot für Güter, die auch in Peru produziert werden; wirtschaftliche Dezentralisierung mit neuen Rechten für Regionalregierungen zur Steuererhebung; Regulierung der Presse durch Inhaltsprüfung durch staatliche Apparate mit dem Ziel der Erziehung des Volkes; Schaffung von paramilitärischen Gruppen und die Militarisierung der peruanischen Jugend, um eine revolutionäre Erfahrung zu fördern; Einführung der Todesstrafe und Austritt Perus aus der Amerikanischen Menschenrechtskonvention.

Die meisten dieser Reformen bedürften der Änderung der Verfassung von 1993. Dafür ist jedoch laut Artikel 206 zunächst die Zustimmung des Kongresses und danach ein Referendum notwendig. Beruhend auf einer willkürlichen Interpretation der Verfassung kündigte der Gründer von „Perú Libre“, Vladimir Cerrón, aber bereits an, dass die Regierung keine Zustimmung vom Kongress benötigen würde, um eine Volksabstimmung für eine neue Verfassung einzuberufen. Castillo und sein Team planen daher, ohne Beteiligung der Legislative eine Volksabstimmung zu organisieren, um eine verfassungsgebende Versammlung aus Vertretern von Gewerkschaften, Indigenen-Gruppen und Frauenbewegungen zu legitimieren. Hiermit bahnt sich eine offene Konfrontation zwischen Präsident und Kongress an, die das Land auf lange Jahre politisch destabilisieren könnte.

Szenario 2: Staatspräsidentin Keiko Fujimori – Wirtschaftliche Prosperität und gesellschaftliche Konfrontation?

Die 46-Jährige Fujimori weist neben ihrer internationalen Ausbildung eine große Erfahrung in der peruanischen Politik vor. Die ehemalige Kongressabgeordnete ist seit 2010 Vorsitzende der Partei „Fuerza Popular“ und stand dieses Jahr zum dritten Mal in Folge in der Stichwahl für das Präsidentschaftsamt. 2011 verlor sie mit 48,55 Prozent der Stimmen gegen Ollanta Humala und 2016 erneut sehr knapp mit 49,88 Prozent gegen Pedro Pablo Kuczynski.

Fujimori steht für einen starken Staat und marktwirtschaftliche Politik. Ihre Partei und ihr Team gelten als sehr gut ausgebildet und erfahren. Die designierte Präsidentin ist jedoch eine sehr umstrittene Persönlichkeit: aufgrund ihrer Verstrickungen in Korruption, ihrer Familiengeschichte und ihres autoritären Führungsstils erfuhr sie für viele Jahre die höchste Ablehnung – die sogenannten „anti votos“ – in der Bevölkerung.

Im Zusammenhang mit dem monumentalen Odebrecht-Korruptionsskandal laufen gegen sie strafrechtliche Ermittlungen wegen Bestechlichkeit. Im Oktober 2018 wurde sie deswegen in Untersuchungshaft genommen und später auf Kaution freigelassen. Zwar ist Korruption bereits seit Langem in den Institutionen des Landes präsent, jedoch hatte Keiko Fujimori in den Augen vieler Bürger erst durch die massive Verwicklung ihrer Partei in den wohl größten Korruptionsskandal des Landes ihre Legitimität als Politikerin eingebüßt.

Andere kritisieren Fujimori aufgrund ihrer Haltung gegenüber der weithin umstrittenen Politik ihres Vaters. Unter der Präsidentschaft von Alberto Fujimori wurden zwar die peruanische Wirtschaft nachhaltig gestärkt und der bewaffnete Konflikt gegen den „Leuchtenden Pfad“ gewonnen, aber auch demokratische Institutionen ausgehebelt und Menschenrechtsverbrechen begangen. Keiko Fujimori nahm damals die Rolle der „ersten Dame“ des Staates ein. Weite Teile des Volkes waren indirekt von den Repressionen des Staates betroffen.

Damit einher geht die Ablehnung weiter Teile der Bevölkerung gegenüber dem autoritäreren Führungsstil Keiko Fujimoris. Innerhalb ihrer Partei setzt sie explizit auf Einigkeit, Disziplin und Loyalität. Nach außen gibt sie sich stets konfrontativ. Als ihre Partei die Mehrheit im Kongress während der vergangenen Legislaturperiode stellte, war ihr Konfrontationskurs in der Opposition ein ausschlaggebender Grund für die Instabilität der politischen Institutionen. Daher fürchten viele Bürger, dass die potenzielle neue Staatspräsidentin ihre autoritären Neigungen ausspielen und ihre Macht in der Exekutive ausbauen könnte.

Im Gegensatz zu Castillo sieht Fujimoris Parteiprogramm keine grundlegende Veränderung des politischen und wirtschaftlichen Systems vor. Die Politikerin strebt eine Reihe sinnvoller Gesetzesvorhaben an, um die Wirtschaft zu beleben, sowie den Sozialstaat und den Sicherheitsapparat des Landes zu stärken: öffentlich-private Investitionsprojekte; Vereinfachung des Steuersystems; finanzielle Zuschüsse an Familien, die ein Mitglied durch die COVID-19 Pandemie verloren haben; Direktzahlung der Abgaben von Bergbauunternehmen an die Bürger; Ausbau der Sicherheitskräfte durch bessere Ausbildung und Ausrüstung. Fujimori hat sich gegen weitere Einschränkungen der Wirtschaft zur Eindämmung der Pandemie ausgesprochen und setzt auf eine Impfinitiative mit Unterstützung der Streitkräfte, regionaler Regierungen, privater Unternehmen, zivilgesellschaftlicher Organisationen und der Kirchen. Auch die lang erwarteten Schulöffnungen sind im Gespräch.

Um ihre Vorhaben umzusetzen, braucht Fujimori die Unterstützung weiterer Kräfte des politischen Mitte-Rechts-Spektrums, denn Fujimoris Partei selbst stellt im neuen Kongress nur 24 der 130 Abgeordneten. Hierbei könnte die Einbeziehung moderater Kräfte wie ein internes System von „Checks and Balances“ wirken, so dass sie von ihrem Konfrontationskurs abkommen und auf einen Konsens mit anderen politischen Akteuren setzen müsste.

Dies wäre besonders wichtig, um einen Aufruhr in der Bevölkerung zu verhindern. Bereits im Wahlkampf riefen linke Parteien zu Demonstrationen gegen Fujimori auf. Wenn es zu massiven Unruhen und Krawallen auf den Straßen der peruanischen Großstädte käme, bestünde die Möglichkeit, dass Fujimori mit der Staatsgewalt durchgreift. Dadurch könnte sie, ähnlich wie der kurzfristige Interimspräsident Manuel Merino im November 2020, ein Amtsenthebungsverfahren im Kongress provozieren.

Fazit

Das knappe Kopf-an-Kopf-Rennen der beiden Kandidaten zeigt, wie gespalten Perus Wählerschaft ist. Die überraschend große Zustimmung für den bislang weitgehend unbekannten Außenseiter Castillo kann auf die Frustration gegenüber dem „Establishment“, die prekäre wirtschaftliche Situation großer Teile des Landes und den Wunsch nach grundlegenden Reformen des Wirtschaftssystems, insbesondere innerhalb der ländlichen Bevölkerung, zurückgeführt werden. Auf der anderen Seite konnte es Fujimori schaffen, die konservativen Kräfte gegenüber einem möglichen radikalen linksgerichteten Systemwechsel zu solidarisieren. So sprachen sich viele ehemalige Konkurrenten klar für Fujimori aus und traten ihrem Wahlkampfteam bei.

Im Falle eines Sieges Castillos bleibt unklar, wie dieser sich positionieren wird, um seine radikale Reformagenda gegen den konservativ dominierten Kongress durchzusetzen. Wenn Fujimori die Wahl für sich entscheiden sollte, dann wird sie Protestbewegungen auf den Straßen gegenüberstehen. Es ist anzunehmen, dass sie dann versuchen wird, ihre politische Macht durch „Dealmaking“ im Kongress zu sichern. Sie sollte aber auch die Forderungen nach Chancengleichheit, Interessenausgleich und Transparenz ernst nehmen, um einen politischen Konsens in der Bevölkerung zu finden und damit der Polarisierung entgegenzutreten.

Asset-Herausgeber

Kontakt

Dr. Robert Helbig

Dr. Robert Helbig

Leiter des Auslandsbüros Peru

robert.helbig@kas.de

comment-portlet

Asset-Herausgeber