White label #382

This commit is contained in:
Daniel Grams 2023-03-17 23:26:04 +01:00
parent 37fd76691e
commit eb87c89ae6
24 changed files with 387 additions and 1508 deletions

View File

@ -22,6 +22,7 @@ ENV SECURITY_PASSWORD_HASH=""
ENV SERVER_NAME="" ENV SERVER_NAME=""
ENV STATIC_FILES_MIRROR="" ENV STATIC_FILES_MIRROR=""
ENV REDIS_URL="" ENV REDIS_URL=""
ENV DOCS_URL=""
# Install pip requirements # Install pip requirements
COPY requirements.txt . COPY requirements.txt .

View File

@ -23,7 +23,8 @@ MAIL_USERNAME=
MAIL_PASSWORD= MAIL_PASSWORD=
MAIL_DEFAULT_SENDER= MAIL_DEFAULT_SENDER=
MAIL_USE_TLS=True MAIL_USE_TLS=True
GOOGLE_MAPS_API_KEY=AIzaDummy GOOGLE_MAPS_API_KEY=
SEO_SITEMAP_PING_GOOGLE=False SEO_SITEMAP_PING_GOOGLE=False
JWT_PRIVATE_KEY="" JWT_PRIVATE_KEY=""
JWT_PUBLIC_JWKS='' JWT_PUBLIC_JWKS=''
DOCS_URL=''

View File

@ -23,6 +23,7 @@ x-web-env:
CACHE_PATH: tmp CACHE_PATH: tmp
JWT_PRIVATE_KEY: ${JWT_PRIVATE_KEY} JWT_PRIVATE_KEY: ${JWT_PRIVATE_KEY}
JWT_PUBLIC_JWKS: ${JWT_PUBLIC_JWKS} JWT_PUBLIC_JWKS: ${JWT_PUBLIC_JWKS}
DOCS_URL: ${DOCS_URL}
x-web: x-web:
&default-web &default-web

View File

@ -1,42 +1,55 @@
location ^~ /image/ { events {}
root "/var/www/vhosts/gsevpt.de/cache/img"; http {
expires 1h; server {
listen 80 default_server;
listen [::]:80 default_server;
root /var/www/vhosts/gsevpt.de;
server_name _;
location ~ ^/image/(?<id>[0-9]+)/(?<hash>[0-9]+) { location ^~ /image/ {
if ($arg_s = '') { root "/var/www/vhosts/gsevpt.de/cache/img";
rewrite (.*) $1?s=500 last; expires 1h;
}
try_files /${id}-${hash}-${arg_s}-${arg_s}.png /${id}-${hash}-${arg_s}-${arg_s}.jpg @docker;
}
location ~ ^/image/(?<id>[0-9]+) { location ~ ^/image/(?<id>[0-9]+)/(?<hash>[0-9]+) {
if ($arg_s = '') { if ($arg_s = '') {
rewrite (.*) $1?s=500 last; rewrite (.*) $1?s=500 last;
}
try_files /${id}-${hash}-${arg_s}-${arg_s}.png /${id}-${hash}-${arg_s}-${arg_s}.jpg @docker;
}
location ~ ^/image/(?<id>[0-9]+) {
if ($arg_s = '') {
rewrite (.*) $1?s=500 last;
}
try_files /${id}-${arg_s}-${arg_s}.png /${id}-${arg_s}-${arg_s}.jpg @docker;
}
}
location ^~ /static/ {
root "/var/www/vhosts/gsevpt.de/";
location ~ ^/static/(.*)$ {
try_files /static-custom/$1 /static/$1 @docker;
}
}
location ^~ /dump/ {
alias "/var/www/vhosts/gsevpt.de/cache/dump/";
}
location ^~ /sitemap.xml {
alias "/var/www/vhosts/gsevpt.de/cache/sitemap.xml";
}
location ^~ /robots.txt {
alias "/var/www/vhosts/gsevpt.de/cache/robots.txt";
}
location ^~ /favicon.ico {
alias "/var/www/vhosts/gsevpt.de/static/favicon.ico";
expires 12h;
}
location @docker {
proxy_pass http://0.0.0.0:5000;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
} }
try_files /${id}-${arg_s}-${arg_s}.png /${id}-${arg_s}-${arg_s}.jpg @docker;
} }
}
location ^~ /static/ {
alias "/var/www/vhosts/gsevpt.de/static/";
expires 1h;
}
location ^~ /dump/ {
alias "/var/www/vhosts/gsevpt.de/cache/dump/";
}
location ^~ /sitemap.xml {
alias "/var/www/vhosts/gsevpt.de/cache/sitemap.xml";
}
location ^~ /robots.txt {
alias "/var/www/vhosts/gsevpt.de/cache/robots.txt";
}
location ^~ /favicon.ico {
alias "/var/www/vhosts/gsevpt.de/static/favicon.ico";
expires 12h;
}
location @docker {
proxy_pass http://0.0.0.0:5000;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
} }

View File

