Издател на активи

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

Издател на активи

Сподели

GD bleibt insgesamt stärkste Kraft - UNM mit Achtungserfolgen in den Städten

Die UNM stabilisiert sich weiter als wichtigste Oppositionskraft. Auch andere Oppositionsparteien gewinnen an Einfluss. Auch wenn es für diese nicht gereicht hat, den „Georgischen Traum“ unter 43 % zu drücken, um damit eine Neuwahl des nationalen Parlaments herbeizuführen, kann zumindest die UNM bei diesen Kommunalwahlen durchaus Erfolge vorweisen. Die UNM hat es nicht nur geschafft, sich weiter zu stabilisieren. Sie konnte noch mehr Stimmen als bei den Parlamentswahlen 2020 für sich verbuchen und liegt nun landesweit über 30%. Hinzu kommt, dass die UNM es nicht nur in zahlreichen Städten geschafft hat, übermächtige GD-Kandidaten in eine Stichwahl zu zwingen. In der Hauptstadt Tbilisi stellte sich der neue UNM-Vorsitzende Nikanori Melia als Oberbürgermeister zur Wahl. Der Abstand zum prominenten GD-Kandidaten, dem ehemaligen Fußballprofi Kakha Kaladze war mit elf Prozentpunkten zugunsten des Letzteren noch am größten. Aber in Kutaissi und Batumi erreichten die UNM-Kandidaten Khatia Dekanoidze und Giorgie Kirtadze größeren Zuspruch als die von GD. In Rustavi betrug der Vorsprung des GD-Kandidaten Nico Lacabidze gegenüber Davit Kirkitadze von der UNM lediglich 1,4 Prozentpunkte. Gibt es in absehbarer Zeit wieder UNM-Bürgermeister in Kutaissi, Batumi oder Rustavi, Städte, die nicht nur strategisch, sondern auch wirtschaftlich von großer Bedeutung sind? Die entscheidende Frage wird sein, wie sich die kleineren Oppositionsparteien diesbezüglich positionieren. Da zeichnet sich nach den Ergebnissen vom vergangenen Samstag ein „Königsmacher“ ab.

 

Ehemaliger Premierminister als „Königsmacher“

Giorgi Gakharia, der vormalige Premierminister mit durchaus seriöser internationaler Reputation, trat Anfang des Jahres überraschend zurück, verließ GD und gründete eine neue Partei: „Für Georgien“. Er oder besser gesagt, dessen Wähler könnten nun die Königsmacher in den betreffenden Städten sein, da allein deren Stimmen reichen würden, um jeweils die Mehrheit zu erreichen. Aber natürlich sind das reine Rechenspiele. Giorgi Gakharia hat bereits angekündigt, für keine Seite eine Wahlempfehlung abgeben zu wollen. Auch andere kleine Parteien wie „Lelo“ oder „Girchi“ könnten insbesondere in den Stadträten in Zukunft eine Rolle als Mehrheitsbeschaffer spielen. Der „Georgische Traum“ allein hat keine Mehrheit mehr!

Ein weiterer Trend sollte erwähnt werden. Die EVP-Partnerpartei „European Georgia“ rutscht trotz prominenter Mitglieder und langjähriger Politikerfahrung ihres Personals immer mehr in die Bedeutungslosigkeit ab. Nach den Ergebnissen vom Samstag spielt diese 2017 von der UNM abgespaltene Partei mit Politikern und ehemaligen engen Vertrauten Saakashvilis keine Rolle mehr. Giga Bokeria, Giorgi Kandelaki oder Giorgi Tsereteli scheinen sich endgültig verzockt zu haben.

 

Die Rückkehr: kalkulierter „Coup“ oder endgültige Niederlage?

All diese Überlegungen über Mehrheitsverhältnisse in den Provinzparlamenten etc. sollten nicht darüber hinwegtäuschen, dass für ganz Georgien die extrem polarisierte Situation bestehen bleibt. Die Frage, ob eventuell Vertreter der UNM durch den Gewinn von Bürgermeisterposten die Allmacht der Regierungspartei GD brechen könnten, verblasste spätestens mit der Ankündigung, der ehemalige Präsident Mikheil Saakashvili wolle am Wahltag wieder georgischen Boden betreten. Nach einem scheinbar von ihm selbst abgesetzten Post wollte er zwei Stunden nach Schließung der Wahlkabinen in Georgien persönlich erscheinen, acht Jahre nach Beginn seines politischen Exils.

Am Wahltag machte im Internet ein Video die Runde, das ihn nachts angeblich in Batumi zeigte, also auf georgischem Boden. Andere Bilder ließen ihn vor aktuellen Wahlplakaten auf anonymen Straßen in die Kamera lachen. Zwei Stunden später sah man den ehemaligen Staatspräsidenten stolz lachend, wie er von zwei Sicherheitsbeamten abgeführt wurde und zwar in der Hauptstadt Tbilisi. Nach offiziellen Informationen sitzt er seither in einem Gefängnis in Rustavi ein. Eine von Saakashvili angekündigte Kundgebung für Sonntag, den 3. Oktober im Zentrum Tbilisis kam nicht zustande. Zu einer Kundgebung der UNM in der Nähe des Gefängnisses in Rustavi kamen deutlich weniger Teilnehmer als zuvor angenommen. Ist der „Micha-Effekt“ verpufft und nur noch eine leere Drohung der Opposition?

 

