diff --git a/cypress/e2e/root.cy.js b/cypress/e2e/root.cy.js index 0559b17..57d41c2 100644 --- a/cypress/e2e/root.cy.js +++ b/cypress/e2e/root.cy.js @@ -3,7 +3,7 @@ describe("Root", () => { cy.visit("/"); cy.screenshot("home"); - cy.visit("/tos"); + cy.visit("/tos", {failOnStatusCode: false}); cy.screenshot("tos"); cy.visit("/legal_notice"); diff --git a/messages.pot b/messages.pot index f83b1b7..124cf87 100644 --- a/messages.pot +++ b/messages.pot @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: PROJECT VERSION\n" "Report-Msgid-Bugs-To: EMAIL@ADDRESS\n" -"POT-Creation-Date: 2023-05-04 14:04+0200\n" +"POT-Creation-Date: 2023-05-09 22:22+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -198,25 +198,25 @@ msgstr "" msgid "You have received an invitation" msgstr "" -#: project/forms/admin.py:11 project/templates/layout.html:304 +#: project/forms/admin.py:11 project/templates/layout.html:305 #: project/views/root.py:55 msgid "Terms of service" msgstr "" -#: project/forms/admin.py:12 project/templates/layout.html:308 -#: project/views/root.py:63 +#: project/forms/admin.py:12 project/templates/layout.html:310 +#: project/views/root.py:67 msgid "Legal notice" msgstr "" #: project/forms/admin.py:13 project/templates/_macros.html:1473 -#: project/templates/layout.html:312 +#: project/templates/layout.html:314 #: project/templates/widget/event_suggestion/create.html:204 -#: project/views/admin_unit.py:83 project/views/root.py:71 +#: project/views/admin_unit.py:83 project/views/root.py:75 msgid "Contact" msgstr "" -#: project/forms/admin.py:14 project/templates/layout.html:316 -#: project/views/root.py:79 +#: project/forms/admin.py:14 project/templates/layout.html:318 +#: project/views/root.py:83 msgid "Privacy" msgstr "" @@ -229,8 +229,8 @@ msgstr "" msgid "Save" msgstr "" -#: project/forms/admin.py:21 project/forms/admin_unit_member.py:12 -#: project/forms/admin_unit_member.py:32 +#: project/forms/admin.py:21 project/forms/admin_unit_member.py:14 +#: project/forms/admin_unit_member.py:34 msgid "Roles" msgstr "" @@ -243,10 +243,10 @@ msgstr "" msgid "Delete user" msgstr "" -#: 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/forms/admin.py:27 project/forms/admin_unit.py:53 +#: project/forms/admin_unit_member.py:12 project/forms/admin_unit_member.py:25 +#: project/forms/admin_unit_member.py:30 project/forms/event.py:107 +#: project/forms/event_suggestion.py:38 project/forms/organizer.py:33 #: project/forms/user.py:18 project/forms/user.py:23 #: project/templates/_macros.html:237 project/templates/_macros.html:1569 #: project/templates/admin/admin.html:27 project/templates/admin/email.html:4 @@ -308,13 +308,13 @@ msgstr "" msgid "Delete organization" msgstr "" -#: project/forms/admin.py:69 project/forms/admin_unit.py:28 -#: project/forms/admin_unit.py:134 project/forms/admin_unit.py:139 -#: project/forms/admin_unit.py:144 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 project/forms/organizer.py:25 -#: project/forms/organizer.py:52 project/forms/reference_request.py:23 +#: project/forms/admin.py:69 project/forms/admin_unit.py:34 +#: project/forms/admin_unit.py:142 project/forms/admin_unit.py:147 +#: project/forms/admin_unit.py:152 project/forms/event.py:85 +#: project/forms/event.py:114 project/forms/event_place.py:30 +#: project/forms/event_place.py:56 project/forms/event_suggestion.py:26 +#: project/forms/oauth2_client.py:66 project/forms/organizer.py:30 +#: project/forms/organizer.py:58 project/forms/reference_request.py:23 #: project/templates/admin/admin_units.html:19 #: project/templates/event_place/list.html:19 #: project/templates/manage/organizers.html:18 @@ -347,139 +347,139 @@ msgstr "" msgid "Send newsletter" msgstr "" -#: project/forms/admin_unit.py:14 project/forms/event_place.py:12 -#: project/forms/organizer.py:12 +#: project/forms/admin_unit.py:15 project/forms/event_place.py:13 +#: project/forms/organizer.py:13 msgid "Street" msgstr "" -#: project/forms/admin_unit.py:15 project/forms/event.py:453 -#: project/forms/event_place.py:13 project/forms/organizer.py:13 +#: project/forms/admin_unit.py:18 project/forms/event.py:453 +#: project/forms/event_place.py:16 project/forms/organizer.py:16 msgid "Postal code" msgstr "" -#: project/forms/admin_unit.py:16 project/forms/event_place.py:14 -#: project/forms/organizer.py:14 +#: project/forms/admin_unit.py:21 project/forms/event_place.py:18 +#: project/forms/organizer.py:18 msgid "City" msgstr "" -#: project/forms/admin_unit.py:17 project/forms/event_place.py:15 -#: project/forms/organizer.py:15 +#: project/forms/admin_unit.py:23 project/forms/event_place.py:19 +#: project/forms/organizer.py:19 msgid "State" msgstr "" -#: project/forms/admin_unit.py:19 project/forms/event_place.py:17 -#: project/forms/organizer.py:17 +#: project/forms/admin_unit.py:25 project/forms/event_place.py:21 +#: project/forms/organizer.py:21 msgid "Latitude" msgstr "" -#: project/forms/admin_unit.py:22 project/forms/event_place.py:20 -#: project/forms/organizer.py:20 +#: project/forms/admin_unit.py:28 project/forms/event_place.py:24 +#: project/forms/organizer.py:24 msgid "Longitude" msgstr "" -#: project/forms/admin_unit.py:31 +#: project/forms/admin_unit.py:37 msgid "Short name" msgstr "" -#: project/forms/admin_unit.py:32 +#: project/forms/admin_unit.py:38 msgid "The short name is used to create a unique identifier for your events" msgstr "" -#: project/forms/admin_unit.py:40 project/templates/_macros.html:1611 +#: project/forms/admin_unit.py:46 project/templates/_macros.html:1611 msgid "Short name must contain only letters numbers or underscore" msgstr "" -#: 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 +#: project/forms/admin_unit.py:52 project/forms/event.py:106 +#: project/forms/event.py:124 project/forms/event_place.py:32 +#: project/forms/organizer.py:32 project/templates/manage/organizers.html:21 msgid "Link URL" msgstr "" -#: project/forms/admin_unit.py:48 project/forms/event.py:108 -#: project/forms/event_suggestion.py:31 project/forms/organizer.py:28 +#: project/forms/admin_unit.py:54 project/forms/event.py:108 +#: project/forms/event_suggestion.py:31 project/forms/organizer.py:34 #: project/templates/_macros.html:290 #: project/templates/manage/organizers.html:20 msgid "Phone" msgstr "" -#: project/forms/admin_unit.py:49 project/forms/event.py:109 -#: project/forms/organizer.py:29 project/templates/_macros.html:298 +#: project/forms/admin_unit.py:55 project/forms/event.py:109 +#: project/forms/organizer.py:35 project/templates/_macros.html:298 msgid "Fax" msgstr "" -#: project/forms/admin_unit.py:50 project/forms/organizer.py:30 +#: project/forms/admin_unit.py:56 project/forms/organizer.py:36 #: project/templates/manage/organizers.html:22 #: project/templates/manage/organizers.html:47 msgid "Logo" msgstr "" -#: project/forms/admin_unit.py:54 +#: project/forms/admin_unit.py:60 msgid "Allow verification requests" msgstr "" -#: project/forms/admin_unit.py:55 +#: project/forms/admin_unit.py:61 msgid "If set, unverified organizations may ask you for verification." msgstr "" -#: project/forms/admin_unit.py:61 +#: project/forms/admin_unit.py:67 msgid "Verification requests information" msgstr "" -#: project/forms/admin_unit.py:63 +#: project/forms/admin_unit.py:69 msgid "" "This text is shown to unverified organizations to help them decide " "whether they ask you for verification." msgstr "" -#: project/forms/admin_unit.py:79 +#: project/forms/admin_unit.py:85 msgid "Verify new organization" msgstr "" -#: project/forms/admin_unit.py:80 +#: project/forms/admin_unit.py:86 msgid "If set, events of the new organization are publicly visible." msgstr "" -#: project/forms/admin_unit.py:86 project/forms/reference_request.py:86 +#: project/forms/admin_unit.py:92 project/forms/reference_request.py:86 msgid "Verify reference requests automatically" msgstr "" -#: project/forms/admin_unit.py:87 +#: project/forms/admin_unit.py:93 msgid "" "If set, all upcoming reference requests of the new organization are " "verified automatically." msgstr "" -#: project/forms/admin_unit.py:98 project/templates/admin_unit/create.html:5 +#: project/forms/admin_unit.py:104 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:106 project/forms/admin_unit.py:129 +#: project/forms/admin_unit.py:112 project/forms/admin_unit.py:137 msgid "Update settings" msgstr "" -#: project/forms/admin_unit.py:110 +#: project/forms/admin_unit.py:117 msgid "Font" msgstr "" -#: project/forms/admin_unit.py:112 +#: project/forms/admin_unit.py:120 msgid "Background Color" msgstr "" -#: project/forms/admin_unit.py:118 +#: project/forms/admin_unit.py:126 msgid "Primary Color" msgstr "" -#: project/forms/admin_unit.py:124 +#: project/forms/admin_unit.py:132 msgid "Link Color" msgstr "" -#: project/forms/admin_unit.py:133 project/forms/user.py:17 +#: project/forms/admin_unit.py:141 project/forms/user.py:17 msgid "Request deletion" msgstr "" -#: project/forms/admin_unit.py:138 project/forms/user.py:22 +#: project/forms/admin_unit.py:146 project/forms/user.py:22 #: project/templates/admin_unit/cancel_deletion.html:6 #: project/templates/admin_unit/update.html:26 #: project/templates/manage/events.html:49 project/templates/profile.html:13 @@ -487,34 +487,34 @@ msgstr "" msgid "Cancel deletion" msgstr "" -#: project/forms/admin_unit.py:143 project/templates/layout.html:276 +#: project/forms/admin_unit.py:151 project/templates/layout.html:276 #: project/templates/manage/delete_membership.html:6 msgid "Leave organization" msgstr "" -#: project/forms/admin_unit_member.py:13 +#: project/forms/admin_unit_member.py:15 msgid "Invite" msgstr "" -#: project/forms/admin_unit_member.py:17 +#: project/forms/admin_unit_member.py:19 msgid "Accept" msgstr "" -#: project/forms/admin_unit_member.py:18 +#: project/forms/admin_unit_member.py:20 msgid "Decline" msgstr "" -#: project/forms/admin_unit_member.py:22 +#: project/forms/admin_unit_member.py:24 #: project/templates/manage/delete_invitation.html:6 msgid "Delete invitation" msgstr "" -#: project/forms/admin_unit_member.py:27 +#: project/forms/admin_unit_member.py:29 #: project/templates/manage/delete_member.html:6 msgid "Delete member" msgstr "" -#: project/forms/admin_unit_member.py:33 +#: project/forms/admin_unit_member.py:35 #: project/templates/admin_unit/update_member.html:6 msgid "Update member" msgstr "" @@ -527,74 +527,79 @@ msgstr "" msgid "Image" msgstr "" -#: project/forms/common.py:71 +#: project/forms/common.py:74 #, python-format msgid "" "I read and accept %(tos_open)sTerms of Service%(tos_close)s and " "%(privacy_open)sPrivacy%(privacy_close)s." msgstr "" -#: project/forms/common.py:82 +#: project/forms/common.py:84 +#, python-format +msgid "I read and accept %(privacy_open)sPrivacy%(privacy_close)s." +msgstr "" + +#: project/forms/common.py:95 msgid "0 (Little relevant)" msgstr "" -#: project/forms/common.py:87 +#: project/forms/common.py:100 msgid "5 (Default)" msgstr "" -#: project/forms/common.py:92 +#: project/forms/common.py:105 msgid "10 (Highlight)" msgstr "" -#: project/forms/common.py:96 +#: project/forms/common.py:109 msgid "Monday" msgstr "" -#: project/forms/common.py:97 +#: project/forms/common.py:110 msgid "Tueday" msgstr "" -#: project/forms/common.py:98 +#: project/forms/common.py:111 msgid "Wednesday" msgstr "" -#: project/forms/common.py:99 +#: project/forms/common.py:112 msgid "Thursday" msgstr "" -#: project/forms/common.py:100 +#: project/forms/common.py:113 msgid "Friday" msgstr "" -#: project/forms/common.py:101 +#: project/forms/common.py:114 msgid "Saturday" msgstr "" -#: project/forms/common.py:102 +#: project/forms/common.py:115 msgid "Sunday" msgstr "" -#: project/forms/common.py:106 +#: project/forms/common.py:119 msgid "500 m" msgstr "" -#: project/forms/common.py:107 +#: project/forms/common.py:120 msgid "5 km" msgstr "" -#: project/forms/common.py:108 +#: project/forms/common.py:121 msgid "10 km" msgstr "" -#: project/forms/common.py:109 +#: project/forms/common.py:122 msgid "20 km" msgstr "" -#: project/forms/common.py:110 +#: project/forms/common.py:123 msgid "50 km" msgstr "" -#: project/forms/common.py:111 +#: project/forms/common.py:124 msgid "100 km" msgstr "" @@ -641,7 +646,7 @@ msgstr "" msgid "Enter a short, meaningful name for the event." msgstr "" -#: project/forms/event.py:119 project/forms/event_place.py:28 +#: project/forms/event.py:119 project/forms/event_place.py:34 msgid "Description" msgstr "" @@ -782,7 +787,7 @@ msgstr "" msgid "Choose how people can attend the event." msgstr "" -#: project/forms/event.py:225 project/forms/event_place.py:27 +#: project/forms/event.py:225 project/forms/event_place.py:33 #: project/templates/manage/events.html:104 #: project/templates/manage/events.html:139 #: project/templates/manage/places.html:21 @@ -1016,23 +1021,23 @@ msgstr "" msgid "Find" msgstr "" -#: project/forms/event_place.py:41 project/templates/event_place/create.html:5 +#: project/forms/event_place.py:47 project/templates/event_place/create.html:5 #: project/templates/event_place/create.html:21 #: project/templates/event_place/list.html:11 #: project/templates/manage/places.html:11 msgid "Create place" msgstr "" -#: project/forms/event_place.py:45 project/templates/event_place/update.html:5 +#: project/forms/event_place.py:51 project/templates/event_place/update.html:5 #: project/templates/event_place/update.html:21 msgid "Update place" msgstr "" -#: project/forms/event_place.py:49 project/templates/event_place/delete.html:6 +#: project/forms/event_place.py:55 project/templates/event_place/delete.html:6 msgid "Delete place" msgstr "" -#: project/forms/event_place.py:57 +#: project/forms/event_place.py:63 msgid "Find places" msgstr "" @@ -1120,18 +1125,18 @@ msgstr "" msgid "Revoke OAuth2 token" msgstr "" -#: project/forms/organizer.py:43 project/templates/manage/organizers.html:11 +#: project/forms/organizer.py:49 project/templates/manage/organizers.html:11 #: project/templates/organizer/create.html:5 #: project/templates/organizer/create.html:21 msgid "Create organizer" msgstr "" -#: project/forms/organizer.py:47 project/templates/organizer/update.html:5 +#: project/forms/organizer.py:53 project/templates/organizer/update.html:5 #: project/templates/organizer/update.html:21 msgid "Update organizer" msgstr "" -#: project/forms/organizer.py:51 project/templates/organizer/delete.html:6 +#: project/forms/organizer.py:57 project/templates/organizer/delete.html:6 msgid "Delete organizer" msgstr "" @@ -1674,7 +1679,7 @@ msgid "Switch organization" msgstr "" #: project/templates/developer/read.html:4 -#: project/templates/developer/read.html:8 project/templates/layout.html:320 +#: project/templates/developer/read.html:8 project/templates/layout.html:322 #: project/templates/profile.html:46 msgid "Developer" msgstr "" diff --git a/project/forms/common.py b/project/forms/common.py index 11911a1..3d3c12a 100644 --- a/project/forms/common.py +++ b/project/forms/common.py @@ -61,15 +61,28 @@ class Base64ImageForm(BaseImageForm): def get_accept_tos_markup(): + from project.services.admin import has_tos + tos_open = '' % url_for("tos") tos_close = "" privacy_open = '' % url_for("privacy") privacy_close = "" + if has_tos(): + return Markup( + lazy_gettext( + "I read and accept %(tos_open)sTerms of Service%(tos_close)s and %(privacy_open)sPrivacy%(privacy_close)s.", + tos_open=tos_open, + tos_close=tos_close, + privacy_open=privacy_open, + privacy_close=privacy_close, + ) + ) + return Markup( lazy_gettext( - "I read and accept %(tos_open)sTerms of Service%(tos_close)s and %(privacy_open)sPrivacy%(privacy_close)s.", + "I read and accept %(privacy_open)sPrivacy%(privacy_close)s.", tos_open=tos_open, tos_close=tos_close, privacy_open=privacy_open, diff --git a/project/jinja_filters.py b/project/jinja_filters.py index d6ffbae..2e000d0 100644 --- a/project/jinja_filters.py +++ b/project/jinja_filters.py @@ -97,8 +97,14 @@ def get_context_processors(): "reference_requests_incoming_badge": reference_requests_incoming_badge, } + def has_tos(): + from project.services.admin import has_tos + + return has_tos() + return dict( current_admin_unit=get_current_admin_unit(), get_manage_menu_options=get_manage_menu_options, has_access=has_access, + has_tos=has_tos, ) diff --git a/project/services/admin.py b/project/services/admin.py index 717cf5b..5a130eb 100644 --- a/project/services/admin.py +++ b/project/services/admin.py @@ -1,3 +1,5 @@ +from sqlalchemy import exists, func + from project import db from project.models import Settings @@ -9,3 +11,9 @@ def upsert_settings(): db.session.add(result) return result + + +def has_tos(): + return db.session.scalar( + exists().where(func.coalesce(Settings.tos, "") != "").select() + ) diff --git a/project/templates/layout.html b/project/templates/layout.html index 8bd9698..d4dec18 100644 --- a/project/templates/layout.html +++ b/project/templates/layout.html @@ -300,10 +300,12 @@
    + {% if has_tos() %}
  • {{ _('Terms of service') }}
  • + {% endif %}
  • {{ _('Legal notice') }}
  • diff --git a/project/translations/de/LC_MESSAGES/messages.mo b/project/translations/de/LC_MESSAGES/messages.mo index a3d4230..21fa5e7 100644 Binary files a/project/translations/de/LC_MESSAGES/messages.mo and b/project/translations/de/LC_MESSAGES/messages.mo differ diff --git a/project/translations/de/LC_MESSAGES/messages.po b/project/translations/de/LC_MESSAGES/messages.po index 3f34522..7f3a608 100644 --- a/project/translations/de/LC_MESSAGES/messages.po +++ b/project/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: 2023-05-04 14:04+0200\n" +"POT-Creation-Date: 2023-05-09 22:22+0200\n" "PO-Revision-Date: 2020-06-07 18:51+0200\n" "Last-Translator: FULL NAME \n" "Language: de\n" @@ -199,25 +199,25 @@ msgstr "message" msgid "You have received an invitation" msgstr "Du hast eine Einladung erhalten" -#: project/forms/admin.py:11 project/templates/layout.html:304 +#: project/forms/admin.py:11 project/templates/layout.html:305 #: project/views/root.py:55 msgid "Terms of service" msgstr "Nutzungsbedingungen" -#: project/forms/admin.py:12 project/templates/layout.html:308 -#: project/views/root.py:63 +#: project/forms/admin.py:12 project/templates/layout.html:310 +#: project/views/root.py:67 msgid "Legal notice" msgstr "Impressum" #: project/forms/admin.py:13 project/templates/_macros.html:1473 -#: project/templates/layout.html:312 +#: project/templates/layout.html:314 #: project/templates/widget/event_suggestion/create.html:204 -#: project/views/admin_unit.py:83 project/views/root.py:71 +#: project/views/admin_unit.py:83 project/views/root.py:75 msgid "Contact" msgstr "Kontakt" -#: project/forms/admin.py:14 project/templates/layout.html:316 -#: project/views/root.py:79 +#: project/forms/admin.py:14 project/templates/layout.html:318 +#: project/views/root.py:83 msgid "Privacy" msgstr "Datenschutz" @@ -230,8 +230,8 @@ msgstr "Startseite" msgid "Save" msgstr "Speichern" -#: project/forms/admin.py:21 project/forms/admin_unit_member.py:12 -#: project/forms/admin_unit_member.py:32 +#: project/forms/admin.py:21 project/forms/admin_unit_member.py:14 +#: project/forms/admin_unit_member.py:34 msgid "Roles" msgstr "Rollen" @@ -244,10 +244,10 @@ msgstr "Nutzer aktualisieren" msgid "Delete user" msgstr "Nutzer löschen" -#: 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/forms/admin.py:27 project/forms/admin_unit.py:53 +#: project/forms/admin_unit_member.py:12 project/forms/admin_unit_member.py:25 +#: project/forms/admin_unit_member.py:30 project/forms/event.py:107 +#: project/forms/event_suggestion.py:38 project/forms/organizer.py:33 #: project/forms/user.py:18 project/forms/user.py:23 #: project/templates/_macros.html:237 project/templates/_macros.html:1569 #: project/templates/admin/admin.html:27 project/templates/admin/email.html:4 @@ -317,13 +317,13 @@ msgstr "Organisation aktualisieren" msgid "Delete organization" msgstr "Organisation löschen" -#: project/forms/admin.py:69 project/forms/admin_unit.py:28 -#: project/forms/admin_unit.py:134 project/forms/admin_unit.py:139 -#: project/forms/admin_unit.py:144 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 project/forms/organizer.py:25 -#: project/forms/organizer.py:52 project/forms/reference_request.py:23 +#: project/forms/admin.py:69 project/forms/admin_unit.py:34 +#: project/forms/admin_unit.py:142 project/forms/admin_unit.py:147 +#: project/forms/admin_unit.py:152 project/forms/event.py:85 +#: project/forms/event.py:114 project/forms/event_place.py:30 +#: project/forms/event_place.py:56 project/forms/event_suggestion.py:26 +#: project/forms/oauth2_client.py:66 project/forms/organizer.py:30 +#: project/forms/organizer.py:58 project/forms/reference_request.py:23 #: project/templates/admin/admin_units.html:19 #: project/templates/event_place/list.html:19 #: project/templates/manage/organizers.html:18 @@ -356,90 +356,90 @@ msgstr "Nachricht" msgid "Send newsletter" msgstr "Newsletter senden" -#: project/forms/admin_unit.py:14 project/forms/event_place.py:12 -#: project/forms/organizer.py:12 +#: project/forms/admin_unit.py:15 project/forms/event_place.py:13 +#: project/forms/organizer.py:13 msgid "Street" msgstr "Straße" -#: project/forms/admin_unit.py:15 project/forms/event.py:453 -#: project/forms/event_place.py:13 project/forms/organizer.py:13 +#: project/forms/admin_unit.py:18 project/forms/event.py:453 +#: project/forms/event_place.py:16 project/forms/organizer.py:16 msgid "Postal code" msgstr "Postleitzahl" -#: project/forms/admin_unit.py:16 project/forms/event_place.py:14 -#: project/forms/organizer.py:14 +#: project/forms/admin_unit.py:21 project/forms/event_place.py:18 +#: project/forms/organizer.py:18 msgid "City" msgstr "Stadt/Ort" -#: project/forms/admin_unit.py:17 project/forms/event_place.py:15 -#: project/forms/organizer.py:15 +#: project/forms/admin_unit.py:23 project/forms/event_place.py:19 +#: project/forms/organizer.py:19 msgid "State" msgstr "Bundesland" -#: project/forms/admin_unit.py:19 project/forms/event_place.py:17 -#: project/forms/organizer.py:17 +#: project/forms/admin_unit.py:25 project/forms/event_place.py:21 +#: project/forms/organizer.py:21 msgid "Latitude" msgstr "Breitengrad" -#: project/forms/admin_unit.py:22 project/forms/event_place.py:20 -#: project/forms/organizer.py:20 +#: project/forms/admin_unit.py:28 project/forms/event_place.py:24 +#: project/forms/organizer.py:24 msgid "Longitude" msgstr "Längengrad" -#: project/forms/admin_unit.py:31 +#: project/forms/admin_unit.py:37 msgid "Short name" msgstr "Kurzname" -#: project/forms/admin_unit.py:32 +#: project/forms/admin_unit.py:38 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/templates/_macros.html:1611 +#: project/forms/admin_unit.py:46 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: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 +#: project/forms/admin_unit.py:52 project/forms/event.py:106 +#: project/forms/event.py:124 project/forms/event_place.py:32 +#: project/forms/organizer.py:32 project/templates/manage/organizers.html:21 msgid "Link URL" msgstr "Link URL" -#: project/forms/admin_unit.py:48 project/forms/event.py:108 -#: project/forms/event_suggestion.py:31 project/forms/organizer.py:28 +#: project/forms/admin_unit.py:54 project/forms/event.py:108 +#: project/forms/event_suggestion.py:31 project/forms/organizer.py:34 #: project/templates/_macros.html:290 #: project/templates/manage/organizers.html:20 msgid "Phone" msgstr "Telefon" -#: project/forms/admin_unit.py:49 project/forms/event.py:109 -#: project/forms/organizer.py:29 project/templates/_macros.html:298 +#: project/forms/admin_unit.py:55 project/forms/event.py:109 +#: project/forms/organizer.py:35 project/templates/_macros.html:298 msgid "Fax" msgstr "Fax" -#: project/forms/admin_unit.py:50 project/forms/organizer.py:30 +#: project/forms/admin_unit.py:56 project/forms/organizer.py:36 #: project/templates/manage/organizers.html:22 #: project/templates/manage/organizers.html:47 msgid "Logo" msgstr "Logo" -#: project/forms/admin_unit.py:54 +#: project/forms/admin_unit.py:60 msgid "Allow verification requests" msgstr "Verifizierungsanfragen erlauben" -#: project/forms/admin_unit.py:55 +#: project/forms/admin_unit.py:61 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:61 +#: project/forms/admin_unit.py:67 msgid "Verification requests information" msgstr "Text für Verifizierungsanfragen" -#: project/forms/admin_unit.py:63 +#: project/forms/admin_unit.py:69 msgid "" "This text is shown to unverified organizations to help them decide " "whether they ask you for verification." @@ -447,21 +447,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:79 +#: project/forms/admin_unit.py:85 msgid "Verify new organization" msgstr "Neue Organisation verifizieren" -#: project/forms/admin_unit.py:80 +#: project/forms/admin_unit.py:86 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:86 project/forms/reference_request.py:86 +#: project/forms/admin_unit.py:92 project/forms/reference_request.py:86 msgid "Verify reference requests automatically" msgstr "Empfehlungsanfragen automatisch verifizieren" -#: project/forms/admin_unit.py:87 +#: project/forms/admin_unit.py:93 msgid "" "If set, all upcoming reference requests of the new organization are " "verified automatically." @@ -469,37 +469,37 @@ msgstr "" "Wenn gesetzt, werden alle zukünftigen Empfehlungsanfragen der neuen " "Organisation automatisch verifiziert." -#: project/forms/admin_unit.py:98 project/templates/admin_unit/create.html:5 +#: project/forms/admin_unit.py:104 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:106 project/forms/admin_unit.py:129 +#: project/forms/admin_unit.py:112 project/forms/admin_unit.py:137 msgid "Update settings" msgstr "Einstellungen speichern" -#: project/forms/admin_unit.py:110 +#: project/forms/admin_unit.py:117 msgid "Font" msgstr "Schriftart" -#: project/forms/admin_unit.py:112 +#: project/forms/admin_unit.py:120 msgid "Background Color" msgstr "Hintergrundfarbe" -#: project/forms/admin_unit.py:118 +#: project/forms/admin_unit.py:126 msgid "Primary Color" msgstr "Hauptfarbe" -#: project/forms/admin_unit.py:124 +#: project/forms/admin_unit.py:132 msgid "Link Color" msgstr "Linkfarbe" -#: project/forms/admin_unit.py:133 project/forms/user.py:17 +#: project/forms/admin_unit.py:141 project/forms/user.py:17 msgid "Request deletion" msgstr "Löschung beantragen" -#: project/forms/admin_unit.py:138 project/forms/user.py:22 +#: project/forms/admin_unit.py:146 project/forms/user.py:22 #: project/templates/admin_unit/cancel_deletion.html:6 #: project/templates/admin_unit/update.html:26 #: project/templates/manage/events.html:49 project/templates/profile.html:13 @@ -507,34 +507,34 @@ msgstr "Löschung beantragen" msgid "Cancel deletion" msgstr "Löschen abbrechen" -#: project/forms/admin_unit.py:143 project/templates/layout.html:276 +#: project/forms/admin_unit.py:151 project/templates/layout.html:276 #: project/templates/manage/delete_membership.html:6 msgid "Leave organization" msgstr "Organisation verlassen" -#: project/forms/admin_unit_member.py:13 +#: project/forms/admin_unit_member.py:15 msgid "Invite" msgstr "Einladen" -#: project/forms/admin_unit_member.py:17 +#: project/forms/admin_unit_member.py:19 msgid "Accept" msgstr "Akzeptieren" -#: project/forms/admin_unit_member.py:18 +#: project/forms/admin_unit_member.py:20 msgid "Decline" msgstr "Ablehnen" -#: project/forms/admin_unit_member.py:22 +#: project/forms/admin_unit_member.py:24 #: project/templates/manage/delete_invitation.html:6 msgid "Delete invitation" msgstr "Einladung löschen" -#: project/forms/admin_unit_member.py:27 +#: project/forms/admin_unit_member.py:29 #: project/templates/manage/delete_member.html:6 msgid "Delete member" msgstr "Mitglied löschen" -#: project/forms/admin_unit_member.py:33 +#: project/forms/admin_unit_member.py:35 #: project/templates/admin_unit/update_member.html:6 msgid "Update member" msgstr "Mitglied aktualisieren" @@ -547,7 +547,7 @@ msgstr "Copyright Text" msgid "Image" msgstr "Bild" -#: project/forms/common.py:71 +#: project/forms/common.py:74 #, python-format msgid "" "I read and accept %(tos_open)sTerms of Service%(tos_close)s and " @@ -557,67 +557,75 @@ msgstr "" "%(privacy_open)sDatenschutzerklärung%(privacy_close)s gelesen und " "akzeptiere diese." -#: project/forms/common.py:82 +#: project/forms/common.py:84 +#, python-format +msgid "I read and accept %(privacy_open)sPrivacy%(privacy_close)s." +msgstr "" +"Ich habe die " +"%(privacy_open)sDatenschutzerklärung%(privacy_close)s gelesen und " +"akzeptiere diese." + +#: project/forms/common.py:95 msgid "0 (Little relevant)" msgstr "0 (Wenig relevant)" -#: project/forms/common.py:87 +#: project/forms/common.py:100 msgid "5 (Default)" msgstr "5 (Standard)" -#: project/forms/common.py:92 +#: project/forms/common.py:105 msgid "10 (Highlight)" msgstr "10 (Highlight)" -#: project/forms/common.py:96 +#: project/forms/common.py:109 msgid "Monday" msgstr "Montag" -#: project/forms/common.py:97 +#: project/forms/common.py:110 msgid "Tueday" msgstr "Dienstag" -#: project/forms/common.py:98 +#: project/forms/common.py:111 msgid "Wednesday" msgstr "Mittwoch" -#: project/forms/common.py:99 +#: project/forms/common.py:112 msgid "Thursday" msgstr "Donnerstag" -#: project/forms/common.py:100 +#: project/forms/common.py:113 msgid "Friday" msgstr "Freitag" -#: project/forms/common.py:101 +#: project/forms/common.py:114 msgid "Saturday" msgstr "Samstag" -#: project/forms/common.py:102 +#: project/forms/common.py:115 msgid "Sunday" msgstr "Sonntag" -#: project/forms/common.py:106 +#: project/forms/common.py:119 msgid "500 m" msgstr "500 m" -#: project/forms/common.py:107 +#: project/forms/common.py:120 msgid "5 km" msgstr "5 km" -#: project/forms/common.py:108 +#: project/forms/common.py:121 msgid "10 km" msgstr "10 km" -#: project/forms/common.py:109 +#: project/forms/common.py:122 msgid "20 km" msgstr "20 km" -#: project/forms/common.py:110 +#: project/forms/common.py:123 msgid "50 km" msgstr "50 km" -#: project/forms/common.py:111 +#: project/forms/common.py:124 msgid "100 km" msgstr "100 km" @@ -664,7 +672,7 @@ msgstr "Veranstalter" 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:119 project/forms/event_place.py:28 +#: project/forms/event.py:119 project/forms/event_place.py:34 msgid "Description" msgstr "Beschreibung" @@ -814,7 +822,7 @@ msgstr "Präsenzveranstaltung und online" 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/forms/event.py:225 project/forms/event_place.py:33 #: project/templates/manage/events.html:104 #: project/templates/manage/events.html:139 #: project/templates/manage/places.html:21 @@ -1060,23 +1068,23 @@ msgstr "Veranstaltungen finden" msgid "Find" msgstr "Finden" -#: project/forms/event_place.py:41 project/templates/event_place/create.html:5 +#: project/forms/event_place.py:47 project/templates/event_place/create.html:5 #: project/templates/event_place/create.html:21 #: project/templates/event_place/list.html:11 #: project/templates/manage/places.html:11 msgid "Create place" msgstr "Ort hinzufügen" -#: project/forms/event_place.py:45 project/templates/event_place/update.html:5 +#: project/forms/event_place.py:51 project/templates/event_place/update.html:5 #: project/templates/event_place/update.html:21 msgid "Update place" msgstr "Ort aktualisieren" -#: project/forms/event_place.py:49 project/templates/event_place/delete.html:6 +#: project/forms/event_place.py:55 project/templates/event_place/delete.html:6 msgid "Delete place" msgstr "Ort löschen" -#: project/forms/event_place.py:57 +#: project/forms/event_place.py:63 msgid "Find places" msgstr "Orte finden" @@ -1168,18 +1176,18 @@ msgstr "OAuth2 Client löschen" msgid "Revoke OAuth2 token" msgstr "OAuth2 Token widerrufen" -#: project/forms/organizer.py:43 project/templates/manage/organizers.html:11 +#: project/forms/organizer.py:49 project/templates/manage/organizers.html:11 #: project/templates/organizer/create.html:5 #: project/templates/organizer/create.html:21 msgid "Create organizer" msgstr "Veranstalter hinzufügen" -#: project/forms/organizer.py:47 project/templates/organizer/update.html:5 +#: project/forms/organizer.py:53 project/templates/organizer/update.html:5 #: project/templates/organizer/update.html:21 msgid "Update organizer" msgstr "Veranstalter aktualisieren" -#: project/forms/organizer.py:51 project/templates/organizer/delete.html:6 +#: project/forms/organizer.py:57 project/templates/organizer/delete.html:6 msgid "Delete organizer" msgstr "Veranstalter löschen" @@ -1731,7 +1739,7 @@ msgid "Switch organization" msgstr "Organisation wechseln" #: project/templates/developer/read.html:4 -#: project/templates/developer/read.html:8 project/templates/layout.html:320 +#: project/templates/developer/read.html:8 project/templates/layout.html:322 #: project/templates/profile.html:46 msgid "Developer" msgstr "Entwickler" diff --git a/project/translations/en/LC_MESSAGES/messages.mo b/project/translations/en/LC_MESSAGES/messages.mo index 476b637..febbb7c 100644 Binary files a/project/translations/en/LC_MESSAGES/messages.mo and b/project/translations/en/LC_MESSAGES/messages.mo differ diff --git a/project/translations/en/LC_MESSAGES/messages.po b/project/translations/en/LC_MESSAGES/messages.po index b6c99d3..c6467e6 100644 --- a/project/translations/en/LC_MESSAGES/messages.po +++ b/project/translations/en/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: 2023-05-04 14:04+0200\n" +"POT-Creation-Date: 2023-05-09 22:22+0200\n" "PO-Revision-Date: 2021-04-30 15:04+0200\n" "Last-Translator: FULL NAME \n" "Language: en\n" @@ -199,25 +199,25 @@ msgstr "" msgid "You have received an invitation" msgstr "" -#: project/forms/admin.py:11 project/templates/layout.html:304 +#: project/forms/admin.py:11 project/templates/layout.html:305 #: project/views/root.py:55 msgid "Terms of service" msgstr "" -#: project/forms/admin.py:12 project/templates/layout.html:308 -#: project/views/root.py:63 +#: project/forms/admin.py:12 project/templates/layout.html:310 +#: project/views/root.py:67 msgid "Legal notice" msgstr "" #: project/forms/admin.py:13 project/templates/_macros.html:1473 -#: project/templates/layout.html:312 +#: project/templates/layout.html:314 #: project/templates/widget/event_suggestion/create.html:204 -#: project/views/admin_unit.py:83 project/views/root.py:71 +#: project/views/admin_unit.py:83 project/views/root.py:75 msgid "Contact" msgstr "" -#: project/forms/admin.py:14 project/templates/layout.html:316 -#: project/views/root.py:79 +#: project/forms/admin.py:14 project/templates/layout.html:318 +#: project/views/root.py:83 msgid "Privacy" msgstr "" @@ -230,8 +230,8 @@ msgstr "" msgid "Save" msgstr "" -#: project/forms/admin.py:21 project/forms/admin_unit_member.py:12 -#: project/forms/admin_unit_member.py:32 +#: project/forms/admin.py:21 project/forms/admin_unit_member.py:14 +#: project/forms/admin_unit_member.py:34 msgid "Roles" msgstr "" @@ -244,10 +244,10 @@ msgstr "" msgid "Delete user" msgstr "" -#: 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/forms/admin.py:27 project/forms/admin_unit.py:53 +#: project/forms/admin_unit_member.py:12 project/forms/admin_unit_member.py:25 +#: project/forms/admin_unit_member.py:30 project/forms/event.py:107 +#: project/forms/event_suggestion.py:38 project/forms/organizer.py:33 #: project/forms/user.py:18 project/forms/user.py:23 #: project/templates/_macros.html:237 project/templates/_macros.html:1569 #: project/templates/admin/admin.html:27 project/templates/admin/email.html:4 @@ -309,13 +309,13 @@ msgstr "" msgid "Delete organization" msgstr "" -#: project/forms/admin.py:69 project/forms/admin_unit.py:28 -#: project/forms/admin_unit.py:134 project/forms/admin_unit.py:139 -#: project/forms/admin_unit.py:144 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 project/forms/organizer.py:25 -#: project/forms/organizer.py:52 project/forms/reference_request.py:23 +#: project/forms/admin.py:69 project/forms/admin_unit.py:34 +#: project/forms/admin_unit.py:142 project/forms/admin_unit.py:147 +#: project/forms/admin_unit.py:152 project/forms/event.py:85 +#: project/forms/event.py:114 project/forms/event_place.py:30 +#: project/forms/event_place.py:56 project/forms/event_suggestion.py:26 +#: project/forms/oauth2_client.py:66 project/forms/organizer.py:30 +#: project/forms/organizer.py:58 project/forms/reference_request.py:23 #: project/templates/admin/admin_units.html:19 #: project/templates/event_place/list.html:19 #: project/templates/manage/organizers.html:18 @@ -348,139 +348,139 @@ msgstr "" msgid "Send newsletter" msgstr "" -#: project/forms/admin_unit.py:14 project/forms/event_place.py:12 -#: project/forms/organizer.py:12 +#: project/forms/admin_unit.py:15 project/forms/event_place.py:13 +#: project/forms/organizer.py:13 msgid "Street" msgstr "" -#: project/forms/admin_unit.py:15 project/forms/event.py:453 -#: project/forms/event_place.py:13 project/forms/organizer.py:13 +#: project/forms/admin_unit.py:18 project/forms/event.py:453 +#: project/forms/event_place.py:16 project/forms/organizer.py:16 msgid "Postal code" msgstr "" -#: project/forms/admin_unit.py:16 project/forms/event_place.py:14 -#: project/forms/organizer.py:14 +#: project/forms/admin_unit.py:21 project/forms/event_place.py:18 +#: project/forms/organizer.py:18 msgid "City" msgstr "" -#: project/forms/admin_unit.py:17 project/forms/event_place.py:15 -#: project/forms/organizer.py:15 +#: project/forms/admin_unit.py:23 project/forms/event_place.py:19 +#: project/forms/organizer.py:19 msgid "State" msgstr "" -#: project/forms/admin_unit.py:19 project/forms/event_place.py:17 -#: project/forms/organizer.py:17 +#: project/forms/admin_unit.py:25 project/forms/event_place.py:21 +#: project/forms/organizer.py:21 msgid "Latitude" msgstr "" -#: project/forms/admin_unit.py:22 project/forms/event_place.py:20 -#: project/forms/organizer.py:20 +#: project/forms/admin_unit.py:28 project/forms/event_place.py:24 +#: project/forms/organizer.py:24 msgid "Longitude" msgstr "" -#: project/forms/admin_unit.py:31 +#: project/forms/admin_unit.py:37 msgid "Short name" msgstr "" -#: project/forms/admin_unit.py:32 +#: project/forms/admin_unit.py:38 msgid "The short name is used to create a unique identifier for your events" msgstr "" -#: project/forms/admin_unit.py:40 project/templates/_macros.html:1611 +#: project/forms/admin_unit.py:46 project/templates/_macros.html:1611 msgid "Short name must contain only letters numbers or underscore" msgstr "" -#: 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 +#: project/forms/admin_unit.py:52 project/forms/event.py:106 +#: project/forms/event.py:124 project/forms/event_place.py:32 +#: project/forms/organizer.py:32 project/templates/manage/organizers.html:21 msgid "Link URL" msgstr "" -#: project/forms/admin_unit.py:48 project/forms/event.py:108 -#: project/forms/event_suggestion.py:31 project/forms/organizer.py:28 +#: project/forms/admin_unit.py:54 project/forms/event.py:108 +#: project/forms/event_suggestion.py:31 project/forms/organizer.py:34 #: project/templates/_macros.html:290 #: project/templates/manage/organizers.html:20 msgid "Phone" msgstr "" -#: project/forms/admin_unit.py:49 project/forms/event.py:109 -#: project/forms/organizer.py:29 project/templates/_macros.html:298 +#: project/forms/admin_unit.py:55 project/forms/event.py:109 +#: project/forms/organizer.py:35 project/templates/_macros.html:298 msgid "Fax" msgstr "" -#: project/forms/admin_unit.py:50 project/forms/organizer.py:30 +#: project/forms/admin_unit.py:56 project/forms/organizer.py:36 #: project/templates/manage/organizers.html:22 #: project/templates/manage/organizers.html:47 msgid "Logo" msgstr "" -#: project/forms/admin_unit.py:54 +#: project/forms/admin_unit.py:60 msgid "Allow verification requests" msgstr "" -#: project/forms/admin_unit.py:55 +#: project/forms/admin_unit.py:61 msgid "If set, unverified organizations may ask you for verification." msgstr "" -#: project/forms/admin_unit.py:61 +#: project/forms/admin_unit.py:67 msgid "Verification requests information" msgstr "" -#: project/forms/admin_unit.py:63 +#: project/forms/admin_unit.py:69 msgid "" "This text is shown to unverified organizations to help them decide " "whether they ask you for verification." msgstr "" -#: project/forms/admin_unit.py:79 +#: project/forms/admin_unit.py:85 msgid "Verify new organization" msgstr "" -#: project/forms/admin_unit.py:80 +#: project/forms/admin_unit.py:86 msgid "If set, events of the new organization are publicly visible." msgstr "" -#: project/forms/admin_unit.py:86 project/forms/reference_request.py:86 +#: project/forms/admin_unit.py:92 project/forms/reference_request.py:86 msgid "Verify reference requests automatically" msgstr "" -#: project/forms/admin_unit.py:87 +#: project/forms/admin_unit.py:93 msgid "" "If set, all upcoming reference requests of the new organization are " "verified automatically." msgstr "" -#: project/forms/admin_unit.py:98 project/templates/admin_unit/create.html:5 +#: project/forms/admin_unit.py:104 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:106 project/forms/admin_unit.py:129 +#: project/forms/admin_unit.py:112 project/forms/admin_unit.py:137 msgid "Update settings" msgstr "" -#: project/forms/admin_unit.py:110 +#: project/forms/admin_unit.py:117 msgid "Font" msgstr "" -#: project/forms/admin_unit.py:112 +#: project/forms/admin_unit.py:120 msgid "Background Color" msgstr "" -#: project/forms/admin_unit.py:118 +#: project/forms/admin_unit.py:126 msgid "Primary Color" msgstr "" -#: project/forms/admin_unit.py:124 +#: project/forms/admin_unit.py:132 msgid "Link Color" msgstr "" -#: project/forms/admin_unit.py:133 project/forms/user.py:17 +#: project/forms/admin_unit.py:141 project/forms/user.py:17 msgid "Request deletion" msgstr "" -#: project/forms/admin_unit.py:138 project/forms/user.py:22 +#: project/forms/admin_unit.py:146 project/forms/user.py:22 #: project/templates/admin_unit/cancel_deletion.html:6 #: project/templates/admin_unit/update.html:26 #: project/templates/manage/events.html:49 project/templates/profile.html:13 @@ -488,34 +488,34 @@ msgstr "" msgid "Cancel deletion" msgstr "" -#: project/forms/admin_unit.py:143 project/templates/layout.html:276 +#: project/forms/admin_unit.py:151 project/templates/layout.html:276 #: project/templates/manage/delete_membership.html:6 msgid "Leave organization" msgstr "" -#: project/forms/admin_unit_member.py:13 +#: project/forms/admin_unit_member.py:15 msgid "Invite" msgstr "" -#: project/forms/admin_unit_member.py:17 +#: project/forms/admin_unit_member.py:19 msgid "Accept" msgstr "" -#: project/forms/admin_unit_member.py:18 +#: project/forms/admin_unit_member.py:20 msgid "Decline" msgstr "" -#: project/forms/admin_unit_member.py:22 +#: project/forms/admin_unit_member.py:24 #: project/templates/manage/delete_invitation.html:6 msgid "Delete invitation" msgstr "" -#: project/forms/admin_unit_member.py:27 +#: project/forms/admin_unit_member.py:29 #: project/templates/manage/delete_member.html:6 msgid "Delete member" msgstr "" -#: project/forms/admin_unit_member.py:33 +#: project/forms/admin_unit_member.py:35 #: project/templates/admin_unit/update_member.html:6 msgid "Update member" msgstr "" @@ -528,74 +528,79 @@ msgstr "" msgid "Image" msgstr "" -#: project/forms/common.py:71 +#: project/forms/common.py:74 #, python-format msgid "" "I read and accept %(tos_open)sTerms of Service%(tos_close)s and " "%(privacy_open)sPrivacy%(privacy_close)s." msgstr "" -#: project/forms/common.py:82 +#: project/forms/common.py:84 +#, python-format +msgid "I read and accept %(privacy_open)sPrivacy%(privacy_close)s." +msgstr "" + +#: project/forms/common.py:95 msgid "0 (Little relevant)" msgstr "" -#: project/forms/common.py:87 +#: project/forms/common.py:100 msgid "5 (Default)" msgstr "" -#: project/forms/common.py:92 +#: project/forms/common.py:105 msgid "10 (Highlight)" msgstr "" -#: project/forms/common.py:96 +#: project/forms/common.py:109 msgid "Monday" msgstr "" -#: project/forms/common.py:97 +#: project/forms/common.py:110 msgid "Tueday" msgstr "" -#: project/forms/common.py:98 +#: project/forms/common.py:111 msgid "Wednesday" msgstr "" -#: project/forms/common.py:99 +#: project/forms/common.py:112 msgid "Thursday" msgstr "" -#: project/forms/common.py:100 +#: project/forms/common.py:113 msgid "Friday" msgstr "" -#: project/forms/common.py:101 +#: project/forms/common.py:114 msgid "Saturday" msgstr "" -#: project/forms/common.py:102 +#: project/forms/common.py:115 msgid "Sunday" msgstr "" -#: project/forms/common.py:106 +#: project/forms/common.py:119 msgid "500 m" msgstr "" -#: project/forms/common.py:107 +#: project/forms/common.py:120 msgid "5 km" msgstr "" -#: project/forms/common.py:108 +#: project/forms/common.py:121 msgid "10 km" msgstr "" -#: project/forms/common.py:109 +#: project/forms/common.py:122 msgid "20 km" msgstr "" -#: project/forms/common.py:110 +#: project/forms/common.py:123 msgid "50 km" msgstr "" -#: project/forms/common.py:111 +#: project/forms/common.py:124 msgid "100 km" msgstr "" @@ -642,7 +647,7 @@ msgstr "" msgid "Enter a short, meaningful name for the event." msgstr "" -#: project/forms/event.py:119 project/forms/event_place.py:28 +#: project/forms/event.py:119 project/forms/event_place.py:34 msgid "Description" msgstr "" @@ -783,7 +788,7 @@ msgstr "Online and offline" msgid "Choose how people can attend the event." msgstr "" -#: project/forms/event.py:225 project/forms/event_place.py:27 +#: project/forms/event.py:225 project/forms/event_place.py:33 #: project/templates/manage/events.html:104 #: project/templates/manage/events.html:139 #: project/templates/manage/places.html:21 @@ -1017,23 +1022,23 @@ msgstr "" msgid "Find" msgstr "" -#: project/forms/event_place.py:41 project/templates/event_place/create.html:5 +#: project/forms/event_place.py:47 project/templates/event_place/create.html:5 #: project/templates/event_place/create.html:21 #: project/templates/event_place/list.html:11 #: project/templates/manage/places.html:11 msgid "Create place" msgstr "" -#: project/forms/event_place.py:45 project/templates/event_place/update.html:5 +#: project/forms/event_place.py:51 project/templates/event_place/update.html:5 #: project/templates/event_place/update.html:21 msgid "Update place" msgstr "" -#: project/forms/event_place.py:49 project/templates/event_place/delete.html:6 +#: project/forms/event_place.py:55 project/templates/event_place/delete.html:6 msgid "Delete place" msgstr "" -#: project/forms/event_place.py:57 +#: project/forms/event_place.py:63 msgid "Find places" msgstr "" @@ -1121,18 +1126,18 @@ msgstr "" msgid "Revoke OAuth2 token" msgstr "" -#: project/forms/organizer.py:43 project/templates/manage/organizers.html:11 +#: project/forms/organizer.py:49 project/templates/manage/organizers.html:11 #: project/templates/organizer/create.html:5 #: project/templates/organizer/create.html:21 msgid "Create organizer" msgstr "" -#: project/forms/organizer.py:47 project/templates/organizer/update.html:5 +#: project/forms/organizer.py:53 project/templates/organizer/update.html:5 #: project/templates/organizer/update.html:21 msgid "Update organizer" msgstr "" -#: project/forms/organizer.py:51 project/templates/organizer/delete.html:6 +#: project/forms/organizer.py:57 project/templates/organizer/delete.html:6 msgid "Delete organizer" msgstr "" @@ -1682,7 +1687,7 @@ msgid "Switch organization" msgstr "" #: project/templates/developer/read.html:4 -#: project/templates/developer/read.html:8 project/templates/layout.html:320 +#: project/templates/developer/read.html:8 project/templates/layout.html:322 #: project/templates/profile.html:46 msgid "Developer" msgstr "" diff --git a/project/views/root.py b/project/views/root.py index b1ed986..9805f59 100644 --- a/project/views/root.py +++ b/project/views/root.py @@ -1,7 +1,7 @@ import json import os.path -from flask import render_template, request, send_from_directory, url_for +from flask import abort, render_template, request, send_from_directory, url_for from flask_babel import gettext from markupsafe import Markup from sqlalchemy import text @@ -54,6 +54,10 @@ def up(): def tos(): title = gettext("Terms of service") settings = upsert_settings() + + if not settings.tos: + abort(404) + content = Markup(settings.tos) return render_template("legal.html", title=title, content=content) diff --git a/tests/views/test_auth.py b/tests/views/test_auth.py index f24731c..753ac7e 100644 --- a/tests/views/test_auth.py +++ b/tests/views/test_auth.py @@ -1,6 +1,18 @@ -def test_register(client, app, utils): +import pytest + + +@pytest.mark.parametrize("settings", [True, False]) +def test_register(client, app, db, utils, settings): from project.services.user import find_user_by_email + if settings: + with app.app_context(): + from project.services.admin import upsert_settings + + settings = upsert_settings() + settings.tos = "Meine Nutzungsbedingungen" + db.session.commit() + utils.register("test@test.de", "MeinPasswortIstDasBeste") with app.app_context(): diff --git a/tests/views/test_root.py b/tests/views/test_root.py index ba132aa..51e3de0 100644 --- a/tests/views/test_root.py +++ b/tests/views/test_root.py @@ -1,5 +1,7 @@ import os +from tests.utils import UtilActions + def test_home(client, seeder, utils): url = utils.get_url("home") @@ -14,7 +16,11 @@ def test_up(app, utils): utils.get_ok("up") -def test_tos(app, db, utils): +def test_tos(app, db, utils: UtilActions): + url = utils.get_url("tos") + response = utils.get(url) + utils.assert_response_notFound(response) + with app.app_context(): from project.services.admin import upsert_settings