@ -8,7 +8,7 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: PROJECT VERSION\n" "Project-Id-Version: PROJECT VERSION\n"
"Report-Msgid-Bugs-To: EMAIL@ADDRESS\n" "Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
"POT-Creation-Date: 2023-03-15 19:10+0100\n" "POT-Creation-Date: 2023-03-16 19:11+0100\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n" "Language-Team: LANGUAGE <LL@li.org>\n"
@ -198,85 +198,89 @@ msgstr ""
msgid "You have received an invitation" msgid "You have received an invitation"
msgstr "" msgstr ""
#: project/forms/admin.py:10 project/templates/layout.html:317 #: project/forms/admin.py:10 project/templates/layout.html:294
#: project/views/root.py:55 #: project/views/root.py:57
msgid "Terms of service" msgid "Terms of service"
msgstr "" msgstr ""
#: project/forms/admin.py:11 project/templates/layout.html:321 #: project/forms/admin.py:11 project/templates/layout.html:298
#: project/views/root.py:63 #: project/views/root.py:65
msgid "Legal notice" msgid "Legal notice"
msgstr "" msgstr ""
#: project/forms/admin.py:12 project/templates/_macros.html:1395 #: project/forms/admin.py:12 project/templates/_macros.html:1395
#: project/templates/layout.html:325 #: project/templates/layout.html:302
#: project/templates/widget/event_suggestion/create.html:204 #: project/templates/widget/event_suggestion/create.html:204
#: project/views/admin_unit.py:73 project/views/root.py:71 #: project/views/admin_unit.py:73 project/views/root.py:73
msgid "Contact" msgid "Contact"
msgstr "" msgstr ""
#: project/forms/admin.py:13 project/templates/layout.html:329 #: project/forms/admin.py:13 project/templates/layout.html:306
#: project/views/root.py:79 #: project/views/root.py:81
msgid "Privacy" msgid "Privacy"
msgstr "" msgstr ""
#: project/forms/admin.py:15 project/forms/oauth2_client.py:24 #: project/forms/admin.py:14
msgid "Start page"
msgstr ""
#: project/forms/admin.py:16 project/forms/oauth2_client.py:24
msgid "Save" msgid "Save"
msgstr "" msgstr ""
#: project/forms/admin.py:19 project/forms/admin_unit_member.py:12 #: project/forms/admin.py:20 project/forms/admin_unit_member.py:12
#: project/forms/admin_unit_member.py:32 #: project/forms/admin_unit_member.py:32
msgid "Roles" msgid "Roles"
msgstr "" msgstr ""
#: project/forms/admin.py:20 project/templates/admin/update_user.html:4 #: project/forms/admin.py:21 project/templates/admin/update_user.html:4
#: project/templates/admin/update_user.html:8 #: project/templates/admin/update_user.html:8
msgid "Update user" msgid "Update user"
msgstr "" msgstr ""
#: project/forms/admin.py:25 #: project/forms/admin.py:26
msgid "Incoming reference requests allowed" msgid "Incoming reference requests allowed"
msgstr "" msgstr ""
#: project/forms/admin.py:26 #: project/forms/admin.py:27
msgid "" msgid ""
"If set, other organizations can ask this organization to reference their " "If set, other organizations can ask this organization to reference their "
"event." "event."
msgstr "" msgstr ""
#: project/forms/admin.py:32 #: project/forms/admin.py:33
msgid "Suggestions enabled" msgid "Suggestions enabled"
msgstr "" msgstr ""
#: project/forms/admin.py:33 #: project/forms/admin.py:34
msgid "If set, the organization can work with suggestions." msgid "If set, the organization can work with suggestions."
msgstr "" msgstr ""
#: project/forms/admin.py:37 #: project/forms/admin.py:38
msgid "Create other organizations" msgid "Create other organizations"
msgstr "" msgstr ""
#: project/forms/admin.py:38 #: project/forms/admin.py:39
msgid "If set, members of the organization can create other organizations." msgid "If set, members of the organization can create other organizations."
msgstr "" msgstr ""
#: project/forms/admin.py:44 #: project/forms/admin.py:45
msgid "Invite other organizations" msgid "Invite other organizations"
msgstr "" msgstr ""
#: project/forms/admin.py:45 #: project/forms/admin.py:46
msgid "If set, members of the organization can invite other organizations." msgid "If set, members of the organization can invite other organizations."
msgstr "" msgstr ""
#: project/forms/admin.py:51 #: project/forms/admin.py:52
msgid "Verify other organizations" msgid "Verify other organizations"
msgstr "" msgstr ""
#: project/forms/admin.py:52 #: project/forms/admin.py:53
msgid "If set, members of the organization can verify other organizations." msgid "If set, members of the organization can verify other organizations."
msgstr "" msgstr ""
#: project/forms/admin.py:57 project/templates/admin/update_admin_unit.html:4 #: project/forms/admin.py:58 project/templates/admin/update_admin_unit.html:4
#: project/templates/admin/update_admin_unit.html:8 #: project/templates/admin/update_admin_unit.html:8
msgid "Update organization" msgid "Update organization"
msgstr "" msgstr ""
@ -647,7 +651,7 @@ msgid "If the participants needs to register for the event."
msgstr "" msgstr ""
#: project/forms/event.py:170 project/templates/_macros.html:249 #: project/forms/event.py:170 project/templates/_macros.html:249
#: project/templates/layout.html:128 #: project/templates/layout.html:110
msgid "Booked up" msgid "Booked up"
msgstr "" msgstr ""
@ -703,11 +707,11 @@ msgstr ""
msgid "EventAttendanceMode.offline" msgid "EventAttendanceMode.offline"
msgstr "" msgstr ""
#: project/forms/event.py:217 project/templates/layout.html:116 #: project/forms/event.py:217 project/templates/layout.html:98
msgid "EventAttendanceMode.online" msgid "EventAttendanceMode.online"
msgstr "" msgstr ""
#: project/forms/event.py:219 project/templates/layout.html:119 #: project/forms/event.py:219 project/templates/layout.html:101
msgid "EventAttendanceMode.mixed" msgid "EventAttendanceMode.mixed"
msgstr "" msgstr ""
@ -846,23 +850,23 @@ msgstr ""
msgid "EventStatus.scheduled" msgid "EventStatus.scheduled"
msgstr "" msgstr ""
#: project/forms/event.py:389 project/templates/layout.html:82 #: project/forms/event.py:389 project/templates/layout.html:64
#: project/templates/layout.html:97 #: project/templates/layout.html:79
msgid "EventStatus.cancelled" msgid "EventStatus.cancelled"
msgstr "" msgstr ""
#: project/forms/event.py:390 project/templates/layout.html:85 #: project/forms/event.py:390 project/templates/layout.html:67
#: project/templates/layout.html:100 #: project/templates/layout.html:82
msgid "EventStatus.movedOnline" msgid "EventStatus.movedOnline"
msgstr "" msgstr ""
#: project/forms/event.py:391 project/templates/layout.html:88 #: project/forms/event.py:391 project/templates/layout.html:70
#: project/templates/layout.html:103 #: project/templates/layout.html:85
msgid "EventStatus.postponed" msgid "EventStatus.postponed"
msgstr "" msgstr ""
#: project/forms/event.py:392 project/templates/layout.html:91 #: project/forms/event.py:392 project/templates/layout.html:73
#: project/templates/layout.html:106 #: project/templates/layout.html:88
msgid "EventStatus.rescheduled" msgid "EventStatus.rescheduled"
msgstr "" msgstr ""
@ -1067,7 +1071,7 @@ msgstr ""
#: project/templates/_macros.html:489 project/templates/_macros.html:652 #: project/templates/_macros.html:489 project/templates/_macros.html:652
#: project/templates/admin_unit/create.html:28 #: project/templates/admin_unit/create.html:28
#: project/templates/admin_unit/update.html:29 #: project/templates/admin_unit/update.html:29
#: project/templates/layout.html:265 #: project/templates/layout.html:242
msgid "Organization" msgid "Organization"
msgstr "" msgstr ""
@ -1225,7 +1229,7 @@ msgstr ""
msgid "The event takes place both offline and online." msgid "The event takes place both offline and online."
msgstr "" msgstr ""
#: project/templates/_macros.html:585 project/templates/layout.html:191 #: project/templates/_macros.html:585 project/templates/layout.html:168
#: project/templates/user/favorite_events.html:4 #: project/templates/user/favorite_events.html:4
msgid "Favorite events" msgid "Favorite events"
msgstr "" msgstr ""
@ -1370,7 +1374,7 @@ msgstr ""
msgid "Register for free" msgid "Register for free"
msgstr "" msgstr ""
#: project/templates/layout.html:175 project/templates/layout.html:223 #: project/templates/layout.html:152 project/templates/layout.html:200
#: project/templates/manage/events.html:6 #: project/templates/manage/events.html:6
#: project/templates/manage/events.html:42 #: project/templates/manage/events.html:42
#: project/templates/manage/events_vue.html:4 #: project/templates/manage/events_vue.html:4
@ -1380,22 +1384,22 @@ msgstr ""
#: project/templates/admin/admin.html:19 #: project/templates/admin/admin.html:19
#: project/templates/admin/admin_units.html:4 #: project/templates/admin/admin_units.html:4
#: project/templates/admin/admin_units.html:11 #: project/templates/admin/admin_units.html:11
#: project/templates/layout.html:176 project/templates/layout.html:189 #: project/templates/layout.html:153 project/templates/layout.html:166
#: project/templates/manage/admin_units.html:3 #: project/templates/manage/admin_units.html:3
#: project/templates/manage/admin_units.html:25 #: project/templates/manage/admin_units.html:25
#: project/templates/organization/main.html:4 #: project/templates/organization/main.html:4
msgid "Organizations" msgid "Organizations"
msgstr "" msgstr ""
#: project/templates/layout.html:177 #: project/templates/layout.html:154
msgid "Planing" msgid "Planing"
msgstr "" msgstr ""
#: project/templates/layout.html:181 #: project/templates/layout.html:158
msgid "Docs" msgid "Docs"
msgstr "" msgstr ""
#: project/templates/layout.html:190 project/templates/layout.html:279 #: project/templates/layout.html:167 project/templates/layout.html:256
#: project/templates/oauth2_client/list.html:10 #: project/templates/oauth2_client/list.html:10
#: project/templates/oauth2_client/read.html:10 #: project/templates/oauth2_client/read.html:10
#: project/templates/oauth2_token/list.html:10 project/templates/profile.html:4 #: project/templates/oauth2_token/list.html:10 project/templates/profile.html:4
@ -1405,86 +1409,86 @@ msgstr ""
#: project/templates/admin/admin.html:3 project/templates/admin/admin.html:9 #: project/templates/admin/admin.html:3 project/templates/admin/admin.html:9
#: project/templates/admin/admin_units.html:10 #: project/templates/admin/admin_units.html:10
#: project/templates/admin/users.html:10 project/templates/layout.html:194 #: project/templates/admin/users.html:10 project/templates/layout.html:171
msgid "Admin" msgid "Admin"
msgstr "" msgstr ""
#: project/templates/layout.html:198 #: project/templates/layout.html:175
msgid "Logout" msgid "Logout"
msgstr "" msgstr ""
#: project/templates/layout.html:229 #: project/templates/layout.html:206
msgid "Show events" msgid "Show events"
msgstr "" msgstr ""
#: project/templates/event/create.html:5 #: project/templates/event/create.html:5
#: project/templates/event/create.html:221 project/templates/layout.html:230 #: project/templates/event/create.html:221 project/templates/layout.html:207
#: project/templates/manage/events.html:45 #: project/templates/manage/events.html:45
#: project/templates/manage/organizers.html:21 #: project/templates/manage/organizers.html:21
msgid "Create event" msgid "Create event"
msgstr "" msgstr ""
#: project/templates/layout.html:231 #: project/templates/layout.html:208
msgid "Import event" msgid "Import event"
msgstr "" msgstr ""
#: project/templates/layout.html:233 #: project/templates/layout.html:210
#: project/templates/manage/event_lists.html:4 #: project/templates/manage/event_lists.html:4
msgid "Event lists" msgid "Event lists"
msgstr "" msgstr ""
#: project/templates/layout.html:236 #: project/templates/layout.html:213
msgid "Review suggestions" msgid "Review suggestions"
msgstr "" msgstr ""
#: project/templates/layout.html:246 #: project/templates/layout.html:223
#: project/templates/manage/references_incoming.html:5 #: project/templates/manage/references_incoming.html:5
#: project/templates/manage/references_outgoing.html:5 #: project/templates/manage/references_outgoing.html:5
msgid "References" msgid "References"
msgstr "" msgstr ""
#: project/templates/layout.html:252 #: project/templates/layout.html:229
#: project/templates/manage/references_incoming.html:9 #: project/templates/manage/references_incoming.html:9
msgid "Incoming references" msgid "Incoming references"
msgstr "" msgstr ""
#: project/templates/layout.html:253 #: project/templates/layout.html:230
#: project/templates/manage/references_outgoing.html:9 #: project/templates/manage/references_outgoing.html:9
msgid "Outgoing references" msgid "Outgoing references"
msgstr "" msgstr ""
#: project/templates/layout.html:255 #: project/templates/layout.html:232
#: project/templates/manage/reference_requests_incoming.html:9 #: project/templates/manage/reference_requests_incoming.html:9
msgid "Incoming reference requests" msgid "Incoming reference requests"
msgstr "" msgstr ""
#: project/templates/layout.html:260 #: project/templates/layout.html:237
#: project/templates/manage/reference_requests_outgoing.html:9 #: project/templates/manage/reference_requests_outgoing.html:9
msgid "Outgoing reference requests" msgid "Outgoing reference requests"
msgstr "" msgstr ""
#: project/templates/layout.html:268 project/templates/manage/organizers.html:5 #: project/templates/layout.html:245 project/templates/manage/organizers.html:5
#: project/templates/manage/organizers.html:9 #: project/templates/manage/organizers.html:9
msgid "Organizers" msgid "Organizers"
msgstr "" msgstr ""
#: project/templates/event_place/list.html:3 #: project/templates/event_place/list.html:3
#: project/templates/event_place/list.html:7 project/templates/layout.html:269 #: project/templates/event_place/list.html:7 project/templates/layout.html:246
#: project/templates/manage/places.html:5 #: project/templates/manage/places.html:5
#: project/templates/manage/places.html:9 #: project/templates/manage/places.html:9
msgid "Places" msgid "Places"
msgstr "" msgstr ""
#: project/templates/layout.html:271 project/templates/manage/members.html:5 #: project/templates/layout.html:248 project/templates/manage/members.html:5
#: project/templates/manage/members.html:28 #: project/templates/manage/members.html:28
msgid "Members" msgid "Members"
msgstr "" msgstr ""
#: project/templates/layout.html:272 project/templates/manage/relations.html:4 #: project/templates/layout.html:249 project/templates/manage/relations.html:4
msgid "Relations" msgid "Relations"
msgstr "" msgstr ""
#: project/templates/layout.html:274 #: project/templates/layout.html:251
#: project/templates/manage/admin_units.html:17 #: project/templates/manage/admin_units.html:17
#: project/templates/manage/organization_invitations.html:4 #: project/templates/manage/organization_invitations.html:4
#: project/templates/user/organization_invitations.html:4 #: project/templates/user/organization_invitations.html:4
@ -1496,27 +1500,27 @@ msgstr ""
#: project/templates/admin/settings.html:8 #: project/templates/admin/settings.html:8
#: project/templates/admin_unit/update.html:6 #: project/templates/admin_unit/update.html:6
#: project/templates/admin_unit/update.html:23 #: project/templates/admin_unit/update.html:23
#: project/templates/layout.html:276 project/templates/manage/widgets.html:11 #: project/templates/layout.html:253 project/templates/manage/widgets.html:11
#: project/templates/manage/widgets.html:15 project/templates/profile.html:19 #: project/templates/manage/widgets.html:15 project/templates/profile.html:19
msgid "Settings" msgid "Settings"
msgstr "" msgstr ""
#: project/templates/layout.html:277 #: project/templates/layout.html:254
#: project/templates/manage/custom_widgets.html:13 #: project/templates/manage/custom_widgets.html:13
msgid "Custom widgets" msgid "Custom widgets"
msgstr "" msgstr ""
#: project/templates/layout.html:278 project/templates/manage/reviews.html:10 #: project/templates/layout.html:255 project/templates/manage/reviews.html:10
#: project/templates/manage/widgets.html:5 #: project/templates/manage/widgets.html:5
#: project/templates/manage/widgets.html:9 #: project/templates/manage/widgets.html:9
msgid "Widgets" msgid "Widgets"
msgstr "" msgstr ""
#: project/templates/layout.html:289 #: project/templates/layout.html:266
msgid "Switch organization" msgid "Switch organization"
msgstr "" msgstr ""
#: project/templates/developer/read.html:4 project/templates/layout.html:339 #: project/templates/developer/read.html:4 project/templates/layout.html:310
#: project/templates/profile.html:29 #: project/templates/profile.html:29
msgid "Developer" msgid "Developer"
msgstr "" msgstr ""
@ -2213,26 +2217,26 @@ msgid ""
"verified automatically." "verified automatically."
msgstr "" msgstr ""
#: project/views/utils.py:77 #: project/views/utils.py:65
msgid "" msgid ""
"An entry with the entered values already exists. Duplicate entries are " "An entry with the entered values already exists. Duplicate entries are "
"not allowed." "not allowed."
msgstr "" msgstr ""
#: project/views/utils.py:128 #: project/views/utils.py:116
#, python-format #, python-format
msgid "Error in the %s field - %s" msgid "Error in the %s field - %s"
msgstr "" msgstr ""
#: project/views/utils.py:135 #: project/views/utils.py:123
msgid "Show" msgid "Show"
msgstr "" msgstr ""
#: project/views/utils.py:143 #: project/views/utils.py:131
msgid "You do not have permission for this action" msgid "You do not have permission for this action"
msgstr "" msgstr ""
#: project/views/utils.py:258 #: project/views/utils.py:246
msgid "" msgid ""
"The invitation was issued to another user. Sign in with the email address" "The invitation was issued to another user. Sign in with the email address"
" the invitation was sent to." " the invitation was sent to."