Georgiens politische Elite und deren fataler Hang zur „Abrechnung“

Sprechen die durchaus positiven UNM-Wahlergebnisse vom vergangenen Samstag für oder gegen Mikheil Saakashvilis hoch riskantes Spiel? Oder platzt da gerade nur eine mediale „Blase“? Die Wahlbeteiligung von gerade mal 51 Prozent macht nicht den Eindruck, als ließe sich ein Großteil der Bevölkerung von der ewigen „Bidzina versus Micha“ - Rhetorik groß beeindrucken. Wenn oben von einer „polarisierten Situation“ die Rede war, so bezieht sich das nur auf den politisch aktiven Teil der Bevölkerung. Am Sonntag, dem Tag nach der Wahl und der Festnahme M. Saakashvilis, äußerte der amtierende Premierminister Irakli Garibashvili, dies sei der „Tag von Bidzina…“. Gemeint war damit, dass mit der Verhaftung Saakashvilis und der Androhung einer langjährigen Haftstrafe der Oligarch und tatsächliche politische Strippenzieher in Georgien, Mäzen, Gründer und Finanzier der Partei GD, Bidzina Ivanishvili, die Auseinandersetzung mit dem vormaligen Präsidenten endgültig gewonnen habe. Die Alltagssorgen der georgischen Bürger hingegen fanden kaum Aufmerksamkeit, trotz wirtschaftlicher Krise und einem dramatischen Verlauf der Pandemie.

 

Georgien bleibt politisches Hochdruckgebiet

All dies sind zwar nur Momentaufnahmen. Aber es ist noch nicht abzusehen, wie diese Situation den öffentlichen Diskurs weiter beeinflusst. Damit bleibt es weiter spannend! Gleichzeitig bleiben strukturelle Probleme weiter unangetastet und verschärfen sich zum Teil weiter. Dazu gehört, dass die Regierungspartei auf finanzielle und administrative Ressourcen zugreift, die für die anderen Parteien unerreichbar sind und auch vor dem Rückgriff auf Geheimdienste nicht zurückzuscheuen zu scheint. So kostete der Wahlkampf von GD beispielsweise mehr als 5 Millionen Lari (entspricht ca. 1,4 Millionen Euro), die größte Oppositionspartei UNM dagegen konnte nur etwa 66.000 Lari (entspricht ca. 18.000 Euro) für ihren Wahlkampf aufbringen. Darüber hinaus versucht die Regierungspartei weiterhin durch einen Diskurs, der vor Beschimpfungen wie „Verräter“ oder „Feind“ oder „Bolschewik“ nicht zurückschreckt und Vertretern der Opposition damit droht, nach den Wahlen mit ihnen „aufzuräumen“, die eigene Wählerschaft zu mobilisieren. Auch Vertreter anderer politischer Parteien befleißigen sich einer Rhetorik, die Zweifel aufkommen lässt, ob Georgiens Demokratie bereits auf festen Fundamenten steht. Inakzeptable personelle Beleidigungen, Androhung und offen zur Schau getragene Bereitschaft zur Gewalt waren leider auch Komponenten in diesem Wahlkampf. Aber die politische Elite eines Landes, das seit Jahren die Aufnahme in die EU zu einem wichtigen außenpolitischen Narrativ erklärt hat, muss sich daran messen lassen. Sowohl internationale Wahlbeobachtermissionen der OSZE, aber beispielsweise auch die US-Botschaft in Tbilisi monierten in offiziellen Statements ganz klar diese Formen des Wahlkampfes.

 

Zusammenfassung

Abschließend bleibt festzustellen, dass GD keine alleinige Mehrheit mehr hat. Gleichzeitig dominieren GD und UNM weiter die politische Landschaft.

Ist Mikheil Saakashvilis Weg vom erfolgreichen Volkstribun und Reformator in der eigentlichen postsowjetischen Zeit von 2003 bis 2013 hin zum prominenten Insassen einer traurigen Gefängniszelle in Rustavi damit politisch am Ende? Dann wäre dieser Tag eine ernstzunehmende Zäsur nicht nur für die ehemalige Reformerpartei UNM, sondern für ganz Georgien. Sollte die UNM sich selbst eingestehen, nach der letzten Parlamentswahl einen weiteren, erfolgreichen Wahlkampf geführt zu haben, dann müssen sich deren Führungskader die Frage beantworten, ob sie dies wegen oder trotz ihres bisherigen Heroen Mikheil Saakashvili erreicht haben.

Издател на активи

Лица за контакт

Stephan Malerius

Stephan Malerius

Leiter des Regionalprogramms Politischer Dialog Südkaukasus

stephan.malerius@kas.de +995322459112
+995322459113

comment-portlet

Коментари

Моля регистрирайте се, за да можете да коментирате.

Издател на активи

Издател на активи

За тази поредица

Фондация „Конрад Аденауер“ разполага със собствени представителства в 70 държави на пет континента. Чуждестранните локални сътрудници могат да ви информира от първа ръка относно актуалните събития и пълносрочните проекти във вашата държава. В „Локална информация“ те предлагат на потребителите на уебсайта на фондация „Конрад Аденауер“ ексклузивни анализи, историческа информация и оценки.