Asset-Herausgeber

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

Asset-Herausgeber

Die brasilianische Parteienlandschaft zeichnet sich durch ihre große Vielfalt aus. Beim Obersten Wahlgericht (TSE) sind 32 Parteien regstriert. In der aktuellen Legislaturperiode 2018-2022 sind mehr als 20 davon im Parlament vertreten. In der präsidentiellen Demokratie Brasiliens, deren Kongress aus zwei Kammern besteht, spielen Ausstrahlung, Verhandlungsgeschick und persönliche Interessen eine zentrale Rolle. Dies wirkt sich nicht zuletzt auf die Anziehungskraft der Parteien, den Erfolg von Reformvorhaben und die Ernennung von Regierungsmitgliedern aus. Programmatische Grundsatzfragen der Parteien rücken dabei häufig in den Hintergrund. Stattdessen stehen regelmäßige Parteiwechsel an der Tagesordnung. So haben während des „Wechselfensters“ (s. Gesetz 9.096/1995, Artikel 22-A) im März 2022 insgesamt 132 Abgeordnete ihre Parteizugehörigkeit geändert. Als eindeutiger Gewinner der Umverteilung des Kräftegleichgewichts ging die liberale Partei PL von Präsident Jair Bolsonaro hervor, die 33 neue Abgeordnete – vor allem von der União Brasil - gewann und nun mit 75 Abgeordneten die stärkste Kraft im Parlament darstellt. Die Arbeiterpartei PT stellt die zweitgrößte Fraktion mit 56 Vertretern dar, gefolgt von den Progressistas (50 Abgeordnete) und den Republikanern (45 Abgeordnete). Die sozialistische Partei PSD und die Sozialdemokraten PSDB zählen zu den Verlierern des diesjährigen Wechselfensters.

Außerhalb dieses Zeitraums können die Abgeordneten und Stadträte nur dann die Partei wechseln, ohne ihr Mandat zu verlieren, wenn sich ihre Partei auflöst oder fusioniert, der Mandatsträger Diskriminierung aus den eigenen Reihen erfährt oder es zu einer massiven programmatischen Neuausrichtung während der Amtszeit kommt. Neben den Abgeordneten wechselten zwischen 2018 und 2022 unter anderem der amtierende Präsident Jair Bolsonaro, Vizepräsident Hamilton Mourão, der ehemalige Justizminister und Präsidentschaftskandidat Sérgio Moro, der ehemalige Parteivorsitzende der PSDB, Geraldo Alckmin, sowie acht weitere Kabinettsmitglieder die Partei. Außerdem sind 30 Senatoren, sieben Gouverneure und drei Bürgermeister hinzuzählen.

Neben der landesweiten Einführung der elektronischen Wahlen auf allen Regierungsebenen, kam es 2021 – trotz des Vetos von Präsident Jair Bolsonaro - auch zu Neuerungen in der Regulierung der Parteiverbände (Gesetz 14.208/2021). Anders als bisher dürfen diese seit dem 9. Januar 2022 nicht mehr unmittelbar nach dem Ende des Wahlkampfs aufgelöst werden, sondern müssen mindestens eine Legislaturperiode, also vier Jahre, andauern und von landesweiter Tragweite sein. Dadurch soll die Parteienlandschaft verkleinert und die Ressourcennutzung optimiert werden. Zur Bildung eines Parteienverbands muss unter anderem die Parteiprogrammatik abgestimmt und ein gemeinsames Statut aufgesetzt werden. Das Gesetz ist nicht unumstritten, da durch die Bildung der Verbände auch kleine Parteien, die alleine keine Gewinnaussichten hätten, am Wahlkampf teilhaben können, ohne sich längerfristig zu fusionieren. Sollte eine Partei vor Ablauf der Legislaturperiode ausscheiden, verliert sie den Anspruch auf Teilhabe am staatlichen Parteienfond. Zudem ist es ihr bis zum Ablauf der Frist untersagt sich einem neuen Verband anzuschließen. Die Parteiverbände (federações partidárias) mussten bis zum 31. Mai 2022 beim Obersten Wahlgericht TSE angemeldet werden. Nur ordentlich registrierte Parteien können Mitglieder eines Verbunds werden. Ein Bündnis mehrerer Parteiverbände zu Wahlzwecken (coligações partidárias) ist gestattet. Dies gilt jedoch nicht mehr für einzelne Parteien.