View File

@ -0,0 +1,43 @@
"""empty message
Revision ID: 3f77c8693ae3
Revises: ec7a6b157860
Create Date: 2023-03-16 19:08:17.051573
"""
import sqlalchemy as sa
import sqlalchemy_utils
from alembic import op
from sqlalchemy.dialects import postgresql
from project import dbtypes
# revision identifiers, used by Alembic.
revision = "3f77c8693ae3"
down_revision = "ec7a6b157860"
branch_labels = None
depends_on = None
def upgrade():
# ### commands auto generated by Alembic - please adjust! ###
op.drop_table("analytics")
op.add_column("settings", sa.Column("start_page", sa.UnicodeText(), nullable=True))
# ### end Alembic commands ###
def downgrade():
# ### commands auto generated by Alembic - please adjust! ###
op.drop_column("settings", "start_page")
op.create_table(
"analytics",
sa.Column("id", sa.INTEGER(), autoincrement=True, nullable=False),
sa.Column("key", sa.VARCHAR(length=255), autoincrement=False, nullable=True),
sa.Column("value1", sa.VARCHAR(length=255), autoincrement=False, nullable=True),
sa.Column("value2", sa.VARCHAR(length=255), autoincrement=False, nullable=True),
sa.Column(
"created_at", postgresql.TIMESTAMP(), autoincrement=False, nullable=True
),
sa.PrimaryKeyConstraint("id", name="analytics_pkey"),
)
# ### end Alembic commands ###

View File

@ -36,10 +36,12 @@ app.config["SECURITY_EMAIL_SENDER"] = os.getenv("MAIL_DEFAULT_SENDER")
app.config["LANGUAGES"] = ["en", "de"] app.config["LANGUAGES"] = ["en", "de"]
app.config["SITE_NAME"] = os.getenv("SITE_NAME", "gsevpt") app.config["SITE_NAME"] = os.getenv("SITE_NAME", "gsevpt")
app.config["SERVER_NAME"] = os.getenv("SERVER_NAME") app.config["SERVER_NAME"] = os.getenv("SERVER_NAME")
app.config["DOCS_URL"] = os.getenv("DOCS_URL")
app.config["ADMIN_UNIT_CREATE_REQUIRES_ADMIN"] = os.getenv( app.config["ADMIN_UNIT_CREATE_REQUIRES_ADMIN"] = os.getenv(
"ADMIN_UNIT_CREATE_REQUIRES_ADMIN", False "ADMIN_UNIT_CREATE_REQUIRES_ADMIN", False
) )
app.config["SEO_SITEMAP_PING_GOOGLE"] = getenv_bool("SEO_SITEMAP_PING_GOOGLE", "False") app.config["SEO_SITEMAP_PING_GOOGLE"] = getenv_bool("SEO_SITEMAP_PING_GOOGLE", "False")
app.config["GOOGLE_MAPS_API_KEY"] = os.getenv("GOOGLE_MAPS_API_KEY")
# Proxy handling # Proxy handling
if os.getenv("PREFERRED_URL_SCHEME"): # pragma: no cover if os.getenv("PREFERRED_URL_SCHEME"): # pragma: no cover

View File

@ -11,6 +11,7 @@ class AdminSettingsForm(FlaskForm):
legal_notice = TextAreaField(lazy_gettext("Legal notice"), validators=[Optional()]) legal_notice = TextAreaField(lazy_gettext("Legal notice"), validators=[Optional()])
contact = TextAreaField(lazy_gettext("Contact"), validators=[Optional()]) contact = TextAreaField(lazy_gettext("Contact"), validators=[Optional()])
privacy = TextAreaField(lazy_gettext("Privacy"), validators=[Optional()]) privacy = TextAreaField(lazy_gettext("Privacy"), validators=[Optional()])
start_page = TextAreaField(lazy_gettext("Start page"), validators=[Optional()])
submit = SubmitField(lazy_gettext("Save")) submit = SubmitField(lazy_gettext("Save"))

View File

@ -1,10 +1,8 @@
import os
import googlemaps import googlemaps
from project import app from project import app
google_maps_api_key = os.getenv("GOOGLE_MAPS_API_KEY") google_maps_api_key = app.config["GOOGLE_MAPS_API_KEY"]
gmaps = googlemaps.Client(key=google_maps_api_key) if google_maps_api_key else None gmaps = googlemaps.Client(key=google_maps_api_key) if google_maps_api_key else None

View File

@ -134,6 +134,7 @@ class Settings(db.Model, TrackableMixin):
legal_notice = Column(UnicodeText()) legal_notice = Column(UnicodeText())
contact = Column(UnicodeText()) contact = Column(UnicodeText())
privacy = Column(UnicodeText()) privacy = Column(UnicodeText())
start_page = Column(UnicodeText())
# Multi purpose # Multi purpose
@ -1173,15 +1174,6 @@ class UserFavoriteEvents(db.Model):
event_id = db.Column(db.Integer, db.ForeignKey("event.id"), nullable=False) event_id = db.Column(db.Integer, db.ForeignKey("event.id"), nullable=False)
class Analytics(db.Model):
__tablename__ = "analytics"
id = Column(Integer(), primary_key=True)
key = Column(Unicode(255))
value1 = Column(Unicode(255))
value2 = Column(Unicode(255))
created_at = Column(DateTime, default=datetime.datetime.utcnow)
class CustomWidget(db.Model, TrackableMixin): class CustomWidget(db.Model, TrackableMixin):
__tablename__ = "customwidget" __tablename__ = "customwidget"
id = Column(Integer(), primary_key=True) id = Column(Integer(), primary_key=True)

View File

@ -1,66 +0,0 @@
var klaroConfig = {
version: 1,
styling: {
theme: ['top', 'wide'],
},
noticeAsModal: true,
acceptAll: true,
hideDeclineAll: true,
services: [
{
name: 'google-tag-manager',
title: 'Google Tag Manager',
purposes: ['analytics'],
},
{
name: 'google-analytics',
title: 'Google Analytics',
purposes: ['analytics'],
cookies: [
/^_ga(_.*)?/
],
callback: function(consent, app) {
if(consent !== false) {
window.dataLayer.push({'event' : 'consent-google-analytics'});
}
},
required: false,
optOut: false,
onlyOnce: true,
},
{
name: 'hotjar',
title: 'Hotjar',
purposes: ['analytics'],
cookies: [
/^_hj.*/
],
callback: function(consent, app) {
if(consent !== false) {
window.dataLayer.push({'event' : 'consent-hotjar'});
}
},
required: false,
optOut: false,
onlyOnce: true,
},
],
translations: {
de: {
privacyPolicyUrl: '/privacy',
consentNotice: {
description: 'Hallo! Könnten wir bitte einige zusätzliche Dienste für die Verbesserung der Benutzererfahrung aktivieren? Sie können Ihre Zustimmung später jederzeit ändern oder zurückziehen.',
learnMore: 'Einstellen',
},
purposes: {
analytics: 'Verbesserung der Benutzererfahrung',
},
},
en: {
privacyPolicyUrl: '/privacy',
purposes: {
analytics: 'Improvement of the user experience',
},
},
}
};

File diff suppressed because it is too large Load Diff

View File

