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
Y0}lH6PCXY8?7LhX6Y7f^zq-o*02ylsv;Y7A
diff --git a/project/translations/de/LC_MESSAGES/messages.po b/project/translations/de/LC_MESSAGES/messages.po
index aeb0678..056cd98 100644
--- a/project/translations/de/LC_MESSAGES/messages.po
+++ b/project/translations/de/LC_MESSAGES/messages.po
@@ -7,178 +7,178 @@ msgid ""
msgstr ""
"Project-Id-Version: PROJECT VERSION\n"
"Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
-"POT-Creation-Date: 2023-04-08 13:20+0200\n"
+"POT-Creation-Date: 2023-04-21 12:29+0200\n"
"PO-Revision-Date: 2020-06-07 18:51+0200\n"
"Last-Translator: FULL NAME \n"
"Language: de\n"
"Language-Team: de \n"
-"Plural-Forms: nplurals=2; plural=(n != 1)\n"
+"Plural-Forms: nplurals=2; plural=(n != 1);\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=utf-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"Generated-By: Babel 2.9.1\n"
+"Generated-By: Babel 2.12.1\n"
-#: project/i10n.py:13
+#: project/i10n.py:15
msgid "Event_Art"
msgstr "Kunst"
-#: project/i10n.py:14
+#: project/i10n.py:16
msgid "Event_Book"
msgstr "Literatur"
-#: project/i10n.py:15
+#: project/i10n.py:17
msgid "Event_Movie"
msgstr "Film"
-#: project/i10n.py:16
+#: project/i10n.py:18
msgid "Event_Family"
msgstr "Familie"
-#: project/i10n.py:17
+#: project/i10n.py:19
msgid "Event_Festival"
msgstr "Festival"
-#: project/i10n.py:18
+#: project/i10n.py:20
msgid "Event_Religious"
msgstr "Religion"
-#: project/i10n.py:19
+#: project/i10n.py:21
msgid "Event_Shopping"
msgstr "Shopping"
-#: project/i10n.py:20
+#: project/i10n.py:22
msgid "Event_Comedy"
msgstr "Comedy"
-#: project/i10n.py:21
+#: project/i10n.py:23
msgid "Event_Music"
msgstr "Musik"
-#: project/i10n.py:22
+#: project/i10n.py:24
msgid "Event_Dance"
msgstr "Tanz"
-#: project/i10n.py:23
+#: project/i10n.py:25
msgid "Event_Nightlife"
msgstr "Party"
-#: project/i10n.py:24
+#: project/i10n.py:26
msgid "Event_Theater"
msgstr "Theater"
-#: project/i10n.py:25
+#: project/i10n.py:27
msgid "Event_Dining"
msgstr "Essen"
-#: project/i10n.py:26
+#: project/i10n.py:28
msgid "Event_Conference"
msgstr "Konferenz"
-#: project/i10n.py:27
+#: project/i10n.py:29
msgid "Event_Meetup"
msgstr "Networking"
-#: project/i10n.py:28
+#: project/i10n.py:30
msgid "Event_Fitness"
msgstr "Fitness"
-#: project/i10n.py:29
+#: project/i10n.py:31
msgid "Event_Sports"
msgstr "Sport"
-#: project/i10n.py:30
+#: project/i10n.py:32
msgid "Event_Other"
msgstr "Sonstiges"
-#: project/i10n.py:31
+#: project/i10n.py:33
msgid "Event_Exhibition"
msgstr "Ausstellung"
-#: project/i10n.py:32
+#: project/i10n.py:34
msgid "Event_Culture"
msgstr "Kultur"
-#: project/i10n.py:33
+#: project/i10n.py:35
msgid "Event_Tour"
msgstr "Führung"
-#: project/i10n.py:34
+#: project/i10n.py:36
msgid "Event_OpenAir"
msgstr "Open Air"
-#: project/i10n.py:35
+#: project/i10n.py:37
msgid "Event_Stage"
msgstr "Bühne"
-#: project/i10n.py:36
+#: project/i10n.py:38
msgid "Event_Lecture"
msgstr "Vortrag"
-#: project/i10n.py:37
+#: project/i10n.py:39
msgid "Typical Age range"
msgstr "Typische Altersspanne"
-#: project/i10n.py:38
+#: project/i10n.py:40
msgid "Administrator"
msgstr "Administrator:in"
-#: project/i10n.py:39
+#: project/i10n.py:41
msgid "Event expert"
msgstr "Veranstaltungsexpert:in"
-#: project/i10n.py:40
+#: project/i10n.py:42
msgid "EventReviewStatus.inbox"
msgstr "Ungeprüft"
-#: project/i10n.py:41
+#: project/i10n.py:43
msgid "EventReviewStatus.verified"
msgstr "Verifiziert"
-#: project/i10n.py:42
+#: project/i10n.py:44
msgid "EventReviewStatus.rejected"
msgstr "Abgelehnt"
-#: project/i10n.py:43
+#: project/i10n.py:45
msgid "Scope_openid"
msgstr "Identität verifizieren"
-#: project/i10n.py:44
+#: project/i10n.py:46
msgid "Scope_profile"
msgstr "Profil-Informationen"
-#: project/i10n.py:45
+#: project/i10n.py:47
msgid "Scope_user:read"
msgstr "Nutzer-Einstellungen lesen"
-#: project/i10n.py:46
+#: project/i10n.py:48
msgid "Scope_user:write"
msgstr "Nutzer-Einstellungen anlegen, ändern und löschen"
-#: project/i10n.py:47
+#: project/i10n.py:49
msgid "Scope_organizer:write"
msgstr "Veranstalter anlegen, ändern und löschen"
-#: project/i10n.py:48
+#: project/i10n.py:50
msgid "Scope_place:write"
msgstr "Orte anlegen, ändern und löschen"
-#: project/i10n.py:49
+#: project/i10n.py:51
msgid "Scope_event:write"
msgstr "Veranstaltungen anlegen, ändern und löschen"
-#: project/i10n.py:50
+#: project/i10n.py:52
msgid "Scope_eventlist:write"
msgstr "Veranstaltungslisten anlegen, ändern und löschen"
-#: project/i10n.py:51
+#: project/i10n.py:53
msgid "Scope_organization:read"
msgstr "Organisationen lesen"
-#: project/i10n.py:52
+#: project/i10n.py:54
msgid "Scope_organization:write"
msgstr "Organisationen anlegen, ändern und löschen"
-#: project/i10n.py:53
+#: project/i10n.py:55
msgid "There must be no self-reference."
msgstr "Es darf keine Selbstreferenz geben."
@@ -194,30 +194,30 @@ msgstr "."
msgid "message"
msgstr "message"
-#: project/api/organization/resources.py:398
+#: project/api/organization/resources.py:401
#: project/views/admin_unit_member_invitation.py:85
msgid "You have received an invitation"
msgstr "Du hast eine Einladung erhalten"
-#: project/forms/admin.py:11 project/templates/layout.html:294
-#: project/views/root.py:53
+#: project/forms/admin.py:11 project/templates/layout.html:303
+#: project/views/root.py:55
msgid "Terms of service"
msgstr "Nutzungsbedingungen"
-#: project/forms/admin.py:12 project/templates/layout.html:298
-#: project/views/root.py:61
+#: project/forms/admin.py:12 project/templates/layout.html:307
+#: project/views/root.py:63
msgid "Legal notice"
msgstr "Impressum"
-#: project/forms/admin.py:13 project/templates/_macros.html:1472
-#: project/templates/layout.html:302
+#: project/forms/admin.py:13 project/templates/_macros.html:1473
+#: project/templates/layout.html:311
#: project/templates/widget/event_suggestion/create.html:204
-#: project/views/admin_unit.py:73 project/views/root.py:69
+#: project/views/admin_unit.py:73 project/views/root.py:71
msgid "Contact"
msgstr "Kontakt"
-#: project/forms/admin.py:14 project/templates/layout.html:306
-#: project/views/root.py:77
+#: project/forms/admin.py:14 project/templates/layout.html:315
+#: project/views/root.py:79
msgid "Privacy"
msgstr "Datenschutz"
@@ -244,11 +244,11 @@ msgstr "Nutzer aktualisieren"
msgid "Delete user"
msgstr "Nutzer löschen"
-#: project/forms/admin.py:27 project/forms/admin_unit.py:48
+#: project/forms/admin.py:27 project/forms/admin_unit.py:47
#: project/forms/admin_unit_member.py:11 project/forms/admin_unit_member.py:23
#: project/forms/admin_unit_member.py:28 project/forms/event.py:107
#: project/forms/event_suggestion.py:38 project/forms/organizer.py:27
-#: project/templates/_macros.html:237 project/templates/_macros.html:1568
+#: project/templates/_macros.html:237 project/templates/_macros.html:1569
#: project/templates/admin/admin.html:27 project/templates/admin/email.html:4
#: project/templates/admin/email.html:66 project/templates/admin/users.html:19
#: project/templates/manage/organizers.html:21
@@ -314,7 +314,7 @@ msgstr "Organisation aktualisieren"
msgid "Delete organization"
msgstr "Organisation löschen"
-#: project/forms/admin.py:69 project/forms/admin_unit.py:29
+#: project/forms/admin.py:69 project/forms/admin_unit.py:28
#: project/forms/event.py:85 project/forms/event.py:114
#: project/forms/event_place.py:25 project/forms/event_place.py:50
#: project/forms/event_suggestion.py:26 project/forms/oauth2_client.py:66
@@ -352,89 +352,90 @@ msgstr "Nachricht"
msgid "Send newsletter"
msgstr "Newsletter senden"
-#: project/forms/admin_unit.py:15 project/forms/event_place.py:12
+#: project/forms/admin_unit.py:14 project/forms/event_place.py:12
#: project/forms/organizer.py:12
msgid "Street"
msgstr "Straße"
-#: project/forms/admin_unit.py:16 project/forms/event_place.py:13
-#: project/forms/organizer.py:13
+#: project/forms/admin_unit.py:15 project/forms/event.py:453
+#: project/forms/event_place.py:13 project/forms/organizer.py:13
msgid "Postal code"
msgstr "Postleitzahl"
-#: project/forms/admin_unit.py:17 project/forms/event_place.py:14
+#: project/forms/admin_unit.py:16 project/forms/event_place.py:14
#: project/forms/organizer.py:14
msgid "City"
msgstr "Stadt/Ort"
-#: project/forms/admin_unit.py:18 project/forms/event_place.py:15
+#: project/forms/admin_unit.py:17 project/forms/event_place.py:15
#: project/forms/organizer.py:15
msgid "State"
msgstr "Bundesland"
-#: project/forms/admin_unit.py:20 project/forms/event_place.py:17
+#: project/forms/admin_unit.py:19 project/forms/event_place.py:17
#: project/forms/organizer.py:17
msgid "Latitude"
msgstr "Breitengrad"
-#: project/forms/admin_unit.py:23 project/forms/event_place.py:20
+#: project/forms/admin_unit.py:22 project/forms/event_place.py:20
#: project/forms/organizer.py:20
msgid "Longitude"
msgstr "Längengrad"
-#: project/forms/admin_unit.py:32
+#: project/forms/admin_unit.py:31
msgid "Short name"
msgstr "Kurzname"
-#: project/forms/admin_unit.py:33
+#: project/forms/admin_unit.py:32
msgid "The short name is used to create a unique identifier for your events"
msgstr ""
"Der Kurzname wird verwendet, um die Veranstaltungen der Organisation "
"eindeutig zu identifizieren. Der Kurzname darf nur Buchstaben, Nummern "
"und Unterstriche enthalten."
-#: project/forms/admin_unit.py:41 project/templates/_macros.html:1610
+#: project/forms/admin_unit.py:40 project/templates/_macros.html:1611
msgid "Short name must contain only letters numbers or underscore"
msgstr "Der Kurzname darf nur Buchstaben, Nummern und Unterstriche enthalten"
-#: project/forms/admin_unit.py:47 project/forms/event.py:106
+#: project/forms/admin_unit.py:46 project/forms/event.py:106
#: project/forms/event.py:124 project/forms/event_place.py:26
#: project/forms/organizer.py:26 project/templates/manage/organizers.html:21
msgid "Link URL"
msgstr "Link URL"
-#: project/forms/admin_unit.py:49 project/forms/event.py:108
+#: project/forms/admin_unit.py:48 project/forms/event.py:108
#: project/forms/event_suggestion.py:31 project/forms/organizer.py:28
#: project/templates/_macros.html:290
#: project/templates/manage/organizers.html:20
msgid "Phone"
msgstr "Telefon"
-#: project/forms/admin_unit.py:50 project/forms/event.py:109
+#: project/forms/admin_unit.py:49 project/forms/event.py:109
#: project/forms/organizer.py:29 project/templates/_macros.html:298
msgid "Fax"
msgstr "Fax"
-#: project/forms/admin_unit.py:51 project/forms/organizer.py:30
+#: project/forms/admin_unit.py:50 project/forms/organizer.py:30
#: project/templates/manage/organizers.html:22
+#: project/templates/manage/organizers.html:47
msgid "Logo"
msgstr "Logo"
-#: project/forms/admin_unit.py:55
+#: project/forms/admin_unit.py:54
msgid "Allow verification requests"
msgstr "Verifizierungsanfragen erlauben"
-#: project/forms/admin_unit.py:56
+#: project/forms/admin_unit.py:55
msgid "If set, unverified organizations may ask you for verification."
msgstr ""
"Wenn gesetzt, können nicht verifizierte Organisationen um eine "
"Verifizierung bitten."
-#: project/forms/admin_unit.py:62
+#: project/forms/admin_unit.py:61
msgid "Verification requests information"
msgstr "Text für Verifizierungsanfragen"
-#: project/forms/admin_unit.py:64
+#: project/forms/admin_unit.py:63
msgid ""
"This text is shown to unverified organizations to help them decide "
"whether they ask you for verification."
@@ -442,21 +443,21 @@ msgstr ""
"Dieser Text wird nicht verifizierten Organisationen angezeigt, um ihnen "
"bei der Entscheidung zu helfen, ob sie um eine Verifizierung bitten."
-#: project/forms/admin_unit.py:80
+#: project/forms/admin_unit.py:79
msgid "Verify new organization"
msgstr "Neue Organisation verifizieren"
-#: project/forms/admin_unit.py:81
+#: project/forms/admin_unit.py:80
msgid "If set, events of the new organization are publicly visible."
msgstr ""
"Wenn gesetzt, sind Veranstaltungen der neuen Organisation öffentlich "
"sichtbar."
-#: project/forms/admin_unit.py:87 project/forms/reference_request.py:86
+#: project/forms/admin_unit.py:86 project/forms/reference_request.py:86
msgid "Verify reference requests automatically"
msgstr "Empfehlungsanfragen automatisch verifizieren"
-#: project/forms/admin_unit.py:88
+#: project/forms/admin_unit.py:87
msgid ""
"If set, all upcoming reference requests of the new organization are "
"verified automatically."
@@ -464,29 +465,29 @@ msgstr ""
"Wenn gesetzt, werden alle zukünftigen Empfehlungsanfragen der neuen "
"Organisation automatisch verifiziert."
-#: project/forms/admin_unit.py:99 project/templates/admin_unit/create.html:5
+#: project/forms/admin_unit.py:98 project/templates/admin_unit/create.html:5
#: project/templates/admin_unit/create.html:22
#: project/templates/manage/admin_units.html:32
msgid "Create organization"
msgstr "Organisation erstellen"
-#: project/forms/admin_unit.py:107 project/forms/admin_unit.py:130
+#: project/forms/admin_unit.py:106 project/forms/admin_unit.py:129
msgid "Update settings"
msgstr "Einstellungen speichern"
-#: project/forms/admin_unit.py:111
+#: project/forms/admin_unit.py:110
msgid "Font"
msgstr "Schriftart"
-#: project/forms/admin_unit.py:113
+#: project/forms/admin_unit.py:112
msgid "Background Color"
msgstr "Hintergrundfarbe"
-#: project/forms/admin_unit.py:119
+#: project/forms/admin_unit.py:118
msgid "Primary Color"
msgstr "Hauptfarbe"
-#: project/forms/admin_unit.py:125
+#: project/forms/admin_unit.py:124
msgid "Link Color"
msgstr "Linkfarbe"
@@ -599,7 +600,7 @@ msgstr "50 km"
msgid "100 km"
msgstr "100 km"
-#: project/forms/event.py:38 project/templates/manage/events.html:85
+#: project/forms/event.py:38 project/templates/manage/events.html:94
msgid "Start"
msgstr "Beginn"
@@ -621,16 +622,16 @@ msgstr "Gib an, wann der Termin endet. Ein Termin darf maximal 14 Tage dauern."
msgid "All-day"
msgstr "Ganztägig"
-#: project/forms/event.py:54 project/templates/_macros.html:1790
+#: project/forms/event.py:54 project/templates/_macros.html:1801
#: project/templates/widget/event_suggestion/create.html:240
msgid "Recurring event"
msgstr "Serientermin"
-#: project/forms/event.py:61 project/templates/_macros.html:1329
+#: project/forms/event.py:61 project/templates/_macros.html:1330
msgid "The start must be before the end."
msgstr "Der Start muss vor dem Ende sein."
-#: project/forms/event.py:67 project/templates/_macros.html:1346
+#: project/forms/event.py:67 project/templates/_macros.html:1347
msgid "An event can last a maximum of 14 days."
msgstr "Eine Veranstaltung darf maximal 14 Tage dauern."
@@ -720,7 +721,7 @@ msgid "If the participants needs to register for the event."
msgstr "Wenn sich die Teilnehmer für die Veranstaltung anmelden müssen."
#: project/forms/event.py:170 project/templates/_macros.html:251
-#: project/templates/layout.html:110
+#: project/templates/layout.html:115
msgid "Booked up"
msgstr "Ausgebucht"
@@ -780,11 +781,11 @@ msgstr "Teilnahme"
msgid "EventAttendanceMode.offline"
msgstr "Präsenzveranstaltung"
-#: project/forms/event.py:217 project/templates/layout.html:98
+#: project/forms/event.py:217 project/templates/layout.html:103
msgid "EventAttendanceMode.online"
msgstr "Online"
-#: project/forms/event.py:219 project/templates/layout.html:101
+#: project/forms/event.py:219 project/templates/layout.html:106
msgid "EventAttendanceMode.mixed"
msgstr "Präsenzveranstaltung und online"
@@ -793,7 +794,10 @@ msgid "Choose how people can attend the event."
msgstr "Wähle aus, wie Personen an der Veranstaltung teilnehmen können."
#: project/forms/event.py:225 project/forms/event_place.py:27
+#: project/templates/manage/events.html:98
+#: project/templates/manage/events.html:133
#: project/templates/manage/places.html:21
+#: project/templates/manage/places.html:39
#: project/templates/widget/event_suggestion/create.html:258
msgid "Photo"
msgstr "Foto"
@@ -865,7 +869,7 @@ msgstr "Ungültiger Mitveranstalter."
#: project/templates/event_place/create.html:31
#: project/templates/event_place/delete.html:13
#: project/templates/event_place/update.html:31
-#: project/templates/manage/events.html:88
+#: project/templates/manage/events.html:97
msgid "Place"
msgstr "Ort"
@@ -882,7 +886,7 @@ msgstr "Neuen Ort eingeben"
#: project/forms/event_suggestion.py:60 project/templates/_macros.html:475
#: project/templates/_macros.html:647 project/templates/event/create.html:253
#: project/templates/event/update.html:156
-#: project/templates/manage/events.html:87
+#: project/templates/manage/events.html:96
#: project/templates/organizer/create.html:27
#: project/templates/organizer/delete.html:13
#: project/templates/organizer/update.html:27
@@ -938,23 +942,23 @@ msgstr "Status"
msgid "EventStatus.scheduled"
msgstr "Geplant"
-#: project/forms/event.py:389 project/templates/layout.html:64
-#: project/templates/layout.html:79
+#: project/forms/event.py:389 project/templates/layout.html:69
+#: project/templates/layout.html:84
msgid "EventStatus.cancelled"
msgstr "Abgesagt"
-#: project/forms/event.py:390 project/templates/layout.html:67
-#: project/templates/layout.html:82
+#: project/forms/event.py:390 project/templates/layout.html:72
+#: project/templates/layout.html:87
msgid "EventStatus.movedOnline"
msgstr "Online verschoben"
-#: project/forms/event.py:391 project/templates/layout.html:70
-#: project/templates/layout.html:85
+#: project/forms/event.py:391 project/templates/layout.html:75
+#: project/templates/layout.html:90
msgid "EventStatus.postponed"
msgstr "Verschoben"
-#: project/forms/event.py:392 project/templates/layout.html:73
-#: project/templates/layout.html:88
+#: project/forms/event.py:392 project/templates/layout.html:78
+#: project/templates/layout.html:93
msgid "EventStatus.rescheduled"
msgstr "Neu angesetzt"
@@ -983,7 +987,7 @@ msgstr "Wähle den öffentlichen Status der Veranstaltung."
msgid "Update event"
msgstr "Veranstaltung aktualisieren"
-#: project/forms/event.py:423 project/templates/_macros.html:1286
+#: project/forms/event.py:423 project/templates/_macros.html:1287
#: project/templates/event/actions.html:66
#: project/templates/event/delete.html:6
msgid "Delete event"
@@ -1008,12 +1012,8 @@ msgstr "Stichwort"
msgid "Category"
msgstr "Kategorie"
-#: project/forms/event.py:445
-msgid "Find events"
-msgstr "Veranstaltungen finden"
-
-#: project/forms/event_date.py:24 project/forms/planing.py:22
-#: project/templates/_macros.html:305
+#: project/forms/event.py:446 project/forms/event_date.py:24
+#: project/forms/planing.py:22 project/templates/_macros.html:305
#: project/templates/admin_unit/create.html:38
#: project/templates/admin_unit/update.html:39
#: project/templates/event_place/create.html:40
@@ -1025,10 +1025,15 @@ msgstr "Veranstaltungen finden"
msgid "Location"
msgstr "Standort"
-#: project/forms/event_date.py:26 project/forms/planing.py:24
+#: project/forms/event.py:448 project/forms/event_date.py:26
+#: project/forms/planing.py:24
msgid "Distance"
msgstr "Distanz"
+#: project/forms/event.py:455
+msgid "Find events"
+msgstr "Veranstaltungen finden"
+
#: project/forms/event_date.py:39 project/forms/planing.py:36
#: project/templates/widget/event_date/list.html:82
msgid "Find"
@@ -1166,7 +1171,7 @@ msgstr "Wochentage"
#: project/templates/admin/delete_admin_unit.html:13
#: project/templates/admin_unit/create.html:28
#: project/templates/admin_unit/update.html:29
-#: project/templates/layout.html:242
+#: project/templates/layout.html:247
msgid "Organization"
msgstr "Organisation"
@@ -1191,7 +1196,7 @@ msgstr "Anfrage speichern"
msgid "Delete request"
msgstr "Anfrage löschen"
-#: project/forms/reference_request.py:28 project/templates/_macros.html:1484
+#: project/forms/reference_request.py:28 project/templates/_macros.html:1485
#: project/templates/event_suggestion/review_status.html:18
#: project/templates/reference_request/review_status.html:12
msgid "Review status"
@@ -1248,7 +1253,7 @@ msgstr ""
"der Eingabe wird dir eine Mail geschickt, damit du bestätigen kannst, "
"dass die E-Mail-Adresse dir gehört."
-#: project/forms/security.py:43
+#: project/forms/security.py:47
msgid "login_confirmation_required"
msgstr ""
"Beachte, dass du deine E-Mail-Adresse bestätigen muss. Dazu wird dir nach"
@@ -1256,11 +1261,11 @@ msgstr ""
"geschickt. Bitte beachte, dass es einige Minuten dauern kann, bis die "
"Mail bei dir eintrifft. Schaue zur Sicherheit auch im Spam-Ordner nach."
-#: project/forms/security.py:53
+#: project/forms/security.py:57
msgid "Allow"
msgstr "Erlauben"
-#: project/forms/security.py:54
+#: project/forms/security.py:58
msgid "Deny"
msgstr "Ablehnen"
@@ -1274,7 +1279,7 @@ msgstr "Newsletter"
msgid "Information about new features and improvements."
msgstr "Informationen über neue Features und Verbesserungen."
-#: project/forms/widgets.py:154
+#: project/forms/widgets.py:155
msgid "This field is required."
msgstr "Dieses Feld ist erforderlich."
@@ -1314,22 +1319,22 @@ msgstr "Zuletzt aktualisiert am %(updated_at)s."
#: project/templates/event/actions.html:25
#: project/templates/event/create.html:230
#: project/templates/event/update.html:122
-#: project/templates/manage/events.html:86
+#: project/templates/manage/events.html:95
#: project/templates/widget/event_suggestion/create.html:229
msgid "Event"
msgstr "Veranstaltung"
-#: project/templates/_macros.html:393 project/templates/_macros.html:978
+#: project/templates/_macros.html:393 project/templates/_macros.html:979
msgid "Date"
msgstr "Datum"
#: project/templates/_macros.html:420 project/templates/_macros.html:579
-#: project/templates/_macros.html:1553 project/templates/event/actions.html:51
+#: project/templates/_macros.html:1554 project/templates/event/actions.html:51
msgid "Share"
msgstr "Teilen"
#: project/templates/_macros.html:424 project/templates/_macros.html:583
-#: project/templates/_macros.html:1583
+#: project/templates/_macros.html:1584
msgid "Add to calendar"
msgstr "Zum Kalender"
@@ -1352,7 +1357,7 @@ msgstr ""
"Die Veranstaltung findet sowohl als Präsenzveranstaltung als auch online "
"statt."
-#: project/templates/_macros.html:587 project/templates/layout.html:168
+#: project/templates/_macros.html:587 project/templates/layout.html:173
#: project/templates/user/favorite_events.html:4
msgid "Favorite events"
msgstr "Merkzettel"
@@ -1360,8 +1365,8 @@ msgstr "Merkzettel"
#: project/templates/_macros.html:590 project/templates/_macros.html:633
#: project/templates/_macros.html:765
#: project/templates/admin/admin_units.html:34
-#: project/templates/admin/users.html:34
-#: project/templates/manage/events.html:100
+#: project/templates/admin/users.html:32
+#: project/templates/manage/events.html:110
#: project/templates/manage/members.html:35
#: project/templates/manage/organizers.html:33
#: project/templates/manage/places.html:31
@@ -1375,9 +1380,9 @@ msgstr "Bearbeiten"
msgid "Referenced by"
msgstr "Empfohlen von"
-#: project/templates/_macros.html:703 project/templates/_macros.html:1296
+#: project/templates/_macros.html:703 project/templates/_macros.html:1297
#: project/templates/event/actions.html:38
-#: project/templates/manage/events.html:107
+#: project/templates/manage/events.html:117
#: project/templates/manage/references_incoming.html:10
msgid "Reference event"
msgstr "Veranstaltung empfehlen"
@@ -1388,9 +1393,9 @@ msgstr "Veranstaltung empfehlen"
msgid "Reference requests"
msgstr "Empfehlungsanfragen"
-#: project/templates/_macros.html:723 project/templates/_macros.html:1293
+#: project/templates/_macros.html:723 project/templates/_macros.html:1294
#: project/templates/event/actions.html:32
-#: project/templates/manage/events.html:105
+#: project/templates/manage/events.html:115
msgid "Request reference"
msgstr "Empfehlung anfragen"
@@ -1404,17 +1409,17 @@ msgstr "Termine"
msgid "Search location on Google"
msgstr "Ort bei Google suchen"
-#: project/templates/_macros.html:895
+#: project/templates/_macros.html:896
#, python-format
msgid "%(count)d event dates"
msgstr "%(count)d Termine"
-#: project/templates/_macros.html:918 project/templates/_macros.html:920
+#: project/templates/_macros.html:919 project/templates/_macros.html:921
#: project/templates/event_date/list.html:321
msgid "First"
msgstr "Letzte"
-#: project/templates/_macros.html:923 project/templates/_macros.html:925
+#: project/templates/_macros.html:924 project/templates/_macros.html:926
#: project/templates/event_date/list.html:322
#: project/templates/widget/event_suggestion/create.html:193
#: project/templates/widget/event_suggestion/create.html:218
@@ -1425,12 +1430,12 @@ msgstr "Letzte"
msgid "Previous"
msgstr "Zurück"
-#: project/templates/_macros.html:927
+#: project/templates/_macros.html:928
#, python-format
msgid "Page %(page)d of %(pages)d (%(total)d total)"
msgstr "Seite %(page)d von %(pages)d (%(total)d insgesamt)"
-#: project/templates/_macros.html:929 project/templates/_macros.html:931
+#: project/templates/_macros.html:930 project/templates/_macros.html:932
#: project/templates/event_date/list.html:324
#: project/templates/widget/event_suggestion/create.html:194
#: project/templates/widget/event_suggestion/create.html:219
@@ -1440,97 +1445,97 @@ msgstr "Seite %(page)d von %(pages)d (%(total)d insgesamt)"
msgid "Next"
msgstr "Weiter"
-#: project/templates/_macros.html:934 project/templates/_macros.html:936
+#: project/templates/_macros.html:935 project/templates/_macros.html:937
#: project/templates/event_date/list.html:325
msgid "Last"
msgstr "Erste"
-#: project/templates/_macros.html:1001
+#: project/templates/_macros.html:1002
msgid "Radius"
msgstr "Umkreis"
-#: project/templates/_macros.html:1215
+#: project/templates/_macros.html:1216
msgid "Edit image"
msgstr "Bild bearbeiten"
-#: project/templates/_macros.html:1236
+#: project/templates/_macros.html:1237
msgid "Close"
msgstr "Schließen"
-#: project/templates/_macros.html:1237
+#: project/templates/_macros.html:1238
msgid "Okay"
msgstr "OK"
-#: project/templates/_macros.html:1249
+#: project/templates/_macros.html:1250
msgid "Choose image file"
msgstr "Bild-Datei auswählen"
-#: project/templates/_macros.html:1285 project/templates/event/actions.html:65
+#: project/templates/_macros.html:1286 project/templates/event/actions.html:65
#: project/templates/event/delete.html:12
msgid "Edit event"
msgstr "Veranstaltung bearbeiten"
-#: project/templates/_macros.html:1289 project/templates/event/actions.html:58
+#: project/templates/_macros.html:1290 project/templates/event/actions.html:58
msgid "Duplicate event"
msgstr "Veranstaltung duplizieren"
-#: project/templates/_macros.html:1300 project/templates/event/actions.html:44
-#: project/templates/manage/events.html:111
+#: project/templates/_macros.html:1301 project/templates/event/actions.html:44
+#: project/templates/manage/events.html:121
msgid "Add to list"
msgstr "Zu Liste hinzufügen"
-#: project/templates/_macros.html:1303 project/templates/manage/events.html:114
+#: project/templates/_macros.html:1304 project/templates/manage/events.html:124
msgid "More"
msgstr "Mehr"
-#: project/templates/_macros.html:1350
+#: project/templates/_macros.html:1351
msgid "Please enter a valid time, between 00:00 and 23:59."
msgstr "Bitte gib eine gültige Uhrzeit zwischen 00:00 und 23:59 ein."
-#: project/templates/_macros.html:1378
+#: project/templates/_macros.html:1379
#, python-format
msgid "Just use %(term)s"
msgstr "Verwende einfach %(term)s"
-#: project/templates/_macros.html:1444
+#: project/templates/_macros.html:1445
msgid "Event suggestion"
msgstr "Veranstaltungsvorschlag"
-#: project/templates/_macros.html:1562
+#: project/templates/_macros.html:1563
msgid "Link copied"
msgstr "Link kopiert"
-#: project/templates/_macros.html:1562
+#: project/templates/_macros.html:1563
msgid "Copy link"
msgstr "Link kopieren"
-#: project/templates/_macros.html:1592
+#: project/templates/_macros.html:1593
msgid "Google calendar"
msgstr "Google Kalender"
-#: project/templates/_macros.html:1594
+#: project/templates/_macros.html:1595
msgid "Apple calendar"
msgstr "Apple Kalender"
-#: project/templates/_macros.html:1595
+#: project/templates/_macros.html:1596
msgid "Yahoo calendar"
msgstr "Yahoo Kalender"
-#: project/templates/_macros.html:1596
+#: project/templates/_macros.html:1597
msgid "Other calendar"
msgstr "Anderer Kalender"
-#: project/templates/_macros.html:1791
+#: project/templates/_macros.html:1802
msgid "Remove event date"
msgstr "Termin entfernen"
-#: project/templates/_macros.html:1820 project/templates/event/create.html:176
+#: project/templates/_macros.html:1831 project/templates/event/create.html:176
#: project/templates/event/update.html:99
#: project/templates/widget/event_suggestion/create.html:129
msgid "Enter organizer"
msgstr "Veranstalter eingeben"
-#: project/templates/_macros.html:1844
+#: project/templates/_macros.html:1855
msgid "Enter list name"
msgstr "Listenname eingeben"
@@ -1538,7 +1543,7 @@ msgstr "Listenname eingeben"
msgid "Manage"
msgstr "Verwaltung"
-#: project/templates/home.html:37 project/templates/layout.html:158
+#: project/templates/home.html:37 project/templates/layout.html:163
#: project/templates/manage/admin_units.html:28
#: project/templates/manage/verification_requests_outgoing.html:13
#: project/templates/security/login_user.html:21
@@ -1550,9 +1555,9 @@ msgstr "Doku"
msgid "Features"
msgstr "Features"
-#: project/templates/layout.html:152 project/templates/layout.html:200
+#: project/templates/layout.html:157 project/templates/layout.html:205
#: project/templates/manage/events.html:6
-#: project/templates/manage/events.html:43
+#: project/templates/manage/events.html:48
#: project/templates/manage/events_vue.html:4
msgid "Events"
msgstr "Veranstaltungen"
@@ -1560,18 +1565,18 @@ msgstr "Veranstaltungen"
#: project/templates/admin/admin.html:19
#: project/templates/admin/admin_units.html:4
#: project/templates/admin/admin_units.html:11
-#: project/templates/layout.html:153 project/templates/layout.html:166
+#: project/templates/layout.html:158 project/templates/layout.html:171
#: project/templates/manage/admin_units.html:3
#: project/templates/manage/admin_units.html:26
#: project/templates/organization/main.html:4
msgid "Organizations"
msgstr "Organisationen"
-#: project/templates/layout.html:154
+#: project/templates/layout.html:159
msgid "Planing"
msgstr "Planung"
-#: project/templates/layout.html:167 project/templates/layout.html:256
+#: project/templates/layout.html:172 project/templates/layout.html:265
#: project/templates/oauth2_client/list.html:10
#: project/templates/oauth2_client/read.html:10
#: project/templates/oauth2_token/list.html:10 project/templates/profile.html:4
@@ -1584,87 +1589,87 @@ msgstr "Profil"
#: project/templates/admin/email.html:65
#: project/templates/admin/newsletter.html:92
#: project/templates/admin/settings.html:10
-#: project/templates/admin/users.html:10 project/templates/layout.html:171
+#: project/templates/admin/users.html:10 project/templates/layout.html:176
msgid "Admin"
msgstr "Administration"
-#: project/templates/layout.html:175
+#: project/templates/layout.html:180
msgid "Logout"
msgstr "Ausloggen"
-#: project/templates/layout.html:206
+#: project/templates/layout.html:211
msgid "Show events"
msgstr "Veranstaltungen anzeigen"
#: project/templates/event/create.html:5
-#: project/templates/event/create.html:221 project/templates/layout.html:207
-#: project/templates/manage/events.html:44
+#: project/templates/event/create.html:221 project/templates/layout.html:212
+#: project/templates/manage/events.html:49
#: project/templates/manage/organizers.html:38
msgid "Create event"
msgstr "Veranstaltung erstellen"
-#: project/templates/layout.html:208
+#: project/templates/layout.html:213
msgid "Import event"
msgstr "Veranstaltung imporierten"
-#: project/templates/layout.html:210
+#: project/templates/layout.html:215
#: project/templates/manage/event_lists.html:4
msgid "Event lists"
msgstr "Veranstaltungslisten"
-#: project/templates/layout.html:213
+#: project/templates/layout.html:218
msgid "Review suggestions"
msgstr "Vorschläge prüfen"
-#: project/templates/layout.html:223
+#: project/templates/layout.html:228
#: project/templates/manage/references_incoming.html:5
#: project/templates/manage/references_outgoing.html:5
msgid "References"
msgstr "Empfehlungen"
-#: project/templates/layout.html:229
+#: project/templates/layout.html:234
#: project/templates/manage/references_incoming.html:9
msgid "Incoming references"
msgstr "Eingehende Empfehlungen"
-#: project/templates/layout.html:230
+#: project/templates/layout.html:235
#: project/templates/manage/references_outgoing.html:9
msgid "Outgoing references"
msgstr "Ausgehende Empfehlungen"
-#: project/templates/layout.html:232
+#: project/templates/layout.html:237
#: project/templates/manage/reference_requests_incoming.html:9
msgid "Incoming reference requests"
msgstr "Eingehende Empfehlungsanfragen"
-#: project/templates/layout.html:237
+#: project/templates/layout.html:242
#: project/templates/manage/reference_requests_outgoing.html:9
msgid "Outgoing reference requests"
msgstr "Ausgehende Empfehlungsanfragen"
-#: project/templates/layout.html:245 project/templates/manage/organizers.html:5
+#: project/templates/layout.html:250 project/templates/manage/organizers.html:5
#: project/templates/manage/organizers.html:10
#: project/templates/organizer/main.html:4
msgid "Organizers"
msgstr "Veranstalter"
#: project/templates/event_place/list.html:3
-#: project/templates/event_place/list.html:7 project/templates/layout.html:246
+#: project/templates/event_place/list.html:7 project/templates/layout.html:251
#: project/templates/manage/places.html:5
#: project/templates/manage/places.html:10
msgid "Places"
msgstr "Orte"
-#: project/templates/layout.html:248 project/templates/manage/members.html:5
+#: project/templates/layout.html:253 project/templates/manage/members.html:5
#: project/templates/manage/members.html:28
msgid "Members"
msgstr "Mitglieder"
-#: project/templates/layout.html:249 project/templates/manage/relations.html:4
+#: project/templates/layout.html:254 project/templates/manage/relations.html:4
msgid "Relations"
msgstr "Beziehungen"
-#: project/templates/layout.html:251
+#: project/templates/layout.html:256
#: project/templates/manage/admin_units.html:17
#: project/templates/manage/organization_invitations.html:4
#: project/templates/user/organization_invitations.html:4
@@ -1676,27 +1681,33 @@ msgstr "Organisationseinladungen"
#: project/templates/admin/settings.html:11
#: project/templates/admin_unit/update.html:6
#: project/templates/admin_unit/update.html:23
-#: project/templates/layout.html:253 project/templates/manage/widgets.html:11
+#: project/templates/layout.html:259 project/templates/manage/widgets.html:11
#: project/templates/manage/widgets.html:15 project/templates/profile.html:19
msgid "Settings"
msgstr "Einstellungen"
-#: project/templates/layout.html:254
+#: project/templates/layout.html:260 project/templates/manage/export.html:4
+#: project/templates/manage/export.html:65
+msgid "Export"
+msgstr "Export"
+
+#: project/templates/layout.html:262
#: project/templates/manage/custom_widgets.html:13
msgid "Custom widgets"
msgstr "Custom widgets"
-#: project/templates/layout.html:255 project/templates/manage/reviews.html:10
+#: project/templates/layout.html:263 project/templates/manage/reviews.html:10
#: project/templates/manage/widgets.html:5
#: project/templates/manage/widgets.html:9
msgid "Widgets"
msgstr "Widgets"
-#: project/templates/layout.html:266
+#: project/templates/layout.html:275
msgid "Switch organization"
msgstr "Organisation wechseln"
-#: project/templates/developer/read.html:4 project/templates/layout.html:310
+#: project/templates/developer/read.html:4
+#: project/templates/developer/read.html:8 project/templates/layout.html:319
#: project/templates/profile.html:33
msgid "Developer"
msgstr "Entwickler"
@@ -1724,7 +1735,7 @@ msgid "Users"
msgstr "Nutzer"
#: project/templates/admin/admin_units.html:33
-#: project/templates/manage/events.html:99
+#: project/templates/manage/events.html:109
#: project/templates/manage/organizers.html:32
#: project/templates/manage/references_incoming.html:19
#: project/templates/manage/references_outgoing.html:19
@@ -1732,8 +1743,8 @@ msgid "View"
msgstr "Anzeigen"
#: project/templates/admin/admin_units.html:35
-#: project/templates/admin/users.html:35
-#: project/templates/manage/events.html:101
+#: project/templates/admin/users.html:33
+#: project/templates/manage/events.html:111
#: project/templates/manage/members.html:21
#: project/templates/manage/members.html:36
#: project/templates/manage/organizers.html:34
@@ -1747,7 +1758,7 @@ msgstr "Löschen"
msgid "User"
msgstr "Nutzer"
-#: project/templates/admin/email.html:47 project/views/admin.py:151
+#: project/templates/admin/email.html:47 project/views/admin.py:155
msgid "Mail sent successfully"
msgstr "Mail erfolgreich gesendet"
@@ -1790,6 +1801,21 @@ msgstr "Nutzer:in einladen"
msgid "Verification requests"
msgstr "Verifizierungsanfragen"
+#: project/templates/developer/read.html:16
+#: project/templates/manage/export.html:67
+msgid "Download"
+msgstr "Download"
+
+#: project/templates/developer/read.html:20
+#: project/templates/manage/export.html:71
+msgid "All data"
+msgstr "Alle Daten"
+
+#: project/templates/developer/read.html:22
+#: project/templates/manage/export.html:73
+msgid "No files available"
+msgstr "Keine Dateien vorhanden"
+
#: project/templates/email/event_report_notice.html:4
msgid "There is a new event report."
msgstr "Es gibt eine neue Meldung zu einer Veranstaltung."
@@ -1922,7 +1948,7 @@ msgstr "Zeige alle Veranstaltungen von %(admin_unit_name)s"
#: project/templates/event/actions.html:74 project/templates/event/read.html:32
#: project/templates/event_date/read.html:34
-#: project/templates/manage/events.html:131
+#: project/templates/manage/events.html:145
msgid "Add event to list"
msgstr "Veranstaltung zu Liste hinzufügen"
@@ -2036,7 +2062,7 @@ msgstr "Organisation einladen"
msgid "Member"
msgstr "Mitglied"
-#: project/templates/manage/events.html:37
+#: project/templates/manage/events.html:42
msgid ""
"The organization is not verified. Events are therefore not publicly "
"visible."
@@ -2044,28 +2070,36 @@ msgstr ""
"Die Organisation ist nicht verifiziert. Veranstaltungen sind daher nicht "
"öffentlich sichtbar."
-#: project/templates/manage/events.html:38
+#: project/templates/manage/events.html:43
msgid "Verify organization"
msgstr "Organisation verifizieren"
-#: project/templates/manage/events.html:76
+#: project/templates/manage/events.html:85
msgid "More filters"
msgstr "Mehr Filter"
-#: project/templates/manage/events.html:89
+#: project/templates/manage/events.html:99
+#: project/templates/manage/events.html:134
msgid "Number of references"
msgstr "Anzahl an Empfehlungen"
-#: project/templates/manage/events.html:89
+#: project/templates/manage/events.html:99
+#: project/templates/manage/events.html:134
msgid "Number of reference requests."
msgstr "Anzahl an Empfehlungsanfragen"
-#: project/templates/manage/events.html:102
+#: project/templates/manage/events.html:112
msgid "Duplicate"
msgstr "Duplizieren"
+#: project/templates/manage/export.html:79
+msgid "Create export files"
+msgstr "Export-Dateien erstellen"
+
#: project/templates/manage/organizers.html:23
+#: project/templates/manage/organizers.html:48
#: project/templates/manage/places.html:22
+#: project/templates/manage/places.html:40
msgid "Number of events"
msgstr "Anzahl an Veranstaltungen"
@@ -2075,6 +2109,7 @@ msgid "View events"
msgstr "Veranstaltungen anzeigen"
#: project/templates/manage/places.html:20
+#: project/templates/manage/places.html:38
msgid "Coordinates"
msgstr "Koordinaten"
@@ -2201,7 +2236,7 @@ msgstr "Angemeldet bleiben"
msgid "You do not have an account yet? Not a problem!"
msgstr "Du hast noch keinen Account? Kein Problem!"
-#: project/templates/security/login_user.html:44 project/views/widget.py:159
+#: project/templates/security/login_user.html:44 project/views/widget.py:155
msgid "Register for free"
msgstr "Kostenlos registrieren"
@@ -2237,30 +2272,30 @@ msgstr "Der eingegebene Name entspricht nicht dem Namen der Organisation"
msgid "Organization successfully deleted"
msgstr "Organisation erfolgreich gelöscht"
-#: project/views/admin.py:111 project/views/manage.py:371
+#: project/views/admin.py:111 project/views/manage.py:443
#: project/views/user.py:28
msgid "Settings successfully updated"
msgstr "Einstellungen erfolgreich aktualisiert"
-#: project/views/admin.py:140
+#: project/views/admin.py:144
#, python-format
msgid "Test mail from %(site_name)s"
msgstr "Test-Mail von %(site_name)s"
-#: project/views/admin.py:179
+#: project/views/admin.py:187
#, python-format
msgid "Newsletter from %(site_name)s"
msgstr "Newsletter von %(site_name)s"
-#: project/views/admin.py:229
+#: project/views/admin.py:237
msgid "User successfully updated"
msgstr "Nutzer erfolgreich aktualisiert"
-#: project/views/admin.py:249
+#: project/views/admin.py:257
msgid "Entered email does not match user email"
msgstr "Die eingegebene Email passt nicht zur Email des Nutzers"
-#: project/views/admin.py:254
+#: project/views/admin.py:262
msgid "User successfully deleted"
msgstr "Nutzer erfolgreich gelöscht"
@@ -2317,27 +2352,27 @@ msgstr "Die eingegebene Email passt nicht zur Email der Einladung"
msgid "Invitation successfully deleted"
msgstr "Einladung erfolgreich gelöscht"
-#: project/views/event.py:184
+#: project/views/event.py:181
msgid "Event successfully published"
msgstr "Veranstaltung erfolgreich veröffentlicht"
-#: project/views/event.py:186
+#: project/views/event.py:183
msgid "Draft successfully saved"
msgstr "Entwurf erfolgreich gespeichert"
-#: project/views/event.py:229
+#: project/views/event.py:226
msgid "Event successfully updated"
msgstr "Veranstaltung erfolgreich aktualisiert"
-#: project/views/event.py:255
+#: project/views/event.py:252
msgid "Event successfully deleted"
msgstr "Veranstaltung erfolgreich gelöscht"
-#: project/views/event.py:407
+#: project/views/event.py:417
msgid "Referenced event changed"
msgstr "Empfohlene Veranstaltung wurde geändert"
-#: project/views/event.py:430
+#: project/views/event.py:440
msgid "New event report"
msgstr "Neue Meldung zu einer Veranstaltung"
@@ -2501,11 +2536,11 @@ msgstr ""
"Die Einladung wurde für einen anderen Nutzer ausgestellt. Melde dich mit "
"der Email-Adresse an, an die die Einladung geschickt wurde."
-#: project/views/widget.py:151
+#: project/views/widget.py:147
msgid "Thank you so much! The event is being verified."
msgstr "Vielen Dank! Die Veranstaltung wird geprüft."
-#: project/views/widget.py:155
+#: project/views/widget.py:151
msgid ""
"For more options and your own calendar of events, you can register for "
"free."
@@ -2513,7 +2548,7 @@ msgstr ""
"Für mehr Optionen und einen eigenen Veranstaltungskalender, kannst du "
"dich kostenlos registrieren."
-#: project/views/widget.py:221
+#: project/views/widget.py:217
msgid "New event review"
msgstr "Neue Veranstaltung zu prüfen"
diff --git a/project/translations/en/LC_MESSAGES/messages.mo b/project/translations/en/LC_MESSAGES/messages.mo
index 118997d2a4e92028f9fc48c71af7f41123aca2d5..e565d2f6c847dc644217e9049d5e9fa58aa834be 100644
GIT binary patch
delta 551
zcmXZZF(^cF9KiA4J@2@?cQ{;Klkw-!Gj
zk33uai9N(Wn8t33yKoqruz)U3qW;Jf>fp1egUq82P)vsZ1@9cTl!VaMFH
z^?lS0j?81!!E2~}=a#>;{I%upQ1@@x`cue@e&7Xl;&=4%8wW7Md9~vh>J`o4ATDA*
zZljM?)DyTtt$ReR`@%l#Z4+_0>Tx_FF6gEcYsGrXy^qF%oSzFugOSQdyc)?@4iYO)
KE~s~S4fhwnGdRxx
delta 548
zcmXZZF)RaN6u|M~&=m?Tsr
zw-_u2u}H+)bYNkUCS^4EKVEXl@80{~`|jQMHS?eOn{3ptMnn!1B0VCKb4AiPg6&vB
zmc+vjT)-qQTYeQgi8nEZyBNo^SwZcuqV^x7)}Nx**Ie=c8bT7oxPd(K
zZgC6yh<`APy%c9~6x+~42WL@#WFB?!CDcJyPzP8~`Tqr5ReP3QJD!n9M5#fy`Lv5BeiV$e#|g0tjKq!eb{
GhVu)JwKwVj
diff --git a/project/translations/en/LC_MESSAGES/messages.po b/project/translations/en/LC_MESSAGES/messages.po
index fec493f..ecf2bd2 100644
--- a/project/translations/en/LC_MESSAGES/messages.po
+++ b/project/translations/en/LC_MESSAGES/messages.po
@@ -7,178 +7,178 @@ msgid ""
msgstr ""
"Project-Id-Version: PROJECT VERSION\n"
"Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
-"POT-Creation-Date: 2023-04-08 13:20+0200\n"
+"POT-Creation-Date: 2023-04-21 12:29+0200\n"
"PO-Revision-Date: 2021-04-30 15:04+0200\n"
"Last-Translator: FULL NAME \n"
"Language: en\n"
"Language-Team: en \n"
-"Plural-Forms: nplurals=2; plural=(n != 1)\n"
+"Plural-Forms: nplurals=2; plural=(n != 1);\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=utf-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"Generated-By: Babel 2.9.1\n"
+"Generated-By: Babel 2.12.1\n"
-#: project/i10n.py:13
+#: project/i10n.py:15
msgid "Event_Art"
msgstr "Art"
-#: project/i10n.py:14
+#: project/i10n.py:16
msgid "Event_Book"
msgstr "Book"
-#: project/i10n.py:15
+#: project/i10n.py:17
msgid "Event_Movie"
msgstr "Movie"
-#: project/i10n.py:16
+#: project/i10n.py:18
msgid "Event_Family"
msgstr "Family"
-#: project/i10n.py:17
+#: project/i10n.py:19
msgid "Event_Festival"
msgstr "Festival"
-#: project/i10n.py:18
+#: project/i10n.py:20
msgid "Event_Religious"
msgstr "Religious"
-#: project/i10n.py:19
+#: project/i10n.py:21
msgid "Event_Shopping"
msgstr "Shopping"
-#: project/i10n.py:20
+#: project/i10n.py:22
msgid "Event_Comedy"
msgstr "Comedy"
-#: project/i10n.py:21
+#: project/i10n.py:23
msgid "Event_Music"
msgstr "Music"
-#: project/i10n.py:22
+#: project/i10n.py:24
msgid "Event_Dance"
msgstr "Dance"
-#: project/i10n.py:23
+#: project/i10n.py:25
msgid "Event_Nightlife"
msgstr "Nightlife"
-#: project/i10n.py:24
+#: project/i10n.py:26
msgid "Event_Theater"
msgstr "Theater"
-#: project/i10n.py:25
+#: project/i10n.py:27
msgid "Event_Dining"
msgstr "Dining"
-#: project/i10n.py:26
+#: project/i10n.py:28
msgid "Event_Conference"
msgstr "Conference"
-#: project/i10n.py:27
+#: project/i10n.py:29
msgid "Event_Meetup"
msgstr "Meetup"
-#: project/i10n.py:28
+#: project/i10n.py:30
msgid "Event_Fitness"
msgstr "Fitness"
-#: project/i10n.py:29
+#: project/i10n.py:31
msgid "Event_Sports"
msgstr "Sports"
-#: project/i10n.py:30
+#: project/i10n.py:32
msgid "Event_Other"
msgstr "Other"
-#: project/i10n.py:31
+#: project/i10n.py:33
msgid "Event_Exhibition"
msgstr "Exhibition"
-#: project/i10n.py:32
+#: project/i10n.py:34
msgid "Event_Culture"
msgstr "Culture"
-#: project/i10n.py:33
+#: project/i10n.py:35
msgid "Event_Tour"
msgstr "Tour"
-#: project/i10n.py:34
+#: project/i10n.py:36
msgid "Event_OpenAir"
msgstr "Open Air"
-#: project/i10n.py:35
+#: project/i10n.py:37
msgid "Event_Stage"
msgstr "Stage"
-#: project/i10n.py:36
+#: project/i10n.py:38
msgid "Event_Lecture"
msgstr "Lecture"
-#: project/i10n.py:37
+#: project/i10n.py:39
msgid "Typical Age range"
msgstr ""
-#: project/i10n.py:38
+#: project/i10n.py:40
msgid "Administrator"
msgstr ""
-#: project/i10n.py:39
+#: project/i10n.py:41
msgid "Event expert"
msgstr ""
-#: project/i10n.py:40
+#: project/i10n.py:42
msgid "EventReviewStatus.inbox"
msgstr "Inbox"
-#: project/i10n.py:41
+#: project/i10n.py:43
msgid "EventReviewStatus.verified"
msgstr "Verified"
-#: project/i10n.py:42
+#: project/i10n.py:44
msgid "EventReviewStatus.rejected"
msgstr "Rejected"
-#: project/i10n.py:43
+#: project/i10n.py:45
msgid "Scope_openid"
msgstr "Verify identity"
-#: project/i10n.py:44
+#: project/i10n.py:46
msgid "Scope_profile"
msgstr "Profile information"
-#: project/i10n.py:45
+#: project/i10n.py:47
msgid "Scope_user:read"
msgstr "Read user settings"
-#: project/i10n.py:46
+#: project/i10n.py:48
msgid "Scope_user:write"
msgstr "Create, update and delete user settings"
-#: project/i10n.py:47
+#: project/i10n.py:49
msgid "Scope_organizer:write"
msgstr "Create, update and delete organizers"
-#: project/i10n.py:48
+#: project/i10n.py:50
msgid "Scope_place:write"
msgstr "Create, update and delete places"
-#: project/i10n.py:49
+#: project/i10n.py:51
msgid "Scope_event:write"
msgstr "Create, update and delete events"
-#: project/i10n.py:50
+#: project/i10n.py:52
msgid "Scope_eventlist:write"
msgstr "Create, update and delete event lists"
-#: project/i10n.py:51
+#: project/i10n.py:53
msgid "Scope_organization:read"
msgstr "Read organizations"
-#: project/i10n.py:52
+#: project/i10n.py:54
msgid "Scope_organization:write"
msgstr "Create, update and delete organizations"
-#: project/i10n.py:53
+#: project/i10n.py:55
msgid "There must be no self-reference."
msgstr ""
@@ -194,30 +194,30 @@ msgstr ""
msgid "message"
msgstr ""
-#: project/api/organization/resources.py:398
+#: project/api/organization/resources.py:401
#: project/views/admin_unit_member_invitation.py:85
msgid "You have received an invitation"
msgstr ""
-#: project/forms/admin.py:11 project/templates/layout.html:294
-#: project/views/root.py:53
+#: project/forms/admin.py:11 project/templates/layout.html:303
+#: project/views/root.py:55
msgid "Terms of service"
msgstr ""
-#: project/forms/admin.py:12 project/templates/layout.html:298
-#: project/views/root.py:61
+#: project/forms/admin.py:12 project/templates/layout.html:307
+#: project/views/root.py:63
msgid "Legal notice"
msgstr ""
-#: project/forms/admin.py:13 project/templates/_macros.html:1472
-#: project/templates/layout.html:302
+#: project/forms/admin.py:13 project/templates/_macros.html:1473
+#: project/templates/layout.html:311
#: project/templates/widget/event_suggestion/create.html:204
-#: project/views/admin_unit.py:73 project/views/root.py:69
+#: project/views/admin_unit.py:73 project/views/root.py:71
msgid "Contact"
msgstr ""
-#: project/forms/admin.py:14 project/templates/layout.html:306
-#: project/views/root.py:77
+#: project/forms/admin.py:14 project/templates/layout.html:315
+#: project/views/root.py:79
msgid "Privacy"
msgstr ""
@@ -244,11 +244,11 @@ msgstr ""
msgid "Delete user"
msgstr ""
-#: project/forms/admin.py:27 project/forms/admin_unit.py:48
+#: project/forms/admin.py:27 project/forms/admin_unit.py:47
#: project/forms/admin_unit_member.py:11 project/forms/admin_unit_member.py:23
#: project/forms/admin_unit_member.py:28 project/forms/event.py:107
#: project/forms/event_suggestion.py:38 project/forms/organizer.py:27
-#: project/templates/_macros.html:237 project/templates/_macros.html:1568
+#: project/templates/_macros.html:237 project/templates/_macros.html:1569
#: project/templates/admin/admin.html:27 project/templates/admin/email.html:4
#: project/templates/admin/email.html:66 project/templates/admin/users.html:19
#: project/templates/manage/organizers.html:21
@@ -306,7 +306,7 @@ msgstr ""
msgid "Delete organization"
msgstr ""
-#: project/forms/admin.py:69 project/forms/admin_unit.py:29
+#: project/forms/admin.py:69 project/forms/admin_unit.py:28
#: project/forms/event.py:85 project/forms/event.py:114
#: project/forms/event_place.py:25 project/forms/event_place.py:50
#: project/forms/event_suggestion.py:26 project/forms/oauth2_client.py:66
@@ -344,130 +344,131 @@ msgstr ""
msgid "Send newsletter"
msgstr ""
-#: project/forms/admin_unit.py:15 project/forms/event_place.py:12
+#: project/forms/admin_unit.py:14 project/forms/event_place.py:12
#: project/forms/organizer.py:12
msgid "Street"
msgstr ""
-#: project/forms/admin_unit.py:16 project/forms/event_place.py:13
-#: project/forms/organizer.py:13
+#: project/forms/admin_unit.py:15 project/forms/event.py:453
+#: project/forms/event_place.py:13 project/forms/organizer.py:13
msgid "Postal code"
msgstr ""
-#: project/forms/admin_unit.py:17 project/forms/event_place.py:14
+#: project/forms/admin_unit.py:16 project/forms/event_place.py:14
#: project/forms/organizer.py:14
msgid "City"
msgstr ""
-#: project/forms/admin_unit.py:18 project/forms/event_place.py:15
+#: project/forms/admin_unit.py:17 project/forms/event_place.py:15
#: project/forms/organizer.py:15
msgid "State"
msgstr ""
-#: project/forms/admin_unit.py:20 project/forms/event_place.py:17
+#: project/forms/admin_unit.py:19 project/forms/event_place.py:17
#: project/forms/organizer.py:17
msgid "Latitude"
msgstr ""
-#: project/forms/admin_unit.py:23 project/forms/event_place.py:20
+#: project/forms/admin_unit.py:22 project/forms/event_place.py:20
#: project/forms/organizer.py:20
msgid "Longitude"
msgstr ""
-#: project/forms/admin_unit.py:32
+#: project/forms/admin_unit.py:31
msgid "Short name"
msgstr ""
-#: project/forms/admin_unit.py:33
+#: project/forms/admin_unit.py:32
msgid "The short name is used to create a unique identifier for your events"
msgstr ""
-#: project/forms/admin_unit.py:41 project/templates/_macros.html:1610
+#: project/forms/admin_unit.py:40 project/templates/_macros.html:1611
msgid "Short name must contain only letters numbers or underscore"
msgstr ""
-#: project/forms/admin_unit.py:47 project/forms/event.py:106
+#: project/forms/admin_unit.py:46 project/forms/event.py:106
#: project/forms/event.py:124 project/forms/event_place.py:26
#: project/forms/organizer.py:26 project/templates/manage/organizers.html:21
msgid "Link URL"
msgstr ""
-#: project/forms/admin_unit.py:49 project/forms/event.py:108
+#: project/forms/admin_unit.py:48 project/forms/event.py:108
#: project/forms/event_suggestion.py:31 project/forms/organizer.py:28
#: project/templates/_macros.html:290
#: project/templates/manage/organizers.html:20
msgid "Phone"
msgstr ""
-#: project/forms/admin_unit.py:50 project/forms/event.py:109
+#: project/forms/admin_unit.py:49 project/forms/event.py:109
#: project/forms/organizer.py:29 project/templates/_macros.html:298
msgid "Fax"
msgstr ""
-#: project/forms/admin_unit.py:51 project/forms/organizer.py:30
+#: project/forms/admin_unit.py:50 project/forms/organizer.py:30
#: project/templates/manage/organizers.html:22
+#: project/templates/manage/organizers.html:47
msgid "Logo"
msgstr ""
-#: project/forms/admin_unit.py:55
+#: project/forms/admin_unit.py:54
msgid "Allow verification requests"
msgstr ""
-#: project/forms/admin_unit.py:56
+#: project/forms/admin_unit.py:55
msgid "If set, unverified organizations may ask you for verification."
msgstr ""
-#: project/forms/admin_unit.py:62
+#: project/forms/admin_unit.py:61
msgid "Verification requests information"
msgstr ""
-#: project/forms/admin_unit.py:64
+#: project/forms/admin_unit.py:63
msgid ""
"This text is shown to unverified organizations to help them decide "
"whether they ask you for verification."
msgstr ""
-#: project/forms/admin_unit.py:80
+#: project/forms/admin_unit.py:79
msgid "Verify new organization"
msgstr ""
-#: project/forms/admin_unit.py:81
+#: project/forms/admin_unit.py:80
msgid "If set, events of the new organization are publicly visible."
msgstr ""
-#: project/forms/admin_unit.py:87 project/forms/reference_request.py:86
+#: project/forms/admin_unit.py:86 project/forms/reference_request.py:86
msgid "Verify reference requests automatically"
msgstr ""
-#: project/forms/admin_unit.py:88
+#: project/forms/admin_unit.py:87
msgid ""
"If set, all upcoming reference requests of the new organization are "
"verified automatically."
msgstr ""
-#: project/forms/admin_unit.py:99 project/templates/admin_unit/create.html:5
+#: project/forms/admin_unit.py:98 project/templates/admin_unit/create.html:5
#: project/templates/admin_unit/create.html:22
#: project/templates/manage/admin_units.html:32
msgid "Create organization"
msgstr ""
-#: project/forms/admin_unit.py:107 project/forms/admin_unit.py:130
+#: project/forms/admin_unit.py:106 project/forms/admin_unit.py:129
msgid "Update settings"
msgstr ""
-#: project/forms/admin_unit.py:111
+#: project/forms/admin_unit.py:110
msgid "Font"
msgstr ""
-#: project/forms/admin_unit.py:113
+#: project/forms/admin_unit.py:112
msgid "Background Color"
msgstr ""
-#: project/forms/admin_unit.py:119
+#: project/forms/admin_unit.py:118
msgid "Primary Color"
msgstr ""
-#: project/forms/admin_unit.py:125
+#: project/forms/admin_unit.py:124
msgid "Link Color"
msgstr ""
@@ -577,7 +578,7 @@ msgstr ""
msgid "100 km"
msgstr ""
-#: project/forms/event.py:38 project/templates/manage/events.html:85
+#: project/forms/event.py:38 project/templates/manage/events.html:94
msgid "Start"
msgstr ""
@@ -599,16 +600,16 @@ msgstr ""
msgid "All-day"
msgstr ""
-#: project/forms/event.py:54 project/templates/_macros.html:1790
+#: project/forms/event.py:54 project/templates/_macros.html:1801
#: project/templates/widget/event_suggestion/create.html:240
msgid "Recurring event"
msgstr ""
-#: project/forms/event.py:61 project/templates/_macros.html:1329
+#: project/forms/event.py:61 project/templates/_macros.html:1330
msgid "The start must be before the end."
msgstr ""
-#: project/forms/event.py:67 project/templates/_macros.html:1346
+#: project/forms/event.py:67 project/templates/_macros.html:1347
msgid "An event can last a maximum of 14 days."
msgstr ""
@@ -693,7 +694,7 @@ msgid "If the participants needs to register for the event."
msgstr ""
#: project/forms/event.py:170 project/templates/_macros.html:251
-#: project/templates/layout.html:110
+#: project/templates/layout.html:115
msgid "Booked up"
msgstr ""
@@ -749,11 +750,11 @@ msgstr ""
msgid "EventAttendanceMode.offline"
msgstr "Normal (Offline)"
-#: project/forms/event.py:217 project/templates/layout.html:98
+#: project/forms/event.py:217 project/templates/layout.html:103
msgid "EventAttendanceMode.online"
msgstr "Online"
-#: project/forms/event.py:219 project/templates/layout.html:101
+#: project/forms/event.py:219 project/templates/layout.html:106
msgid "EventAttendanceMode.mixed"
msgstr "Online and offline"
@@ -762,7 +763,10 @@ msgid "Choose how people can attend the event."
msgstr ""
#: project/forms/event.py:225 project/forms/event_place.py:27
+#: project/templates/manage/events.html:98
+#: project/templates/manage/events.html:133
#: project/templates/manage/places.html:21
+#: project/templates/manage/places.html:39
#: project/templates/widget/event_suggestion/create.html:258
msgid "Photo"
msgstr ""
@@ -826,7 +830,7 @@ msgstr ""
#: project/templates/event_place/create.html:31
#: project/templates/event_place/delete.html:13
#: project/templates/event_place/update.html:31
-#: project/templates/manage/events.html:88
+#: project/templates/manage/events.html:97
msgid "Place"
msgstr ""
@@ -843,7 +847,7 @@ msgstr ""
#: project/forms/event_suggestion.py:60 project/templates/_macros.html:475
#: project/templates/_macros.html:647 project/templates/event/create.html:253
#: project/templates/event/update.html:156
-#: project/templates/manage/events.html:87
+#: project/templates/manage/events.html:96
#: project/templates/organizer/create.html:27
#: project/templates/organizer/delete.html:13
#: project/templates/organizer/update.html:27
@@ -895,23 +899,23 @@ msgstr ""
msgid "EventStatus.scheduled"
msgstr "Scheduled"
-#: project/forms/event.py:389 project/templates/layout.html:64
-#: project/templates/layout.html:79
+#: project/forms/event.py:389 project/templates/layout.html:69
+#: project/templates/layout.html:84
msgid "EventStatus.cancelled"
msgstr "Cancelled"
-#: project/forms/event.py:390 project/templates/layout.html:67
-#: project/templates/layout.html:82
+#: project/forms/event.py:390 project/templates/layout.html:72
+#: project/templates/layout.html:87
msgid "EventStatus.movedOnline"
msgstr "Moved online"
-#: project/forms/event.py:391 project/templates/layout.html:70
-#: project/templates/layout.html:85
+#: project/forms/event.py:391 project/templates/layout.html:75
+#: project/templates/layout.html:90
msgid "EventStatus.postponed"
msgstr "Postponed"
-#: project/forms/event.py:392 project/templates/layout.html:73
-#: project/templates/layout.html:88
+#: project/forms/event.py:392 project/templates/layout.html:78
+#: project/templates/layout.html:93
msgid "EventStatus.rescheduled"
msgstr "Rescheduled"
@@ -940,7 +944,7 @@ msgstr ""
msgid "Update event"
msgstr ""
-#: project/forms/event.py:423 project/templates/_macros.html:1286
+#: project/forms/event.py:423 project/templates/_macros.html:1287
#: project/templates/event/actions.html:66
#: project/templates/event/delete.html:6
msgid "Delete event"
@@ -965,12 +969,8 @@ msgstr ""
msgid "Category"
msgstr ""
-#: project/forms/event.py:445
-msgid "Find events"
-msgstr ""
-
-#: project/forms/event_date.py:24 project/forms/planing.py:22
-#: project/templates/_macros.html:305
+#: project/forms/event.py:446 project/forms/event_date.py:24
+#: project/forms/planing.py:22 project/templates/_macros.html:305
#: project/templates/admin_unit/create.html:38
#: project/templates/admin_unit/update.html:39
#: project/templates/event_place/create.html:40
@@ -982,10 +982,15 @@ msgstr ""
msgid "Location"
msgstr ""
-#: project/forms/event_date.py:26 project/forms/planing.py:24
+#: project/forms/event.py:448 project/forms/event_date.py:26
+#: project/forms/planing.py:24
msgid "Distance"
msgstr ""
+#: project/forms/event.py:455
+msgid "Find events"
+msgstr ""
+
#: project/forms/event_date.py:39 project/forms/planing.py:36
#: project/templates/widget/event_date/list.html:82
msgid "Find"
@@ -1119,7 +1124,7 @@ msgstr ""
#: project/templates/admin/delete_admin_unit.html:13
#: project/templates/admin_unit/create.html:28
#: project/templates/admin_unit/update.html:29
-#: project/templates/layout.html:242
+#: project/templates/layout.html:247
msgid "Organization"
msgstr ""
@@ -1144,7 +1149,7 @@ msgstr ""
msgid "Delete request"
msgstr ""
-#: project/forms/reference_request.py:28 project/templates/_macros.html:1484
+#: project/forms/reference_request.py:28 project/templates/_macros.html:1485
#: project/templates/event_suggestion/review_status.html:18
#: project/templates/reference_request/review_status.html:12
msgid "Review status"
@@ -1201,7 +1206,7 @@ msgstr ""
"entered it, an email will be sent to you so that you can confirm that the"
" email address belongs to you."
-#: project/forms/security.py:43
+#: project/forms/security.py:47
msgid "login_confirmation_required"
msgstr ""
"Note that you will need to confirm your email address. Confirmation "
@@ -1209,11 +1214,11 @@ msgstr ""
"Please note that it may take a few minutes for the email to reach you. To"
" be on the safe side, also check the spam folder."
-#: project/forms/security.py:53
+#: project/forms/security.py:57
msgid "Allow"
msgstr ""
-#: project/forms/security.py:54
+#: project/forms/security.py:58
msgid "Deny"
msgstr ""
@@ -1227,7 +1232,7 @@ msgstr ""
msgid "Information about new features and improvements."
msgstr ""
-#: project/forms/widgets.py:154
+#: project/forms/widgets.py:155
msgid "This field is required."
msgstr ""
@@ -1267,22 +1272,22 @@ msgstr ""
#: project/templates/event/actions.html:25
#: project/templates/event/create.html:230
#: project/templates/event/update.html:122
-#: project/templates/manage/events.html:86
+#: project/templates/manage/events.html:95
#: project/templates/widget/event_suggestion/create.html:229
msgid "Event"
msgstr ""
-#: project/templates/_macros.html:393 project/templates/_macros.html:978
+#: project/templates/_macros.html:393 project/templates/_macros.html:979
msgid "Date"
msgstr ""
#: project/templates/_macros.html:420 project/templates/_macros.html:579
-#: project/templates/_macros.html:1553 project/templates/event/actions.html:51
+#: project/templates/_macros.html:1554 project/templates/event/actions.html:51
msgid "Share"
msgstr ""
#: project/templates/_macros.html:424 project/templates/_macros.html:583
-#: project/templates/_macros.html:1583
+#: project/templates/_macros.html:1584
msgid "Add to calendar"
msgstr ""
@@ -1303,7 +1308,7 @@ msgstr ""
msgid "The event takes place both offline and online."
msgstr ""
-#: project/templates/_macros.html:587 project/templates/layout.html:168
+#: project/templates/_macros.html:587 project/templates/layout.html:173
#: project/templates/user/favorite_events.html:4
msgid "Favorite events"
msgstr ""
@@ -1311,8 +1316,8 @@ msgstr ""
#: project/templates/_macros.html:590 project/templates/_macros.html:633
#: project/templates/_macros.html:765
#: project/templates/admin/admin_units.html:34
-#: project/templates/admin/users.html:34
-#: project/templates/manage/events.html:100
+#: project/templates/admin/users.html:32
+#: project/templates/manage/events.html:110
#: project/templates/manage/members.html:35
#: project/templates/manage/organizers.html:33
#: project/templates/manage/places.html:31
@@ -1326,9 +1331,9 @@ msgstr ""
msgid "Referenced by"
msgstr ""
-#: project/templates/_macros.html:703 project/templates/_macros.html:1296
+#: project/templates/_macros.html:703 project/templates/_macros.html:1297
#: project/templates/event/actions.html:38
-#: project/templates/manage/events.html:107
+#: project/templates/manage/events.html:117
#: project/templates/manage/references_incoming.html:10
msgid "Reference event"
msgstr ""
@@ -1339,9 +1344,9 @@ msgstr ""
msgid "Reference requests"
msgstr ""
-#: project/templates/_macros.html:723 project/templates/_macros.html:1293
+#: project/templates/_macros.html:723 project/templates/_macros.html:1294
#: project/templates/event/actions.html:32
-#: project/templates/manage/events.html:105
+#: project/templates/manage/events.html:115
msgid "Request reference"
msgstr ""
@@ -1355,17 +1360,17 @@ msgstr ""
msgid "Search location on Google"
msgstr ""
-#: project/templates/_macros.html:895
+#: project/templates/_macros.html:896
#, python-format
msgid "%(count)d event dates"
msgstr ""
-#: project/templates/_macros.html:918 project/templates/_macros.html:920
+#: project/templates/_macros.html:919 project/templates/_macros.html:921
#: project/templates/event_date/list.html:321
msgid "First"
msgstr ""
-#: project/templates/_macros.html:923 project/templates/_macros.html:925
+#: project/templates/_macros.html:924 project/templates/_macros.html:926
#: project/templates/event_date/list.html:322
#: project/templates/widget/event_suggestion/create.html:193
#: project/templates/widget/event_suggestion/create.html:218
@@ -1376,12 +1381,12 @@ msgstr ""
msgid "Previous"
msgstr ""
-#: project/templates/_macros.html:927
+#: project/templates/_macros.html:928
#, python-format
msgid "Page %(page)d of %(pages)d (%(total)d total)"
msgstr ""
-#: project/templates/_macros.html:929 project/templates/_macros.html:931
+#: project/templates/_macros.html:930 project/templates/_macros.html:932
#: project/templates/event_date/list.html:324
#: project/templates/widget/event_suggestion/create.html:194
#: project/templates/widget/event_suggestion/create.html:219
@@ -1391,97 +1396,97 @@ msgstr ""
msgid "Next"
msgstr ""
-#: project/templates/_macros.html:934 project/templates/_macros.html:936
+#: project/templates/_macros.html:935 project/templates/_macros.html:937
#: project/templates/event_date/list.html:325
msgid "Last"
msgstr ""
-#: project/templates/_macros.html:1001
+#: project/templates/_macros.html:1002
msgid "Radius"
msgstr ""
-#: project/templates/_macros.html:1215
+#: project/templates/_macros.html:1216
msgid "Edit image"
msgstr ""
-#: project/templates/_macros.html:1236
+#: project/templates/_macros.html:1237
msgid "Close"
msgstr ""
-#: project/templates/_macros.html:1237
+#: project/templates/_macros.html:1238
msgid "Okay"
msgstr ""
-#: project/templates/_macros.html:1249
+#: project/templates/_macros.html:1250
msgid "Choose image file"
msgstr ""
-#: project/templates/_macros.html:1285 project/templates/event/actions.html:65
+#: project/templates/_macros.html:1286 project/templates/event/actions.html:65
#: project/templates/event/delete.html:12
msgid "Edit event"
msgstr ""
-#: project/templates/_macros.html:1289 project/templates/event/actions.html:58
+#: project/templates/_macros.html:1290 project/templates/event/actions.html:58
msgid "Duplicate event"
msgstr ""
-#: project/templates/_macros.html:1300 project/templates/event/actions.html:44
-#: project/templates/manage/events.html:111
+#: project/templates/_macros.html:1301 project/templates/event/actions.html:44
+#: project/templates/manage/events.html:121
msgid "Add to list"
msgstr ""
-#: project/templates/_macros.html:1303 project/templates/manage/events.html:114
+#: project/templates/_macros.html:1304 project/templates/manage/events.html:124
msgid "More"
msgstr ""
-#: project/templates/_macros.html:1350
+#: project/templates/_macros.html:1351
msgid "Please enter a valid time, between 00:00 and 23:59."
msgstr ""
-#: project/templates/_macros.html:1378
+#: project/templates/_macros.html:1379
#, python-format
msgid "Just use %(term)s"
msgstr ""
-#: project/templates/_macros.html:1444
+#: project/templates/_macros.html:1445
msgid "Event suggestion"
msgstr ""
-#: project/templates/_macros.html:1562
+#: project/templates/_macros.html:1563
msgid "Link copied"
msgstr ""
-#: project/templates/_macros.html:1562
+#: project/templates/_macros.html:1563
msgid "Copy link"
msgstr ""
-#: project/templates/_macros.html:1592
+#: project/templates/_macros.html:1593
msgid "Google calendar"
msgstr ""
-#: project/templates/_macros.html:1594
+#: project/templates/_macros.html:1595
msgid "Apple calendar"
msgstr ""
-#: project/templates/_macros.html:1595
+#: project/templates/_macros.html:1596
msgid "Yahoo calendar"
msgstr ""
-#: project/templates/_macros.html:1596
+#: project/templates/_macros.html:1597
msgid "Other calendar"
msgstr ""
-#: project/templates/_macros.html:1791
+#: project/templates/_macros.html:1802
msgid "Remove event date"
msgstr ""
-#: project/templates/_macros.html:1820 project/templates/event/create.html:176
+#: project/templates/_macros.html:1831 project/templates/event/create.html:176
#: project/templates/event/update.html:99
#: project/templates/widget/event_suggestion/create.html:129
msgid "Enter organizer"
msgstr ""
-#: project/templates/_macros.html:1844
+#: project/templates/_macros.html:1855
msgid "Enter list name"
msgstr ""
@@ -1489,7 +1494,7 @@ msgstr ""
msgid "Manage"
msgstr ""
-#: project/templates/home.html:37 project/templates/layout.html:158
+#: project/templates/home.html:37 project/templates/layout.html:163
#: project/templates/manage/admin_units.html:28
#: project/templates/manage/verification_requests_outgoing.html:13
#: project/templates/security/login_user.html:21
@@ -1501,9 +1506,9 @@ msgstr ""
msgid "Features"
msgstr ""
-#: project/templates/layout.html:152 project/templates/layout.html:200
+#: project/templates/layout.html:157 project/templates/layout.html:205
#: project/templates/manage/events.html:6
-#: project/templates/manage/events.html:43
+#: project/templates/manage/events.html:48
#: project/templates/manage/events_vue.html:4
msgid "Events"
msgstr ""
@@ -1511,18 +1516,18 @@ msgstr ""
#: project/templates/admin/admin.html:19
#: project/templates/admin/admin_units.html:4
#: project/templates/admin/admin_units.html:11
-#: project/templates/layout.html:153 project/templates/layout.html:166
+#: project/templates/layout.html:158 project/templates/layout.html:171
#: project/templates/manage/admin_units.html:3
#: project/templates/manage/admin_units.html:26
#: project/templates/organization/main.html:4
msgid "Organizations"
msgstr ""
-#: project/templates/layout.html:154
+#: project/templates/layout.html:159
msgid "Planing"
msgstr ""
-#: project/templates/layout.html:167 project/templates/layout.html:256
+#: project/templates/layout.html:172 project/templates/layout.html:265
#: project/templates/oauth2_client/list.html:10
#: project/templates/oauth2_client/read.html:10
#: project/templates/oauth2_token/list.html:10 project/templates/profile.html:4
@@ -1535,87 +1540,87 @@ msgstr ""
#: project/templates/admin/email.html:65
#: project/templates/admin/newsletter.html:92
#: project/templates/admin/settings.html:10
-#: project/templates/admin/users.html:10 project/templates/layout.html:171
+#: project/templates/admin/users.html:10 project/templates/layout.html:176
msgid "Admin"
msgstr ""
-#: project/templates/layout.html:175
+#: project/templates/layout.html:180
msgid "Logout"
msgstr ""
-#: project/templates/layout.html:206
+#: project/templates/layout.html:211
msgid "Show events"
msgstr ""
#: project/templates/event/create.html:5
-#: project/templates/event/create.html:221 project/templates/layout.html:207
-#: project/templates/manage/events.html:44
+#: project/templates/event/create.html:221 project/templates/layout.html:212
+#: project/templates/manage/events.html:49
#: project/templates/manage/organizers.html:38
msgid "Create event"
msgstr ""
-#: project/templates/layout.html:208
+#: project/templates/layout.html:213
msgid "Import event"
msgstr ""
-#: project/templates/layout.html:210
+#: project/templates/layout.html:215
#: project/templates/manage/event_lists.html:4
msgid "Event lists"
msgstr ""
-#: project/templates/layout.html:213
+#: project/templates/layout.html:218
msgid "Review suggestions"
msgstr ""
-#: project/templates/layout.html:223
+#: project/templates/layout.html:228
#: project/templates/manage/references_incoming.html:5
#: project/templates/manage/references_outgoing.html:5
msgid "References"
msgstr ""
-#: project/templates/layout.html:229
+#: project/templates/layout.html:234
#: project/templates/manage/references_incoming.html:9
msgid "Incoming references"
msgstr ""
-#: project/templates/layout.html:230
+#: project/templates/layout.html:235
#: project/templates/manage/references_outgoing.html:9
msgid "Outgoing references"
msgstr ""
-#: project/templates/layout.html:232
+#: project/templates/layout.html:237
#: project/templates/manage/reference_requests_incoming.html:9
msgid "Incoming reference requests"
msgstr ""
-#: project/templates/layout.html:237
+#: project/templates/layout.html:242
#: project/templates/manage/reference_requests_outgoing.html:9
msgid "Outgoing reference requests"
msgstr ""
-#: project/templates/layout.html:245 project/templates/manage/organizers.html:5
+#: project/templates/layout.html:250 project/templates/manage/organizers.html:5
#: project/templates/manage/organizers.html:10
#: project/templates/organizer/main.html:4
msgid "Organizers"
msgstr ""
#: project/templates/event_place/list.html:3
-#: project/templates/event_place/list.html:7 project/templates/layout.html:246
+#: project/templates/event_place/list.html:7 project/templates/layout.html:251
#: project/templates/manage/places.html:5
#: project/templates/manage/places.html:10
msgid "Places"
msgstr ""
-#: project/templates/layout.html:248 project/templates/manage/members.html:5
+#: project/templates/layout.html:253 project/templates/manage/members.html:5
#: project/templates/manage/members.html:28
msgid "Members"
msgstr ""
-#: project/templates/layout.html:249 project/templates/manage/relations.html:4
+#: project/templates/layout.html:254 project/templates/manage/relations.html:4
msgid "Relations"
msgstr ""
-#: project/templates/layout.html:251
+#: project/templates/layout.html:256
#: project/templates/manage/admin_units.html:17
#: project/templates/manage/organization_invitations.html:4
#: project/templates/user/organization_invitations.html:4
@@ -1627,27 +1632,33 @@ msgstr ""
#: project/templates/admin/settings.html:11
#: project/templates/admin_unit/update.html:6
#: project/templates/admin_unit/update.html:23
-#: project/templates/layout.html:253 project/templates/manage/widgets.html:11
+#: project/templates/layout.html:259 project/templates/manage/widgets.html:11
#: project/templates/manage/widgets.html:15 project/templates/profile.html:19
msgid "Settings"
msgstr ""
-#: project/templates/layout.html:254
+#: project/templates/layout.html:260 project/templates/manage/export.html:4
+#: project/templates/manage/export.html:65
+msgid "Export"
+msgstr ""
+
+#: project/templates/layout.html:262
#: project/templates/manage/custom_widgets.html:13
msgid "Custom widgets"
msgstr ""
-#: project/templates/layout.html:255 project/templates/manage/reviews.html:10
+#: project/templates/layout.html:263 project/templates/manage/reviews.html:10
#: project/templates/manage/widgets.html:5
#: project/templates/manage/widgets.html:9
msgid "Widgets"
msgstr ""
-#: project/templates/layout.html:266
+#: project/templates/layout.html:275
msgid "Switch organization"
msgstr ""
-#: project/templates/developer/read.html:4 project/templates/layout.html:310
+#: project/templates/developer/read.html:4
+#: project/templates/developer/read.html:8 project/templates/layout.html:319
#: project/templates/profile.html:33
msgid "Developer"
msgstr ""
@@ -1675,7 +1686,7 @@ msgid "Users"
msgstr ""
#: project/templates/admin/admin_units.html:33
-#: project/templates/manage/events.html:99
+#: project/templates/manage/events.html:109
#: project/templates/manage/organizers.html:32
#: project/templates/manage/references_incoming.html:19
#: project/templates/manage/references_outgoing.html:19
@@ -1683,8 +1694,8 @@ msgid "View"
msgstr ""
#: project/templates/admin/admin_units.html:35
-#: project/templates/admin/users.html:35
-#: project/templates/manage/events.html:101
+#: project/templates/admin/users.html:33
+#: project/templates/manage/events.html:111
#: project/templates/manage/members.html:21
#: project/templates/manage/members.html:36
#: project/templates/manage/organizers.html:34
@@ -1698,7 +1709,7 @@ msgstr ""
msgid "User"
msgstr ""
-#: project/templates/admin/email.html:47 project/views/admin.py:151
+#: project/templates/admin/email.html:47 project/views/admin.py:155
msgid "Mail sent successfully"
msgstr ""
@@ -1741,6 +1752,21 @@ msgstr ""
msgid "Verification requests"
msgstr ""
+#: project/templates/developer/read.html:16
+#: project/templates/manage/export.html:67
+msgid "Download"
+msgstr ""
+
+#: project/templates/developer/read.html:20
+#: project/templates/manage/export.html:71
+msgid "All data"
+msgstr ""
+
+#: project/templates/developer/read.html:22
+#: project/templates/manage/export.html:73
+msgid "No files available"
+msgstr ""
+
#: project/templates/email/event_report_notice.html:4
msgid "There is a new event report."
msgstr ""
@@ -1869,7 +1895,7 @@ msgstr ""
#: project/templates/event/actions.html:74 project/templates/event/read.html:32
#: project/templates/event_date/read.html:34
-#: project/templates/manage/events.html:131
+#: project/templates/manage/events.html:145
msgid "Add event to list"
msgstr ""
@@ -1980,34 +2006,42 @@ msgstr ""
msgid "Member"
msgstr ""
-#: project/templates/manage/events.html:37
+#: project/templates/manage/events.html:42
msgid ""
"The organization is not verified. Events are therefore not publicly "
"visible."
msgstr ""
-#: project/templates/manage/events.html:38
+#: project/templates/manage/events.html:43
msgid "Verify organization"
msgstr ""
-#: project/templates/manage/events.html:76
+#: project/templates/manage/events.html:85
msgid "More filters"
msgstr ""
-#: project/templates/manage/events.html:89
+#: project/templates/manage/events.html:99
+#: project/templates/manage/events.html:134
msgid "Number of references"
msgstr ""
-#: project/templates/manage/events.html:89
+#: project/templates/manage/events.html:99
+#: project/templates/manage/events.html:134
msgid "Number of reference requests."
msgstr ""
-#: project/templates/manage/events.html:102
+#: project/templates/manage/events.html:112
msgid "Duplicate"
msgstr ""
+#: project/templates/manage/export.html:79
+msgid "Create export files"
+msgstr ""
+
#: project/templates/manage/organizers.html:23
+#: project/templates/manage/organizers.html:48
#: project/templates/manage/places.html:22
+#: project/templates/manage/places.html:40
msgid "Number of events"
msgstr ""
@@ -2017,6 +2051,7 @@ msgid "View events"
msgstr ""
#: project/templates/manage/places.html:20
+#: project/templates/manage/places.html:38
msgid "Coordinates"
msgstr ""
@@ -2141,7 +2176,7 @@ msgstr ""
msgid "You do not have an account yet? Not a problem!"
msgstr ""
-#: project/templates/security/login_user.html:44 project/views/widget.py:159
+#: project/templates/security/login_user.html:44 project/views/widget.py:155
msgid "Register for free"
msgstr ""
@@ -2177,30 +2212,30 @@ msgstr ""
msgid "Organization successfully deleted"
msgstr ""
-#: project/views/admin.py:111 project/views/manage.py:371
+#: project/views/admin.py:111 project/views/manage.py:443
#: project/views/user.py:28
msgid "Settings successfully updated"
msgstr ""
-#: project/views/admin.py:140
+#: project/views/admin.py:144
#, python-format
msgid "Test mail from %(site_name)s"
msgstr ""
-#: project/views/admin.py:179
+#: project/views/admin.py:187
#, python-format
msgid "Newsletter from %(site_name)s"
msgstr ""
-#: project/views/admin.py:229
+#: project/views/admin.py:237
msgid "User successfully updated"
msgstr ""
-#: project/views/admin.py:249
+#: project/views/admin.py:257
msgid "Entered email does not match user email"
msgstr ""
-#: project/views/admin.py:254
+#: project/views/admin.py:262
msgid "User successfully deleted"
msgstr ""
@@ -2254,27 +2289,27 @@ msgstr ""
msgid "Invitation successfully deleted"
msgstr ""
-#: project/views/event.py:184
+#: project/views/event.py:181
msgid "Event successfully published"
msgstr ""
-#: project/views/event.py:186
+#: project/views/event.py:183
msgid "Draft successfully saved"
msgstr ""
-#: project/views/event.py:229
+#: project/views/event.py:226
msgid "Event successfully updated"
msgstr ""
-#: project/views/event.py:255
+#: project/views/event.py:252
msgid "Event successfully deleted"
msgstr ""
-#: project/views/event.py:407
+#: project/views/event.py:417
msgid "Referenced event changed"
msgstr ""
-#: project/views/event.py:430
+#: project/views/event.py:440
msgid "New event report"
msgstr ""
@@ -2430,17 +2465,17 @@ msgid ""
" the invitation was sent to."
msgstr ""
-#: project/views/widget.py:151
+#: project/views/widget.py:147
msgid "Thank you so much! The event is being verified."
msgstr ""
-#: project/views/widget.py:155
+#: project/views/widget.py:151
msgid ""
"For more options and your own calendar of events, you can register for "
"free."
msgstr ""
-#: project/views/widget.py:221
+#: project/views/widget.py:217
msgid "New event review"
msgstr ""
diff --git a/project/utils.py b/project/utils.py
index 7efb8a3..2f22e46 100644
--- a/project/utils.py
+++ b/project/utils.py
@@ -56,6 +56,9 @@ def make_dir(path):
def clear_files_in_dir(path):
+ if not os.path.exists(path): # pragma: no cover
+ return
+
with os.scandir(path) as entries:
for entry in entries:
if entry.is_file() or entry.is_symlink():
diff --git a/project/views/admin.py b/project/views/admin.py
index 7d2a49e..400d143 100644
--- a/project/views/admin.py
+++ b/project/views/admin.py
@@ -5,7 +5,7 @@ from flask_security import roles_required
from sqlalchemy.exc import SQLAlchemyError
from sqlalchemy.sql import func
-from project import app, celery, db, user_datastore
+from project import app, db, user_datastore
from project.base_tasks import send_mail_task
from project.forms.admin import (
AdminNewsletterForm,
@@ -21,6 +21,8 @@ from project.services.admin import upsert_settings
from project.services.user import set_roles_for_user
from project.views.utils import (
flash_errors,
+ get_celery_poll_group_result,
+ get_celery_poll_result,
get_pagination_urls,
handleSqlError,
non_match_for_deletion,
@@ -125,20 +127,7 @@ def admin_email():
form = AdminTestEmailForm()
if "poll" in request.args: # pragma: no cover
- try:
- result = celery.AsyncResult(request.args["poll"])
- ready = result.ready()
- return {
- "ready": ready,
- "successful": result.successful() if ready else None,
- "value": result.get() if ready else result.result,
- }
- except Exception as e:
- return {
- "ready": True,
- "successful": False,
- "error": getattr(e, "message", "Unknown error"),
- }
+ return get_celery_poll_result()
if form.validate_on_submit():
subject = gettext(
@@ -167,21 +156,7 @@ def admin_newsletter():
form = AdminNewsletterForm()
if "poll" in request.args: # pragma: no cover
- try:
- result = celery.GroupResult.restore(request.args["poll"])
- ready = result.ready()
- return {
- "ready": ready,
- "count": len(result.children),
- "completed": result.completed_count(),
- "successful": result.successful() if ready else None,
- }
- except Exception as e:
- return {
- "ready": True,
- "successful": False,
- "error": getattr(e, "message", "Unknown error"),
- }
+ return get_celery_poll_group_result()
if form.validate_on_submit():
subject = gettext(
diff --git a/project/views/manage.py b/project/views/manage.py
index 0347264..e1590e7 100644
--- a/project/views/manage.py
+++ b/project/views/manage.py
@@ -1,10 +1,19 @@
-from flask import flash, redirect, render_template, request, url_for
+import os
+
+from flask import (
+ flash,
+ redirect,
+ render_template,
+ request,
+ send_from_directory,
+ url_for,
+)
from flask_babel import gettext
from flask_security import auth_required, current_user
from sqlalchemy.exc import SQLAlchemyError
from sqlalchemy.sql import desc, func
-from project import app, db
+from project import app, db, dump_org_path
from project.access import (
access_or_401,
admin_unit_suggestions_enabled_or_404,
@@ -12,6 +21,7 @@ from project.access import (
get_admin_units_for_manage,
has_access,
)
+from project.celery_tasks import dump_admin_unit_task
from project.forms.admin_unit import UpdateAdminUnitWidgetForm
from project.forms.event import FindEventForm
from project.forms.event_place import FindEventPlaceForm
@@ -35,6 +45,7 @@ from project.utils import get_place_str
from project.views.event import get_event_category_choices
from project.views.utils import (
flash_errors,
+ get_celery_poll_result,
get_current_admin_unit,
get_pagination_urls,
handleSqlError,
@@ -336,6 +347,51 @@ def manage_admin_unit_events_import(id):
)
+@app.route("/manage/admin_unit//export", methods=["GET", "POST"])
+@auth_required()
+def manage_admin_unit_export(id):
+ admin_unit = get_admin_unit_for_manage_or_404(id)
+
+ if not has_access(admin_unit, "admin_unit:update"): # pragma: no cover
+ return permission_missing(url_for("manage_admin_unit", id=admin_unit.id))
+
+ if "poll" in request.args: # pragma: no cover
+ return get_celery_poll_result()
+
+ if request.method == "POST": # pragma: no cover
+ result = dump_admin_unit_task.delay(admin_unit.id)
+ return {"result_id": result.id}
+
+ set_current_admin_unit(admin_unit)
+
+ file_name = f"org-{admin_unit.id}.zip"
+ file_path = os.path.join(dump_org_path, file_name)
+ dump_file = None
+
+ if os.path.exists(file_path):
+ dump_file = {
+ "url": url_for(
+ "manage_admin_unit_export_dump_files", id=admin_unit.id, path=file_name
+ ),
+ "size": os.path.getsize(file_path),
+ "ctime": os.path.getctime(file_path),
+ }
+
+ return render_template(
+ "manage/export.html",
+ admin_unit=admin_unit,
+ dump_file=dump_file,
+ )
+
+
+@app.route("/manage/admin_unit//export/dump/")
+def manage_admin_unit_export_dump_files(id, path):
+ admin_unit = get_admin_unit_for_manage_or_404(id)
+ access_or_401(admin_unit, "admin_unit:update")
+
+ return send_from_directory(dump_org_path, path)
+
+
@app.route("/manage/admin_unit//widgets", methods=("GET", "POST"))
@auth_required()
def manage_admin_unit_widgets(id):
diff --git a/project/views/utils.py b/project/views/utils.py
index 6c096d4..2d093a9 100644
--- a/project/views/utils.py
+++ b/project/views/utils.py
@@ -9,7 +9,7 @@ from psycopg2.errorcodes import UNIQUE_VIOLATION
from sqlalchemy.exc import SQLAlchemyError
from wtforms import FormField
-from project import app, mail
+from project import app, celery, mail
from project.access import get_admin_unit_for_manage, get_admin_units_for_manage
from project.dateutils import berlin_tz, round_to_next_day
from project.models import Event, EventAttendanceMode, EventDate
@@ -263,3 +263,38 @@ def get_invitation_access_result(email: str):
return app.login_manager.unauthorized()
return None
+
+
+def get_celery_poll_result(): # pragma: no cover
+ try:
+ result = celery.AsyncResult(request.args["poll"])
+ ready = result.ready()
+ return {
+ "ready": ready,
+ "successful": result.successful() if ready else None,
+ "value": result.get() if ready else result.result,
+ }
+ except Exception as e:
+ return {
+ "ready": True,
+ "successful": False,
+ "error": getattr(e, "message", "Unknown error"),
+ }
+
+
+def get_celery_poll_group_result(): # pragma: no cover
+ try:
+ result = celery.GroupResult.restore(request.args["poll"])
+ ready = result.ready()
+ return {
+ "ready": ready,
+ "count": len(result.children),
+ "completed": result.completed_count(),
+ "successful": result.successful() if ready else None,
+ }
+ except Exception as e:
+ return {
+ "ready": True,
+ "successful": False,
+ "error": getattr(e, "message", "Unknown error"),
+ }
diff --git a/tests/cli/test_dump.py b/tests/cli/test_dump.py
index 16f00ed..8c3e583 100644
--- a/tests/cli/test_dump.py
+++ b/tests/cli/test_dump.py
@@ -9,3 +9,25 @@ def test_all(client, seeder, app, utils):
utils.get_endpoint_ok("developer")
utils.get_endpoint_ok("dump_files", path="all.zip")
+
+
+def test_organization(client, seeder, app, utils):
+ user_id, admin_unit_id = seeder.setup_base()
+ seeder.create_event(admin_unit_id)
+
+ runner = app.test_cli_runner()
+ result = runner.invoke(
+ args=[
+ "dump",
+ "organization",
+ str(admin_unit_id),
+ ]
+ )
+ assert result.exit_code == 0
+
+ utils.get_endpoint_ok("manage_admin_unit_export", id=admin_unit_id)
+ utils.get_endpoint_ok(
+ "manage_admin_unit_export_dump_files",
+ id=admin_unit_id,
+ path=f"org-{admin_unit_id}.zip",
+ )
diff --git a/tests/services/test_dump.py b/tests/services/test_dump.py
new file mode 100644
index 0000000..ff6b43c
--- /dev/null
+++ b/tests/services/test_dump.py
@@ -0,0 +1,19 @@
+def test_clear_admin_unit_dumps(client, seeder, utils, app):
+ user_id, admin_unit_id = seeder.setup_base()
+
+ with app.app_context():
+ from project.services.dump import clear_admin_unit_dumps
+
+ clear_admin_unit_dumps()
+
+
+def test_dump_admin_unit(client, seeder, utils, app):
+ user_id, admin_unit_id = seeder.setup_base()
+ event_id = seeder.create_event(admin_unit_id)
+ image_id = seeder.upsert_default_image()
+ seeder.assign_image_to_event(event_id, image_id)
+
+ with app.app_context():
+ from project.services.dump import dump_admin_unit
+
+ dump_admin_unit(admin_unit_id)