Es registrierten sich insgesamt drei Parteiverbände:

  • Federação Brasil da Esperança (PT, PCdoB, PV)

  • Federação PSDB-Cidadania

  • Federação PSOL-Rede

Im Folgenden werden ausgewählte Parteien beschrieben:

Partido da Social Democracia Brasileira (PSDB) – Partei der Sozialen Demokratie Brasiliens

  • Ideologische Ausrichtung: Die ideologische Ausrichtung der PSDB wurde ursprünglich als sozialdemokratisch bezeichnet. Heute gilt sie als Mitte-Rechts-Partei. Die PSDB ist eine Partnerpartei der KAS und hat Beobachterstatus in der Christlich Demokratischen Organisation Amerikas (ODCA).
  • Gründung: Die PSDB wurde 1988 in Abgrenzung zur Arbeiterpartei PT gegründet. In ihr sammelten sich Sozialdemokraten, Sozialliberale, Christdemokraten und vor allem Mitglieder der vormals einzigen Oppositionspartei, der MDB. Die Parteimitglieder werden „Tucanos“ (dt.: Tukane) genannt, nach dem im Parteiwappen abgebildeten Vogel.
  • Vorsitzender der Partei: Bruno Araújo
  • Wichtige Personen: 1994 wurde der PSDB-Politiker Fernando Henrique Cardoso zum Präsidenten gewählt und 1998 wiedergewählt. Unter Lula Da Silva und bis August 2016 auch unter Dilma Rousseff war die PSDB lange größte Oppositionspartei. Seit der Amtsenthebung Rousseffs bis zum Amtsantritt von Jair Bolsonaro war sie Teil der Regierungskoalition. Nach 33 Jahren verließ der ehemalige Parteivorsitzende Geraldo Alckmin die Partei, um für das Amt des Vizepräsidenten mit seinem ehemaligen Kontrahenten Lula (PT) an der Spitze zu kandidieren.
  • Mitgliederzahl: 1,4 Millionen (Stand: April 2022)
  • Vertreter im Abgeordnetenhaus: 13 (Stand: Oktober 2022)
  • Vertreter im Senat: 4 (Stand: Oktober 2022)
  • Regionale Hochburgen: Süden und Südosten des Landes, ursprünglich auch in São Paulo

Partido do Movimento Democrático do Brasil (MDB) – Partei der Demokratischen Bewegung Brasiliens

  • Ideologische Ausrichtung: Die seit Dezember 2017 von PMDB in MDB umbenannte Partei hat keine klar definierte Ideologie, vertritt jedoch tendenziell eher liberale Positionen. Infolge ihrer häufigen Regierungsbeteiligung ungeachtet jeder politischen Ausrichtung und in Anbetracht ihrer Größe gilt die MDB auch als „Königsmacherin“.
  • Gründung: Die MDB geht auf die im Jahre 1965 gegründete Movimento Democrático Brasileiro zurück. Während der Militärdiktatur war sie einzige erlaubte Oppositionspartei zur Regierungspartei Aliança Nacional (ARENA). Sie wurde jedoch seinerzeit unter Anordnung und Kontrolle der Militärregierung gegründet. 1979 wurden schließlich auch andere Parteien zugelassen und die MDB wandelte sich in die PMDB um. Seit dem Parteitagsbeschluss aus dem Dezember 2017 hat sie sich wieder ihren ursprünglichen Namen gegeben.
  • Vorsitzender der Partei: Luiz Felipe Baleia Tenuto Rossi
  • Wichtige Personen: Die MDB stellte August 2016 den Staatspräsidenten und Regierungschef Michel Temer, der zuvor über fünf Jahre Vizepräsident unter Präsidentein Dilma Rousseff (PT) war. Senatorin Simone Tebet wird 2022 möglicherweise für das Präsidentenamt kandidieren.
  • Mitgliederzahl: 2,1 Millionen (Stand: Juni 2021)
  • Vertreter im Abgeordnetenhaus: 42 (Stand: Oktober 2022)
  • Vertreter im Senat: 10 (Stand: Oktober 2022)
  • Regionale Hochburgen: Mittlerer-Westen, insbesondere Goiás, und Südosten, insbesondere Rio de Janeiro

