Optional tos #471

This commit is contained in:
Daniel Grams 2023-05-09 22:40:33 +02:00
parent d39a320206
commit 73308d96b1
13 changed files with 356 additions and 287 deletions

View File

@ -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");

View File

@ -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 <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\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 ""

View File

@ -61,15 +61,28 @@ class Base64ImageForm(BaseImageForm):
def get_accept_tos_markup():
from project.services.admin import has_tos
tos_open = '<a href="%s">' % url_for("tos")
tos_close = "</a>"
privacy_open = '<a href="%s">' % url_for("privacy")
privacy_close = "</a>"
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,

View File

@ -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,
)

View File

@ -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()
)

View File

@ -300,10 +300,12 @@
<div class="row">
<div class="col h-100 text-center my-auto">
<ul class="list-inline mb-2">
{% if has_tos() %}
<li class="list-inline-item">
<a href="{{ url_for('tos') }}" class="text-muted">{{ _('Terms of service') }}</a>
</li>
<li class="list-inline-item">&sdot;</li>
{% endif %}
<li class="list-inline-item">
<a href="{{ url_for('legal_notice') }}" class="text-muted">{{ _('Legal notice') }}</a>
</li>

View File

@ -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 <EMAIL@ADDRESS>\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"

View File

@ -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 <EMAIL@ADDRESS>\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 ""

View File

@ -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)

View File

@ -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():

View File

@ -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