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>
Instabilität der Regierung und politische Polarisierung
Spanien hat seit 2015 keine stabile Regierung. Zur Erinnerung: nach den Parlamentswahlen von 2015 fand sich keine parlamentarische Mehrheit für eine Regierungsbildung. Daraufhin fanden 2016 erneut allgemeine Wahlen statt, bei denen ebenfalls keine Partei eine klare Mehrheit gewann und die Parteien, die zusammen eine Koalitionsregierung hätten bilden können, dazu nicht bereit waren. Mariano Rajoy wurde zwar aufgrund einer Enthaltung der Sozialistischen Arbeiterpartei (PSOE) im entscheidenden Wahlgang als Ministerpräsident wiedergewählt und bildete eine Minderheitsregierung. Doch keine zwei Jahre später, im Juni 2018, wurde er infolge eines konstruktiven Misstrauensvotums vom PSOE Generalsekretär Pedro Sánchez abgelöst, der aber ebenfalls nur eine Minderheitsregierung bilden konnte. Diese scheiterte bereits nach einem knappen Jahr, als Sánchez keine Mehrheit für den von ihm vorgelegten Haushaltsplan erhielt. Nach der Auflösung des Parlaments und den Wahlen im April 2019 blieben die Bemühungen um die Bildung einer Regierung wiederum erfolglos, weil die maßgeblichen politischen Akteure erneut keine Koalition eingehen wollten. Im Dezember des gleichen Jahres fanden nochmals Wahlen statt, nach denen Sánchez zwar erstmals auf nationaler Ebene eine Koalitionsregierung bildete. Doch zusammen mit den Linkspopulisten von Podemos reichte es wiederum nur für eine Minderheitsregierung, die bei allen Abstimmungen im Parlament auf die Stimmen sieben weiterer Parteien angewiesen ist, darunter die regionalen Nationalisten aus Katalonien und dem Baskenland sowie einige weitere Parteien, die zum Teil nur ein Mandat im Parlament haben. Dass Sánchez den Nationalisten für ihre Unterstützung nicht nur Zugeständnisse macht, sondern auch von ihnen erpresst wird, haben er und die spanischen Bürger mittlerweile mit einem gewissen Fatalismus akzeptiert.
Wie prekär die Position der Regierung ist, zeigte sich Anfang Februar 2022, als die regionalen Nationalisten die von der Regierung vorgelegte Arbeitsmarktreform ablehnten. Die Reform wurde nur mit der Stimme eines PP-Abgeordneten verabschiedet, der versehentlich dafür stimmte. Weil keine Mehrheit zur Abwahl von Sánchez möglich scheint, wird er wohl bis zu den nächsten regulären Wahlen 2023 im Amt bleiben, sofern er nicht aus politischen Opportunitätsgründen das Parlament vorher auflöst. Wie bisher wird er vor allem per Dekret regieren, was im Hinblick auf die Prinzipien der parlamentarischen Demokratie problematisch ist. Ob für 2023 ein ordentlicher Haushalt verabschiedet werden kann, ist fraglich.
Bemerkenswert im Hinblick auf die Verabschiedung der Arbeitsmarktreform war auch, dass die Führung der Volkspartei diese Reform auf jeden Fall ablehnte, obwohl sie das Ergebnis von Verhandlungen zwischen Regierung, Gewerkschaften und Arbeitgebern war, die EU die Reform ausdrücklich unterstützte und selbst die ehemalige PP-Arbeitsministerin und weitere prominente PP-Vertreter bis hin zum ehemaligen Ministerpräsidenten Rajoy Verständnis für eine Korrektur der sehr liberalen Arbeitsmarktregeln äußerten. Der PP-Führung ging es jedoch vor allem darum, der Regierung eine Niederlage zu bereiten, insbesondere, als sich die Ablehnung der regionalen Nationalisten zeigte, die eine radikalere Reform verlangten, was von den Arbeitgebern jedoch abgelehnt wurde. Gewiss ist es legitim, wenn eine Oppositionspartei Nutzen aus der Schwäche einer Regierung zu ziehen versucht. Ebenso gewiss versucht auch Sánchez die Opposition bei jeder Gelegenheit zu demütigen. Doch bei einer entscheidenden Gesetzesreform, die eine so breite gesellschaftliche Unterstützung erfährt, nur parteitaktische Ziele zu verfolgen, ohne gesamtstaatliche Interessen zu berücksichtigen, zeigt das Ausmaß der Polarisierung zwischen der Regierung und der Opposition, die die Regierungsfähigkeit des Landes belastet. Der Volkspartei hat – wie die Regionalwahlen in Castilla y León zeigten - dieses Verhalten nicht genutzt. Noch gravierender aber dürfte der Schaden für die spanische Demokratie werden, sollte diese Polarisierung in Verbindung mit einer instabilen nationalen Regierung anhalten – und auch dafür gibt es infolge der Regionalwahlen in Castilla y León Hinweise.
Die weitere Fragmentierung des Parteiensystems
Am 13. Februar 2022 fanden in d Castilla y León, der Autonomen Gemeinschaft mit der größten Fläche im Zentrum Spaniens, vorgezogene Regionalwahlen statt. Castilla y León hat 2,4 Millionen Einwohner und eine sehr geringe Bevölkerungsdichte von 27 Einwohnern pro km² (Durchschnitt in Spanien: 97). Durch Emigration und Geburtenrückgang hat diese Gemeinschaft wie auch einige andere in den vergangenen Jahrzehnten viele Bewohner verloren. Große Landstriche sind unbewohnt. In vielen Dörfern leben nur einige ältere Menschen. Die Versorgungslage dort ist prekär. „España vaciada“ – das „geleerte Spanien“ – ist der Begriff, mit dem dieser Zustand beschrieben wird. Politiker vieler Parteien versprechen zwar vor jeder Wahl, neues Leben und Investitionen in die verlassenen Provinzen zu leiten, doch das Ergebnis solcher Versprechungen ist bisher sehr bescheiden. Der Unmut der Bevölkerung drückt sich darin aus, dass mittlerweile etliche Regionalparteien entstanden, die dieses „España vaciada“ vertreten und dafür sorgen wollen, dass die vom Aussterben bedrohten Landstriche wiederbelebt werden.
Für die Spanische Volkspartei (PP) ist Castilla y León eine „Hochburg“. Nach Stimmenverlusten bei der Wahl von 2019 regierte sie dort seither in einer Koalition mit der liberalen Zentrumspartei Ciudadanos. Größere Zerwürfnisse zwischen den Koalitionspartnern waren nicht bekannt. Dennoch hat Regionalpräsident Alfonso Fernández Mañueco von der PP im Dezember 2021 das Regionalparlament aufgelöst und Neuwahlen ausgerufen. Er begründete das mit der Behauptung, Ciudadanos versuche eine alternative Mehrheit zu bilden, was von dieser Partei jedoch bestritten wurde. Allerdings war es ein offenes Geheimnis, dass der PP-Vorsitzende Pablo Casado den Regionalpräsidenten zur Veranlassung der Wahlen gedrängt hatte, weil Casado nach einigen (insgesamt bescheidenen) Zugewinnen seiner Partei in nationalen Umfragen nun in Castilla y León mit einem deutlichen Wahlsieg der PP seine Rolle als unbestrittener nationaler Führer der PP und zukünftiger Ministerpräsident unter Beweis stellen wollte. Seitdem die Regionalpräsidentin von Madrid, Isabel Díaz Ayuso, im Mai vergangenen Jahres bei vorgezogenen Regionalwahlen einen deutlichen Sieg errungen hatte und als eventuelle innerparteiliche Herausforderin von Casado erschien, versuchte dieser, ihren weiteren politischen Aufstieg und vor allem ihr zunehmendes Ansehen innerhalb und außerhalb der PP zu verhindern. Mit einem Wahlsieg in Castilla y León wollte Casado seine Position stärken und Ministerpräsident Sánchez unter Druck setzen. Dieser Plan scheiterte kläglich.
Tabelle 1: Das Wahlergebnis vom 13. Februar 2022 in Castilla y León
(im Vergleich zum Ergebnis der letzten Regionalwahlen vom 26. Mai 2019)
Die Partido Popular (PP) gewann mit 31,5% zwar den höchsten Stimmenanteil und zwei zusätzliche Mandate, verlor aber gegenüber 2019 mehr als 50.000 Stimmen und verfehlte die absolute Mehrheit der Mandate deutlich. Die einzigen Wahlgewinner waren die rechtspopulistische Partei Vox, deren Stimmenanteil sich von 5,5% auf 16,4% verdreifachte und die damit statt bisher über eines nun über 13 Mandate im Regionalparlament verfügt, sowie die drei Provinzparteien Soria Ya, Unión del Pueblo Leonés und Por Ávila, die zusammen auf sieben Mandate kamen. Bei den Sozialisten setzte sich der Abwärtstrend aus anderen Regionalwahlen fort, auch wenn die PSOE trotz des Verlustes von sieben Mandaten zweitstärkste Partei blieb. Podemos zählt ebenfalls zu den Wahlverlierern und erreichte jetzt nur noch ein Mandat (vorher zwei).
Die regionale und nationale Parteiführung der PP feierten das Ergebnis zwar als Sieg, doch für die PP ist es sehr schwierig, eine Regierung, und vor allem auch eine stabile Regierung zu bilden. Ein Zusammengehen mit den drei Provinzparteien allein ergibt noch keine Mehrheit für die PP. Eine Mehrheit zweier Parteien gibt es nur, wenn die PP entweder mit Vox oder den Sozialisten eine Koalition bildet. Beides ist jedoch auszuschließen: Der Vorsitzende Pablo Casado hat öffentlich verkündet, dass eine institutionalisierte Regierungskoalition mit Vox nicht in Frage komme. Eine Unterstützung ohne Regierungsbeteiligung würde er aber wohl akzeptieren. Andere Stimmen in der Partei stehen auch einer Koalition mit Vox aufgeschlossener gegenüber. Dazu gehört auch die Regionalpräsidentin Madrids, Isabel Díaz Ayuso (PP), die bemerkte, der PP müsse es egal sein, was die linken Parteien über ihre Wahlpakte und Koalitionen urteilen. Ministerpräsident Sánchez sicherte für die PSOE der PP eine Enthaltung bei der Wiederwahl von Regionalpräsident Mañueco zu, falls sie „alle ihre bestehenden (informellen) Abkommen mit Vox in allen Gemeinden und allen Autonomen Gemeinschaften Spaniens breche“ – eine Bedingung, die von den PP-Regierungen nicht zu erfüllen ist. In Madrid, Andalusien und Murcia wurden die PP-Regionalpräsidenten mit den Stimmen von Vox gewählt, auch wenn Vox an keiner dieser drei Regionalregierungen beteiligt ist. Teilweise wurden auch gemeinsam ausgehandelte Haushalte verabschiedet. Auch in vielen Kommunen gibt es eine Zusammenarbeit.
Vox selbst lässt die PP vorerst im Unklaren über ihr Vorgehen. Ihr Vorsitzender Abascal hat angekündigt, dass seine Partei in Castilla y León nicht nur als Steigbügelhalter einer PP-Regierung dienen will. Doch ist es fraglich, ob Vox tatsächlich eine Koalition anstrebt. Im Hinblick auf künftige nationale Wahlen kommt es Vox eher gelegen, nicht in einer Regierung ihre Regierungsfähigkeit unter Beweis stellen zu müssen. Aus der Opposition kann Vox die PP viel besser weiter vor sich hertreiben. Es bleibt somit vorerst offen, welchen Ausgang die Regionalwahl haben wird. Selbst eine Wiederholung der Wahl ist nicht auszuschließen. Dass der Bruch der bisherigen Koalition und das Vorziehen der Wahl ein Fehler waren, wird mittlerweile nur noch von den unmittelbar an dieser Entscheidung beteiligten Personen bestritten.
Tabelle 2: Umfragewerte auf nationaler Ebene
So ungewiss das Wahlergebnis im Hinblick die Bildung einer Regionalregierung ist, so deutlich ist es im Hinblick auf einen Trend, der sich seit einigen Jahren abzeichnet und sich nun weiter verstärkt: die Zersplitterung des spanischen Parteiensystems. Die PP verharrt in einer „Hochburg“ bei einem Stimmenanteil von 31,5% und der landesweite Abwärtstrend der Regierungspartei PSOE setzt sich fort. In nationalen Umfragen kommen sie zusammen nur auf knapp über 50% der Stimmen. Auch Podemos verliert kontinuierlich an Zustimmung. Ciudadanos wird kaum noch wahrgenommen. Dagegen hat sich Vox mittlerweile als drittstärkste Kraft im Parteiensystem etabliert. Daneben gibt es eine zunehmende Zahl von Regional- und nun auch Provinzialparteien, die nicht nur bei Regionalwahlen antreten, sondern in größerer Zahl wohl auch bei den Wahlen für das nationale Parlament. Das spanische Wahlrecht erleichtert es Provinzparteien, Abgeordnete ins nationale Parlament zu entsenden. Es ist deshalb zu erwarten, dass bei den nächsten nationalen Wahlen noch mehr solcher Kleinparteien in den Cortes in Madrid vertreten sein werden – was die Regierungsbildung und Regierbarkeit des Landes weiter belasten dürfte. Die beiden traditionellen „großen“ Parteien aber können diesen Trend nicht aufhalten. Im Hinblick auf die Volkspartei ist sogar eher das Gegenteil zu beobachten.
Noch ein Wort zu Vox, die von den linken Parteien und den ihnen nahestehenden Medien immer als „extreme Rechte“ bezeichnet wird. Die Partei wurde 2013 von enttäuschten PP–Mitgliedern gegründet, die die liberale Haltung der Rajoy–Regierung zu gesellschaftspolitischen Fragen ablehnten. Aufgrund ihrer vehementen Ablehnung des regionalen Nationalismus in Katalonien und des Umgangs der Rajoy–Regierung mit der Unabhängigkeitsbewegung erhielt sie ab 2016 starken Zulauf. Sie fordert eine radikale Reform des spanischen Regionalismus mit einer Stärkung des Zentralstaaten und einer Abschaffung der autonomen Gemeinschaften. Außerdem vertritt Vox konservative Werte wie den Schutz der Familie, lehnt eine weitgehende gesellschaftspolitische Liberalisierung und Gleichheit der Geschlechter ab, setzt sich ein für den Stierkampf und das Recht auf Jagd und übt Kritik an der Migration. Eine explizite Verteidigung oder Anlehnung an den Francismus ist nicht zu erkennen. Allerdings wurden die Werte, die Vox vertritt, auch vom Francismus vertreten. Im Hinblick auf die Umgestaltung der Verfassungsordnung ist Vox weniger radikal als einige linksradikale und regionale nationalistische Parteien. Die Partei erhält mittlerweile Unterstützung aus allen Gesellschaftsschichten und lehnt einen weitgehenden wirtschaftlichen Liberalismus ab. Sie ist eine typisch populistische Partei, die sich gegen die etablierten Parteien wendet und vorgibt, die authentische Stimme des Volkes zu sein.
Die Verrohung der politischen Sitten und der interne Machtkampf der Spanischen Volkspartei
Am 17. Februar 2022 hat die Regionalpräsidentin von Madrid, Isabel Díaz Ayuso, die nationale Parteiführung mit dem Vorsitzenden Pablo Casado und Generalsekretär Egea in einer öffentlichen Stellungnahme beschuldigt, versucht zu haben, ihr Privatleben mit Hilfe von Privatdetektiven auszuspionieren, um ihr politisch zu schaden. Konkret ging es um den Kauf von Gesichtsmasken auf dem Höhepunkt der Pandemie vor zwei Jahren, den ihr Bruder vermittelt hatte. Der Kauf der Masken im Wert von1,5 Millionen Euro war aufgrund der Notlage ohne Ausschreibung erfolgt. Aus der PP-Führung hieß es, der Bruder von Díaz Ayuso, der zu der Firma, die die Masken verkaufte, enge Geschäftsbeziehungen unterhält, habe für die Vermittlung des Kaufs eine Kommission in Höhe von 286.000 Euro erhalten. Díaz Ayuso erklärte, dass ihr Bruder seit vielen Jahren im Handel mit medizinischer Ausrüstung tätig sei, sie über die (indirekte) Beteiligung ihres Bruders zum Zeitpunkt der Anschaffung der Masken nicht informiert war und die Höhe der Vermittlungskommission nicht zutreffe, auch wenn sie eingestand, ihr Bruder habe für seine Vermittlungsdienste ein Entgelt erhalten. Einen Tag später bezifferte sie diesen Betrag auf 55.850 Euro.
Mit der öffentlichen Stellungnahme kam ein seit Monaten schwelender Konflikt zum Ausbruch, der sehr wahrscheinlich allen Beteiligten und nicht zuletzt der Volkspartei schweren Schaden zufügen wird. Durch ihren kontinuierlichen Konflikt mit Ministerpräsident Sánchez während der Pandemie, die Offenhaltung Madrids und vor allem ihren deutlichen Wahlsieg bei den vorgezogenen Regionalwahlen in Madrid im Mai 2021 ist Díaz Ayuso zur mittlerweile populärsten Politikerin der Volkspartei aufgestiegen. Einige Kommentatoren meinen, der PP-Vorsitzende Casado habe deshalb seit Mai vergangenen Jahres versucht, Díaz Ayuso klein zu halten. So verweigerte er ihr, sich zur Regionalvorsitzenden der PP wählen zu lassen, obwohl üblicherweise die Regionalpräsidenten der PP auch den Parteivorsitz in ihrer Region innehaben. Casado versuchte, Gegenkandidaten gegen Díaz Ayuso aufzubauen und hat das Datum des regionalen Parteitags, der die Wahl vornehmen müsste, in die ferne Zukunft verschoben. Das führte in den vergangenen Monaten zu einer zunehmenden Verschärfung des Tons im gegenseitigen Umgang, obwohl beide früher freundschaftlich verbunden waren und Díaz Ayuso 2019 nur auf Vorschlag von Casado die Wahlliste in Madrid anführte und dadurch zur Regionalpräsidentin gewählt wurde. Die zunehmende Entfremdung endete nun in einem öffentlichen Zerwürfnis, als dessen Folge wohl zumindest einer der beiden Kontrahenten sein Amt verlieren wird. Casado scheint dabei die schlechtere Ausgangslage zu haben.
Díaz Ayuso beschuldigte die Parteiführung und insbesondere Generalsekretär Teodoro García Egea, ein Dossier gegen sie benutzt zu haben, das der PP-Führung vom Büro von Ministerpräsident Sánchez zugespielt worden sei und falsche Anschuldigungen enthalte. Zudem habe die Parteiführung versucht, über einen leitenden Angestellten der Stadt Madrid zwei Detektivfirmen zu verpflichten, die in ihrem privaten Umfeld nach Verfehlungen suchen sollten. Der Bürgermeister von Madrid, José Luis Martínez-Almeida, der gleichzeitig auch nationaler Parteisprecher ist, wies diesen Vorwurf zwar zurück, doch der namentlich genannte Angestellte der Stadt trat noch am gleichen Tag von seinem Amt zurück. Pablo Casado und Teodoro García Egea dagegen erhoben öffentliche Vorwürfe gegen Díaz Ayuso wegen vermeintlicher Einflussnahme bei einem öffentlichen Auftrag zugunsten eines Familienangehörigen. Wie bekannt wurde, haben Casado und García Egea bereits seit September versucht, Díaz Ayuso im Hinblick auf das Dossier unter Druck zu setzen, in dem es um die Kommission ihres Bruders geht.
In der Öffentlichkeit schlug die Erklärung von Díaz Ayuso mit dem Spionagevorwurf gegen Casado ein wie eine Bombe. Das Thema dominierte die Medien. Innerhalb der Volkspartei hielten sich zwar viele führende Repräsentanten mit Kommentaren zurück, doch ist erkennbar, dass die größeren Sympathien bei Díaz Ayuso liegen. Das gilt vor allem für die konservativen Medien, die nun Casado bereits abschreiben. Dass er diesen Vorgang unbeschadet übersteht, selbst wenn er im Amt bleiben sollte, ist unvorstellbar. Zumindest Generalsekretär García Egea wird sich wohl nicht gegen den Druck erwehren können, alsbald zurückzutreten. Allerdings wird auch Díaz Ayuso, selbst wenn sie ihr Amt in Madrid behält, beschädigt aus der Krise hervorgehen. Als nationale Vorsitzende der Volkspartei kommt sie wohl kaum in Frage. Die Aufmerksamkeit richtet sich deshalb – wie schon nach dem Rücktritt Rajoys als Parteivorsitzender - erneut auf den Regionalpräsidenten von Galizien Alberto Núñez Feijóo, der allerdings weiterhin wenig Neigung zeigt, nach Madrid zu kommen.
Ungeachtet des möglichen Ausgangs dieses parteiinternen Konflikts steht er beispielhaft für eine Verrohung der Sitten im innerparteilichen Machtkampf. Unbestreitbar scheint, dass Casado und seine Entourage Material gegen Díaz Ayuso sammelten, um ihr zu schaden. Dass dabei ethische Prinzipien im beiderseitigen Umgang beschädigt wurden, steht außer Frage.
Selbstverständlich nutzt der PP-interne Konflikt vor allem der Partei Vox. Nach ersten vorläufigen Umfragen ist sie schon dabei, die PP in der Wählergunst zu überholen. Für die spanische Demokratie verheißt das nichts Gutes.
Provided by
Auslandsbüro Spanien und Portugal
About this series
The Konrad-Adenauer-Stiftung is a political foundation. Our offices abroad are in charge of over 200 projects in more than 120 countries. The country reports offer current analyses, exclusive evaluations, background information and forecasts - provided by our international staff.