From 4f129a7817000952f897e323f0e439bc704963dc Mon Sep 17 00:00:00 2001 From: Daniel Grams Date: Sun, 14 Feb 2021 13:28:55 +0100 Subject: [PATCH] Pagination with more info #113 --- .vscode/settings.json | 3 + project/services/event.py | 8 +- project/templates/_macros.html | 27 +- project/templates/event_date/list.html | 8 + .../translations/de/LC_MESSAGES/messages.mo | Bin 26601 -> 26713 bytes .../translations/de/LC_MESSAGES/messages.po | 641 +++++++++--------- project/views/manage.py | 1 - project/views/utils.py | 4 + 8 files changed, 357 insertions(+), 335 deletions(-) diff --git a/.vscode/settings.json b/.vscode/settings.json index 4aa5d94..39754ad 100644 --- a/.vscode/settings.json +++ b/.vscode/settings.json @@ -19,5 +19,8 @@ "editor.codeActionsOnSave": { "source.organizeImports": true } + }, + "[html]": { + "editor.formatOnSave": false } } \ No newline at end of file diff --git a/project/services/event.py b/project/services/event.py index c344efc..e186d3b 100644 --- a/project/services/event.py +++ b/project/services/event.py @@ -1,10 +1,12 @@ +from datetime import datetime + from dateutil.relativedelta import relativedelta from sqlalchemy import and_, func, or_ from sqlalchemy.orm import contains_eager, defaultload, joinedload from sqlalchemy.sql import extract from project import db -from project.dateutils import date_add_time, dates_from_recurrence_rule, today +from project.dateutils import date_add_time, dates_from_recurrence_rule from project.models import ( AdminUnit, Event, @@ -67,7 +69,7 @@ def fill_event_filter(event_filter, params): def get_event_dates_query(params): event_filter = 1 == 1 - date_filter = EventDate.start >= today + date_filter = EventDate.start >= datetime.min event_filter = fill_event_filter(event_filter, params) @@ -197,7 +199,7 @@ def get_event_with_details_or_404(event_id): def get_events_query(params): event_filter = 1 == 1 - date_filter = EventDate.start >= today + date_filter = EventDate.start >= datetime.min event_filter = fill_event_filter(event_filter, params) diff --git a/project/templates/_macros.html b/project/templates/_macros.html index 66d6800..9a4eb6e 100644 --- a/project/templates/_macros.html +++ b/project/templates/_macros.html @@ -585,20 +585,21 @@ {% endmacro %} {% macro render_pagination(pagination) %} -{% if 'prev_url' in pagination or 'next_url' in pagination %} +{% if pagination['prev_url'] or pagination['next_url'] %} {% endif %} {% endmacro %} diff --git a/project/templates/event_date/list.html b/project/templates/event_date/list.html index 607e0b2..a43ea92 100644 --- a/project/templates/event_date/list.html +++ b/project/templates/event_date/list.html @@ -209,6 +209,13 @@ $('#next_item').addClass('disabled'); } + if (data.has_prev || data.has_next) { + $('#page_info_text').text("Seite " + data.page + " von " + data.pages + " (" + data.total + " insgesamt)") + $('#page_info').show(); + } else { + $('#page_info').hide(); + } + handle_request_success(); if (leaflet_map != null) { @@ -270,6 +277,7 @@ diff --git a/project/translations/de/LC_MESSAGES/messages.mo b/project/translations/de/LC_MESSAGES/messages.mo index af229d8f25ac95e3f126270c3443c6cb7c95b12f..1c75ca9d11481fe1efb6c71bd18190bd913472a3 100644 GIT binary patch delta 6413 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 delta 6306 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\n" "Language: de\n" @@ -18,135 +18,135 @@ msgstr "" "Content-Transfer-Encoding: 8bit\n" "Generated-By: Babel 2.9.0\n" -#: project/i10n.py:12 +#: project/i10n.py:13 msgid "Event_Art" msgstr "Kunst" -#: project/i10n.py:13 +#: project/i10n.py:14 msgid "Event_Book" msgstr "Literatur" -#: project/i10n.py:14 +#: project/i10n.py:15 msgid "Event_Movie" msgstr "Film" -#: project/i10n.py:15 +#: project/i10n.py:16 msgid "Event_Family" msgstr "Familie" -#: project/i10n.py:16 +#: project/i10n.py:17 msgid "Event_Festival" msgstr "Festival" -#: project/i10n.py:17 +#: project/i10n.py:18 msgid "Event_Religious" msgstr "Religion" -#: project/i10n.py:18 +#: project/i10n.py:19 msgid "Event_Shopping" msgstr "Shopping" -#: project/i10n.py:19 +#: project/i10n.py:20 msgid "Event_Comedy" msgstr "Comedy" -#: project/i10n.py:20 +#: project/i10n.py:21 msgid "Event_Music" msgstr "Musik" -#: project/i10n.py:21 +#: project/i10n.py:22 msgid "Event_Dance" msgstr "Tanz" -#: project/i10n.py:22 +#: project/i10n.py:23 msgid "Event_Nightlife" msgstr "Party" -#: project/i10n.py:23 +#: project/i10n.py:24 msgid "Event_Theater" msgstr "Theater" -#: project/i10n.py:24 +#: project/i10n.py:25 msgid "Event_Dining" msgstr "Essen" -#: project/i10n.py:25 +#: project/i10n.py:26 msgid "Event_Conference" msgstr "Konferenz" -#: project/i10n.py:26 +#: project/i10n.py:27 msgid "Event_Meetup" msgstr "Networking" -#: project/i10n.py:27 +#: project/i10n.py:28 msgid "Event_Fitness" msgstr "Fitness" -#: project/i10n.py:28 +#: project/i10n.py:29 msgid "Event_Sports" msgstr "Sport" -#: project/i10n.py:29 +#: project/i10n.py:30 msgid "Event_Other" msgstr "Sonstiges" -#: project/i10n.py:30 +#: project/i10n.py:31 msgid "Event_Exhibition" msgstr "Ausstellung" -#: project/i10n.py:31 +#: project/i10n.py:32 msgid "Event_Culture" msgstr "Kultur" -#: project/i10n.py:32 +#: project/i10n.py:33 msgid "Event_Tour" msgstr "Führung" -#: project/i10n.py:33 +#: project/i10n.py:34 msgid "Event_OpenAir" msgstr "Open Air" -#: project/i10n.py:34 +#: project/i10n.py:35 msgid "Event_Stage" msgstr "Bühne" -#: project/i10n.py:35 +#: project/i10n.py:36 msgid "Event_Lecture" msgstr "Vortrag" -#: project/i10n.py:36 +#: project/i10n.py:37 msgid "Typical Age range" msgstr "Typische Altersspanne" -#: project/i10n.py:37 +#: project/i10n.py:38 msgid "Administrator" msgstr "Administrator:in" -#: project/i10n.py:38 +#: project/i10n.py:39 msgid "Event expert" msgstr "Veranstaltungsexpert:in" -#: project/i10n.py:39 +#: project/i10n.py:40 msgid "EventReviewStatus.inbox" msgstr "Ungeprüft" -#: project/i10n.py:40 +#: project/i10n.py:41 msgid "EventReviewStatus.verified" msgstr "Verifiziert" -#: project/i10n.py:41 +#: project/i10n.py:42 msgid "EventReviewStatus.rejected" msgstr "Abgelehnt" -#: project/i10n.py:42 +#: project/i10n.py:43 msgid "read" msgstr "Lesen" -#: project/i10n.py:43 +#: project/i10n.py:44 msgid "write" msgstr "Schreiben" -#: project/i10n.py:44 project/templates/_macros.html:381 +#: project/i10n.py:45 project/templates/_macros.html:381 #: project/templates/event/actions.html:12 #: project/templates/event/create.html:62 #: project/templates/event/delete.html:13 @@ -156,10 +156,10 @@ msgstr "Schreiben" msgid "Event" msgstr "Veranstaltung" -#: project/forms/event.py:265 project/forms/event.py:274 -#: project/forms/event.py:326 project/forms/event.py:372 -#: project/forms/event_suggestion.py:56 project/i10n.py:45 -#: project/templates/_macros.html:456 project/templates/event/create.html:83 +#: project/forms/event.py:266 project/forms/event.py:275 +#: project/forms/event.py:327 project/forms/event.py:373 +#: project/forms/event_suggestion.py:57 project/i10n.py:46 +#: project/templates/_macros.html:458 project/templates/event/create.html:83 #: project/templates/event/update.html:49 #: project/templates/organizer/create.html:17 #: project/templates/organizer/delete.html:13 @@ -167,9 +167,9 @@ msgstr "Veranstaltung" msgid "Organizer" msgstr "Veranstalter" -#: project/forms/event.py:249 project/forms/event.py:258 -#: project/forms/event.py:318 project/forms/event_suggestion.py:49 -#: project/i10n.py:46 project/templates/_macros.html:426 +#: project/forms/event.py:250 project/forms/event.py:259 +#: project/forms/event.py:319 project/forms/event_suggestion.py:50 +#: project/i10n.py:47 project/templates/_macros.html:428 #: project/templates/event/create.html:108 #: project/templates/event/update.html:58 #: project/templates/event_place/create.html:21 @@ -178,55 +178,55 @@ msgstr "Veranstalter" msgid "Place" msgstr "Ort" -#: project/utils.py:9 +#: project/utils.py:10 msgid "Event_" msgstr "Event_" -#: project/utils.py:13 +#: project/utils.py:14 msgid "." msgstr "." -#: project/forms/admin.py:9 project/templates/layout.html:167 -#: project/views/root.py:26 +#: project/forms/admin.py:10 project/templates/layout.html:167 +#: project/views/root.py:28 msgid "Terms of service" msgstr "Nutzungsbedingungen" -#: project/forms/admin.py:10 project/templates/layout.html:171 -#: project/views/root.py:34 +#: project/forms/admin.py:11 project/templates/layout.html:171 +#: project/views/root.py:36 msgid "Legal notice" msgstr "Impressum" -#: project/forms/admin.py:11 project/templates/_macros.html:1008 +#: project/forms/admin.py:12 project/templates/_macros.html:1012 #: project/templates/layout.html:175 #: project/templates/widget/event_suggestion/create.html:155 -#: project/views/root.py:42 +#: project/views/root.py:44 msgid "Contact" msgstr "Kontakt" -#: project/forms/admin.py:12 project/templates/layout.html:179 -#: project/views/root.py:50 +#: project/forms/admin.py:13 project/templates/layout.html:179 +#: project/views/root.py:52 msgid "Privacy" msgstr "Datenschutz" -#: project/forms/admin.py:14 project/forms/oauth2_client.py:47 +#: project/forms/admin.py:15 project/forms/oauth2_client.py:49 msgid "Save" msgstr "Speichern" -#: project/forms/admin.py:18 project/forms/admin_unit_member.py:11 -#: project/forms/admin_unit_member.py:31 project/templates/profile.html:56 +#: project/forms/admin.py:19 project/forms/admin_unit_member.py:12 +#: project/forms/admin_unit_member.py:32 project/templates/profile.html:56 msgid "Roles" msgstr "Rollen" -#: project/forms/admin.py:19 project/templates/admin/update_user.html:4 +#: project/forms/admin.py:20 project/templates/admin/update_user.html:4 #: project/templates/admin/update_user.html:8 msgid "Update user" msgstr "Nutzer aktualisieren" -#: project/forms/admin.py:24 +#: project/forms/admin.py:25 msgid "Incoming reference requests allowed" msgstr "Eingehende Empfehlungsanfragen erlauben" -#: project/forms/admin.py:25 +#: project/forms/admin.py:26 msgid "" "If set, other admin units can ask this admin unit to reference their " "event." @@ -234,47 +234,47 @@ msgstr "" "Wenn gesetzt, können andere Organisationen diese Organisation bitten, " "deren Veranstaltungen zu empfehlen." -#: project/forms/admin.py:30 project/templates/admin/update_admin_unit.html:4 +#: project/forms/admin.py:31 project/templates/admin/update_admin_unit.html:4 #: project/templates/admin/update_admin_unit.html:8 msgid "Update admin unit" msgstr "Organisation aktualisieren" -#: project/forms/admin_unit.py:17 project/forms/event.py:32 -#: project/forms/event_place.py:17 project/forms/organizer.py:16 +#: project/forms/admin_unit.py:13 project/forms/event.py:33 +#: project/forms/event_place.py:12 project/forms/organizer.py:12 msgid "Street" msgstr "Straße" -#: project/forms/admin_unit.py:18 project/forms/event.py:33 -#: project/forms/event_place.py:18 project/forms/organizer.py:17 +#: project/forms/admin_unit.py:14 project/forms/event.py:34 +#: project/forms/event_place.py:13 project/forms/organizer.py:13 msgid "Postal code" msgstr "Postleitzahl" -#: project/forms/admin_unit.py:19 project/forms/event.py:34 -#: project/forms/event_place.py:19 project/forms/organizer.py:18 +#: project/forms/admin_unit.py:15 project/forms/event.py:35 +#: project/forms/event_place.py:14 project/forms/organizer.py:14 msgid "City" msgstr "Stadt/Ort" -#: project/forms/admin_unit.py:20 project/forms/event_place.py:20 -#: project/forms/organizer.py:19 +#: project/forms/admin_unit.py:16 project/forms/event_place.py:15 +#: project/forms/organizer.py:15 msgid "State" msgstr "Bundesland" -#: project/forms/admin_unit.py:22 project/forms/event_place.py:22 -#: project/forms/organizer.py:21 +#: project/forms/admin_unit.py:18 project/forms/event_place.py:17 +#: project/forms/organizer.py:17 msgid "Latitude" msgstr "Breitengrad" -#: project/forms/admin_unit.py:25 project/forms/event_place.py:25 -#: project/forms/organizer.py:24 +#: project/forms/admin_unit.py:21 project/forms/event_place.py:20 +#: project/forms/organizer.py:20 msgid "Longitude" msgstr "Längengrad" -#: project/forms/admin_unit.py:30 project/forms/event.py:39 -#: project/forms/event.py:68 project/forms/event.py:358 -#: project/forms/event_place.py:30 project/forms/event_place.py:55 -#: project/forms/event_suggestion.py:25 project/forms/oauth2_client.py:92 -#: project/forms/organizer.py:29 project/forms/organizer.py:56 -#: project/forms/reference.py:39 project/forms/reference_request.py:21 +#: project/forms/admin_unit.py:26 project/forms/event.py:40 +#: project/forms/event.py:69 project/forms/event.py:359 +#: project/forms/event_place.py:25 project/forms/event_place.py:50 +#: project/forms/event_suggestion.py:26 project/forms/oauth2_client.py:94 +#: project/forms/organizer.py:25 project/forms/organizer.py:52 +#: project/forms/reference.py:40 project/forms/reference_request.py:22 #: project/templates/_macros.html:117 #: project/templates/admin/admin_units.html:19 #: project/templates/event_place/list.html:19 @@ -283,107 +283,107 @@ msgstr "Längengrad" msgid "Name" msgstr "Name" -#: project/forms/admin_unit.py:32 +#: project/forms/admin_unit.py:28 msgid "Short name" msgstr "Kurzname" -#: project/forms/admin_unit.py:33 +#: project/forms/admin_unit.py:29 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:40 +#: project/forms/admin_unit.py:36 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:46 project/forms/event.py:60 -#: project/forms/event.py:97 project/forms/event_place.py:31 -#: project/forms/organizer.py:30 +#: project/forms/admin_unit.py:42 project/forms/event.py:61 +#: project/forms/event.py:98 project/forms/event_place.py:26 +#: project/forms/organizer.py:26 msgid "Link URL" msgstr "Link URL" -#: project/forms/admin_unit.py:47 project/forms/admin_unit_member.py:10 -#: project/forms/admin_unit_member.py:22 project/forms/admin_unit_member.py:27 -#: project/forms/event.py:61 project/forms/event_suggestion.py:37 -#: project/forms/organizer.py:31 project/templates/_macros.html:244 +#: project/forms/admin_unit.py:43 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:62 project/forms/event_suggestion.py:38 +#: project/forms/organizer.py:27 project/templates/_macros.html:244 #: project/templates/admin/users.html:19 msgid "Email" msgstr "Email" -#: project/forms/admin_unit.py:48 project/forms/event.py:62 -#: project/forms/event_suggestion.py:30 project/forms/organizer.py:32 +#: project/forms/admin_unit.py:44 project/forms/event.py:63 +#: project/forms/event_suggestion.py:31 project/forms/organizer.py:28 #: project/templates/_macros.html:281 msgid "Phone" msgstr "Telefon" -#: project/forms/admin_unit.py:49 project/forms/event.py:63 -#: project/forms/organizer.py:33 project/templates/_macros.html:289 +#: project/forms/admin_unit.py:45 project/forms/event.py:64 +#: project/forms/organizer.py:29 project/templates/_macros.html:289 msgid "Fax" msgstr "Fax" -#: project/forms/admin_unit.py:50 project/forms/organizer.py:34 +#: project/forms/admin_unit.py:46 project/forms/organizer.py:30 msgid "Logo" msgstr "Logo" -#: project/forms/admin_unit.py:63 project/templates/admin_unit/create.html:11 +#: project/forms/admin_unit.py:59 project/templates/admin_unit/create.html:11 #: project/templates/manage/admin_units.html:18 msgid "Create admin unit" msgstr "Organisation erstellen" -#: project/forms/admin_unit.py:67 project/forms/admin_unit.py:90 +#: project/forms/admin_unit.py:63 project/forms/admin_unit.py:86 msgid "Update settings" msgstr "Einstellungen speichern" -#: project/forms/admin_unit.py:71 +#: project/forms/admin_unit.py:67 msgid "Font" msgstr "Schriftart" -#: project/forms/admin_unit.py:73 +#: project/forms/admin_unit.py:69 msgid "Background Color" msgstr "Hintergrundfarbe" -#: project/forms/admin_unit.py:79 +#: project/forms/admin_unit.py:75 msgid "Primary Color" msgstr "Hauptfarbe" -#: project/forms/admin_unit.py:85 +#: project/forms/admin_unit.py:81 msgid "Link Color" msgstr "Linkfarbe" -#: project/forms/admin_unit_member.py:12 +#: project/forms/admin_unit_member.py:13 msgid "Invite" msgstr "Einladen" -#: project/forms/admin_unit_member.py:16 +#: project/forms/admin_unit_member.py:17 msgid "Accept" msgstr "Akzeptieren" -#: project/forms/admin_unit_member.py:17 +#: project/forms/admin_unit_member.py:18 msgid "Decline" msgstr "Ablehnen" -#: project/forms/admin_unit_member.py:21 +#: project/forms/admin_unit_member.py:22 #: project/templates/manage/delete_invitation.html:6 msgid "Delete invitation" msgstr "Einladung löschen" -#: project/forms/admin_unit_member.py:26 +#: project/forms/admin_unit_member.py:27 #: project/templates/manage/delete_member.html:6 msgid "Delete member" msgstr "Mitglied löschen" -#: project/forms/admin_unit_member.py:32 +#: project/forms/admin_unit_member.py:33 #: project/templates/admin_unit/update_member.html:6 msgid "Update member" msgstr "Mitglied aktualisieren" -#: project/forms/common.py:13 +#: project/forms/common.py:14 msgid "Copyright text" msgstr "Copyright Text" -#: project/forms/common.py:53 +#: project/forms/common.py:54 #, python-format msgid "" "I read and accept %(tos_open)sTerms of Service%(tos_close)s and " @@ -393,83 +393,83 @@ msgstr "" "%(privacy_open)sDatenschutzerklärung%(privacy_close)s gelesen und " "akzeptiere diese." -#: project/forms/common.py:64 +#: project/forms/common.py:65 msgid "0 (Little relevant)" msgstr "0 (Wenig relevant)" -#: project/forms/common.py:69 +#: project/forms/common.py:70 msgid "5 (Default)" msgstr "5 (Standard)" -#: project/forms/common.py:74 +#: project/forms/common.py:75 msgid "10 (Highlight)" msgstr "10 (Highlight)" -#: project/forms/common.py:78 +#: project/forms/common.py:79 msgid "Monday" msgstr "Montag" -#: project/forms/common.py:79 +#: project/forms/common.py:80 msgid "Tueday" msgstr "Dienstag" -#: project/forms/common.py:80 +#: project/forms/common.py:81 msgid "Wednesday" msgstr "Mittwoch" -#: project/forms/common.py:81 +#: project/forms/common.py:82 msgid "Thursday" msgstr "Donnerstag" -#: project/forms/common.py:82 +#: project/forms/common.py:83 msgid "Friday" msgstr "Freitag" -#: project/forms/common.py:83 +#: project/forms/common.py:84 msgid "Saturday" msgstr "Samstag" -#: project/forms/common.py:84 +#: project/forms/common.py:85 msgid "Sunday" msgstr "Sonntag" -#: project/forms/common.py:88 +#: project/forms/common.py:89 msgid "500 m" msgstr "500 m" -#: project/forms/common.py:89 +#: project/forms/common.py:90 msgid "5 km" msgstr "5 km" -#: project/forms/common.py:90 +#: project/forms/common.py:91 msgid "10 km" msgstr "10 km" -#: project/forms/common.py:91 +#: project/forms/common.py:92 msgid "20 km" msgstr "20 km" -#: project/forms/common.py:92 +#: project/forms/common.py:93 msgid "50 km" msgstr "50 km" -#: project/forms/common.py:93 +#: project/forms/common.py:94 msgid "100 km" msgstr "100 km" -#: project/forms/event.py:57 +#: project/forms/event.py:58 msgid "Organizator" msgstr "Veranstalter" -#: project/forms/event.py:70 +#: project/forms/event.py:71 msgid "Enter a short, meaningful name for the event." msgstr "Gib einen kurzen, aussagekräftigen Namen für die Veranstaltung ein." -#: project/forms/event.py:73 +#: project/forms/event.py:74 msgid "Start" msgstr "Beginn" -#: project/forms/event.py:75 +#: project/forms/event.py:76 msgid "" "Indicate when the event will take place. If the event takes place " "regularly, enter when the first date will begin." @@ -477,11 +477,11 @@ msgstr "" "Gib an, wann die Veranstaltung stattfindet. Wenn die Veranstaltung " "regelmäßig stattfindet, gib an, wann der erste Termin beginnt." -#: project/forms/event.py:80 +#: project/forms/event.py:81 msgid "End" msgstr "Ende" -#: project/forms/event.py:82 +#: project/forms/event.py:83 msgid "" "Indicate when the event will end. An event can last a maximum of 24 " "hours. If the event takes place regularly, enter when the first date will" @@ -491,23 +491,23 @@ msgstr "" "Stunden dauern. Wenn die Veranstaltung regelmäßig stattfindet, gib an, " "wann der erste Termin endet. " -#: project/forms/event.py:87 +#: project/forms/event.py:88 msgid "Recurrence rule" msgstr "Wiederholen" -#: project/forms/event.py:89 +#: project/forms/event.py:90 msgid "Enter if the event takes place regularly." msgstr "Gib an, ob die Veranstaltung regelmäßig stattfindet." -#: project/forms/event.py:92 project/forms/event_place.py:33 +#: project/forms/event.py:93 project/forms/event_place.py:28 msgid "Description" msgstr "Beschreibung" -#: project/forms/event.py:94 +#: project/forms/event.py:95 msgid "Add an description of the event." msgstr "Füge der Veranstaltung eine Beschreibung hinzu." -#: project/forms/event.py:99 +#: project/forms/event.py:100 msgid "" "Enter a link to an external website containing more information about the" " event." @@ -515,19 +515,19 @@ msgstr "" "Gib einen Link zu einer externen Website ein, die weitere Informationen " "zur Veranstaltung enthält." -#: project/forms/event.py:104 +#: project/forms/event.py:105 msgid "Ticket Link URL" msgstr "Ticket Link" -#: project/forms/event.py:106 +#: project/forms/event.py:107 msgid "Enter a link where tickets can be purchased." msgstr "Gib einen Link ein, über den Tickets gekauft werden können." -#: project/forms/event.py:109 project/templates/_macros.html:226 +#: project/forms/event.py:110 project/templates/_macros.html:226 msgid "Tags" msgstr "Stichworte" -#: project/forms/event.py:111 +#: project/forms/event.py:112 msgid "" "Enter keywords with which the event should be found. Words do not need to" " be entered if they are already in the name or description." @@ -536,68 +536,68 @@ msgstr "" "Worte müssen nicht eingegeben werden, wenn sie bereits im Namen oder in " "der Beschreibung enthalten sind." -#: project/forms/event.py:116 +#: project/forms/event.py:117 msgid "Kid friendly" msgstr "Für Kinder geeignet" -#: project/forms/event.py:118 +#: project/forms/event.py:119 msgid "If the event is particularly suitable for children." msgstr "Wenn die Veranstaltung besonders für Kinder geeignet ist." -#: project/forms/event.py:121 +#: project/forms/event.py:122 msgid "Accessible for free" msgstr "Kostenlos zugänglich" -#: project/forms/event.py:123 +#: project/forms/event.py:124 msgid "If the event is accessible for free." msgstr "Wenn die Veranstaltung kostenlos zugänglich ist." -#: project/forms/event.py:126 +#: project/forms/event.py:127 msgid "Typical Age from" msgstr "Typisches Alter von" -#: project/forms/event.py:128 +#: project/forms/event.py:129 msgid "The minimum age that participants should be." msgstr "Das Mindestalter, das die Teilnehmer haben sollten." -#: project/forms/event.py:131 +#: project/forms/event.py:132 msgid "Typical Age to" msgstr "Typisches Alter bis" -#: project/forms/event.py:133 +#: project/forms/event.py:134 msgid "The maximum age that participants should be." msgstr "Das maximale Alter, das die Teilnehmer haben sollten." -#: project/forms/event.py:136 +#: project/forms/event.py:137 msgid "Registration required" msgstr "Anmeldung erforderlich" -#: project/forms/event.py:138 +#: project/forms/event.py:139 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:143 project/templates/_macros.html:258 +#: project/forms/event.py:144 project/templates/_macros.html:258 #: project/templates/layout.html:81 msgid "Booked up" msgstr "Ausgebucht" -#: project/forms/event.py:145 +#: project/forms/event.py:146 msgid "If the event is booked up or sold out." msgstr "Wenn die Veranstaltung ausgebucht oder ausverkauft ist." -#: project/forms/event.py:148 +#: project/forms/event.py:149 msgid "Expected number of participants" msgstr "Erwartete Teilnehmerzahl" -#: project/forms/event.py:150 +#: project/forms/event.py:151 msgid "The estimated expected attendance." msgstr "Die geschätzte erwartete Teilnehmerzahl." -#: project/forms/event.py:153 +#: project/forms/event.py:154 msgid "Price info" msgstr "Preisinformation" -#: project/forms/event.py:155 +#: project/forms/event.py:156 msgid "" "Enter price information in textual form. E.g., different prices for " "adults and children." @@ -605,23 +605,23 @@ msgstr "" "Gib die Preisinformationen in Textform ein. Z.B. unterschiedliche Preise " "für Erwachsene und Kinder." -#: project/forms/event.py:160 +#: project/forms/event.py:161 msgid "Target group origin" msgstr "Für Touristen/Einwohner geeignet" -#: project/forms/event.py:165 +#: project/forms/event.py:166 msgid "EventTargetGroupOrigin.both" msgstr "Für Touristen und Einwohner" -#: project/forms/event.py:169 +#: project/forms/event.py:170 msgid "EventTargetGroupOrigin.tourist" msgstr "Hauptsächlich für Touristen" -#: project/forms/event.py:173 +#: project/forms/event.py:174 msgid "EventTargetGroupOrigin.resident" msgstr "Hauptsächlich für Einwohner" -#: project/forms/event.py:176 +#: project/forms/event.py:177 msgid "" "Choose whether the event is particularly suitable for tourists or " "residents." @@ -629,32 +629,32 @@ msgstr "" "Wähle, ob die Veranstaltung besonders für Touristen oder Einwohner " "geeignet ist." -#: project/forms/event.py:181 +#: project/forms/event.py:182 msgid "Attendance mode" msgstr "Teilnahme" -#: project/forms/event.py:186 +#: project/forms/event.py:187 msgid "EventAttendanceMode.offline" msgstr "Offline" -#: project/forms/event.py:190 +#: project/forms/event.py:191 msgid "EventAttendanceMode.online" msgstr "Online" -#: project/forms/event.py:192 +#: project/forms/event.py:193 msgid "EventAttendanceMode.mixed" msgstr "Online und offline" -#: project/forms/event.py:194 +#: project/forms/event.py:195 msgid "Choose how people can attend the event." msgstr "Wähle aus, wie Personen an der Veranstaltung teilnehmen können." -#: project/forms/event.py:198 project/forms/event_place.py:32 +#: project/forms/event.py:199 project/forms/event_place.py:27 #: project/templates/widget/event_suggestion/create.html:202 msgid "Photo" msgstr "Foto" -#: project/forms/event.py:200 +#: project/forms/event.py:201 msgid "" "We recommend uploading a photo for the event. It looks a lot more, but of" " course it works without it." @@ -662,76 +662,76 @@ msgstr "" "Wir empfehlen dir, ein Foto für die Veranstaltung hochzuladen. Es macht " "schon deutlich mehr her, aber es geht natürlich auch ohne." -#: project/forms/event.py:210 +#: project/forms/event.py:211 msgid "The start must be before the end." msgstr "Der Start muss vor dem Ende sein." -#: project/forms/event.py:216 +#: project/forms/event.py:217 msgid "An event can last a maximum of 24 hours." msgstr "Eine Veranstaltung darf maximal 24 Stunden dauern." -#: project/forms/event.py:224 project/templates/_macros.html:402 +#: project/forms/event.py:225 project/templates/_macros.html:402 msgid "Previous start date" msgstr "Vorheriges Startdatum" -#: project/forms/event.py:226 +#: project/forms/event.py:227 msgid "Enter when the event should have taken place before it was postponed." msgstr "" "Gib ein, wann die Veranstaltung hätte stattfinden sollen, bevor sie " "verschoben wurde." -#: project/forms/event.py:231 project/forms/event_suggestion.py:64 +#: project/forms/event.py:232 project/forms/event_suggestion.py:65 msgid "Categories" msgstr "Kategorien" -#: project/forms/event.py:234 project/forms/event_suggestion.py:67 +#: project/forms/event.py:235 project/forms/event_suggestion.py:68 msgid "Choose categories that fit the event." msgstr "Wähle Kategorien, die zur Veranstaltung passen." -#: project/forms/event.py:237 project/forms/reference.py:13 -#: project/forms/reference.py:26 project/forms/reference_request.py:69 +#: project/forms/event.py:238 project/forms/reference.py:14 +#: project/forms/reference.py:27 project/forms/reference_request.py:70 #: project/templates/event/create.html:176 #: project/templates/event/update.html:108 msgid "Rating" msgstr "Bewertung" -#: project/forms/event.py:241 project/forms/reference.py:17 -#: project/forms/reference.py:30 project/forms/reference_request.py:73 +#: project/forms/event.py:242 project/forms/reference.py:18 +#: project/forms/reference.py:31 project/forms/reference_request.py:74 msgid "Choose how relevant the event is to your organization." msgstr "Wähle aus, wie relevant die Veranstaltung für deine Organisation ist." -#: project/forms/event.py:251 +#: project/forms/event.py:252 msgid "Select existing place" msgstr "Vorhandenen Ort auswählen" -#: project/forms/event.py:252 +#: project/forms/event.py:253 msgid "Enter new place" msgstr "Neuen Ort eingeben" -#: project/forms/event.py:267 +#: project/forms/event.py:268 msgid "Select existing organizer" msgstr "Vorhandenen Veranstalter auswählen" -#: project/forms/event.py:268 +#: project/forms/event.py:269 msgid "Enter new organizer" msgstr "Neuen Veranstalter eingeben" -#: project/forms/event.py:280 project/templates/event/create.html:4 +#: project/forms/event.py:281 project/templates/event/create.html:4 #: project/templates/event/create.html:55 #: project/templates/manage/events.html:12 #: project/templates/manage/organizers.html:21 msgid "Create event" msgstr "Veranstaltung erstellen" -#: project/forms/event.py:304 +#: project/forms/event.py:305 msgid "Select existing place or enter new place" msgstr "Existierenden Ort wählen oder neuen Ort eingeben" -#: project/forms/event.py:309 +#: project/forms/event.py:310 msgid "Select existing organizer or enter new organizer" msgstr "Wähle einen vorhandenen Veranstalter oder gib einen neuen Veranstalter ein" -#: project/forms/event.py:321 +#: project/forms/event.py:322 msgid "" "Choose where the event takes place. You can add and modify places at " "Manage > Places." @@ -739,7 +739,7 @@ msgstr "" "Wähle, wo die Veranstaltung stattfindet. Du kannst Orte unter Verwaltung " "> Orte hinzufügen und ändern." -#: project/forms/event.py:329 +#: project/forms/event.py:330 msgid "" "Select the organizer. You can add and modify organizers at Manage > " "Organizers." @@ -747,74 +747,74 @@ msgstr "" "Wähle den Veranstalter. Du kannst Veranstalter unter Verwaltung > " "Veranstalter hinzufügen und ändern." -#: project/forms/event.py:335 project/templates/event/update.html:39 +#: project/forms/event.py:336 project/templates/event/update.html:39 #: project/templates/oauth2_token/list.html:21 msgid "Status" msgstr "Status" -#: project/forms/event.py:338 +#: project/forms/event.py:339 msgid "EventStatus.scheduled" msgstr "Geplant" -#: project/forms/event.py:339 project/templates/layout.html:48 +#: project/forms/event.py:340 project/templates/layout.html:48 #: project/templates/layout.html:63 msgid "EventStatus.cancelled" msgstr "Abgesagt" -#: project/forms/event.py:340 project/templates/layout.html:51 +#: project/forms/event.py:341 project/templates/layout.html:51 #: project/templates/layout.html:66 msgid "EventStatus.movedOnline" msgstr "Online verschoben" -#: project/forms/event.py:341 project/templates/layout.html:54 +#: project/forms/event.py:342 project/templates/layout.html:54 #: project/templates/layout.html:69 msgid "EventStatus.postponed" msgstr "Verschoben" -#: project/forms/event.py:342 project/templates/layout.html:57 +#: project/forms/event.py:343 project/templates/layout.html:57 #: project/templates/layout.html:72 msgid "EventStatus.rescheduled" msgstr "Neu angesetzt" -#: project/forms/event.py:344 +#: project/forms/event.py:345 msgid "Select the status of the event." msgstr "Wähle den Status der Veranstaltung." -#: project/forms/event.py:347 project/templates/event/update.html:4 +#: project/forms/event.py:348 project/templates/event/update.html:4 #: project/templates/event/update.html:11 msgid "Update event" msgstr "Veranstaltung aktualisieren" -#: project/forms/event.py:357 project/templates/_macros.html:957 +#: project/forms/event.py:358 project/templates/_macros.html:961 #: project/templates/event/actions.html:41 #: project/templates/event/delete.html:6 msgid "Delete event" msgstr "Veranstaltung löschen" -#: project/forms/event.py:365 project/forms/event_date.py:19 -#: project/forms/planing.py:13 +#: project/forms/event.py:366 project/forms/event_date.py:15 +#: project/forms/planing.py:14 msgid "From" msgstr "Von" -#: project/forms/event.py:366 project/forms/event_date.py:20 -#: project/forms/planing.py:14 +#: project/forms/event.py:367 project/forms/event_date.py:16 +#: project/forms/planing.py:15 msgid "to" msgstr "bis" -#: project/forms/event.py:367 project/forms/event_date.py:21 +#: project/forms/event.py:368 project/forms/event_date.py:17 msgid "Keyword" msgstr "Stichwort" -#: project/forms/event.py:369 project/forms/event_date.py:23 -#: project/forms/planing.py:16 project/templates/_macros.html:365 +#: project/forms/event.py:370 project/forms/event_date.py:19 +#: project/forms/planing.py:17 project/templates/_macros.html:365 msgid "Category" msgstr "Kategorie" -#: project/forms/event.py:375 +#: project/forms/event.py:376 msgid "Find events" msgstr "Veranstaltungen finden" -#: project/forms/event_date.py:26 project/forms/planing.py:19 +#: project/forms/event_date.py:22 project/forms/planing.py:20 #: project/templates/_macros.html:119 project/templates/_macros.html:296 #: project/templates/admin_unit/create.html:27 #: project/templates/admin_unit/update.html:28 @@ -825,51 +825,51 @@ msgstr "Veranstaltungen finden" msgid "Location" msgstr "Standort" -#: project/forms/event_date.py:28 project/forms/planing.py:21 +#: project/forms/event_date.py:24 project/forms/planing.py:22 msgid "Distance" msgstr "Distanz" -#: project/forms/event_date.py:34 project/forms/planing.py:33 +#: project/forms/event_date.py:30 project/forms/planing.py:34 #: project/templates/widget/event_date/list.html:47 msgid "Find" msgstr "Finden" -#: project/forms/event_place.py:46 project/templates/event_place/create.html:11 +#: project/forms/event_place.py:41 project/templates/event_place/create.html:11 #: project/templates/event_place/list.html:11 #: project/templates/manage/places.html:18 msgid "Create place" msgstr "Ort hinzufügen" -#: project/forms/event_place.py:50 project/templates/event_place/read.html:12 +#: project/forms/event_place.py:45 project/templates/event_place/read.html:12 #: project/templates/event_place/update.html:11 msgid "Update place" msgstr "Ort aktualisieren" -#: project/forms/event_place.py:54 project/templates/event_place/delete.html:6 +#: project/forms/event_place.py:49 project/templates/event_place/delete.html:6 msgid "Delete place" msgstr "Ort löschen" -#: project/forms/event_place.py:62 +#: project/forms/event_place.py:57 msgid "Find places" msgstr "Orte finden" -#: project/forms/event_suggestion.py:27 +#: project/forms/event_suggestion.py:28 msgid "Please enter your name for the review." msgstr "Bitte gib deinen Namen für die Prüfung an." -#: project/forms/event_suggestion.py:32 +#: project/forms/event_suggestion.py:33 msgid "Please enter your phone number or email address for the review." msgstr "Bitte gib deine Telefonnummer oder deine Email-Adresse für die Prüfung an." -#: project/forms/event_suggestion.py:39 +#: project/forms/event_suggestion.py:40 msgid "Please enter your email address or phone number for the review." msgstr "Bitte gib deine Email-Adresse oder deine Telefonnummer für die Prüfung an." -#: project/forms/event_suggestion.py:44 +#: project/forms/event_suggestion.py:45 msgid "I would like to be notified by email after the review" msgstr "Ich möchte per Email benachrichtigt werden nach der Prüfung" -#: project/forms/event_suggestion.py:51 project/templates/event/create.html:114 +#: project/forms/event_suggestion.py:52 project/templates/event/create.html:114 msgid "" "Choose where the event takes place. If the venue is not yet in the list, " "just enter it." @@ -877,7 +877,7 @@ msgstr "" "Wähle aus, wo die Veranstaltung stattfindet. Ist der Veranstaltungsort " "noch nicht in der Liste, trage ihn einfach ein." -#: project/forms/event_suggestion.py:58 project/templates/event/create.html:88 +#: project/forms/event_suggestion.py:59 project/templates/event/create.html:88 msgid "" "Select the organizer. If the organizer is not yet on the list, just enter" " it." @@ -885,76 +885,76 @@ msgstr "" "Wähle den Veranstalter aus. Ist der Veranstalter noch nicht in der Liste," " trage ihn einfach ein." -#: project/forms/event_suggestion.py:71 project/templates/example.html:10 +#: project/forms/event_suggestion.py:72 project/templates/example.html:10 #: project/templates/widget/event_suggestion/create.html:4 #: project/templates/widget/event_suggestion/create.html:108 msgid "Create event suggestion" msgstr "Veranstaltung vorschlagen" -#: project/forms/event_suggestion.py:99 project/forms/reference_request.py:45 +#: project/forms/event_suggestion.py:100 project/forms/reference_request.py:46 msgid "Rejection reason" msgstr "Ablehnungsgrund" -#: project/forms/event_suggestion.py:105 +#: project/forms/event_suggestion.py:106 msgid "EventRejectionReason.duplicate" msgstr "Duplikat" -#: project/forms/event_suggestion.py:109 +#: project/forms/event_suggestion.py:110 msgid "EventRejectionReason.untrustworthy" msgstr "Unseriös" -#: project/forms/event_suggestion.py:113 +#: project/forms/event_suggestion.py:114 msgid "EventRejectionReason.illegal" msgstr "Unzulässig" -#: project/forms/event_suggestion.py:118 +#: project/forms/event_suggestion.py:119 #: project/templates/event_suggestion/reject.html:9 #: project/templates/event_suggestion/review.html:22 msgid "Reject event suggestion" msgstr "Vorgeschlagene Veranstaltung ablehnen" -#: project/forms/oauth2_client.py:12 +#: project/forms/oauth2_client.py:14 msgid "Client name" msgstr "Client name" -#: project/forms/oauth2_client.py:14 +#: project/forms/oauth2_client.py:16 msgid "Redirect URIs" msgstr "Redirect URIs" -#: project/forms/oauth2_client.py:17 +#: project/forms/oauth2_client.py:19 msgid "Grant types" msgstr "Grant types" -#: project/forms/oauth2_client.py:20 +#: project/forms/oauth2_client.py:22 msgid "Authorization Code" msgstr "Authorization Code" -#: project/forms/oauth2_client.py:21 +#: project/forms/oauth2_client.py:23 msgid "Refresh Token" msgstr "Refresh Token" -#: project/forms/oauth2_client.py:26 +#: project/forms/oauth2_client.py:28 msgid "Response types" msgstr "Response types" -#: project/forms/oauth2_client.py:34 +#: project/forms/oauth2_client.py:36 #: project/templates/oauth2_token/list.html:20 msgid "Scopes" msgstr "Scopes" -#: project/forms/oauth2_client.py:39 +#: project/forms/oauth2_client.py:41 msgid "Token endpoint auth method" msgstr "Token endpoint auth method" -#: project/forms/oauth2_client.py:42 +#: project/forms/oauth2_client.py:44 msgid "Client secret post" msgstr "Client secret post" -#: project/forms/oauth2_client.py:43 +#: project/forms/oauth2_client.py:45 msgid "Client secret basic" msgstr "Client secret basic" -#: project/forms/oauth2_client.py:91 +#: project/forms/oauth2_client.py:93 #: project/templates/oauth2_client/delete.html:6 msgid "Delete OAuth2 client" msgstr "OAuth2 Client löschen" @@ -963,98 +963,98 @@ msgstr "OAuth2 Client löschen" msgid "Revoke OAuth2 token" msgstr "OAuth2 Token widerrufen" -#: project/forms/organizer.py:47 project/templates/manage/organizers.html:12 +#: project/forms/organizer.py:43 project/templates/manage/organizers.html:12 #: project/templates/organizer/create.html:11 msgid "Create organizer" msgstr "Veranstalter hinzufügen" -#: project/forms/organizer.py:51 project/templates/organizer/update.html:11 +#: project/forms/organizer.py:47 project/templates/organizer/update.html:11 msgid "Update organizer" msgstr "Veranstalter aktualisieren" -#: project/forms/organizer.py:55 project/templates/organizer/delete.html:6 +#: project/forms/organizer.py:51 project/templates/organizer/delete.html:6 msgid "Delete organizer" msgstr "Veranstalter löschen" -#: project/forms/planing.py:27 +#: project/forms/planing.py:28 msgid "Weekdays" msgstr "Wochentage" -#: project/forms/reference.py:10 project/forms/reference_request.py:14 -#: project/templates/_macros.html:477 +#: project/forms/reference.py:11 project/forms/reference_request.py:15 +#: project/templates/_macros.html:479 #: project/templates/admin_unit/create.html:17 #: project/templates/admin_unit/update.html:18 msgid "Admin unit" msgstr "Organisation" -#: project/forms/reference.py:21 +#: project/forms/reference.py:22 msgid "Save reference" msgstr "Empfehlung speichern" -#: project/forms/reference.py:34 +#: project/forms/reference.py:35 msgid "Update reference" msgstr "Empfehlung aktualisieren" -#: project/forms/reference.py:38 project/templates/reference/delete.html:6 +#: project/forms/reference.py:39 project/templates/reference/delete.html:6 #: project/templates/reference/read.html:20 msgid "Delete reference" msgstr "Empfehlung löschen" -#: project/forms/reference_request.py:16 +#: project/forms/reference_request.py:17 msgid "Save request" msgstr "Anfrage speichern" -#: project/forms/reference_request.py:20 +#: project/forms/reference_request.py:21 msgid "Delete request" msgstr "Anfrage löschen" -#: project/forms/reference_request.py:26 project/templates/_macros.html:1020 +#: project/forms/reference_request.py:27 project/templates/_macros.html:1024 #: project/templates/event_suggestion/review_status.html:18 #: project/templates/reference_request/review_status.html:12 msgid "Review status" msgstr "Prüfungsstatus" -#: project/forms/reference_request.py:31 +#: project/forms/reference_request.py:32 msgid "EventReferenceRequestReviewStatus.inbox" msgstr "Ungeprüft" -#: project/forms/reference_request.py:35 +#: project/forms/reference_request.py:36 msgid "EventReferenceRequestReviewStatus.verified" msgstr "Verifiziert" -#: project/forms/reference_request.py:39 +#: project/forms/reference_request.py:40 msgid "EventReferenceRequestReviewStatus.rejected" msgstr "Abgelehnt" -#: project/forms/reference_request.py:51 +#: project/forms/reference_request.py:52 msgid "EventReferenceRequestRejectionReason.duplicate" msgstr "Duplikat" -#: project/forms/reference_request.py:55 +#: project/forms/reference_request.py:56 msgid "EventReferenceRequestRejectionReason.untrustworthy" msgstr "Unseriös" -#: project/forms/reference_request.py:59 +#: project/forms/reference_request.py:60 msgid "EventReferenceRequestRejectionReason.irrelevant" msgstr "Nicht relevant" -#: project/forms/reference_request.py:63 +#: project/forms/reference_request.py:64 msgid "EventReferenceRequestRejectionReason.illegal" msgstr "Unzulässig" -#: project/forms/reference_request.py:77 +#: project/forms/reference_request.py:78 msgid "Save review" msgstr "Prüfung speichern" -#: project/forms/security.py:28 +#: project/forms/security.py:29 msgid "Allow" msgstr "Erlauben" -#: project/forms/security.py:29 +#: project/forms/security.py:30 msgid "Deny" msgstr "Ablehnen" -#: project/forms/widgets.py:146 project/templates/_macros.html:58 +#: project/forms/widgets.py:148 project/templates/_macros.html:58 msgid "This field is required." msgstr "Dieses Feld ist erforderlich." @@ -1063,7 +1063,7 @@ msgid "This field is optional." msgstr "Dieses Feld ist optional." #: project/templates/_macros.html:116 project/templates/_macros.html:388 -#: project/templates/_macros.html:395 project/templates/_macros.html:639 +#: project/templates/_macros.html:395 project/templates/_macros.html:643 msgid "Date" msgstr "Datum" @@ -1108,15 +1108,15 @@ msgstr "Zuletzt aktualisiert am %(updated_at)s." msgid "%(count)d event dates" msgstr "%(count)d Termine" -#: project/templates/_macros.html:446 +#: project/templates/_macros.html:448 msgid "Show directions" msgstr "Anreise planen" -#: project/templates/_macros.html:558 +#: project/templates/_macros.html:560 msgid "Search location on Google" msgstr "Ort bei Google suchen" -#: project/templates/_macros.html:590 project/templates/_macros.html:592 +#: project/templates/_macros.html:592 project/templates/_macros.html:594 #: project/templates/event_date/list.html:272 #: project/templates/widget/event_suggestion/create.html:144 #: project/templates/widget/event_suggestion/create.html:169 @@ -1127,7 +1127,12 @@ msgstr "Ort bei Google suchen" msgid "Previous" msgstr "Zurück" -#: project/templates/_macros.html:595 project/templates/_macros.html:597 +#: project/templates/_macros.html:596 +#, 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:599 project/templates/_macros.html:601 #: project/templates/event_date/list.html:273 #: project/templates/widget/event_suggestion/create.html:145 #: project/templates/widget/event_suggestion/create.html:170 @@ -1137,39 +1142,39 @@ msgstr "Zurück" msgid "Next" msgstr "Weiter" -#: project/templates/_macros.html:662 +#: project/templates/_macros.html:666 msgid "Radius" msgstr "Umkreis" -#: project/templates/_macros.html:867 +#: project/templates/_macros.html:871 msgid "Edit image" msgstr "Bild bearbeiten" -#: project/templates/_macros.html:888 +#: project/templates/_macros.html:892 msgid "Close" msgstr "Schließen" -#: project/templates/_macros.html:889 +#: project/templates/_macros.html:893 msgid "Okay" msgstr "OK" -#: project/templates/_macros.html:898 project/templates/_macros.html:900 +#: project/templates/_macros.html:902 project/templates/_macros.html:904 msgid "Choose image file" msgstr "Bild-Datei auswählen" -#: project/templates/_macros.html:952 project/templates/reference/read.html:13 +#: project/templates/_macros.html:956 project/templates/reference/read.html:13 msgid "Actions" msgstr "Aktionen" -#: project/templates/_macros.html:956 project/templates/event/actions.html:40 +#: project/templates/_macros.html:960 project/templates/event/actions.html:40 msgid "Edit event" msgstr "Veranstaltung bearbeiten" -#: project/templates/_macros.html:959 project/templates/manage/events.html:30 +#: project/templates/_macros.html:963 project/templates/manage/events.html:30 msgid "More" msgstr "Mehr" -#: project/templates/_macros.html:980 +#: project/templates/_macros.html:984 msgid "Event suggestion" msgstr "Veranstaltungsvorschlag" @@ -1178,7 +1183,7 @@ msgid "Widget als iFrame einbetten" msgstr "Widget als iFrame einbetten" #: project/templates/home.html:26 project/templates/home.html:142 -#: project/templates/security/login_user.html:26 project/views/widget.py:155 +#: project/templates/security/login_user.html:26 project/views/widget.py:157 msgid "Register for free" msgstr "Kostenlos registrieren" @@ -1657,156 +1662,156 @@ msgstr "Optionale Details" msgid "Preview" msgstr "Vorschau" -#: project/views/admin.py:47 +#: project/views/admin.py:44 msgid "Admin unit successfully updated" msgstr "Organisation erfolgreich aktualisiert" -#: project/views/admin.py:71 project/views/manage.py:247 +#: project/views/admin.py:68 project/views/manage.py:241 msgid "Settings successfully updated" msgstr "Einstellungen erfolgreich aktualisiert" -#: project/views/admin.py:106 +#: project/views/admin.py:103 msgid "User successfully updated" msgstr "Nutzer erfolgreich aktualisiert" -#: project/views/admin_unit.py:33 +#: project/views/admin_unit.py:30 msgid "Admin unit successfully created" msgstr "Organisation erfolgreich erstellt" -#: project/views/admin_unit.py:59 +#: project/views/admin_unit.py:56 msgid "AdminUnit successfully updated" msgstr "Organisation erfolgreich aktualisiert" -#: project/views/admin_unit_member.py:42 +#: project/views/admin_unit_member.py:43 msgid "Member successfully updated" msgstr "Mitglied erfolgreich aktualisiert" -#: project/views/admin_unit_member.py:68 +#: project/views/admin_unit_member.py:69 msgid "Entered email does not match member email" msgstr "Die eingegebene Email passt nicht zur Email des Mitglieds" -#: project/views/admin_unit_member.py:73 +#: project/views/admin_unit_member.py:74 msgid "Member successfully deleted" msgstr "Mitglied erfolgreich gelöscht" -#: project/views/admin_unit_member_invitation.py:43 +#: project/views/admin_unit_member_invitation.py:44 msgid "Invitation successfully accepted" msgstr "Einladung erfolgreich akzeptiert" -#: project/views/admin_unit_member_invitation.py:49 +#: project/views/admin_unit_member_invitation.py:50 msgid "Invitation successfully declined" msgstr "Einladung erfolgreich abgelehnt" -#: project/views/admin_unit_member_invitation.py:88 +#: project/views/admin_unit_member_invitation.py:89 msgid "You have received an invitation" msgstr "Du hast eine Einladung erhalten" -#: project/views/admin_unit_member_invitation.py:93 +#: project/views/admin_unit_member_invitation.py:94 msgid "Invitation successfully sent" msgstr "Einladung erfolgreich gesendet" -#: project/views/admin_unit_member_invitation.py:116 +#: project/views/admin_unit_member_invitation.py:117 msgid "Entered email does not match invitation email" msgstr "Die eingegebene Email passt nicht zur Email der Einladung" -#: project/views/admin_unit_member_invitation.py:121 +#: project/views/admin_unit_member_invitation.py:122 msgid "Invitation successfully deleted" msgstr "Einladung erfolgreich gelöscht" -#: project/views/event.py:140 +#: project/views/event.py:142 msgid "Event successfully created" msgstr "Veranstaltung erfolgreich erstellt" -#: project/views/event.py:173 +#: project/views/event.py:175 msgid "Event successfully updated" msgstr "Veranstaltung erfolgreich aktualisiert" -#: project/views/event.py:195 project/views/reference.py:157 +#: project/views/event.py:197 project/views/reference.py:159 msgid "Entered name does not match event name" msgstr "Der eingegebene Name entspricht nicht dem Namen der Veranstaltung" -#: project/views/event.py:201 +#: project/views/event.py:203 msgid "Event successfully deleted" msgstr "Veranstaltung erfolgreich gelöscht" -#: project/views/event.py:333 +#: project/views/event.py:335 msgid "Referenced event changed" msgstr "Empfohlene Veranstaltung wurde geändert" -#: project/views/event_place.py:37 +#: project/views/event_place.py:34 msgid "Place successfully created" msgstr "Ort erfolgreich erstellt" -#: project/views/event_place.py:61 +#: project/views/event_place.py:58 msgid "Place successfully updated" msgstr "Ort erfolgreich aktualisiert" -#: project/views/event_place.py:84 +#: project/views/event_place.py:81 msgid "Entered name does not match place name" msgstr "Der eingegebene Name entspricht nicht dem Namen des Ortes" -#: project/views/event_place.py:90 +#: project/views/event_place.py:87 msgid "Place successfully deleted" msgstr "Ort erfolgreich gelöscht" -#: project/views/event_suggestion.py:50 +#: project/views/event_suggestion.py:48 msgid "Event suggestion successfully rejected" msgstr "Veranstaltungsvorschlag erfolgreich abgelehnt" -#: project/views/event_suggestion.py:83 -#: project/views/reference_request_review.py:114 +#: project/views/event_suggestion.py:81 +#: project/views/reference_request_review.py:111 msgid "Event review status updated" msgstr "Prüfungsstatus aktualisiert" -#: project/views/oauth2_client.py:36 +#: project/views/oauth2_client.py:37 msgid "OAuth2 client successfully created" msgstr "OAuth2 Client erfolgreich erstellt" -#: project/views/oauth2_client.py:61 +#: project/views/oauth2_client.py:62 msgid "OAuth2 client successfully updated" msgstr "OAuth2 Client erfolgreich aktualisiert" -#: project/views/oauth2_client.py:84 +#: project/views/oauth2_client.py:85 msgid "Entered name does not match OAuth2 client name" msgstr "Der eingegebene Name entspricht nicht dem Namen des OAuth2 Clients" -#: project/views/oauth2_client.py:89 +#: project/views/oauth2_client.py:90 msgid "OAuth2 client successfully deleted" -msgstr "OAuth2 Client erfolgreich gelöscht"" +msgstr "OAuth2 Client erfolgreich gelöscht\"" -#: project/views/oauth2_token.py:30 +#: project/views/oauth2_token.py:27 msgid "OAuth2 token successfully revoked" msgstr "OAuth2 token erfolgreich widerrufen" -#: project/views/organizer.py:36 +#: project/views/organizer.py:33 msgid "Organizer successfully created" msgstr "Veranstalter erfolgreich erstellt" -#: project/views/organizer.py:61 +#: project/views/organizer.py:58 msgid "Organizer successfully updated" msgstr "Veranstalter erfolgreich aktualisiert" -#: project/views/organizer.py:84 +#: project/views/organizer.py:81 msgid "Entered name does not match organizer name" msgstr "Der eingegebene Name entspricht nicht dem Namen des Veranstalters" -#: project/views/organizer.py:89 +#: project/views/organizer.py:86 msgid "Organizer successfully deleted" msgstr "Veranstalter erfolgreich gelöscht" -#: project/views/reference.py:74 +#: project/views/reference.py:76 msgid "Event successfully referenced" msgstr "Veranstaltung erfolgreich empfohlen" -#: project/views/reference.py:97 +#: project/views/reference.py:99 msgid "Reference successfully updated" msgstr "Empfehlung erfolgreich empfohlen" -#: project/views/reference.py:162 +#: project/views/reference.py:164 msgid "Reference successfully deleted" msgstr "Empfehlung erfolgreich gelöscht" -#: project/views/reference_request.py:92 +#: project/views/reference_request.py:93 msgid "" "Request successfully created. You will be notified after the other " "organization reviews the event." @@ -1814,23 +1819,23 @@ msgstr "" "Empfehlungsanfrage erfolgreich erstellt. Du wirst benachrichtigt, nachdem" " die andere Organisation die Veranstaltung geprüft hat." -#: project/views/reference_request.py:124 +#: project/views/reference_request.py:125 msgid "New reference request" msgstr "Neue Empfehlungsanfrage" -#: project/views/reference_request_review.py:29 +#: project/views/reference_request_review.py:26 msgid "Request already verified" msgstr "Empfehlungsanfrage ist bereits verifiziert" -#: project/views/reference_request_review.py:52 +#: project/views/reference_request_review.py:49 msgid "Reference successfully created" msgstr "Empfehlung erfolgreich erstellt" -#: project/views/reference_request_review.py:54 +#: project/views/reference_request_review.py:51 msgid "Request successfully updated" msgstr "Empfehlungsanfrage erfolgreich aktualisiert" -#: project/views/utils.py:30 +#: project/views/utils.py:31 msgid "" "An entry with the entered values ​​already exists. Duplicate entries are " "not allowed." @@ -1838,20 +1843,20 @@ msgstr "" "Ein Eintrag mit den eingegebenen Werten existiert bereits. Doppelte " "Einträge sind nicht erlaubt." -#: project/views/utils.py:63 +#: project/views/utils.py:68 #, python-format msgid "Error in the %s field - %s" msgstr "Fehler im Feld %s: %s" -#: project/views/utils.py:71 +#: project/views/utils.py:76 msgid "Show" msgstr "Anzeigen" -#: project/views/widget.py:147 +#: project/views/widget.py:149 msgid "Thank you so much! The event is being verified." msgstr "Vielen Dank! Die Veranstaltung wird geprüft." -#: project/views/widget.py:151 +#: project/views/widget.py:153 msgid "" "For more options and your own calendar of events, you can register for " "free." @@ -1859,7 +1864,7 @@ msgstr "" "Für mehr Optionen und einen eigenen Veranstaltungskalender, kannst du " "dich kostenlos registrieren." -#: project/views/widget.py:210 +#: project/views/widget.py:212 msgid "New event review" msgstr "Neue Veranstaltung zu prüfen" diff --git a/project/views/manage.py b/project/views/manage.py index ce3bbe0..f10a64c 100644 --- a/project/views/manage.py +++ b/project/views/manage.py @@ -104,7 +104,6 @@ def manage_admin_unit_events(id): admin_unit = get_admin_unit_for_manage_or_404(id) params = EventSearchParams() - params.set_default_date_range() form = FindEventForm(formdata=request.args, obj=params) form.category_id.choices = get_event_category_choices() diff --git a/project/views/utils.py b/project/views/utils.py index 00c35c1..37def2f 100644 --- a/project/views/utils.py +++ b/project/views/utils.py @@ -42,6 +42,10 @@ def get_pagination_urls(pagination, **kwargs): result = {} if pagination: + result["page"] = pagination.page + result["pages"] = pagination.pages + result["total"] = pagination.total + if pagination.has_prev: args = request.args.copy() args.update(kwargs)