Partido Democrático Trabalhista (PDT) – Demokratische Arbeiterpartei

  • Ideologische Ausrichtung: Im linken Spektrum verortet, wird die PDT als sozialdemokratisch angesehen. Als einzige brasilianische Partei ist sie Mitglied der Sozialistischen Internationalen (SI).
  • Gründung: Die PDT wurde mit Beginn der allmählichen Öffnung des Militärregimes 1979 von einem der wichtigsten Repräsentanten der Opposition, Leonel Brizola, gegründet.
  • Vorsitzender der Partei: Carlos Lupi
  • Wichtige Personen: Ciro Gomes, ehemaliger Minister für Nationale Einheit (portugiesisch: Ministro de Integração Nacional, 2003-2006) unter Lula, trat der Partei 2015 bei. Kurz nach seinem Eintritt in die PDT wurde deutlich, dass sowohl er selbst, als auch die Partei beabsichtigt, Gomes als Präsidentschaftskandidaten aufzustellen. Er bewarb sich bereits 1998 sowie 2002 um das Amt des Präsidenten, ebenso 2022.
  • Mitgliederzahl: 1,1 Millionen (Stand: Juni 2021)
  • Vertreter im Abgeordnetenhaus: 17 (Stand: Oktober 2022)
  • Vertreter im Senat: 2 (Stand: Oktober 2022)

Partido dos Trabalhadores (PT) - Arbeiterpartei

  • Ideologische Ausrichtung: Die PT ist dem linken Lager zuzuordnen. Neben der undogmatischen Linken gibt es auch kommunistische und trotzkistische Strömungen innerhalb der Partei.
  • Gründung: Noch zu Zeiten der Militärdiktatur gründete sich die PT 1982 als Zusammenschluss von Gewerkschaftsmitgliedern.
  • Vorsitzende der Partei: Gleisi Helena Hoffmann
  • Wichtige Personen: Gründungsvater und zentraler Akteur ist der ehemalige Staatspräsident Lula da Silva (2003-2010). Viele Jahre hatte auch Lulas politische Ziehtochter Dilma Rousseff, die im August 2016 ihres Amtes als Staatspräsidentin enthoben wurde, eine Schlüsselrolle inne. Lula kandidiert 2022 erneut für das Präsidentenamt.
  • Mitgliederzahl: 1,5 Millionen (Stand: Juni 2021)
  • Vertreter im Abgeordnetenhaus: 68 (Stand: Oktober 2022)
  • Vertreter im Senat: 9 (Stand: Oktober 2022)
  • Regionale Hochburgen: Norden und Nordosten des Landes

Podemos (PODE) - Wir können

  • Ideologische Ausrichtung: Podemos verortet sich selbst im Zentrum und spricht sich für einen hohen Grad an direkter Bürgerbeteiligung aus.
  • Gründung: 2016 wurde aus der 1995 neubelebten Partido Trabalhista Nacional (PTN, deutsch: Nationale Arbeiterpartei) Podemos.
  • Vorsitzende der Partei: Renata Hellmeister de Abreu
  • Wichtige Personen: Der Senator aus dem südlichen Bundesstaat Paraná, Álvaro Dias, versuchte sich 2018 als Präsidentschaftskandidat von Podemos seine Partei und sich selbst als wählbare Alternative zwischen der PSDB und der Arbeiterpartei PT in Stellung zu bringen. Sein Parteikollege Mario Cova Neto kandidierte im gleichen Zeitraum für das Amt des Senators. Der ehemalige Fußballspieler Romário de Souza Faria war 2018 bis 2021 Mitglied der Partei. Auch der ehemalige Justizminister Sérgio Moro kandidierte 2021-2022 für Podemos für das Amt des Präsidenten, bevor er im März diesen Jahres zur União Brasil wechselte.
  • Mitgliederzahl: 162.094 (Stand: Oktober 2017)
  • Vertreter im Abgeordnetenhaus: 12 (Stand: Oktober 2022)
  • Vertreter im Senat: 6 (Stand: Oktober 2022)

