diff --git a/forms/event_suggestion.py b/forms/event_suggestion.py index 6cd6170..f39f181 100644 --- a/forms/event_suggestion.py +++ b/forms/event_suggestion.py @@ -12,20 +12,20 @@ from .widgets import CustomDateTimeField, CustomDateField, TagSelectField from .common import event_rating_choices class CreateEventSuggestionForm(FlaskForm): - name = StringField(lazy_gettext('Name'), validators=[DataRequired()], description=lazy_gettext('Gib einen kurzen, aussagekräftigen Namen für die Veranstaltung ein.')) - start = CustomDateTimeField(lazy_gettext('Start'), validators=[DataRequired()], description=lazy_gettext('Gib an, wann die Veranstaltung stattfindet.')) - description = TextAreaField(lazy_gettext('Description'), validators=[Optional()], description=lazy_gettext('Füge der Veranstaltung eine optionale Beschreibung hinzu.')) - external_link = StringField(lazy_gettext('Link URL'), validators=[Optional()], description=lazy_gettext('Füge einen optionalen Link hinzu. Das kann die Prüfung erleichtern.')) + name = StringField(lazy_gettext('Name'), validators=[DataRequired()], description=lazy_gettext('Enter a short, meaningful name for the event.')) + start = CustomDateTimeField(lazy_gettext('Start'), validators=[DataRequired()], description=lazy_gettext('Indicate when the event will take place.')) + description = TextAreaField(lazy_gettext('Description'), validators=[Optional()], description=lazy_gettext('Add an optional description of the event.')) + external_link = StringField(lazy_gettext('Link URL'), validators=[Optional()], description=lazy_gettext('Add an optional link. That can make the review easier.')) - contact_name = StringField(lazy_gettext('Name'), validators=[DataRequired()], description=lazy_gettext('Bitte gib deinen Namen für etwaige Rückfragen an.')) - contact_phone = TelField(lazy_gettext('Phone'), validators=[Optional()], description=lazy_gettext('Bitte gib deine Telefonnummer oder deine Email-Adresse für etwaige Rückfragen an.')) - contact_email = EmailField(lazy_gettext('Email'), validators=[Optional()], description=lazy_gettext('Bitte gib deine Email-Adresse oder deine Telefonnummer für etwaige Rückfragen an.')) - contact_email_notice = BooleanField(lazy_gettext('Ich möchte per Email benachrichtigt werden nach der Prüfung'), validators=[Optional()]) + contact_name = StringField(lazy_gettext('Name'), validators=[DataRequired()], description=lazy_gettext('Please enter your name for the review.')) + contact_phone = TelField(lazy_gettext('Phone'), validators=[Optional()], description=lazy_gettext('Please enter your phone number or email address for the review.')) + contact_email = EmailField(lazy_gettext('Email'), validators=[Optional()], description=lazy_gettext('Please enter your email address or phone number for the review.')) + contact_email_notice = BooleanField(lazy_gettext('I would like to be notified by email after the review'), validators=[Optional()]) - event_place_id = TagSelectField(lazy_gettext('Place') + ' *', validators=[Optional()], description=lazy_gettext('Wähle aus, wo die Veranstaltung stattfindet. Ist der Veranstaltungsort noch nicht in der Liste, trage ihn einfach ein.')) - organizer_id = TagSelectField(lazy_gettext('Organizer') + ' *', validators=[Optional()], description=lazy_gettext('Wähle den Veranstalter aus. Ist der Veranstaltungsort noch nicht in der Liste, trage ihn einfach ein.')) - photo = FormField(BaseImageForm, lazy_gettext('Photo'), default=lambda: Image(), description=lazy_gettext('Wir empfehlen dir, ein Foto für die Veranstaltung hochzuladen. Es macht schon deutlich mehr her, aber es geht natürlich auch ohne.')) - accept_tos = BooleanField(lazy_gettext('Ich bestätige dass ich alle Informationen (Text, Bild, etc.), die ich in das System hochlade, hinsichtlich ihrer Nutzungsrechte abgeklärt habe und erkläre, dass diese weitergegeben werden dürfen.'), validators=[DataRequired()]) + event_place_id = TagSelectField(lazy_gettext('Place') + ' *', validators=[Optional()], description=lazy_gettext('Choose where the event takes place. If the venue is not yet in the list, just enter it.')) + organizer_id = TagSelectField(lazy_gettext('Organizer') + ' *', validators=[Optional()], description=lazy_gettext('Select the organizer. If the organizer is not yet on the list, just enter it.')) + photo = FormField(BaseImageForm, lazy_gettext('Photo'), default=lambda: Image(), description=lazy_gettext('We recommend uploading a photo for the event. It looks a lot more, but of course it works without it.')) + accept_tos = BooleanField(lazy_gettext('I confirm that I have clarified all information (text, images, etc.) that I upload into the system with regard to their rights of use and declare that they may be passed on.'), validators=[DataRequired()]) submit = SubmitField(lazy_gettext("Create event suggestion")) diff --git a/templates/event_suggestion/create.html b/templates/event_suggestion/create.html index b6a3c63..4873e9f 100644 --- a/templates/event_suggestion/create.html +++ b/templates/event_suggestion/create.html @@ -61,7 +61,7 @@
- {{ _('Optionale Details') }} + {{ _('Optional details') }}
{{ render_field_with_errors(form.description) }} diff --git a/translations/de/LC_MESSAGES/messages.mo b/translations/de/LC_MESSAGES/messages.mo index de11e1a..2932663 100644 Binary files a/translations/de/LC_MESSAGES/messages.mo and b/translations/de/LC_MESSAGES/messages.mo differ diff --git a/translations/de/LC_MESSAGES/messages.po b/translations/de/LC_MESSAGES/messages.po index 273125e..377d46c 100644 --- a/translations/de/LC_MESSAGES/messages.po +++ b/translations/de/LC_MESSAGES/messages.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: PROJECT VERSION\n" "Report-Msgid-Bugs-To: EMAIL@ADDRESS\n" -"POT-Creation-Date: 2020-10-18 15:37+0200\n" +"POT-Creation-Date: 2020-10-29 16:07+0100\n" "PO-Revision-Date: 2020-06-07 18:51+0200\n" "Last-Translator: FULL NAME \n" "Language: de\n" @@ -141,10 +141,11 @@ msgstr "Breitengrad" msgid "Longitude" msgstr "Längengrad" -#: forms/admin_unit.py:20 forms/event.py:19 forms/event.py:36 forms/event.py:41 -#: forms/event.py:130 forms/event_place.py:21 forms/event_place.py:43 +#: forms/admin_unit.py:20 forms/event.py:19 forms/event.py:39 +#: forms/event.py:138 forms/event_place.py:21 forms/event_place.py:43 +#: forms/event_suggestion.py:15 forms/event_suggestion.py:20 #: forms/organizer.py:20 forms/organizer.py:44 forms/reference.py:18 -#: forms/reference_request.py:14 templates/_macros.html:106 +#: forms/reference_request.py:14 templates/_macros.html:114 #: templates/admin/admin_units.html:18 templates/event_place/list.html:19 #: templates/profile.html:16 templates/profile.html:36 msgid "Name" @@ -165,25 +166,25 @@ msgstr "" msgid "Short name must contain only letters numbers or underscore" msgstr "Der Kurzname darf nur Buchstaben, Nummern und Unterstriche enthalten" -#: forms/admin_unit.py:22 forms/event.py:30 forms/event.py:42 -#: forms/event_place.py:22 forms/organizer.py:21 +#: forms/admin_unit.py:22 forms/event.py:33 forms/event.py:40 +#: forms/event_place.py:22 forms/event_suggestion.py:18 forms/organizer.py:21 msgid "Link URL" msgstr "Link URL" #: forms/admin_unit.py:23 forms/admin_unit_member.py:12 #: forms/admin_unit_member.py:22 forms/admin_unit_member.py:26 -#: forms/event.py:31 forms/event.py:37 forms/organizer.py:22 -#: templates/_macros.html:221 +#: forms/event.py:34 forms/event_suggestion.py:22 forms/organizer.py:22 +#: templates/_macros.html:226 msgid "Email" msgstr "Email" -#: forms/admin_unit.py:24 forms/event.py:32 forms/event.py:38 -#: forms/organizer.py:23 templates/_macros.html:248 +#: forms/admin_unit.py:24 forms/event.py:35 forms/event_suggestion.py:21 +#: forms/organizer.py:23 templates/_macros.html:253 msgid "Phone" msgstr "Telefon" -#: forms/admin_unit.py:25 forms/event.py:33 forms/organizer.py:24 -#: templates/_macros.html:256 +#: forms/admin_unit.py:25 forms/event.py:36 forms/organizer.py:24 +#: templates/_macros.html:261 msgid "Fax" msgstr "Fax" @@ -305,237 +306,212 @@ msgstr "50 km" msgid "100 km" msgstr "100 km" -#: forms/event.py:29 +#: forms/event.py:32 msgid "Organizator" -msgstr "Organisator" +msgstr "Veranstalter" -#: forms/event.py:43 +#: forms/event.py:41 msgid "Ticket Link URL" msgstr "Ticket Link" -#: forms/event.py:44 forms/event_place.py:24 +#: forms/event.py:42 forms/event_place.py:24 forms/event_suggestion.py:17 msgid "Description" msgstr "Beschreibung" -#: forms/event.py:45 +#: forms/event.py:43 msgid "Recurrence rule" msgstr "Wiederholungsregel" -#: forms/event.py:46 +#: forms/event.py:44 forms/event_suggestion.py:16 msgid "Start" msgstr "Beginn" -#: forms/event.py:47 +#: forms/event.py:45 msgid "End" msgstr "Ende" -#: forms/event.py:48 templates/_macros.html:327 +#: forms/event.py:46 templates/_macros.html:336 msgid "Previous start date" msgstr "Vorheriges Startdatum" -#: forms/event.py:49 templates/_macros.html:203 +#: forms/event.py:47 templates/_macros.html:208 msgid "Tags" msgstr "Stichworte" -#: forms/event.py:51 forms/event.py:155 templates/_macros.html:397 -#: templates/event/create.html:59 templates/event/update.html:44 +#: forms/event.py:49 forms/event.py:146 forms/event_date.py:20 +#: forms/planing.py:19 templates/_macros.html:354 +msgid "Category" +msgstr "Kategorie" + +#: forms/event.py:51 +msgid "Kid friendly" +msgstr "Für Kinder geeignet" + +#: forms/event.py:52 +msgid "Accessible for free" +msgstr "Kostenlos zugänglich" + +#: forms/event.py:53 +msgid "Typical Age from" +msgstr "Typisches Alter von" + +#: forms/event.py:54 +msgid "Typical Age to" +msgstr "Typisches Alter bis" + +#: forms/event.py:55 +msgid "Registration required" +msgstr "Anmeldung erforderlich" + +#: forms/event.py:56 +msgid "Booked up" +msgstr "Ausgebucht" + +#: forms/event.py:57 +msgid "Expected number of participants" +msgstr "Erwartete Teilnehmerzahl" + +#: forms/event.py:58 +msgid "Price info" +msgstr "Preisinformation" + +#: forms/event.py:60 +msgid "Target group origin" +msgstr "Für Touristen/Einwohner geeignet" + +#: forms/event.py:61 +msgid "EventTargetGroupOrigin.both" +msgstr "Für Touristen und Einwohner" + +#: forms/event.py:62 +msgid "EventTargetGroupOrigin.tourist" +msgstr "Hauptsächlich für Touristen" + +#: forms/event.py:63 +msgid "EventTargetGroupOrigin.resident" +msgstr "Hauptsächlich für Einwohner" + +#: forms/event.py:65 +msgid "Attendance mode" +msgstr "Teilnahme" + +#: forms/event.py:66 +msgid "EventAttendanceMode.offline" +msgstr "Offline" + +#: forms/event.py:67 +msgid "EventAttendanceMode.online" +msgstr "Online" + +#: forms/event.py:68 +msgid "EventAttendanceMode.mixed" +msgstr "Online und offline" + +#: forms/event.py:70 forms/event_place.py:23 forms/event_suggestion.py:27 +msgid "Photo" +msgstr "Foto" + +#: forms/event.py:71 forms/reference.py:9 forms/reference.py:13 +#: forms/reference_request.py:29 templates/event/create.html:163 +#: templates/event/update.html:94 +msgid "Rating" +msgstr "Bewertung" + +#: forms/event.py:74 forms/event.py:75 forms/event.py:118 +#: forms/event_suggestion.py:25 templates/_macros.html:371 +#: templates/event/create.html:105 templates/event/update.html:53 +#: templates/event_place/create.html:20 templates/event_place/delete.html:13 +#: templates/event_place/update.html:20 +msgid "Place" +msgstr "Ort" + +#: forms/event.py:74 +msgid "Select existing place" +msgstr "Vorhandenen Ort auswählen" + +#: forms/event.py:74 +msgid "Enter new place" +msgstr "Neuen Ort eingeben" + +#: forms/event.py:78 forms/event.py:79 forms/event.py:119 forms/event.py:147 +#: forms/event_suggestion.py:26 templates/_macros.html:401 +#: templates/event/create.html:80 templates/event/update.html:44 #: templates/organizer/create.html:16 templates/organizer/delete.html:13 #: templates/organizer/update.html:16 msgid "Organizer" msgstr "Veranstalter" -#: forms/event.py:52 forms/event.py:154 forms/event_date.py:20 -#: forms/planing.py:19 templates/_macros.html:350 -msgid "Category" -msgstr "Kategorie" +#: forms/event.py:78 +msgid "Select existing organizer" +msgstr "Vorhandenen Veranstalter auswählem" -#: forms/event.py:54 -msgid "Kid friendly" -msgstr "Für Kinder geeignet" +#: forms/event.py:78 +msgid "Enter new organizer" +msgstr "Neuen Veranstalter eingeben" -#: forms/event.py:55 -msgid "Accessible for free" -msgstr "Kostenlos zugänglich" - -#: forms/event.py:56 -msgid "Typical Age from" -msgstr "Typisches Alter von" - -#: forms/event.py:57 -msgid "Typical Age to" -msgstr "Typisches Alter bis" - -#: forms/event.py:58 -msgid "Registration required" -msgstr "Anmeldung erforderlich" - -#: forms/event.py:59 -msgid "Booked up" -msgstr "Ausgebucht" - -#: forms/event.py:60 -msgid "Expected number of participants" -msgstr "Erwartete Teilnehmerzahl" - -#: forms/event.py:61 -msgid "Price info" -msgstr "Preisinformation" - -#: forms/event.py:63 -msgid "Target group origin" -msgstr "Für Touristen/Einwohner geeignet" - -#: forms/event.py:64 -msgid "EventTargetGroupOrigin.both" -msgstr "Für Touristen und Einwohner" - -#: forms/event.py:65 -msgid "EventTargetGroupOrigin.tourist" -msgstr "Hauptsächlich für Touristen" - -#: forms/event.py:66 -msgid "EventTargetGroupOrigin.resident" -msgstr "Hauptsächlich für Einwohner" - -#: forms/event.py:68 -msgid "Attendance mode" -msgstr "Teilnahme" - -#: forms/event.py:69 -msgid "EventAttendanceMode.offline" -msgstr "Offline" - -#: forms/event.py:70 -msgid "EventAttendanceMode.online" -msgstr "Online" - -#: forms/event.py:71 -msgid "EventAttendanceMode.mixed" -msgstr "Online und offline" - -#: forms/event.py:73 forms/event_place.py:23 -msgid "Photo" -msgstr "Foto" - -#: forms/event.py:74 forms/event.py:144 forms/reference.py:9 -#: forms/reference.py:13 forms/reference_request.py:29 -#: templates/event/create.html:142 templates/event/update.html:94 -msgid "Rating" -msgstr "Bewertung" - -#: forms/event.py:77 forms/event.py:78 forms/event.py:111 -#: templates/_macros.html:367 templates/event/create.html:84 -#: templates/event/update.html:53 templates/event_place/create.html:20 -#: templates/event_place/delete.html:13 templates/event_place/update.html:20 -msgid "Place" -msgstr "Ort" - -#: forms/event.py:77 -msgid "Select existing place" -msgstr "Vorhandenen Ort auswählen" - -#: forms/event.py:77 -msgid "Enter new place" -msgstr "Neuen Ort eingeben" - -#: forms/event.py:83 templates/event/create.html:30 templates/example.html:10 +#: forms/event.py:82 templates/event/create.html:51 #: templates/manage/events.html:12 templates/manage/organizers.html:21 -#: templates/manage/widgets.html:19 templates/manage/widgets.html:22 msgid "Create event" msgstr "Veranstaltung erstellen" -#: forms/event.py:104 +#: forms/event.py:106 msgid "Select existing place or enter new place" msgstr "Existierenden Ort wählen oder neuen Ort eingeben" -#: forms/event.py:113 templates/event/update.html:34 +#: forms/event.py:111 +msgid "Select existing organizer or enter new organizer" +msgstr "Wähle einen vorhandenen Veranstalter oder gib einen neuen Veranstalter ein" + +#: forms/event.py:121 templates/event/update.html:34 msgid "Status" msgstr "Status" -#: forms/event.py:114 +#: forms/event.py:122 msgid "EventStatus.scheduled" msgstr "Geplant" -#: forms/event.py:115 templates/layout.html:45 +#: forms/event.py:123 templates/layout.html:45 msgid "EventStatus.cancelled" msgstr "Abgesagt" -#: forms/event.py:116 templates/layout.html:48 +#: forms/event.py:124 templates/layout.html:48 msgid "EventStatus.movedOnline" msgstr "Online verschoben" -#: forms/event.py:117 templates/layout.html:51 +#: forms/event.py:125 templates/layout.html:51 msgid "EventStatus.postponed" msgstr "Verschoben" -#: forms/event.py:118 templates/layout.html:54 +#: forms/event.py:126 templates/layout.html:54 msgid "EventStatus.rescheduled" msgstr "Neu angesetzt" -#: forms/event.py:120 templates/event/update.html:5 +#: forms/event.py:128 templates/event/update.html:5 msgid "Update event" msgstr "Veranstaltung aktualisieren" -#: forms/event.py:129 templates/_macros.html:716 templates/event/delete.html:6 +#: forms/event.py:137 templates/_macros.html:724 templates/event/delete.html:6 msgid "Delete event" msgstr "Veranstaltung löschen" -#: forms/event.py:133 forms/reference_request.py:17 -#: templates/event/review_status.html:16 -#: templates/reference_request/review_status.html:12 -msgid "Review status" -msgstr "Prüfungsstatus" - -#: forms/event.py:134 -msgid "EventReviewStatus.inbox" -msgstr "Ungeprüft" - -#: forms/event.py:135 -msgid "EventReviewStatus.verified" -msgstr "Verifiziert" - -#: forms/event.py:136 -msgid "EventReviewStatus.rejected" -msgstr "Abgelehnt" - -#: forms/event.py:138 forms/reference_request.py:22 -msgid "Rejection reason" -msgstr "Ablehnungsgrund" - -#: forms/event.py:140 -msgid "EventRejectionReason.duplicate" -msgstr "Duplikat" - -#: forms/event.py:141 -msgid "EventRejectionReason.untrustworthy" -msgstr "Unseriös" - -#: forms/event.py:142 -msgid "EventRejectionReason.illegal" -msgstr "Unzulässig" - -#: forms/event.py:146 forms/reference_request.py:30 -msgid "Save review" -msgstr "Prüfung speichern" - -#: forms/event.py:151 forms/event_date.py:17 forms/planing.py:17 +#: forms/event.py:143 forms/event_date.py:17 forms/planing.py:17 msgid "From" msgstr "Von" -#: forms/event.py:152 forms/event_date.py:18 forms/planing.py:18 +#: forms/event.py:144 forms/event_date.py:18 forms/planing.py:18 msgid "to" msgstr "bis" -#: forms/event.py:153 forms/event_date.py:19 +#: forms/event.py:145 forms/event_date.py:19 msgid "Keyword" msgstr "Stichwort" -#: forms/event.py:157 +#: forms/event.py:149 msgid "Find events" msgstr "Veranstaltungen finden" -#: forms/event_date.py:22 forms/planing.py:21 templates/_macros.html:108 -#: templates/_macros.html:263 templates/admin_unit/create.html:26 +#: forms/event_date.py:22 forms/planing.py:21 templates/_macros.html:116 +#: templates/_macros.html:268 templates/admin_unit/create.html:26 #: templates/admin_unit/update.html:27 templates/event_place/create.html:29 #: templates/event_place/update.html:29 templates/organizer/create.html:25 #: templates/organizer/update.html:25 @@ -569,6 +545,97 @@ msgstr "Ort löschen" msgid "Find places" msgstr "Orte finden" +#: forms/event_suggestion.py:15 +msgid "Enter a short, meaningful name for the event." +msgstr "Gib einen kurzen, aussagekräftigen Namen für die Veranstaltung ein." + +#: forms/event_suggestion.py:16 +msgid "Indicate when the event will take place." +msgstr "Gib an, wann die Veranstaltung stattfindet." + +#: forms/event_suggestion.py:17 +msgid "Add an optional description of the event." +msgstr "Füge der Veranstaltung eine optionale Beschreibung hinzu." + +#: forms/event_suggestion.py:18 +msgid "Add an optional link. That can make the review easier." +msgstr "Füge einen optionalen Link hinzu. Das kann die Prüfung erleichtern." + +#: forms/event_suggestion.py:20 +msgid "Please enter your name for the review." +msgstr "Bitte gib deinen Namen für die Prüfung an." + +#: forms/event_suggestion.py:21 +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." + +#: forms/event_suggestion.py:22 +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." + +#: forms/event_suggestion.py:23 +msgid "I would like to be notified by email after the review" +msgstr "Ich möchte per Email benachrichtigt werden nach der Prüfung" + +#: forms/event_suggestion.py:25 +msgid "" +"Choose where the event takes place. If the venue is not yet in the list, " +"just enter it." +msgstr "" +"Wähle aus, wo die Veranstaltung stattfindet. Ist der Veranstaltungsort " +"noch nicht in der Liste, trage ihn einfach ein." + +#: forms/event_suggestion.py:26 +msgid "" +"Select the organizer. If the organizer is not yet on the list, just enter" +" it." +msgstr "" +"Wähle den Veranstalter aus. Ist der Veranstalter noch nicht in der Liste," +" trage ihn einfach ein." + +#: forms/event_suggestion.py:27 +msgid "" +"We recommend uploading a photo for the event. It looks a lot more, but of" +" course it works without it." +msgstr "" +"Wir empfehlen dir, ein Foto für die Veranstaltung hochzuladen. Es macht " +"schon deutlich mehr her, aber es geht natürlich auch ohne." + +#: forms/event_suggestion.py:28 +msgid "" +"I confirm that I have clarified all information (text, images, etc.) that" +" I upload into the system with regard to their rights of use and declare " +"that they may be passed on." +msgstr "" +"Ich bestätige dass ich alle Informationen (Text, Bild, etc.), die ich in " +"das System hochlade, hinsichtlich ihrer Nutzungsrechte abgeklärt habe und" +" erkläre, dass diese weitergegeben werden dürfen." + +#: forms/event_suggestion.py:30 templates/event_suggestion/create.html:5 +#: templates/example.html:10 +msgid "Create event suggestion" +msgstr "Veranstaltung vorschlagen" + +#: forms/event_suggestion.py:46 forms/reference_request.py:22 +msgid "Rejection reason" +msgstr "Ablehnungsgrund" + +#: forms/event_suggestion.py:48 +msgid "EventRejectionReason.duplicate" +msgstr "Duplikat" + +#: forms/event_suggestion.py:49 +msgid "EventRejectionReason.untrustworthy" +msgstr "Unseriös" + +#: forms/event_suggestion.py:50 +msgid "EventRejectionReason.illegal" +msgstr "Unzulässig" + +#: forms/event_suggestion.py:52 +msgid "Reject event suggestion" +msgstr "Vorgeschlagene Veranstaltung ablehen" + #: forms/organizer.py:37 templates/manage/organizers.html:12 #: templates/organizer/create.html:10 msgid "Create organizer" @@ -586,7 +653,7 @@ msgstr "Veranstalter löschen" msgid "Weekdays" msgstr "Wochentage" -#: forms/reference.py:8 forms/reference_request.py:9 templates/_macros.html:412 +#: forms/reference.py:8 forms/reference_request.py:9 templates/_macros.html:417 #: templates/admin_unit/create.html:16 templates/admin_unit/update.html:17 msgid "Admin unit" msgstr "Verwaltungseinheit" @@ -611,6 +678,12 @@ msgstr "Anfrage speichern" msgid "Delete request" msgstr "Anfrage löschen" +#: forms/reference_request.py:17 +#: templates/event_suggestion/review_status.html:18 +#: templates/reference_request/review_status.html:12 +msgid "Review status" +msgstr "Prüfungsstatus" + #: forms/reference_request.py:18 msgid "EventReferenceRequestReviewStatus.inbox" msgstr "Ungeprüft" @@ -639,86 +712,85 @@ msgstr "Nicht relevant" msgid "EventReferenceRequestRejectionReason.illegal" msgstr "Unzulässig" -#: templates/_macros.html:105 templates/_macros.html:313 -#: templates/_macros.html:320 templates/_macros.html:608 +#: forms/reference_request.py:30 +msgid "Save review" +msgstr "Prüfung speichern" + +#: forms/widgets.py:101 +msgid "This field is required" +msgstr "Dieses Feld ist erforderlich" + +#: templates/_macros.html:113 templates/_macros.html:322 +#: templates/_macros.html:329 templates/_macros.html:614 msgid "Date" msgstr "Datum" -#: templates/_macros.html:107 +#: templates/_macros.html:115 msgid "Host" msgstr "Veranstalter" -#: templates/_macros.html:119 templates/_macros.html:330 -msgid "Verified" -msgstr "Verifiziert" - -#: templates/_macros.html:132 +#: templates/_macros.html:137 msgid "Show all events" msgstr "Alle Veranstaltungen anzeigen" -#: templates/_macros.html:148 +#: templates/_macros.html:153 msgid "Show on Google Maps" msgstr "Auf Google Maps anzeigen" -#: templates/_macros.html:212 +#: templates/_macros.html:217 msgid "Link" msgstr "Link" -#: templates/_macros.html:306 templates/event/create.html:37 +#: templates/_macros.html:315 templates/event/create.html:58 #: templates/event/delete.html:13 templates/event/update.html:12 -#: templates/reference/delete.html:13 +#: templates/event_suggestion/create.html:50 templates/reference/delete.html:13 msgid "Event" msgstr "Veranstaltung" -#: templates/_macros.html:316 +#: templates/_macros.html:325 #, python-format msgid "%(count)d event dates" msgstr "%(count)d Termine" -#: templates/_macros.html:387 +#: templates/_macros.html:391 msgid "Show directions" msgstr "Anreise planen" -#: templates/_macros.html:436 +#: templates/_macros.html:442 msgid "Sign in with Google" msgstr "Mit Google anmelden" -#: templates/_macros.html:496 +#: templates/_macros.html:502 msgid "Search location on Google" msgstr "Ort bei Google suchen" -#: templates/_macros.html:559 templates/_macros.html:561 +#: templates/_macros.html:565 templates/_macros.html:567 #: templates/event_date/list.html:270 msgid "Previous" msgstr "Zurück" -#: templates/_macros.html:564 templates/_macros.html:566 +#: templates/_macros.html:570 templates/_macros.html:572 #: templates/event_date/list.html:271 msgid "Next" msgstr "Weiter" -#: templates/_macros.html:631 +#: templates/_macros.html:637 msgid "Radius" msgstr "Umkreis" -#: templates/_macros.html:708 +#: templates/_macros.html:719 msgid "Actions" msgstr "Aktionen" -#: templates/_macros.html:712 templates/event/review.html:8 -#: templates/manage/reviews.html:19 -msgid "Review event" -msgstr "Veranstaltung prüfen" - -#: templates/_macros.html:715 templates/event/review.html:22 +#: templates/_macros.html:723 msgid "Edit event" msgstr "Veranstaltung bearbeiten" -#: templates/_macros.html:719 templates/manage/references_incoming.html:10 +#: templates/_macros.html:727 templates/manage/references_incoming.html:10 msgid "Reference event" msgstr "Veranstaltung empfehlen" -#: templates/_macros.html:722 +#: templates/_macros.html:730 #: templates/manage/reference_requests_outgoing.html:10 #: templates/manage/references_outgoing.html:10 msgid "Empfehlung anfragen" @@ -729,7 +801,7 @@ msgid "Widget als iFrame einbetten" msgstr "Widget als iFrame einbetten" #: templates/home.html:26 templates/home.html:142 -#: templates/security/login_user.html:25 +#: templates/security/login_user.html:25 views/event_suggestion.py:44 msgid "Register for free" msgstr "Kostenlos registrieren" @@ -833,7 +905,7 @@ msgid "Admin Units" msgstr "Verwaltungseinheiten" #: templates/admin_unit/create.html:46 templates/admin_unit/update.html:47 -#: templates/event/create.html:125 templates/event/update.html:77 +#: templates/event/create.html:146 templates/event/update.html:77 #: templates/event_place/create.html:46 templates/event_place/update.html:46 #: templates/organizer/create.html:45 templates/organizer/update.html:45 msgid "Additional information" @@ -882,27 +954,23 @@ msgid "There is a new event that needs to be reviewed." msgstr "Es wurde eine neue Veranstaltung eingetragen, die geprüft werden muss." #: templates/email/review_notice.html:5 -msgid "Click here to review the event" -msgstr "Klicker hier, um die Veranstaltung zu prüfen." +msgid "Click here to review the event suggestion" +msgstr "Klicke hier, um den Vorschlag zu prüfen" #: templates/email/review_status_notice.html:4 msgid "The review status of your event has been updated." msgstr "Der Prüfungsstatus deiner Veranstaltung wurde aktualisiert" -#: templates/event/create.html:48 templates/event/update.html:23 +#: templates/event/create.html:69 templates/event/update.html:23 msgid "Event date" msgstr "Termin" -#: templates/event/create.html:69 templates/event/review.html:29 -msgid "Contact" -msgstr "Kontakt" - -#: templates/event/create.html:110 templates/event/update.html:62 +#: templates/event/create.html:131 templates/event/update.html:62 msgid "Target group" msgstr "Zielgruppe" -#: templates/event/read.html:17 templates/event/review.html:43 -#: templates/event_date/list.html:4 templates/event_date/list.html:249 +#: templates/event/read.html:17 templates/event_date/list.html:4 +#: templates/event_date/list.html:249 #: templates/reference_request/review.html:30 msgid "Event Dates" msgstr "Termine" @@ -917,20 +985,41 @@ msgstr "Veranstaltung \"%(name)s\" empfehlen" msgid "Request reference for event \"%(name)s\"" msgstr "Empfehlung anfragen für Veranstaltung \"%(name)s\"" -#: templates/event/review_status.html:11 -msgid "You can visit this page again to check the status." -msgstr "Sie können diese Seite erneut besuchen, um den Status zu prüfen." - -#: templates/event/review_status.html:21 templates/manage/events.html:26 -#: templates/manage/references_incoming.html:19 -#: templates/manage/references_outgoing.html:19 -msgid "View" -msgstr "Anzeigen" - #: templates/event_place/read.html:19 msgid "Info" msgstr "Info" +#: templates/event_suggestion/create.html:33 +#: templates/event_suggestion/review.html:34 +msgid "Contact" +msgstr "Kontakt" + +#: templates/event_suggestion/create.html:64 +msgid "Optional details" +msgstr "Optionale Details" + +#: templates/event_suggestion/review.html:8 templates/manage/reviews.html:19 +msgid "Review event suggestion" +msgstr "Veranstaltungsvorschlag prüfen" + +#: templates/event_suggestion/review.html:12 +msgid "Event suggestion" +msgstr "Veranstaltungsvorschlag" + +#: templates/event_suggestion/review.html:45 +#: templates/event_suggestion/review_status.html:24 +#: templates/reference_request/review_status.html:17 +msgid "View event" +msgstr "Veranstaltung anzeigen" + +#: templates/event_suggestion/review.html:49 +msgid "Create event from suggestion" +msgstr "Erstelle eine Veranstaltung aus dem Vorschlag" + +#: templates/event_suggestion/review_status.html:12 +msgid "You can visit this page again to check the status." +msgstr "Sie können diese Seite erneut besuchen, um den Status zu prüfen." + #: templates/invitation/read.html:4 templates/invitation/read.html:8 #: templates/manage/delete_invitation.html:13 msgid "Invitation" @@ -945,6 +1034,11 @@ msgstr "Möchtest du die Einladung von %(name)s akzeptieren?" msgid "Member" msgstr "Mitglied" +#: templates/manage/events.html:26 templates/manage/references_incoming.html:19 +#: templates/manage/references_outgoing.html:19 +msgid "View" +msgstr "Anzeigen" + #: templates/manage/events.html:27 templates/manage/members.html:35 #: templates/manage/organizers.html:22 templates/manage/places.html:27 #: templates/manage/references_incoming.html:20 @@ -982,7 +1076,7 @@ msgstr "Veranstaltungen als iFrame einbetten" msgid "Link, um Veranstaltungen vorzuschlagen" msgstr "Link, um Veranstaltungen vorzuschlagen" -#: templates/manage/widgets.html:25 +#: templates/manage/widgets.html:22 msgid "URL für Infoscreen" msgstr "URL für Infoscreen" @@ -999,10 +1093,6 @@ msgstr "Empfehlung aktualisieren für Veranstaltung \"%(name)s\"" msgid "Review event reference request" msgstr "Empfehlungsanfrage prüfen" -#: templates/reference_request/review_status.html:17 -msgid "View event" -msgstr "Veranstaltung anzeigen" - #: templates/security/login_user.html:23 msgid "You do not have an account yet? Not a problem!" msgstr "Du hast noch keinen Account? Kein Problem!" @@ -1055,29 +1145,21 @@ msgstr "Die eingegebene Email passt nicht zur Email der Einladung" msgid "Invitation successfully deleted" msgstr "Einladung erfolgreich gelöscht" -#: views/event.py:56 views/event_review.py:31 -msgid "Event successfully updated" -msgstr "Veranstaltung erfolgreich aktualisiert" - -#: views/event.py:77 views/reference.py:99 -msgid "Entered name does not match event name" -msgstr "Der eingegebene Name entspricht nicht dem Namen der Veranstaltung" - -#: views/event.py:83 -msgid "Event successfully deleted" -msgstr "Veranstaltung erfolgreich gelöscht" - -#: views/event.py:144 +#: views/event.py:74 msgid "Event successfully created" msgstr "Veranstaltung erfolgreich erstellt" -#: views/event.py:148 -msgid "Thank you so much! The event is being verified." -msgstr "Vielen Dank! Die Veranstaltung wird geprüft." +#: views/event.py:96 +msgid "Event successfully updated" +msgstr "Veranstaltung erfolgreich aktualisiert" -#: views/event.py:181 -msgid "New event review" -msgstr "Neue Veranstaltung zu prüfen" +#: views/event.py:117 views/reference.py:99 +msgid "Entered name does not match event name" +msgstr "Der eingegebene Name entspricht nicht dem Namen der Veranstaltung" + +#: views/event.py:123 +msgid "Event successfully deleted" +msgstr "Veranstaltung erfolgreich gelöscht" #: views/event_place.py:29 msgid "Place successfully created" @@ -1095,7 +1177,27 @@ msgstr "Der eingegebene Name entspricht nicht dem Namen des Ortes" msgid "Place successfully deleted" msgstr "Ort erfolgreich gelöscht" -#: views/event_review.py:55 views/reference_request_review.py:76 +#: views/event_suggestion.py:41 +msgid "Thank you so much! The event is being verified." +msgstr "Vielen Dank! Die Veranstaltung wird geprüft." + +#: views/event_suggestion.py:44 +msgid "" +"For more options and your own calendar of events, you can register for " +"free." +msgstr "" +"Für mehr Optionen und einen eigenen Veranstaltungskalender, kannst du " +"dich kostenlos registrieren." + +#: views/event_suggestion.py:71 +msgid "Event suggestion successfully rejected" +msgstr "Veranstaltungsvorschlag erfolgreich abgelehnt" + +#: views/event_suggestion.py:96 +msgid "New event review" +msgstr "Neue Veranstaltung zu prüfen" + +#: views/event_suggestion.py:103 views/reference_request_review.py:76 msgid "Event review status updated" msgstr "Prüfungsstatus aktualisiert" @@ -1152,7 +1254,7 @@ msgstr "Empfehlung erfolgreich erstellt" msgid "Error in the %s field - %s" msgstr "Fehler im Feld %s: %s" -#: views/utils.py:59 +#: views/utils.py:60 msgid "Show" msgstr "Anzeigen" @@ -1175,7 +1277,7 @@ msgstr "Anzeigen" #~ msgstr "Deine Organisationen" #~ msgid "Select existing host or enter organizer" -#~ msgstr "Existierenden Veranstalter wählen oder Organisator eingeben" +#~ msgstr "Existierenden Veranstalter wählen oder Veranstalter eingeben" #~ msgid "Suggest event" #~ msgstr "Veranstaltung vorschlagen" @@ -1258,3 +1360,24 @@ msgstr "Anzeigen" #~ msgid "Event successfully created" #~ msgstr "Veranstaltung erfolgreich erstellt" +#~ msgid "EventReviewStatus.inbox" +#~ msgstr "Ungeprüft" + +#~ msgid "EventReviewStatus.verified" +#~ msgstr "Verifiziert" + +#~ msgid "EventReviewStatus.rejected" +#~ msgstr "Abgelehnt" + +#~ msgid "Verified" +#~ msgstr "Verifiziert" + +#~ msgid "Review event" +#~ msgstr "Veranstaltung prüfen" + +#~ msgid "Click here to review the event" +#~ msgstr "Klicker hier, um die Veranstaltung zu prüfen." + +#~ msgid "Register" +#~ msgstr "" + diff --git a/views/event_suggestion.py b/views/event_suggestion.py index 559cf7a..a607519 100644 --- a/views/event_suggestion.py +++ b/views/event_suggestion.py @@ -2,7 +2,7 @@ from app import app, db from models import EventSuggestion, User, Event, EventDate, EventReviewStatus, AdminUnit, AdminUnitMember, EventOrganizer, EventCategory from flask import render_template, flash, url_for, redirect, request, jsonify, abort from flask_babelex import gettext -from flask_security import auth_required +from flask_security import auth_required, current_user from access import has_access, access_or_401, can_reference_event, has_admin_unit_member_permission from dateutils import today from datetime import datetime @@ -39,6 +39,10 @@ def event_suggestion_create_for_admin_unit(au_short_name): send_event_inbox_mails(admin_unit, event_suggestion) flash(gettext('Thank you so much! The event is being verified.'), 'success') + + if not current_user.is_authenticated: + flash_message(gettext('For more options and your own calendar of events, you can register for free.'), url_for('security.register'), gettext('Register for free'), 'info') + return redirect(url_for('event_suggestion_review_status', event_suggestion_id=event_suggestion.id)) except SQLAlchemyError as e: db.session.rollback() diff --git a/views/utils.py b/views/utils.py index 608e893..0a52a2d 100644 --- a/views/utils.py +++ b/views/utils.py @@ -55,11 +55,12 @@ def flash_errors(form): error ), 'danger') -def flash_message(msg, url): - link_text = gettext('Show') +def flash_message(msg, url, link_text = None, category = 'success'): + if not link_text: + link_text = gettext('Show') link = ' – %s' % (url, link_text) message = Markup(msg + link) - flash(message, 'success') + flash(message, category) def permission_missing(redirect_location): flash('You do not have permission for this action', 'danger')