@ -1,41 +1,54 @@
/* lato-300 - latin */ /* lato-300 - latin */
@font-face { @font-face {
font-family: 'Lato'; font-family: "Lato";
font-style: normal; font-style: normal;
font-weight: 300; font-weight: 300;
src: url('/static/fonts/lato-v23-latin-300.eot'); /* IE9 Compat Modes */ src: url("/static/fonts/lato-v23-latin-300.eot"); /* IE9 Compat Modes */
src: local(''), src: local(""),
url('/static/fonts/lato-v23-latin-300.eot?#iefix') format('embedded-opentype'), /* IE6-IE8 */ url("/static/fonts/lato-v23-latin-300.eot?#iefix")
url('/static/fonts/lato-v23-latin-300.woff2') format('woff2'), /* Super Modern Browsers */ format("embedded-opentype"),
url('/static/fonts/lato-v23-latin-300.woff') format('woff'), /* Modern Browsers */ /* IE6-IE8 */ url("/static/fonts/lato-v23-latin-300.woff2") format("woff2"),
url('/static/fonts/lato-v23-latin-300.ttf') format('truetype'), /* Safari, Android, iOS */ /* Super Modern Browsers */ url("/static/fonts/lato-v23-latin-300.woff")
url('/static/fonts/lato-v23-latin-300.svg#Lato') format('svg'); /* Legacy iOS */ format("woff"),
/* Modern Browsers */ url("/static/fonts/lato-v23-latin-300.ttf")
format("truetype"),
/* Safari, Android, iOS */ url("/static/fonts/lato-v23-latin-300.svg#Lato")
format("svg"); /* Legacy iOS */
} }
/* lato-regular - latin */ /* lato-regular - latin */
@font-face { @font-face {
font-family: 'Lato'; font-family: "Lato";
font-style: normal; font-style: normal;
font-weight: 400; font-weight: 400;
src: url('/static/fonts/lato-v23-latin-regular.eot'); /* IE9 Compat Modes */ src: url("/static/fonts/lato-v23-latin-regular.eot"); /* IE9 Compat Modes */
src: local(''), src: local(""),
url('/static/fonts/lato-v23-latin-regular.eot?#iefix') format('embedded-opentype'), /* IE6-IE8 */ url("/static/fonts/lato-v23-latin-regular.eot?#iefix")
url('/static/fonts/lato-v23-latin-regular.woff2') format('woff2'), /* Super Modern Browsers */ format("embedded-opentype"),
url('/static/fonts/lato-v23-latin-regular.woff') format('woff'), /* Modern Browsers */ /* IE6-IE8 */ url("/static/fonts/lato-v23-latin-regular.woff2")
url('/static/fonts/lato-v23-latin-regular.ttf') format('truetype'), /* Safari, Android, iOS */ format("woff2"),
url('/static/fonts/lato-v23-latin-regular.svg#Lato') format('svg'); /* Legacy iOS */ /* Super Modern Browsers */ url("/static/fonts/lato-v23-latin-regular.woff")
format("woff"),
/* Modern Browsers */ url("/static/fonts/lato-v23-latin-regular.ttf")
format("truetype"),
/* Safari, Android, iOS */
url("/static/fonts/lato-v23-latin-regular.svg#Lato") format("svg"); /* Legacy iOS */
} }
/* lato-700 - latin */ /* lato-700 - latin */
@font-face { @font-face {
font-family: 'Lato'; font-family: "Lato";
font-style: normal; font-style: normal;
font-weight: 700; font-weight: 700;
src: url('/static/fonts/lato-v23-latin-700.eot'); /* IE9 Compat Modes */ src: url("/static/fonts/lato-v23-latin-700.eot"); /* IE9 Compat Modes */
src: local(''), src: local(""),
url('/static/fonts/lato-v23-latin-700.eot?#iefix') format('embedded-opentype'), /* IE6-IE8 */ url("/static/fonts/lato-v23-latin-700.eot?#iefix")
url('/static/fonts/lato-v23-latin-700.woff2') format('woff2'), /* Super Modern Browsers */ format("embedded-opentype"),
url('/static/fonts/lato-v23-latin-700.woff') format('woff'), /* Modern Browsers */ /* IE6-IE8 */ url("/static/fonts/lato-v23-latin-700.woff2") format("woff2"),
url('/static/fonts/lato-v23-latin-700.ttf') format('truetype'), /* Safari, Android, iOS */ /* Super Modern Browsers */ url("/static/fonts/lato-v23-latin-700.woff")
url('/static/fonts/lato-v23-latin-700.svg#Lato') format('svg'); /* Legacy iOS */ format("woff"),
/* Modern Browsers */ url("/static/fonts/lato-v23-latin-700.ttf")
format("truetype"),
/* Safari, Android, iOS */ url("/static/fonts/lato-v23-latin-700.svg#Lato")
format("svg"); /* Legacy iOS */
} }
/*! /*!
@ -141,28 +154,3 @@ header.masthead h1 {
max-width: 12rem; max-width: 12rem;
box-shadow: 0px 5px 5px 0px #adb5bd; box-shadow: 0px 5px 5px 0px #adb5bd;
} }
.call-to-action {
position: relative;
background-color: #343a40;
background: url("../static/img/landing-page//bg-masthead.jpg") no-repeat
center center;
background-size: cover;
padding-top: 7rem;
padding-bottom: 7rem;
}
.call-to-action .overlay {
position: absolute;
background-color: #212529;
height: 100%;
width: 100%;
top: 0;
left: 0;
opacity: 0.3;
}
footer.footer {
padding-top: 1rem;
padding-bottom: 1rem;
}

View File

@ -10,6 +10,7 @@
<form action="" method="POST"> <form action="" method="POST">
{{ form.hidden_tag() }} {{ form.hidden_tag() }}
{{ render_field_with_errors(form.start_page) }}
{{ render_field_with_errors(form.tos) }} {{ render_field_with_errors(form.tos) }}
{{ render_field_with_errors(form.legal_notice) }} {{ render_field_with_errors(form.legal_notice) }}
{{ render_field_with_errors(form.contact) }} {{ render_field_with_errors(form.contact) }}

View File

@ -1,5 +1,4 @@
{% extends "layout.html" %} {% extends "layout.html" %}
{% from "_macros.html" import render_place, render_events_sub_menu %}
{%- block title -%} {%- block title -%}
{{ config["SITE_NAME"] }} {{ config["SITE_NAME"] }}
{%- endblock -%} {%- endblock -%}
@ -9,45 +8,33 @@
{% block body_content__attribs %} style="padding:0;"{% endblock %} {% block body_content__attribs %} style="padding:0;"{% endblock %}
{% block content_container_attribs %}{% endblock %} {% block content_container_attribs %}{% endblock %}
{% block content %} {% block content %}
{% if content %}
{{ content }}
{% else %}
<!-- Masthead --> <header class="text-center">
<header class="masthead text-white text-center">
<div class="overlay"></div>
<div class="container"> <div class="container">
<div class="row"> <div class="row">
<div class="col-xl-9 mx-auto"> <div class="col-xl-9 mx-auto">
<h1><span class="text-dark">O</span>ffene <span class="text-dark">Ve</span>ranstaltungs-<span class="text-dark">Da</span>tenbank</h1> <h1>{{ config["SITE_NAME"] }}</h1>
<p class="mb-5">Events einfach bekannt machen!</p>
</div> </div>
<div class="col-md-10 col-lg-8 col-xl-7 mx-auto"> <div class="col-md-10 col-lg-8 col-xl-7 mx-auto">
<form> {% if current_user.is_authenticated %}
<div class="form-row"> <div>
<div class="col-12"> <a class="btn btn-primary btn" href="{{ url_for('manage') }}">{{ _('Manage') }}</a>
{% if current_user.is_authenticated %}
<a class="btn btn-primary btn-lg" href="{{ url_for('manage') }}">{{ _('Manage') }}</a>
{% elif not admin_unit_create_requires_admin %}
<a class="btn btn-primary btn-lg" href="{{ url_for('security.register') }}" role="button">{{ _('Register for free') }}</a>
{% endif %}
</div>
</div> </div>
</form> {% elif not config["ADMIN_UNIT_CREATE_REQUIRES_ADMIN"] %}
<div class="mb-2">
<a class="btn btn-primary" href="{{ url_for('security.register') }}" role="button">{{ _fsdomain('Register') }}</a>
</div>
<div>
<a class="btn btn-outline-secondary" href="{{ url_for('security.login') }}" role="button">{{ _fsdomain('Login') }}</a>
</div>
{% endif %}
</div> </div>
</div> </div>
</div> </div>
</header> </header>
<section class="testimonials text-center bg-light"> {% endif %}
<div class="container">
<div class="row">
<div class="col-lg">
<div class="testimonial-item mx-auto mb-5 mb-lg-0">
<img class="img-fluid rounded-circle mb-3" style="width:120px; height:120px;" src="{{ url_for('static', filename='img/landing-page/machmit.png')}}" alt="Logo machmit!">
<h5>MachMit! Goslar</h5>
<p class="font-weight-light">Die offene Veranstaltungsdatenbank ist eine Idee der <a href="https://machmit.goslar.de/">MachMit!-Initiative der Stadt Goslar</a>.</p>
</div>
</div>
</div>
</div>
</section>
{% endblock %} {% endblock %}

View File

@ -50,24 +50,6 @@
{%- block styles %} {%- block styles %}
{%- endblock styles %} {%- endblock styles %}
{%- block gtm_header %}
{% set gtm_id = None | env_override('GTM_ID') %}
{% if gtm_id %}
<script>
window.dataLayer = window.dataLayer || [];
</script>
<script>(function(w,d,s,l,i){w[l]=w[l]||[];w[l].push({'gtm.start':
new Date().getTime(),event:'gtm.js'});var f=d.getElementsByTagName(s)[0],
j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src=
'https://www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f);
})(window,document,'script','dataLayer','{{ gtm_id }}');</script>
<script defer type="application/javascript"src="{{ url_for('static', filename='klaro-config.js')}}"></script>
<script defer type="application/javascript" src="https://cdn.kiprotect.com/klaro/v0.7/klaro-no-css.js"></script>
<link rel="stylesheet" type="text/css" href="{{ url_for('static', filename='klaro.css')}}" />
{% endif %}
{%- endblock gtm_header %}
<script src="https://code.jquery.com/jquery-1.12.4.min.js"></script> <script src="https://code.jquery.com/jquery-1.12.4.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.24.0/moment-with-locales.min.js" integrity="sha256-AdQN98MVZs44Eq2yTwtoKufhnU+uZ7v2kXnD5vqzZVo=" crossorigin="anonymous"></script> <script src="https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.24.0/moment-with-locales.min.js" integrity="sha256-AdQN98MVZs44Eq2yTwtoKufhnU+uZ7v2kXnD5vqzZVo=" crossorigin="anonymous"></script>
@ -157,15 +139,10 @@
</head> </head>
<body{% block body_attribs %}{% endblock body_attribs %}> <body{% block body_attribs %}{% endblock body_attribs %}>
{% block body -%} {% block body -%}
{%- block gtm_body %}
{% if gtm_id %}
<noscript><iframe src="https://www.googletagmanager.com/ns.html?id={{ gtm_id }}" height="0" width="0" style="display:none;visibility:hidden"></iframe></noscript>
{% endif %}
{%- endblock gtm_body %}
{% block navbar %} {% block navbar %}
<nav class="navbar navbar-expand-md navbar-dark bg-dark"> <nav class="navbar navbar-expand-md navbar-dark bg-dark">
<a class="navbar-brand" href="{{ url_for('home') }}"> <a class="navbar-brand" href="{{ url_for('home') }}">
<img src="{{ url_for('static', filename='calendar_icon_90.png')}}" width="30" height="30" class="d-inline-block align-top rounded" alt="Logo"> {{ config["SITE_NAME"] }} <img src="{{ url_for('static', filename='calendar_icon_90.png')}}" width="30" height="30" class="d-inline-block align-top rounded" alt="Logo">
</a> </a>
<button class="navbar-toggler" type="button" data-toggle="collapse" data-target="#navbarNavAltMarkup" aria-controls="navbarNavAltMarkup" aria-expanded="false" aria-label="Toggle navigation"> <button class="navbar-toggler" type="button" data-toggle="collapse" data-target="#navbarNavAltMarkup" aria-controls="navbarNavAltMarkup" aria-expanded="false" aria-label="Toggle navigation">
<span class="navbar-toggler-icon"></span> <span class="navbar-toggler-icon"></span>
@ -177,8 +154,8 @@
<a class="nav-item nav-link" href="{{ url_for('planing') }}">{{ _('Planing') }}</a> <a class="nav-item nav-link" href="{{ url_for('planing') }}">{{ _('Planing') }}</a>
</div> </div>
<div class="navbar-nav navbar-right"> <div class="navbar-nav navbar-right">
{% if False %} {% if config["DOCS_URL"] %}
<a class="nav-item nav-link" href="https://docs.gsevpt.de/" target="_blank" rel="noopener noreferrer">{{ _('Docs') }}</a> <a class="nav-item nav-link" href="{{ config["DOCS_URL"] }}" target="_blank" rel="noopener noreferrer">{{ _('Docs') }}</a>
{% endif %} {% endif %}
{% if current_user.is_authenticated %} {% if current_user.is_authenticated %}
<li class="nav-item dropdown"> <li class="nav-item dropdown">
@ -328,18 +305,11 @@
<li class="list-inline-item"> <li class="list-inline-item">
<a href="{{ url_for('privacy') }}" class="text-muted">{{ _('Privacy') }}</a> <a href="{{ url_for('privacy') }}" class="text-muted">{{ _('Privacy') }}</a>
</li> </li>
{% if None | env_override('GTM_ID') %}
<li class="list-inline-item">&sdot;</li>
<li class="list-inline-item">
<a href="#" onclick="return klaro.show();" class="text-muted">Cookies</a>
</li>
{% endif %}
<li class="list-inline-item">&sdot;</li> <li class="list-inline-item">&sdot;</li>
<li class="list-inline-item"> <li class="list-inline-item">
<a href="{{ url_for('developer') }}" class="text-muted">{{ _('Developer') }}</a> <a href="{{ url_for('developer') }}" class="text-muted">{{ _('Developer') }}</a>
</li> </li>
</ul> </ul>
<p class="text-muted small mb-4 mb-lg-0">Mit <i class="fa fa-heart"></i> in Goslar entwickelt.</p>
</div> </div>
</div> </div>
</div> </div>

View File

@ -12,11 +12,5 @@
{% block managebar %} {% block managebar %}
{% endblock %} {% endblock %}
{%- block gtm_header %}
{%- endblock gtm_header %}
{%- block gtm_body %}
{%- endblock gtm_body %}
{% block footer %} {% block footer %}
{% endblock %} {% endblock %}

View File

@ -7,7 +7,7 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: PROJECT VERSION\n" "Project-Id-Version: PROJECT VERSION\n"
"Report-Msgid-Bugs-To: EMAIL@ADDRESS\n" "Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
"POT-Creation-Date: 2023-03-15 19:10+0100\n" "POT-Creation-Date: 2023-03-16 19:11+0100\n"
"PO-Revision-Date: 2020-06-07 18:51+0200\n" "PO-Revision-Date: 2020-06-07 18:51+0200\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language: de\n" "Language: de\n"
@ -199,47 +199,51 @@ msgstr "message"
msgid "You have received an invitation" msgid "You have received an invitation"
msgstr "Du hast eine Einladung erhalten" msgstr "Du hast eine Einladung erhalten"
#: project/forms/admin.py:10 project/templates/layout.html:317 #: project/forms/admin.py:10 project/templates/layout.html:294
#: project/views/root.py:55 #: project/views/root.py:57
msgid "Terms of service" msgid "Terms of service"
msgstr "Nutzungsbedingungen" msgstr "Nutzungsbedingungen"
#: project/forms/admin.py:11 project/templates/layout.html:321 #: project/forms/admin.py:11 project/templates/layout.html:298
#: project/views/root.py:63 #: project/views/root.py:65
msgid "Legal notice" msgid "Legal notice"
msgstr "Impressum" msgstr "Impressum"
#: project/forms/admin.py:12 project/templates/_macros.html:1395 #: project/forms/admin.py:12 project/templates/_macros.html:1395
#: project/templates/layout.html:325 #: project/templates/layout.html:302
#: project/templates/widget/event_suggestion/create.html:204 #: project/templates/widget/event_suggestion/create.html:204
#: project/views/admin_unit.py:73 project/views/root.py:71 #: project/views/admin_unit.py:73 project/views/root.py:73
msgid "Contact" msgid "Contact"
msgstr "Kontakt" msgstr "Kontakt"
#: project/forms/admin.py:13 project/templates/layout.html:329 #: project/forms/admin.py:13 project/templates/layout.html:306
#: project/views/root.py:79 #: project/views/root.py:81
msgid "Privacy" msgid "Privacy"
msgstr "Datenschutz" msgstr "Datenschutz"
#: project/forms/admin.py:15 project/forms/oauth2_client.py:24 #: project/forms/admin.py:14
msgid "Start page"
msgstr "Startseite"
#: project/forms/admin.py:16 project/forms/oauth2_client.py:24
msgid "Save" msgid "Save"
msgstr "Speichern" msgstr "Speichern"
#: project/forms/admin.py:19 project/forms/admin_unit_member.py:12 #: project/forms/admin.py:20 project/forms/admin_unit_member.py:12
#: project/forms/admin_unit_member.py:32 #: project/forms/admin_unit_member.py:32
msgid "Roles" msgid "Roles"
msgstr "Rollen" msgstr "Rollen"
#: project/forms/admin.py:20 project/templates/admin/update_user.html:4 #: project/forms/admin.py:21 project/templates/admin/update_user.html:4
#: project/templates/admin/update_user.html:8 #: project/templates/admin/update_user.html:8
msgid "Update user" msgid "Update user"
msgstr "Nutzer aktualisieren" msgstr "Nutzer aktualisieren"
#: project/forms/admin.py:25 #: project/forms/admin.py:26
msgid "Incoming reference requests allowed" msgid "Incoming reference requests allowed"
msgstr "Eingehende Empfehlungsanfragen erlauben" msgstr "Eingehende Empfehlungsanfragen erlauben"
#: project/forms/admin.py:26 #: project/forms/admin.py:27
msgid "" msgid ""
"If set, other organizations can ask this organization to reference their " "If set, other organizations can ask this organization to reference their "
"event." "event."
@ -247,45 +251,45 @@ msgstr ""
"Wenn gesetzt, können andere Organisationen diese Organisation bitten, " "Wenn gesetzt, können andere Organisationen diese Organisation bitten, "
"deren Veranstaltungen zu empfehlen." "deren Veranstaltungen zu empfehlen."
#: project/forms/admin.py:32 #: project/forms/admin.py:33
msgid "Suggestions enabled" msgid "Suggestions enabled"
msgstr "Vorschläge aktiv" msgstr "Vorschläge aktiv"
#: project/forms/admin.py:33 #: project/forms/admin.py:34
msgid "If set, the organization can work with suggestions." msgid "If set, the organization can work with suggestions."
msgstr "Wenn gesetzt, kann die Organisation mit Vorschlägen arbeiten." msgstr "Wenn gesetzt, kann die Organisation mit Vorschlägen arbeiten."
#: project/forms/admin.py:37 #: project/forms/admin.py:38
msgid "Create other organizations" msgid "Create other organizations"
msgstr "Andere Organisationen erstellen" msgstr "Andere Organisationen erstellen"
#: project/forms/admin.py:38 #: project/forms/admin.py:39
msgid "If set, members of the organization can create other organizations." msgid "If set, members of the organization can create other organizations."
msgstr "" msgstr ""
"Wenn gesetzt, können Mitglieder der Organisation andere Organisationen " "Wenn gesetzt, können Mitglieder der Organisation andere Organisationen "
"erstellen." "erstellen."
#: project/forms/admin.py:44 #: project/forms/admin.py:45
msgid "Invite other organizations" msgid "Invite other organizations"
msgstr "Andere Organisationen einladen" msgstr "Andere Organisationen einladen"
#: project/forms/admin.py:45 #: project/forms/admin.py:46
msgid "If set, members of the organization can invite other organizations." msgid "If set, members of the organization can invite other organizations."
msgstr "" msgstr ""
"Wenn gesetzt, können Mitglieder der Organisation andere Organisationen " "Wenn gesetzt, können Mitglieder der Organisation andere Organisationen "
"einladen." "einladen."
#: project/forms/admin.py:51 #: project/forms/admin.py:52
msgid "Verify other organizations" msgid "Verify other organizations"
msgstr "Andere Organisationen verifizieren" msgstr "Andere Organisationen verifizieren"
#: project/forms/admin.py:52 #: project/forms/admin.py:53
msgid "If set, members of the organization can verify other organizations." msgid "If set, members of the organization can verify other organizations."
msgstr "" msgstr ""
"Wenn gesetzt, können Mitglieder der Organisation andere Organisationen " "Wenn gesetzt, können Mitglieder der Organisation andere Organisationen "
"verifizieren." "verifizieren."
#: project/forms/admin.py:57 project/templates/admin/update_admin_unit.html:4 #: project/forms/admin.py:58 project/templates/admin/update_admin_unit.html:4
#: project/templates/admin/update_admin_unit.html:8 #: project/templates/admin/update_admin_unit.html:8
msgid "Update organization" msgid "Update organization"
msgstr "Organisation aktualisieren" msgstr "Organisation aktualisieren"
@ -675,7 +679,7 @@ msgid "If the participants needs to register for the event."
msgstr "Wenn sich die Teilnehmer für die Veranstaltung anmelden müssen." msgstr "Wenn sich die Teilnehmer für die Veranstaltung anmelden müssen."
#: project/forms/event.py:170 project/templates/_macros.html:249 #: project/forms/event.py:170 project/templates/_macros.html:249
#: project/templates/layout.html:128 #: project/templates/layout.html:110
msgid "Booked up" msgid "Booked up"
msgstr "Ausgebucht" msgstr "Ausgebucht"
@ -735,11 +739,11 @@ msgstr "Teilnahme"
msgid "EventAttendanceMode.offline" msgid "EventAttendanceMode.offline"
msgstr "Präsenzveranstaltung" msgstr "Präsenzveranstaltung"
#: project/forms/event.py:217 project/templates/layout.html:116 #: project/forms/event.py:217 project/templates/layout.html:98
msgid "EventAttendanceMode.online" msgid "EventAttendanceMode.online"
msgstr "Online" msgstr "Online"
#: project/forms/event.py:219 project/templates/layout.html:119 #: project/forms/event.py:219 project/templates/layout.html:101
msgid "EventAttendanceMode.mixed" msgid "EventAttendanceMode.mixed"
msgstr "Präsenzveranstaltung und online" msgstr "Präsenzveranstaltung und online"
@ -890,23 +894,23 @@ msgstr "Status"
msgid "EventStatus.scheduled" msgid "EventStatus.scheduled"
msgstr "Geplant" msgstr "Geplant"
#: project/forms/event.py:389 project/templates/layout.html:82 #: project/forms/event.py:389 project/templates/layout.html:64
#: project/templates/layout.html:97 #: project/templates/layout.html:79
msgid "EventStatus.cancelled" msgid "EventStatus.cancelled"
msgstr "Abgesagt" msgstr "Abgesagt"
#: project/forms/event.py:390 project/templates/layout.html:85 #: project/forms/event.py:390 project/templates/layout.html:67
#: project/templates/layout.html:100 #: project/templates/layout.html:82
msgid "EventStatus.movedOnline" msgid "EventStatus.movedOnline"
msgstr "Online verschoben" msgstr "Online verschoben"
#: project/forms/event.py:391 project/templates/layout.html:88 #: project/forms/event.py:391 project/templates/layout.html:70
#: project/templates/layout.html:103 #: project/templates/layout.html:85
msgid "EventStatus.postponed" msgid "EventStatus.postponed"
msgstr "Verschoben" msgstr "Verschoben"
#: project/forms/event.py:392 project/templates/layout.html:91 #: project/forms/event.py:392 project/templates/layout.html:73
#: project/templates/layout.html:106 #: project/templates/layout.html:88
msgid "EventStatus.rescheduled" msgid "EventStatus.rescheduled"
msgstr "Neu angesetzt" msgstr "Neu angesetzt"
@ -1115,7 +1119,7 @@ msgstr "Wochentage"
#: project/templates/_macros.html:489 project/templates/_macros.html:652 #: project/templates/_macros.html:489 project/templates/_macros.html:652
#: project/templates/admin_unit/create.html:28 #: project/templates/admin_unit/create.html:28
#: project/templates/admin_unit/update.html:29 #: project/templates/admin_unit/update.html:29
#: project/templates/layout.html:265 #: project/templates/layout.html:242
msgid "Organization" msgid "Organization"
msgstr "Organisation" msgstr "Organisation"
@ -1275,7 +1279,7 @@ msgstr ""
"Die Veranstaltung findet sowohl als Präsenzveranstaltung als auch online " "Die Veranstaltung findet sowohl als Präsenzveranstaltung als auch online "
"statt." "statt."
#: project/templates/_macros.html:585 project/templates/layout.html:191 #: project/templates/_macros.html:585 project/templates/layout.html:168
#: project/templates/user/favorite_events.html:4 #: project/templates/user/favorite_events.html:4
msgid "Favorite events" msgid "Favorite events"
msgstr "Merkzettel" msgstr "Merkzettel"
@ -1420,7 +1424,7 @@ msgstr "Verwaltung"
msgid "Register for free" msgid "Register for free"
msgstr "Kostenlos registrieren" msgstr "Kostenlos registrieren"
#: project/templates/layout.html:175 project/templates/layout.html:223 #: project/templates/layout.html:152 project/templates/layout.html:200
#: project/templates/manage/events.html:6 #: project/templates/manage/events.html:6
#: project/templates/manage/events.html:42 #: project/templates/manage/events.html:42
#: project/templates/manage/events_vue.html:4 #: project/templates/manage/events_vue.html:4
@ -1430,22 +1434,22 @@ msgstr "Veranstaltungen"
#: project/templates/admin/admin.html:19 #: project/templates/admin/admin.html:19
#: project/templates/admin/admin_units.html:4 #: project/templates/admin/admin_units.html:4
#: project/templates/admin/admin_units.html:11 #: project/templates/admin/admin_units.html:11
#: project/templates/layout.html:176 project/templates/layout.html:189 #: project/templates/layout.html:153 project/templates/layout.html:166
#: project/templates/manage/admin_units.html:3 #: project/templates/manage/admin_units.html:3
#: project/templates/manage/admin_units.html:25 #: project/templates/manage/admin_units.html:25
#: project/templates/organization/main.html:4 #: project/templates/organization/main.html:4
msgid "Organizations" msgid "Organizations"
msgstr "Organisationen" msgstr "Organisationen"
#: project/templates/layout.html:177 #: project/templates/layout.html:154
msgid "Planing" msgid "Planing"
msgstr "Planung" msgstr "Planung"
#: project/templates/layout.html:181 #: project/templates/layout.html:158
msgid "Docs" msgid "Docs"
msgstr "Doku" msgstr "Doku"
#: project/templates/layout.html:190 project/templates/layout.html:279 #: project/templates/layout.html:167 project/templates/layout.html:256
#: project/templates/oauth2_client/list.html:10 #: project/templates/oauth2_client/list.html:10
#: project/templates/oauth2_client/read.html:10 #: project/templates/oauth2_client/read.html:10
#: project/templates/oauth2_token/list.html:10 project/templates/profile.html:4 #: project/templates/oauth2_token/list.html:10 project/templates/profile.html:4
@ -1455,86 +1459,86 @@ msgstr "Profil"
#: project/templates/admin/admin.html:3 project/templates/admin/admin.html:9 #: project/templates/admin/admin.html:3 project/templates/admin/admin.html:9
#: project/templates/admin/admin_units.html:10 #: project/templates/admin/admin_units.html:10
#: project/templates/admin/users.html:10 project/templates/layout.html:194 #: project/templates/admin/users.html:10 project/templates/layout.html:171
msgid "Admin" msgid "Admin"
msgstr "Administration" msgstr "Administration"
#: project/templates/layout.html:198 #: project/templates/layout.html:175
msgid "Logout" msgid "Logout"
msgstr "Ausloggen" msgstr "Ausloggen"
#: project/templates/layout.html:229 #: project/templates/layout.html:206
msgid "Show events" msgid "Show events"
msgstr "Veranstaltungen anzeigen" msgstr "Veranstaltungen anzeigen"
#: project/templates/event/create.html:5 #: project/templates/event/create.html:5
#: project/templates/event/create.html:221 project/templates/layout.html:230 #: project/templates/event/create.html:221 project/templates/layout.html:207
#: project/templates/manage/events.html:45 #: project/templates/manage/events.html:45
#: project/templates/manage/organizers.html:21 #: project/templates/manage/organizers.html:21
msgid "Create event" msgid "Create event"
msgstr "Veranstaltung erstellen" msgstr "Veranstaltung erstellen"
#: project/templates/layout.html:231 #: project/templates/layout.html:208
msgid "Import event" msgid "Import event"
msgstr "Veranstaltung imporierten" msgstr "Veranstaltung imporierten"
#: project/templates/layout.html:233 #: project/templates/layout.html:210
#: project/templates/manage/event_lists.html:4 #: project/templates/manage/event_lists.html:4
msgid "Event lists" msgid "Event lists"
msgstr "Veranstaltungslisten" msgstr "Veranstaltungslisten"
#: project/templates/layout.html:236 #: project/templates/layout.html:213
msgid "Review suggestions" msgid "Review suggestions"
msgstr "Vorschläge prüfen" msgstr "Vorschläge prüfen"
#: project/templates/layout.html:246 #: project/templates/layout.html:223
#: project/templates/manage/references_incoming.html:5 #: project/templates/manage/references_incoming.html:5
#: project/templates/manage/references_outgoing.html:5 #: project/templates/manage/references_outgoing.html:5
msgid "References" msgid "References"
msgstr "Empfehlungen" msgstr "Empfehlungen"
#: project/templates/layout.html:252 #: project/templates/layout.html:229
#: project/templates/manage/references_incoming.html:9 #: project/templates/manage/references_incoming.html:9
msgid "Incoming references" msgid "Incoming references"
msgstr "Eingehende Empfehlungen" msgstr "Eingehende Empfehlungen"
#: project/templates/layout.html:253 #: project/templates/layout.html:230
#: project/templates/manage/references_outgoing.html:9 #: project/templates/manage/references_outgoing.html:9
msgid "Outgoing references" msgid "Outgoing references"
msgstr "Ausgehende Empfehlungen" msgstr "Ausgehende Empfehlungen"
#: project/templates/layout.html:255 #: project/templates/layout.html:232
#: project/templates/manage/reference_requests_incoming.html:9 #: project/templates/manage/reference_requests_incoming.html:9
msgid "Incoming reference requests" msgid "Incoming reference requests"
msgstr "Eingehende Empfehlungsanfragen" msgstr "Eingehende Empfehlungsanfragen"
#: project/templates/layout.html:260 #: project/templates/layout.html:237
#: project/templates/manage/reference_requests_outgoing.html:9 #: project/templates/manage/reference_requests_outgoing.html:9
msgid "Outgoing reference requests" msgid "Outgoing reference requests"
msgstr "Ausgehende Empfehlungsanfragen" msgstr "Ausgehende Empfehlungsanfragen"
#: project/templates/layout.html:268 project/templates/manage/organizers.html:5 #: project/templates/layout.html:245 project/templates/manage/organizers.html:5
#: project/templates/manage/organizers.html:9 #: project/templates/manage/organizers.html:9
msgid "Organizers" msgid "Organizers"
msgstr "Veranstalter" msgstr "Veranstalter"
#: project/templates/event_place/list.html:3 #: project/templates/event_place/list.html:3
#: project/templates/event_place/list.html:7 project/templates/layout.html:269 #: project/templates/event_place/list.html:7 project/templates/layout.html:246
#: project/templates/manage/places.html:5 #: project/templates/manage/places.html:5
#: project/templates/manage/places.html:9 #: project/templates/manage/places.html:9
msgid "Places" msgid "Places"
msgstr "Orte" msgstr "Orte"
#: project/templates/layout.html:271 project/templates/manage/members.html:5 #: project/templates/layout.html:248 project/templates/manage/members.html:5
#: project/templates/manage/members.html:28 #: project/templates/manage/members.html:28
msgid "Members" msgid "Members"
msgstr "Mitglieder" msgstr "Mitglieder"
#: project/templates/layout.html:272 project/templates/manage/relations.html:4 #: project/templates/layout.html:249 project/templates/manage/relations.html:4
msgid "Relations" msgid "Relations"
msgstr "Beziehungen" msgstr "Beziehungen"
#: project/templates/layout.html:274 #: project/templates/layout.html:251
#: project/templates/manage/admin_units.html:17 #: project/templates/manage/admin_units.html:17
#: project/templates/manage/organization_invitations.html:4 #: project/templates/manage/organization_invitations.html:4
#: project/templates/user/organization_invitations.html:4 #: project/templates/user/organization_invitations.html:4
@ -1546,27 +1550,27 @@ msgstr "Organisationseinladungen"
#: project/templates/admin/settings.html:8 #: project/templates/admin/settings.html:8
#: project/templates/admin_unit/update.html:6 #: project/templates/admin_unit/update.html:6
#: project/templates/admin_unit/update.html:23 #: project/templates/admin_unit/update.html:23
#: project/templates/layout.html:276 project/templates/manage/widgets.html:11 #: project/templates/layout.html:253 project/templates/manage/widgets.html:11
#: project/templates/manage/widgets.html:15 project/templates/profile.html:19 #: project/templates/manage/widgets.html:15 project/templates/profile.html:19
msgid "Settings" msgid "Settings"
msgstr "Einstellungen" msgstr "Einstellungen"
#: project/templates/layout.html:277 #: project/templates/layout.html:254
#: project/templates/manage/custom_widgets.html:13 #: project/templates/manage/custom_widgets.html:13
msgid "Custom widgets" msgid "Custom widgets"
msgstr "Custom widgets" msgstr "Custom widgets"
#: project/templates/layout.html:278 project/templates/manage/reviews.html:10 #: project/templates/layout.html:255 project/templates/manage/reviews.html:10
#: project/templates/manage/widgets.html:5 #: project/templates/manage/widgets.html:5
#: project/templates/manage/widgets.html:9 #: project/templates/manage/widgets.html:9
msgid "Widgets" msgid "Widgets"
msgstr "Widgets" msgstr "Widgets"
#: project/templates/layout.html:289 #: project/templates/layout.html:266
msgid "Switch organization" msgid "Switch organization"
msgstr "Organisation wechseln" msgstr "Organisation wechseln"
#: project/templates/developer/read.html:4 project/templates/layout.html:339 #: project/templates/developer/read.html:4 project/templates/layout.html:310
#: project/templates/profile.html:29 #: project/templates/profile.html:29
msgid "Developer" msgid "Developer"
msgstr "Entwickler" msgstr "Entwickler"
@ -2281,7 +2285,7 @@ msgstr ""
"Ob alle zukünftigen Empfehlungsanfragen von %(admin_unit_name)s " "Ob alle zukünftigen Empfehlungsanfragen von %(admin_unit_name)s "
"automatisch verifiziert werden sollen." "automatisch verifiziert werden sollen."
#: project/views/utils.py:77 #: project/views/utils.py:65
msgid "" msgid ""
"An entry with the entered values already exists. Duplicate entries are " "An entry with the entered values already exists. Duplicate entries are "
"not allowed." "not allowed."
@ -2289,20 +2293,20 @@ msgstr ""
"Ein Eintrag mit den eingegebenen Werten existiert bereits. Doppelte " "Ein Eintrag mit den eingegebenen Werten existiert bereits. Doppelte "
"Einträge sind nicht erlaubt." "Einträge sind nicht erlaubt."
#: project/views/utils.py:128 #: project/views/utils.py:116
#, python-format #, python-format
msgid "Error in the %s field - %s" msgid "Error in the %s field - %s"
msgstr "Fehler im Feld %s: %s" msgstr "Fehler im Feld %s: %s"
#: project/views/utils.py:135 #: project/views/utils.py:123
msgid "Show" msgid "Show"
msgstr "Anzeigen" msgstr "Anzeigen"
#: project/views/utils.py:143 #: project/views/utils.py:131
msgid "You do not have permission for this action" msgid "You do not have permission for this action"
msgstr "Du hast keine Berechtigung für diese Aktion" msgstr "Du hast keine Berechtigung für diese Aktion"
#: project/views/utils.py:258 #: project/views/utils.py:246
msgid "" msgid ""
"The invitation was issued to another user. Sign in with the email address" "The invitation was issued to another user. Sign in with the email address"
" the invitation was sent to." " the invitation was sent to."
@ -2392,3 +2396,4 @@ msgstr "Neue Veranstaltung zu prüfen"
#~ msgid "Veranstaltungen als iFrame einbetten" #~ msgid "Veranstaltungen als iFrame einbetten"
#~ msgstr "Veranstaltungen als iFrame einbetten" #~ msgstr "Veranstaltungen als iFrame einbetten"

View File

@ -7,7 +7,7 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: PROJECT VERSION\n" "Project-Id-Version: PROJECT VERSION\n"
"Report-Msgid-Bugs-To: EMAIL@ADDRESS\n" "Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
"POT-Creation-Date: 2023-03-15 19:10+0100\n" "POT-Creation-Date: 2023-03-16 19:11+0100\n"
"PO-Revision-Date: 2021-04-30 15:04+0200\n" "PO-Revision-Date: 2021-04-30 15:04+0200\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language: en\n" "Language: en\n"
@ -199,85 +199,89 @@ msgstr ""
msgid "You have received an invitation" msgid "You have received an invitation"
msgstr "" msgstr ""
#: project/forms/admin.py:10 project/templates/layout.html:317 #: project/forms/admin.py:10 project/templates/layout.html:294
#: project/views/root.py:55 #: project/views/root.py:57
msgid "Terms of service" msgid "Terms of service"
msgstr "" msgstr ""
#: project/forms/admin.py:11 project/templates/layout.html:321 #: project/forms/admin.py:11 project/templates/layout.html:298
#: project/views/root.py:63 #: project/views/root.py:65
msgid "Legal notice" msgid "Legal notice"
msgstr "" msgstr ""
#: project/forms/admin.py:12 project/templates/_macros.html:1395 #: project/forms/admin.py:12 project/templates/_macros.html:1395
#: project/templates/layout.html:325 #: project/templates/layout.html:302
#: project/templates/widget/event_suggestion/create.html:204 #: project/templates/widget/event_suggestion/create.html:204
#: project/views/admin_unit.py:73 project/views/root.py:71 #: project/views/admin_unit.py:73 project/views/root.py:73
msgid "Contact" msgid "Contact"
msgstr "" msgstr ""
#: project/forms/admin.py:13 project/templates/layout.html:329 #: project/forms/admin.py:13 project/templates/layout.html:306
#: project/views/root.py:79 #: project/views/root.py:81
msgid "Privacy" msgid "Privacy"
msgstr "" msgstr ""
#: project/forms/admin.py:15 project/forms/oauth2_client.py:24 #: project/forms/admin.py:14
msgid "Start page"
msgstr ""
#: project/forms/admin.py:16 project/forms/oauth2_client.py:24
msgid "Save" msgid "Save"
msgstr "" msgstr ""
#: project/forms/admin.py:19 project/forms/admin_unit_member.py:12 #: project/forms/admin.py:20 project/forms/admin_unit_member.py:12
#: project/forms/admin_unit_member.py:32 #: project/forms/admin_unit_member.py:32
msgid "Roles" msgid "Roles"
msgstr "" msgstr ""
#: project/forms/admin.py:20 project/templates/admin/update_user.html:4 #: project/forms/admin.py:21 project/templates/admin/update_user.html:4
#: project/templates/admin/update_user.html:8 #: project/templates/admin/update_user.html:8
msgid "Update user" msgid "Update user"
msgstr "" msgstr ""
#: project/forms/admin.py:25 #: project/forms/admin.py:26
msgid "Incoming reference requests allowed" msgid "Incoming reference requests allowed"
msgstr "" msgstr ""
#: project/forms/admin.py:26 #: project/forms/admin.py:27
msgid "" msgid ""
"If set, other organizations can ask this organization to reference their " "If set, other organizations can ask this organization to reference their "
"event." "event."
msgstr "" msgstr ""
#: project/forms/admin.py:32 #: project/forms/admin.py:33
msgid "Suggestions enabled" msgid "Suggestions enabled"
msgstr "" msgstr ""
#: project/forms/admin.py:33 #: project/forms/admin.py:34
msgid "If set, the organization can work with suggestions." msgid "If set, the organization can work with suggestions."
msgstr "" msgstr ""
#: project/forms/admin.py:37 #: project/forms/admin.py:38
msgid "Create other organizations" msgid "Create other organizations"
msgstr "" msgstr ""
#: project/forms/admin.py:38 #: project/forms/admin.py:39
msgid "If set, members of the organization can create other organizations." msgid "If set, members of the organization can create other organizations."
msgstr "" msgstr ""
#: project/forms/admin.py:44 #: project/forms/admin.py:45
msgid "Invite other organizations" msgid "Invite other organizations"
msgstr "" msgstr ""
#: project/forms/admin.py:45 #: project/forms/admin.py:46
msgid "If set, members of the organization can invite other organizations." msgid "If set, members of the organization can invite other organizations."
msgstr "" msgstr ""
#: project/forms/admin.py:51 #: project/forms/admin.py:52
msgid "Verify other organizations" msgid "Verify other organizations"
msgstr "" msgstr ""
#: project/forms/admin.py:52 #: project/forms/admin.py:53
msgid "If set, members of the organization can verify other organizations." msgid "If set, members of the organization can verify other organizations."
msgstr "" msgstr ""
#: project/forms/admin.py:57 project/templates/admin/update_admin_unit.html:4 #: project/forms/admin.py:58 project/templates/admin/update_admin_unit.html:4
#: project/templates/admin/update_admin_unit.html:8 #: project/templates/admin/update_admin_unit.html:8
msgid "Update organization" msgid "Update organization"
msgstr "" msgstr ""
@ -648,7 +652,7 @@ msgid "If the participants needs to register for the event."
msgstr "" msgstr ""
#: project/forms/event.py:170 project/templates/_macros.html:249 #: project/forms/event.py:170 project/templates/_macros.html:249
#: project/templates/layout.html:128 #: project/templates/layout.html:110
msgid "Booked up" msgid "Booked up"
msgstr "" msgstr ""
@ -704,11 +708,11 @@ msgstr ""
msgid "EventAttendanceMode.offline" msgid "EventAttendanceMode.offline"
msgstr "Normal (Offline)" msgstr "Normal (Offline)"
#: project/forms/event.py:217 project/templates/layout.html:116 #: project/forms/event.py:217 project/templates/layout.html:98
msgid "EventAttendanceMode.online" msgid "EventAttendanceMode.online"
msgstr "Online" msgstr "Online"
#: project/forms/event.py:219 project/templates/layout.html:119 #: project/forms/event.py:219 project/templates/layout.html:101
msgid "EventAttendanceMode.mixed" msgid "EventAttendanceMode.mixed"
msgstr "Online and offline" msgstr "Online and offline"
@ -847,23 +851,23 @@ msgstr ""
msgid "EventStatus.scheduled" msgid "EventStatus.scheduled"
msgstr "Scheduled" msgstr "Scheduled"
#: project/forms/event.py:389 project/templates/layout.html:82 #: project/forms/event.py:389 project/templates/layout.html:64
#: project/templates/layout.html:97 #: project/templates/layout.html:79
msgid "EventStatus.cancelled" msgid "EventStatus.cancelled"
msgstr "Cancelled" msgstr "Cancelled"
#: project/forms/event.py:390 project/templates/layout.html:85 #: project/forms/event.py:390 project/templates/layout.html:67
#: project/templates/layout.html:100 #: project/templates/layout.html:82
msgid "EventStatus.movedOnline" msgid "EventStatus.movedOnline"
msgstr "Moved online" msgstr "Moved online"
#: project/forms/event.py:391 project/templates/layout.html:88 #: project/forms/event.py:391 project/templates/layout.html:70
#: project/templates/layout.html:103 #: project/templates/layout.html:85
msgid "EventStatus.postponed" msgid "EventStatus.postponed"
msgstr "Postponed" msgstr "Postponed"
#: project/forms/event.py:392 project/templates/layout.html:91 #: project/forms/event.py:392 project/templates/layout.html:73
#: project/templates/layout.html:106 #: project/templates/layout.html:88
msgid "EventStatus.rescheduled" msgid "EventStatus.rescheduled"
msgstr "Rescheduled" msgstr "Rescheduled"
@ -1068,7 +1072,7 @@ msgstr ""
#: project/templates/_macros.html:489 project/templates/_macros.html:652 #: project/templates/_macros.html:489 project/templates/_macros.html:652
#: project/templates/admin_unit/create.html:28 #: project/templates/admin_unit/create.html:28
#: project/templates/admin_unit/update.html:29 #: project/templates/admin_unit/update.html:29
#: project/templates/layout.html:265 #: project/templates/layout.html:242
msgid "Organization" msgid "Organization"
msgstr "" msgstr ""
@ -1226,7 +1230,7 @@ msgstr ""
msgid "The event takes place both offline and online." msgid "The event takes place both offline and online."
msgstr "" msgstr ""
#: project/templates/_macros.html:585 project/templates/layout.html:191 #: project/templates/_macros.html:585 project/templates/layout.html:168
#: project/templates/user/favorite_events.html:4 #: project/templates/user/favorite_events.html:4
msgid "Favorite events" msgid "Favorite events"
msgstr "" msgstr ""
@ -1371,7 +1375,7 @@ msgstr ""
msgid "Register for free" msgid "Register for free"
msgstr "" msgstr ""
#: project/templates/layout.html:175 project/templates/layout.html:223 #: project/templates/layout.html:152 project/templates/layout.html:200
#: project/templates/manage/events.html:6 #: project/templates/manage/events.html:6
#: project/templates/manage/events.html:42 #: project/templates/manage/events.html:42
#: project/templates/manage/events_vue.html:4 #: project/templates/manage/events_vue.html:4
@ -1381,22 +1385,22 @@ msgstr ""
#: project/templates/admin/admin.html:19 #: project/templates/admin/admin.html:19
#: project/templates/admin/admin_units.html:4 #: project/templates/admin/admin_units.html:4
#: project/templates/admin/admin_units.html:11 #: project/templates/admin/admin_units.html:11
#: project/templates/layout.html:176 project/templates/layout.html:189 #: project/templates/layout.html:153 project/templates/layout.html:166
#: project/templates/manage/admin_units.html:3 #: project/templates/manage/admin_units.html:3
#: project/templates/manage/admin_units.html:25 #: project/templates/manage/admin_units.html:25
#: project/templates/organization/main.html:4 #: project/templates/organization/main.html:4
msgid "Organizations" msgid "Organizations"
msgstr "" msgstr ""
#: project/templates/layout.html:177 #: project/templates/layout.html:154
msgid "Planing" msgid "Planing"
msgstr "" msgstr ""
#: project/templates/layout.html:181 #: project/templates/layout.html:158
msgid "Docs" msgid "Docs"
msgstr "" msgstr ""
#: project/templates/layout.html:190 project/templates/layout.html:279 #: project/templates/layout.html:167 project/templates/layout.html:256
#: project/templates/oauth2_client/list.html:10 #: project/templates/oauth2_client/list.html:10
#: project/templates/oauth2_client/read.html:10 #: project/templates/oauth2_client/read.html:10
#: project/templates/oauth2_token/list.html:10 project/templates/profile.html:4 #: project/templates/oauth2_token/list.html:10 project/templates/profile.html:4
@ -1406,86 +1410,86 @@ msgstr ""
#: project/templates/admin/admin.html:3 project/templates/admin/admin.html:9 #: project/templates/admin/admin.html:3 project/templates/admin/admin.html:9
#: project/templates/admin/admin_units.html:10 #: project/templates/admin/admin_units.html:10
#: project/templates/admin/users.html:10 project/templates/layout.html:194 #: project/templates/admin/users.html:10 project/templates/layout.html:171
msgid "Admin" msgid "Admin"
msgstr "" msgstr ""
#: project/templates/layout.html:198 #: project/templates/layout.html:175
msgid "Logout" msgid "Logout"
msgstr "" msgstr ""
#: project/templates/layout.html:229 #: project/templates/layout.html:206
msgid "Show events" msgid "Show events"
msgstr "" msgstr ""
#: project/templates/event/create.html:5 #: project/templates/event/create.html:5
#: project/templates/event/create.html:221 project/templates/layout.html:230 #: project/templates/event/create.html:221 project/templates/layout.html:207
#: project/templates/manage/events.html:45 #: project/templates/manage/events.html:45
#: project/templates/manage/organizers.html:21 #: project/templates/manage/organizers.html:21
msgid "Create event" msgid "Create event"
msgstr "" msgstr ""
#: project/templates/layout.html:231 #: project/templates/layout.html:208
msgid "Import event" msgid "Import event"
msgstr "" msgstr ""
#: project/templates/layout.html:233 #: project/templates/layout.html:210
#: project/templates/manage/event_lists.html:4 #: project/templates/manage/event_lists.html:4
msgid "Event lists" msgid "Event lists"
msgstr "" msgstr ""
#: project/templates/layout.html:236 #: project/templates/layout.html:213
msgid "Review suggestions" msgid "Review suggestions"
msgstr "" msgstr ""
#: project/templates/layout.html:246 #: project/templates/layout.html:223
#: project/templates/manage/references_incoming.html:5 #: project/templates/manage/references_incoming.html:5
#: project/templates/manage/references_outgoing.html:5 #: project/templates/manage/references_outgoing.html:5
msgid "References" msgid "References"
msgstr "" msgstr ""
#: project/templates/layout.html:252 #: project/templates/layout.html:229
#: project/templates/manage/references_incoming.html:9 #: project/templates/manage/references_incoming.html:9
msgid "Incoming references" msgid "Incoming references"
msgstr "" msgstr ""
#: project/templates/layout.html:253 #: project/templates/layout.html:230
#: project/templates/manage/references_outgoing.html:9 #: project/templates/manage/references_outgoing.html:9
msgid "Outgoing references" msgid "Outgoing references"
msgstr "" msgstr ""
#: project/templates/layout.html:255 #: project/templates/layout.html:232
#: project/templates/manage/reference_requests_incoming.html:9 #: project/templates/manage/reference_requests_incoming.html:9
msgid "Incoming reference requests" msgid "Incoming reference requests"
msgstr "" msgstr ""
#: project/templates/layout.html:260 #: project/templates/layout.html:237
#: project/templates/manage/reference_requests_outgoing.html:9 #: project/templates/manage/reference_requests_outgoing.html:9
msgid "Outgoing reference requests" msgid "Outgoing reference requests"
msgstr "" msgstr ""
#: project/templates/layout.html:268 project/templates/manage/organizers.html:5 #: project/templates/layout.html:245 project/templates/manage/organizers.html:5
#: project/templates/manage/organizers.html:9 #: project/templates/manage/organizers.html:9
msgid "Organizers" msgid "Organizers"
msgstr "" msgstr ""
#: project/templates/event_place/list.html:3 #: project/templates/event_place/list.html:3
#: project/templates/event_place/list.html:7 project/templates/layout.html:269 #: project/templates/event_place/list.html:7 project/templates/layout.html:246
#: project/templates/manage/places.html:5 #: project/templates/manage/places.html:5
#: project/templates/manage/places.html:9 #: project/templates/manage/places.html:9
msgid "Places" msgid "Places"
msgstr "" msgstr ""
#: project/templates/layout.html:271 project/templates/manage/members.html:5 #: project/templates/layout.html:248 project/templates/manage/members.html:5
#: project/templates/manage/members.html:28 #: project/templates/manage/members.html:28
msgid "Members" msgid "Members"
msgstr "" msgstr ""
#: project/templates/layout.html:272 project/templates/manage/relations.html:4 #: project/templates/layout.html:249 project/templates/manage/relations.html:4
msgid "Relations" msgid "Relations"
msgstr "" msgstr ""
#: project/templates/layout.html:274 #: project/templates/layout.html:251
#: project/templates/manage/admin_units.html:17 #: project/templates/manage/admin_units.html:17
#: project/templates/manage/organization_invitations.html:4 #: project/templates/manage/organization_invitations.html:4
#: project/templates/user/organization_invitations.html:4 #: project/templates/user/organization_invitations.html:4
@ -1497,27 +1501,27 @@ msgstr ""
#: project/templates/admin/settings.html:8 #: project/templates/admin/settings.html:8
#: project/templates/admin_unit/update.html:6 #: project/templates/admin_unit/update.html:6
#: project/templates/admin_unit/update.html:23 #: project/templates/admin_unit/update.html:23
#: project/templates/layout.html:276 project/templates/manage/widgets.html:11 #: project/templates/layout.html:253 project/templates/manage/widgets.html:11
#: project/templates/manage/widgets.html:15 project/templates/profile.html:19 #: project/templates/manage/widgets.html:15 project/templates/profile.html:19
msgid "Settings" msgid "Settings"
msgstr "" msgstr ""
#: project/templates/layout.html:277 #: project/templates/layout.html:254
#: project/templates/manage/custom_widgets.html:13 #: project/templates/manage/custom_widgets.html:13
msgid "Custom widgets" msgid "Custom widgets"
msgstr "" msgstr ""
#: project/templates/layout.html:278 project/templates/manage/reviews.html:10 #: project/templates/layout.html:255 project/templates/manage/reviews.html:10
#: project/templates/manage/widgets.html:5 #: project/templates/manage/widgets.html:5
#: project/templates/manage/widgets.html:9 #: project/templates/manage/widgets.html:9
msgid "Widgets" msgid "Widgets"
msgstr "" msgstr ""
#: project/templates/layout.html:289 #: project/templates/layout.html:266
msgid "Switch organization" msgid "Switch organization"
msgstr "" msgstr ""
#: project/templates/developer/read.html:4 project/templates/layout.html:339 #: project/templates/developer/read.html:4 project/templates/layout.html:310
#: project/templates/profile.html:29 #: project/templates/profile.html:29
msgid "Developer" msgid "Developer"
msgstr "" msgstr ""
@ -2214,26 +2218,26 @@ msgid ""
"verified automatically." "verified automatically."
msgstr "" msgstr ""
#: project/views/utils.py:77 #: project/views/utils.py:65
msgid "" msgid ""
"An entry with the entered values already exists. Duplicate entries are " "An entry with the entered values already exists. Duplicate entries are "
"not allowed." "not allowed."
msgstr "" msgstr ""
#: project/views/utils.py:128 #: project/views/utils.py:116
#, python-format #, python-format
msgid "Error in the %s field - %s" msgid "Error in the %s field - %s"
msgstr "" msgstr ""
#: project/views/utils.py:135 #: project/views/utils.py:123
msgid "Show" msgid "Show"
msgstr "" msgstr ""
#: project/views/utils.py:143 #: project/views/utils.py:131
msgid "You do not have permission for this action" msgid "You do not have permission for this action"
msgstr "" msgstr ""
#: project/views/utils.py:258 #: project/views/utils.py:246
msgid "" msgid ""
"The invitation was issued to another user. Sign in with the email address" "The invitation was issued to another user. Sign in with the email address"
" the invitation was sent to." " the invitation was sent to."

View File

@ -1,6 +1,6 @@
import json import json
from flask import redirect, render_template, request, url_for from flask import render_template, request, url_for
from flask.wrappers import Response from flask.wrappers import Response
from project import app from project import app
@ -16,12 +16,7 @@ from project.services.event import (
) )
from project.services.event_search import EventSearchParams from project.services.event_search import EventSearchParams
from project.views.event import get_event_category_choices, get_menu_user_rights from project.views.event import get_event_category_choices, get_menu_user_rights
from project.views.utils import ( from project.views.utils import flash_errors, get_calendar_links, get_share_links
flash_errors,
get_calendar_links,
get_share_links,
track_analytics,
)
def prepare_event_date_form(form): def prepare_event_date_form(form):
@ -50,10 +45,6 @@ def event_date(id):
event_date = get_event_date_with_details_or_404(id) event_date = get_event_date_with_details_or_404(id)
can_read_event_or_401(event_date.event) can_read_event_or_401(event_date.event)
if "src" in request.args:
track_analytics("event_date", str(id), request.args["src"])
return redirect(url_for("event_date", id=id))
structured_data = json.dumps( structured_data = json.dumps(
get_sd_for_event_date(event_date), indent=2, cls=DateTimeEncoder get_sd_for_event_date(event_date), indent=2, cls=DateTimeEncoder
) )

View File

@ -1,7 +1,7 @@
import json import json
import os.path import os.path
from flask import redirect, render_template, request, send_from_directory, url_for from flask import render_template, request, send_from_directory, url_for
from flask_babelex import gettext from flask_babelex import gettext
from markupsafe import Markup from markupsafe import Markup
@ -15,15 +15,10 @@ from project import (
sitemap_file, sitemap_file,
) )
from project.services.admin import upsert_settings from project.services.admin import upsert_settings
from project.views.utils import track_analytics
@app.route("/") @app.route("/")
def home(): def home():
if "src" in request.args:
track_analytics("home", "", request.args["src"])
return redirect(url_for("home"))
structured_data = json.dumps( structured_data = json.dumps(
{ {
"@context": "http://schema.org", "@context": "http://schema.org",
@ -33,10 +28,13 @@ def home():
} }
) )
settings = upsert_settings()
content = Markup(settings.start_page) if settings.start_page else None
return render_template( return render_template(
"home.html", "home.html",
structured_data=structured_data, structured_data=structured_data,
admin_unit_create_requires_admin=app.config["ADMIN_UNIT_CREATE_REQUIRES_ADMIN"], content=content,
) )

View File

@ -9,10 +9,10 @@ from psycopg2.errorcodes import UNIQUE_VIOLATION
from sqlalchemy.exc import SQLAlchemyError from sqlalchemy.exc import SQLAlchemyError
from wtforms import FormField from wtforms import FormField
from project import app, db, mail from project import app, mail
from project.access import get_admin_unit_for_manage, get_admin_units_for_manage from project.access import get_admin_unit_for_manage, get_admin_units_for_manage
from project.dateutils import berlin_tz, round_to_next_day from project.dateutils import berlin_tz, round_to_next_day
from project.models import Analytics, EventAttendanceMode, EventDate from project.models import EventAttendanceMode, EventDate
from project.utils import get_place_str, strings_are_equal_ignoring_case from project.utils import get_place_str, strings_are_equal_ignoring_case
@ -54,18 +54,6 @@ def get_current_admin_unit_from_cookies():
return None return None
def track_analytics(key, value1, value2):
result = Analytics(key=key, value1=value1)
if value2 is not None:
result.value2 = value2
db.session.add(result)
db.session.commit()
return result
def handleSqlError(e: SQLAlchemyError) -> str: def handleSqlError(e: SQLAlchemyError) -> str:
if not e.orig: if not e.orig:
return str(e) return str(e)