Partido Liberal (PL) - Liberale Partei

  • Ideologische Ausrichtung: Die Liberale Partei setzt sich gemäß ihres Manifests für die Stärkung der Privatwirtschaft ein und bemüht sich um Steuerreformen und mehr Rechtssicherheit, um die soziale Ungleichheit zu bekämpfen und ein attraktives Geschäftsklima zu schaffen.
  • Gründung: Die PL wurde 1985 vom nationalen Abgeordneten Álvaro Vale in Rio de Janeiro gegründet. 2006 schloss sie sich mit der Partei für die Redefinition der nationalen Ordnung "Prona" zur Republikanischen Partei "PR" zusammen. 2019 änderte die Partei ihren Namen wieder in PL um.
  • Vorsitzender der Partei: Valdemar Costa
  • Wichtige Personen: Álvaro Vale gründete die Partei mit dem Ziel eine liberale Wirtschaftsordnung zu etablieren und die soziale Ungleichheit zu bekämpfen. Der amtierende Vorsitzende Valdemar Costa wurde wegen einer Korruptionsaffäre während der PT-Regierung verurteilt. Präsident Jair Bolsonaro ist seit 2021 Mitglied der Partei.
  • Mitgliederzahl: 761.415 (Stand: Februar 2022)
  • Vertreter im Abgeordnetenhaus: 99 (Stand: Oktober 2022)
  • Vertreter im Senat: 13 (Stand: Oktober 2022)
  • Regionale Hochburgen: Südbrasilien

União Brasil (UNIÃO) - Brasilianische Union

  • Ideologische Ausrichtung: Bei der União Brasil handelt es sich um eine Fusion der demokratischen (DEM) und sozial-liberalen Partei (PSL). Sie ist im politischen Spektrum rechts einzuordnen und setzt sich programmatisch für Bildungs-, Gesundheits- und Sozialpolitik ein. Sie beabsichtigt eine Alternative in der gegenwärtigen Polarisierung zwischen PL und PT darzustellen. 
  • Gründung: Die Parteifusion wurde im Oktober 2021 beschlossen und im Februar 2022 vom Obersten Wahlgericht TSE zugelassen.
  • Vorsitzender: Luciano Bivar 
  • Wichtige Personen: Der ehemalige Vorsitzende der PSL, Luciano Bivar, übernahm das Amt des Parteivorsitzenden der União Brasil. Der ehemalige Bürgermeister von Salvador de Bahía und Voristzende der DEM, Antônio Carlos Magalhães Neto, ist der amtierende der Generalsekretär der neuen Partei. Unmittelbar vor Abschluss des Wechselfensters im März 2022 trat auch der ehemalige Justizminister und Vorkandidat für die Präsidenschaftswahlen der PODE, Sérgio Moro, der Partei bei.
  • Mitgliederzahl: 1,08 Millionen (Stand: Februar 2022)
  • Vertreter im Abgeordnetenhaus: 59 (Stand: Oktober 2022)
  • Vertreter im Senat: 12 (Stand: Oktober 2022)

Cidadania

  • Ideologische Ausrichtung: Cidadania definiert sich als sozial-liberale Partei, die den Parlamentarismus, das Zwei-Stimmen-System, parteilose Kandidaturen und die Wahlfreiheit befürwortet.
  • Gründung: Die Partei wurde 1992 unter dem Namen „Sozialistische Volkspartei“ (PPS) von ehemaligen Mitgliedern der Brasilianischen Kommunistischen Partei (PCB) gegründet. Im März 2019 änderte sie ihren Namen in Cidadania.
  • Vorsitzender: Roberto Freire
  • Wichtige Personen: Raul Jungmann, Gründungsmitglied der Partei, war unter Präsident Fernando Henrique Cardoso (PSDB) Agrarentwicklungsminister. Ciro Gomes (PDT) war zeitweise Parteimitglied.
  • Mitgliederzahl: 453.366 (Stand: April 2022)
  • Vertreter im Abgeordnetenhaus: 5 (Stand: Oktober 2022)
  • Vertreter im Senat: 1 (Stand: Oktober 2022)

 

Asset-Herausgeber

Kontakt

Anja Czymmeck

Anja Czymmeck

Leiterin des Auslandsbüros Frankreich

anja.czymmeck@kas.de +33 156 69 15 00
Kontakt

Carmen Leimann-López

Portrait Carmen Leimann-López

Referentin Abteilung Lateinamerika

carmen.leimann@kas.de

Asset-Herausgeber