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>
Der Ausnahmezustand
Die Entscheidung über das Verhängen eines Ausnahmezustandes hat die Anzahl der Grenzübertritte durch Migranten effektiv verringert. Zwischen dem 10. und dem 20. August sind 476 Menschen bei dem Versuch, die Grenze zu überqueren, zurückgewiesen worden. Allerdings erlaubt Lettland einigen Menschen, aus humanitären – etwa gesundheitlichen – Gründen ins Land einzureisen. Seit Beginn des Ausnahmezustandes haben 25 Personen die Genehmigung für eine Einreise aus humanitären Gründen erhalten.3
Bericht der Deutschen Welle über die Lage an der Grenze zwischen Lettland und Belarus
Am 18. August veröffentlichte der öffentlich-recht-liche Rundfunk Deutsche Welle (DW) einen Video-bericht über die Situation an der belarussisch-lettischen Grenze. Dieser umfasste ein Interview mit Rawa, einem Migranten aus dem Irak. Seiner Aussage zufolge sitze er gemeinsam mit anderen Familien seit einer Woche zwischen der lettischen und der belarussischen Grenze fest. Der DW-Bericht verwies zudem darauf, dass sich auch kranke Kinder zwischen den Grenzen befänden und dass die Menschen nicht mit Nahrung versorgt würden.4 Die Migranten sind mit einem Touristenvisum nach Belarus eingereist, in der Hoffnung, von dort aus ins benachbarte EU-Mitglied Lettland weiterziehen zu können. Ange-sichts des dort verhängten Ausnahmezustandes ist es ihnen jedoch nicht erlaubt, die Grenze zu überqueren.
Guntis Pujāts, Leiter des staatlichen Grenzschutzes, nannte den DW-Bericht übertrieben, da keine der Migrantengruppen länger als drei Tage in der Grenzzone verblieben sei. Pujāts betonte zudem, dass die Migranten mit medizinischen Untersuchungen, Nahrungsmitteln und Wasser versorgt würden. Die im DW-Bericht gezeigten Migranten hätten sich ihm zufolge außerdem auf der belarussischen Seite der Grenze und nicht im neutralen Gebiet befunden. Der lettische Ombudsmann hat sich ebenfalls zum Video geäußert: Er forderte die lettischen Behörden auf, etwas gegen die im Video dargestellten Zustände zu unternehmen, sollten sie sich als wahr erweisen. Auch das lettische Innenministerium verwies darauf, dass der Grenz-schutz mit Nichtregierungsorganisationen zusammenarbeite, um die Migranten mit Kleidung und Regenjacken zu versorgen.5
Die lettische Innenministerin Marija Golubeva äußerte ihre Kritik am DW-Bericht in einem Tweet: „Lettische Grenzschützer versorgen die Menschen, die belarussische Sondereinsatzkräfte über die Grenze zu drängen versuchen, mit Wasser und Nahrungsmitteln, Medizin und Kleidung sowie mit medizinischen Untersuchungen. Wenn irgendeine Gefahr für ihr Leben oder ihre Gesundheit besteht, werden sie hospitalisiert.“6 Auch der lettische Vertei-digungsminister Artis Pabriks bezeichnete den DW-Bericht als voreingenommen, „denn Sie erwähnen nicht, dass belarussische Behörden diese Menschen gegen ihren Willen zum Überqueren der Grenze zwingen. Das ist eine Strategie der hybriden Kriegsführung gegen die EU, durchgeführt vom Lukaschenko-Regime mit dem Ziel, die öffentliche Meinung innerhalb der EU gegen die EU zu wenden. Seien Sie schlau.“7
Die Perspektive der Migranten
Es herrscht Einigkeit darüber, dass Belarus die Migrationsbewegung in Richtung der lettischen, litauischen und polnischen Grenzen lenkt. Ein jüngst geführtes Interview mit einer irakischen Familie veranschaulicht dabei, auf welche Weise Migranten Opfer der belarussischen hybriden Kriegsführung geworden sind. Die Familie kam mit einem Touristenvisum nach Belarus. An ihrem zweiten Tag in Belarus wurde der Familie mitgeteilt, dass sie eine Besichtigung machen würden. Sie wurden mit einem Bus an die Grenze gebracht und im Anschluss durch einen belarussischen Mann in Militäruniform durch die Wälder nach Lettland eskortiert. Den Menschen wurde gesagt, sie sollen über den lettischen Grenzschutz nach Belarus zurückkehren. Da die Mutter unter gesundheitlichen Problemen litt, wurde die Familie in ein Krankenhaus gebracht. Dort wurden ihnen durch belarussische Männer in Uniform ihre Pässe abgenommen, sodass sie nicht zurück in den Irak reisen konnten, so die Familie im Interview. Jene Belarussen zwangen sie trotz ihrer gesundheitlichen Probleme zum Überqueren der lettischen Grenze. Lettische Grenzschützer erlaubten der Familie aus humanitären Gründen die Einreise.8
Internationale Reaktionen
Die Europäische Union hilft Lettland dabei, die Situation an der Grenze zu Belarus zu kontrollieren. So unterstützen etwa Experten von FRONTEX, der Europäische Agentur für die Grenz- und Küstenwache, die lettischen Grenzschutzbeamten. Zudem gab es mit Blick auf die andauernde Krise eine weitreichende Zusammenarbeit zwischen den baltischen Staaten und Polen. Am 21. August kamen die Premierminister der baltischen Staaten und Polens zu einem Treffen zur Situation an der belarussischen Grenze zusammen und beschlossen eine weitere Stärkung der Grenze. In einer gemeinsamen Erklärung verurteilten sie die Handlungen des Lukaschenko-Regimes: „Der Einsatz von Migranten zur Destabilisierung benachbarter Staaten ist ein offenkundiger Völkerrechtsbruch und sollte als hybrider Angriff gegen Litauen, Lettland und Polen – und damit auch gegen die gesamte Europäische Union – gewertet werden.“9
Am 25. August richtete der Europäische Gerichtshof für Menschenrechte (EGMR) eine Stellungnahme zur Behandlung von Migranten an der Grenze zu Belarus an die lettischen und polnischen Behörden. Der Gerichtshof wies die lettischen Behörden an, die Migranten mit Nahrungsmitteln, Wasser, Kleidung und medizinischer Hilfe zu versorgen sowie, falls möglich, provisorische Unterkünften zur Verfügung zu stellen. Die Entscheidung des Gerichtshofes bedeutet jedoch nicht, dass Lettland dazu verpflichtet ist, die Migranten einreisen zu lassen. Das lettische Außenministerium reagierte mit dem Verweis darauf, dass Lettland im Einklang mit humanitären Grundsätzen bereits Nahrung, Wasser und medizinische Unterstützung bereitstelle und dies auch weiterhin tun werde, entsprechend der Entscheidung des EGMR. Auch Innenministerin Marija Golubeva betonte, dass Lettlands Umgang mit Migranten bereits mit der Stellungnahme des EGMR übereinstimme.10
Maßnahmen der Regierung
Die Ausrufung des Ausnahmezustandes war nicht die einzige Maßnahme der lettischen Regierung, die darauf abzielte, den Zuzug von Migranten zu beenden. Am 19. August verabschiedete die Saeima (das lettische Parlament) eine Vorlage der Regierung zur Stärkung der lettisch-belarussischen Grenze. Diese würde es erlauben, mit dem Bau des Grenzzauns zu Belarus deutlich zügiger fortzuschreiten als bisher.11 Über das Wochenende vom 21. und 22. August gab es keinerlei Versuche, die Grenze von Belarus nach Lettland illegal zu überqueren. Obwohl Aussagen über die Zukunft schwierig sind, kann festgehalten werden, dass die Maßnahmen der lettischen Regierung die Anzahl illegaler Grenzübertritte via Belarus vorläufig reduziert haben.12
Quellenangaben
[1] Ķezberis, U. (2021, August 3). Lietuva sākusi izraidīt migrantus atpakaļ uz Baltkrieviju. LSM.LV. https://www.lsm.lv/raksts/zinas/arzemes/lietuva-sakusi-izraidit-migrantus-atpakal-uz-baltkrieviju.a415400/
[2] LSM ziņu redakcija. (2021, August 10). Latvija izsludina ārkārtējo situāciju pierobežā ar Baltkrieviju. LSM.LV. https://www.lsm.lv/raksts/zinas/latvija/latvija-izsludina-arkartejo-situaciju-pierobeza-ar-baltkrieviju.a416344/
[3] LETA. (2021, August 21). Piektdien novērsts viena cilvēka mēģinājums nelikumīgi šķērsot Latvijas-Baltkrievijas robežu. delfi.lv. https://www.delfi.lv/news/national/criminal/piektdien-noversts-viena-cilveka-meginajums-nelikumigi-skersot-latvijas-baltkrievijas-robezu.d?id=53509917
[4] Deutsche Welle. (2021, August 13). Flüchtlinge im Niemandsland zwischen Belarus und Lettland | DW | 18.08.2021. DW.COM. https://www.dw.com/de/fl%C3%BCchtlinge-im-niemandsland-zwischen-belarus-und-lettland/av-58900475
[5] Arājs, K. (2021, August 18). Internetā cirkulējošais video ar bēgļiem “starp robežām” ir pārspīlēts, skaidro ministrijā. delfi.lv. https://www.delfi.lv/news/national/politics/interneta-cirkulejosais-video-ar-begliem-starp-robezam-ir-parspilets-skaidro-ministrija.d?id=53500221
[6] Golubeva, M. [@MGolubeva_LV]. (2021, September 18). Latvian Border Guards are providing the people whom Belarusian special forces are trying to push over the EU border with [Tweet]. Twitter. https://twitter.com/MGolubeva_LV/status/1427903108622004234
[7] Pabriks, A. [@Pabriks]. (2021, August 18). Your report is biased, because you fail to say that Belarussian authorities are forcing these people to cross border against [Tweet]. Twitter.
[8] LTV Ziņu Dienests. (2021, August 25). Aizsardzības nozares ziņu portāls Sargs.lv sadarbībā ar Valsts robežsardze piedāvā iepazīties ar stāstu par kādu irākiešu ģimeni, kas kļuvusi par [Facebook post]. Facebook. https://www.facebook.com/ltvzinas/posts/1936644849849859
[9] The First News. (2021, August 23). Polish, Baltic States PMs accuse Lukashenko of planning crisis on its border. The First News. https://www.thefirstnews.com/article/polish-baltic-states-pms-accuse-lukashenko-of-planning-crisis-on-its-border-24203
[10] LSM. (2021b, August 26). Latvian officials respond to ECHR’s statement on border situation. LSM.LV. https://eng.lsm.lv/article/politics/diplomacy/latvian-officials-respond-to-echrs-statement-on-border-situation.a418607/
[11] LSM Ziņu redakcija. (2021, August 19). Saeima pieņem grozījumus par ātrāku Latvijas austrumu robežas izbūvi. LSM.LV. https://www.lsm.lv/raksts/zinas/latvija/saeima-pienem-grozijumus-par-atraku-latvijas-austrumu-robezas-izbuvi.a417697/
[12] LSM. (2021, August 23). No border offenders caught on Latvian-Belarusian border over weekend. LSM.LV. https://eng.lsm.lv/article/society/defense/no-border-offenders-caught-on-latvian-belarusian-border-over-weekend.a418078/
Liste der Links
- https://www.lsm.lv/raksts/zinas/arzemes/lietuva-sakusi-izraidit-migrantus-atpakal-uz-baltkrieviju.a415400/
- https://www.lsm.lv/raksts/zinas/latvija/latvija-izsludina-arkartejo-situaciju-pierobeza-ar-baltkrieviju.a416344/
- https://www.delfi.lv/news/national/criminal/piektdien-noversts-viena-cilveka-meginajums-nelikumigi-skersot-latvijas-baltkrievijas-robezu.d?id=53509917
- https://www.dw.com/de/fl%C3%BCchtlinge-im-niemandsland-zwischen-belarus-und-lettland/av-58900475
- https://www.delfi.lv/news/national/politics/interneta-cirkulejosais-video-ar-begliem-starp-robezam-ir-parspilets-skaidro-ministrija.d?id=53500221
- https://twitter.com/MGolubeva_LV/status/1427903108622004234
- https://twitter.com/Pabriks/status/1427901737885655043?s=20
- https://www.thefirstnews.com/article/polish-baltic-states-pms-accuse-lukashenko-of-planning-crisis-on-its-border-24203
- https://www.lsm.lv/raksts/zinas/latvija/saeima-pienem-grozijumus-par-atraku-latvijas-austrumu-robezas-izbuvi.a417697/
- https://eng.lsm.lv/article/society/defense/no-border-offenders-caught-on-latvian-belarusian-border-over-weekend.a418078/
- https://www.facebook.com/ltvzinas/posts/1936644849849859
- https://eng.lsm.lv/article/politics/diplomacy/latvian-officials-respond-to-echrs-statement-on-border-situation.a418607/