Add announcement #544

This commit is contained in:
Daniel Grams 2023-09-07 23:01:56 +02:00
parent 1cc2346bde
commit 4932c31c81
15 changed files with 174 additions and 92 deletions

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-09-06 17:11+0200\n" "POT-Creation-Date: 2023-09-07 22:40+0200\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"
@ -232,34 +232,38 @@ msgstr ""
msgid "Start page" msgid "Start page"
msgstr "" msgstr ""
#: project/forms/admin.py:17 project/forms/oauth2_client.py:24 #: project/forms/admin.py:16
msgid "Announcement"
msgstr ""
#: project/forms/admin.py:18 project/forms/oauth2_client.py:24
#: project/forms/user.py:13 #: project/forms/user.py:13
msgid "Save" msgid "Save"
msgstr "" msgstr ""
#: project/forms/admin.py:22 #: project/forms/admin.py:23
msgid "Reset for all users" msgid "Reset for all users"
msgstr "" msgstr ""
#: project/forms/admin.py:24 #: project/forms/admin.py:25
msgid "Reset" msgid "Reset"
msgstr "" msgstr ""
#: project/forms/admin.py:28 project/forms/admin_unit_member.py:14 #: project/forms/admin.py:29 project/forms/admin_unit_member.py:14
#: project/forms/admin_unit_member.py:34 #: project/forms/admin_unit_member.py:34
msgid "Roles" msgid "Roles"
msgstr "" msgstr ""
#: project/forms/admin.py:29 project/templates/admin/update_user.html:4 #: project/forms/admin.py:30 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:33 project/templates/admin/delete_user.html:6 #: project/forms/admin.py:34 project/templates/admin/delete_user.html:6
msgid "Delete user" msgid "Delete user"
msgstr "" msgstr ""
#: project/forms/admin.py:34 project/forms/admin_unit.py:58 #: project/forms/admin.py:35 project/forms/admin_unit.py:58
#: project/forms/admin_unit_member.py:12 project/forms/admin_unit_member.py:25 #: 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:112 #: project/forms/admin_unit_member.py:30 project/forms/event.py:112
#: project/forms/event_suggestion.py:38 project/forms/organizer.py:33 #: project/forms/event_suggestion.py:38 project/forms/organizer.py:33
@ -271,60 +275,60 @@ msgstr ""
msgid "Email" msgid "Email"
msgstr "" msgstr ""
#: project/forms/admin.py:39 #: project/forms/admin.py:40
msgid "Incoming reference requests allowed" msgid "Incoming reference requests allowed"
msgstr "" msgstr ""
#: project/forms/admin.py:40 #: project/forms/admin.py:41
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:46 #: project/forms/admin.py:47
msgid "Suggestions enabled" msgid "Suggestions enabled"
msgstr "" msgstr ""
#: project/forms/admin.py:47 #: project/forms/admin.py:48
msgid "If set, the organization can work with suggestions." msgid "If set, the organization can work with suggestions."
msgstr "" msgstr ""
#: project/forms/admin.py:51 #: project/forms/admin.py:52
msgid "Create other organizations" msgid "Create other organizations"
msgstr "" msgstr ""
#: project/forms/admin.py:52 #: project/forms/admin.py:53
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:58 #: project/forms/admin.py:59
msgid "Invite other organizations" msgid "Invite other organizations"
msgstr "" msgstr ""
#: project/forms/admin.py:59 #: project/forms/admin.py:60
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:65 #: project/forms/admin.py:66
msgid "Verify other organizations" msgid "Verify other organizations"
msgstr "" msgstr ""
#: project/forms/admin.py:66 #: project/forms/admin.py:67
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:71 project/templates/admin/update_admin_unit.html:4 #: project/forms/admin.py:72 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 ""
#: project/forms/admin.py:75 project/templates/admin/delete_admin_unit.html:6 #: project/forms/admin.py:76 project/templates/admin/delete_admin_unit.html:6
#: project/templates/admin_unit/request_deletion.html:6 #: project/templates/admin_unit/request_deletion.html:6
#: project/templates/admin_unit/update.html:94 #: project/templates/admin_unit/update.html:94
msgid "Delete organization" msgid "Delete organization"
msgstr "" msgstr ""
#: project/forms/admin.py:76 project/forms/admin_unit.py:147 #: project/forms/admin.py:77 project/forms/admin_unit.py:147
#: project/forms/admin_unit.py:152 project/forms/admin_unit.py:157 #: project/forms/admin_unit.py:152 project/forms/admin_unit.py:157
#: project/forms/event.py:90 project/forms/event.py:119 #: project/forms/event.py:90 project/forms/event.py:119
#: project/forms/event_place.py:30 project/forms/event_place.py:56 #: project/forms/event_place.py:30 project/forms/event_place.py:56
@ -340,27 +344,27 @@ msgstr ""
msgid "Name" msgid "Name"
msgstr "" msgstr ""
#: project/forms/admin.py:80 project/forms/admin.py:87 #: project/forms/admin.py:81 project/forms/admin.py:88
msgid "Recipient" msgid "Recipient"
msgstr "" msgstr ""
#: project/forms/admin.py:82 #: project/forms/admin.py:83
msgid "Send test mail synchronously" msgid "Send test mail synchronously"
msgstr "" msgstr ""
#: project/forms/admin.py:89 project/forms/admin.py:95 #: project/forms/admin.py:90 project/forms/admin.py:96
msgid "Test recipient" msgid "Test recipient"
msgstr "" msgstr ""
#: project/forms/admin.py:90 #: project/forms/admin.py:91
msgid "All users with enabled newsletter setting" msgid "All users with enabled newsletter setting"
msgstr "" msgstr ""
#: project/forms/admin.py:96 #: project/forms/admin.py:97
msgid "Message" msgid "Message"
msgstr "" msgstr ""
#: project/forms/admin.py:97 #: project/forms/admin.py:98
msgid "Send newsletter" msgid "Send newsletter"
msgstr "" msgstr ""
@ -1918,7 +1922,7 @@ msgstr ""
#: project/templates/admin/reset_tos_accepted.html:4 #: project/templates/admin/reset_tos_accepted.html:4
#: project/templates/admin/reset_tos_accepted.html:8 #: project/templates/admin/reset_tos_accepted.html:8
#: project/templates/admin/settings.html:28 #: project/templates/admin/settings.html:29
#: project/templates/admin/users.html:48 #: project/templates/admin/users.html:48
msgid "Reset acceptance of terms of service and privacy" msgid "Reset acceptance of terms of service and privacy"
msgstr "" msgstr ""

View File

@ -0,0 +1,28 @@
"""empty message
Revision ID: d2c04be821a7
Revises: 6634c8f0b7fc
Create Date: 2023-09-07 22:20:57.918736
"""
import sqlalchemy as sa
import sqlalchemy_utils
from alembic import op
from project import dbtypes
# revision identifiers, used by Alembic.
revision = "d2c04be821a7"
down_revision = "6634c8f0b7fc"
branch_labels = None
depends_on = None
def upgrade():
op.add_column(
"settings", sa.Column("announcement", sa.UnicodeText(), nullable=True)
)
def downgrade():
op.drop_column("settings", "announcement")

View File

@ -13,6 +13,7 @@ class AdminSettingsForm(FlaskForm):
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()]) start_page = TextAreaField(lazy_gettext("Start page"), validators=[Optional()])
announcement = TextAreaField(lazy_gettext("Announcement"), validators=[Optional()])
submit = SubmitField(lazy_gettext("Save")) submit = SubmitField(lazy_gettext("Save"))

View File

@ -2,6 +2,7 @@ import os
from urllib.parse import quote_plus from urllib.parse import quote_plus
from flask import url_for from flask import url_for
from markupsafe import Markup
from project import app from project import app
from project.utils import ( from project.utils import (
@ -114,6 +115,15 @@ def get_context_processors():
return has_tos() return has_tos()
def get_announcement():
from project.services.admin import has_announcement, upsert_settings
if not has_announcement():
return None
settings = upsert_settings()
return Markup(settings.announcement) if settings.announcement else None
def get_current_user_roles(): def get_current_user_roles():
from flask_security import current_user from flask_security import current_user
@ -167,6 +177,7 @@ def get_context_processors():
get_manage_menu_options=get_manage_menu_options, get_manage_menu_options=get_manage_menu_options,
has_access=has_access, has_access=has_access,
has_tos=has_tos, has_tos=has_tos,
get_announcement=get_announcement,
get_current_user_roles=get_current_user_roles, get_current_user_roles=get_current_user_roles,
get_current_user_permissions=get_current_user_permissions, get_current_user_permissions=get_current_user_permissions,
) )

View File

@ -1,4 +1,5 @@
from sqlalchemy import Column, Integer, UnicodeText from sqlalchemy import Column, Integer, UnicodeText
from sqlalchemy.orm import deferred
from project import db from project import db
from project.models.trackable_mixin import TrackableMixin from project.models.trackable_mixin import TrackableMixin
@ -7,8 +8,9 @@ from project.models.trackable_mixin import TrackableMixin
class Settings(db.Model, TrackableMixin): class Settings(db.Model, TrackableMixin):
__tablename__ = "settings" __tablename__ = "settings"
id = Column(Integer(), primary_key=True) id = Column(Integer(), primary_key=True)
tos = Column(UnicodeText()) tos = deferred(Column(UnicodeText()))
legal_notice = Column(UnicodeText()) legal_notice = deferred(Column(UnicodeText()))
contact = Column(UnicodeText()) contact = deferred(Column(UnicodeText()))
privacy = Column(UnicodeText()) privacy = deferred(Column(UnicodeText()))
start_page = Column(UnicodeText()) start_page = deferred(Column(UnicodeText()))
announcement = deferred(Column(UnicodeText()))

View File

@ -4,7 +4,7 @@ from project import db
from project.models import Settings, User from project.models import Settings, User
def upsert_settings(): def upsert_settings() -> Settings:
result = Settings.query.first() result = Settings.query.first()
if result is None: if result is None:
result = Settings() result = Settings()
@ -13,12 +13,18 @@ def upsert_settings():
return result return result
def has_tos(): def has_tos() -> bool:
return db.session.scalar( return db.session.scalar(
exists().where(func.coalesce(Settings.tos, "") != "").select() exists().where(func.coalesce(Settings.tos, "") != "").select()
) )
def has_announcement() -> bool:
return db.session.scalar(
exists().where(func.coalesce(Settings.announcement, "") != "").select()
)
def reset_tos_accepted_for_users(): def reset_tos_accepted_for_users():
db.session.execute(update(User).values(tos_accepted_at=None)) db.session.execute(update(User).values(tos_accepted_at=None))
db.session.commit() db.session.commit()

View File

@ -1,3 +1,8 @@
{% set announcement = get_announcement() %}
{% if announcement %}
<div class="alert alert-warning" role="alert">{{ announcement }}</div>
{% endif %}
{%- with messages = get_flashed_messages(with_categories=true) -%} {%- with messages = get_flashed_messages(with_categories=true) -%}
{% if messages %} {% if messages %}
{% for category, message in messages %} {% for category, message in messages %}

View File

@ -20,6 +20,7 @@
{{ 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) }}
{{ render_field_with_errors(form.privacy) }} {{ render_field_with_errors(form.privacy) }}
{{ render_field_with_errors(form.announcement) }}
{{ render_field(form.submit) }} {{ render_field(form.submit) }}
</form> </form>

View File

@ -7,6 +7,7 @@
{% endblock %} {% endblock %}
{% 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 messages_container_attribs %}class="pt-3 px-3"{% endblock messages_container_attribs %}
{% block content %} {% block content %}
{% if content %} {% if content %}
{{ content }} {{ content }}

View File

@ -323,7 +323,9 @@
{% block content_container -%} {% block content_container -%}
<main {% block content_container_attribs %}class="p-3"{% endblock content_container_attribs %}> <main {% block content_container_attribs %}class="p-3"{% endblock content_container_attribs %}>
<div {% block messages_container_attribs %}{% endblock messages_container_attribs %}>
{% include "_messages.html" %} {% include "_messages.html" %}
</div>
{% block content -%} {% block content -%}
{%- endblock content %} {%- endblock content %}

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-09-06 17:11+0200\n" "POT-Creation-Date: 2023-09-07 22:40+0200\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"
@ -233,34 +233,38 @@ msgstr "Datenschutz"
msgid "Start page" msgid "Start page"
msgstr "Startseite" msgstr "Startseite"
#: project/forms/admin.py:17 project/forms/oauth2_client.py:24 #: project/forms/admin.py:16
msgid "Announcement"
msgstr "Ankündigung"
#: project/forms/admin.py:18 project/forms/oauth2_client.py:24
#: project/forms/user.py:13 #: project/forms/user.py:13
msgid "Save" msgid "Save"
msgstr "Speichern" msgstr "Speichern"
#: project/forms/admin.py:22 #: project/forms/admin.py:23
msgid "Reset for all users" msgid "Reset for all users"
msgstr "Für alle Nutzer zurücksetzen" msgstr "Für alle Nutzer zurücksetzen"
#: project/forms/admin.py:24 #: project/forms/admin.py:25
msgid "Reset" msgid "Reset"
msgstr "Zurücksetzen" msgstr "Zurücksetzen"
#: project/forms/admin.py:28 project/forms/admin_unit_member.py:14 #: project/forms/admin.py:29 project/forms/admin_unit_member.py:14
#: project/forms/admin_unit_member.py:34 #: project/forms/admin_unit_member.py:34
msgid "Roles" msgid "Roles"
msgstr "Rollen" msgstr "Rollen"
#: project/forms/admin.py:29 project/templates/admin/update_user.html:4 #: project/forms/admin.py:30 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:33 project/templates/admin/delete_user.html:6 #: project/forms/admin.py:34 project/templates/admin/delete_user.html:6
msgid "Delete user" msgid "Delete user"
msgstr "Nutzer löschen" msgstr "Nutzer löschen"
#: project/forms/admin.py:34 project/forms/admin_unit.py:58 #: project/forms/admin.py:35 project/forms/admin_unit.py:58
#: project/forms/admin_unit_member.py:12 project/forms/admin_unit_member.py:25 #: 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:112 #: project/forms/admin_unit_member.py:30 project/forms/event.py:112
#: project/forms/event_suggestion.py:38 project/forms/organizer.py:33 #: project/forms/event_suggestion.py:38 project/forms/organizer.py:33
@ -272,11 +276,11 @@ msgstr "Nutzer löschen"
msgid "Email" msgid "Email"
msgstr "Email" msgstr "Email"
#: project/forms/admin.py:39 #: project/forms/admin.py:40
msgid "Incoming reference requests allowed" msgid "Incoming reference requests allowed"
msgstr "Eingehende Empfehlungsanfragen erlauben" msgstr "Eingehende Empfehlungsanfragen erlauben"
#: project/forms/admin.py:40 #: project/forms/admin.py:41
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."
@ -284,56 +288,56 @@ 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:46 #: project/forms/admin.py:47
msgid "Suggestions enabled" msgid "Suggestions enabled"
msgstr "Vorschläge aktiv" msgstr "Vorschläge aktiv"
#: project/forms/admin.py:47 #: project/forms/admin.py:48
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:51 #: project/forms/admin.py:52
msgid "Create other organizations" msgid "Create other organizations"
msgstr "Andere Organisationen erstellen" msgstr "Andere Organisationen erstellen"
#: project/forms/admin.py:52 #: project/forms/admin.py:53
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:58 #: project/forms/admin.py:59
msgid "Invite other organizations" msgid "Invite other organizations"
msgstr "Andere Organisationen einladen" msgstr "Andere Organisationen einladen"
#: project/forms/admin.py:59 #: project/forms/admin.py:60
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:65 #: project/forms/admin.py:66
msgid "Verify other organizations" msgid "Verify other organizations"
msgstr "Andere Organisationen verifizieren" msgstr "Andere Organisationen verifizieren"
#: project/forms/admin.py:66 #: project/forms/admin.py:67
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:71 project/templates/admin/update_admin_unit.html:4 #: project/forms/admin.py:72 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"
#: project/forms/admin.py:75 project/templates/admin/delete_admin_unit.html:6 #: project/forms/admin.py:76 project/templates/admin/delete_admin_unit.html:6
#: project/templates/admin_unit/request_deletion.html:6 #: project/templates/admin_unit/request_deletion.html:6
#: project/templates/admin_unit/update.html:94 #: project/templates/admin_unit/update.html:94
msgid "Delete organization" msgid "Delete organization"
msgstr "Organisation löschen" msgstr "Organisation löschen"
#: project/forms/admin.py:76 project/forms/admin_unit.py:147 #: project/forms/admin.py:77 project/forms/admin_unit.py:147
#: project/forms/admin_unit.py:152 project/forms/admin_unit.py:157 #: project/forms/admin_unit.py:152 project/forms/admin_unit.py:157
#: project/forms/event.py:90 project/forms/event.py:119 #: project/forms/event.py:90 project/forms/event.py:119
#: project/forms/event_place.py:30 project/forms/event_place.py:56 #: project/forms/event_place.py:30 project/forms/event_place.py:56
@ -349,27 +353,27 @@ msgstr "Organisation löschen"
msgid "Name" msgid "Name"
msgstr "Name" msgstr "Name"
#: project/forms/admin.py:80 project/forms/admin.py:87 #: project/forms/admin.py:81 project/forms/admin.py:88
msgid "Recipient" msgid "Recipient"
msgstr "Empfänger" msgstr "Empfänger"
#: project/forms/admin.py:82 #: project/forms/admin.py:83
msgid "Send test mail synchronously" msgid "Send test mail synchronously"
msgstr "Test-Mail synchron senden" msgstr "Test-Mail synchron senden"
#: project/forms/admin.py:89 project/forms/admin.py:95 #: project/forms/admin.py:90 project/forms/admin.py:96
msgid "Test recipient" msgid "Test recipient"
msgstr "Test-Empfänger" msgstr "Test-Empfänger"
#: project/forms/admin.py:90 #: project/forms/admin.py:91
msgid "All users with enabled newsletter setting" msgid "All users with enabled newsletter setting"
msgstr "Alle Nutzer mit aktiviertem Newsletter" msgstr "Alle Nutzer mit aktiviertem Newsletter"
#: project/forms/admin.py:96 #: project/forms/admin.py:97
msgid "Message" msgid "Message"
msgstr "Nachricht" msgstr "Nachricht"
#: project/forms/admin.py:97 #: project/forms/admin.py:98
msgid "Send newsletter" msgid "Send newsletter"
msgstr "Newsletter senden" msgstr "Newsletter senden"
@ -1979,7 +1983,7 @@ msgstr "Mails erfolgreich gesendet"
#: project/templates/admin/reset_tos_accepted.html:4 #: project/templates/admin/reset_tos_accepted.html:4
#: project/templates/admin/reset_tos_accepted.html:8 #: project/templates/admin/reset_tos_accepted.html:8
#: project/templates/admin/settings.html:28 #: project/templates/admin/settings.html:29
#: project/templates/admin/users.html:48 #: project/templates/admin/users.html:48
msgid "Reset acceptance of terms of service and privacy" msgid "Reset acceptance of terms of service and privacy"
msgstr "Akzeptanz der Nutzungsbedingungen und des Datenschutzes zurücksetzen" msgstr "Akzeptanz der Nutzungsbedingungen und des Datenschutzes zurücksetzen"

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-09-06 17:11+0200\n" "POT-Creation-Date: 2023-09-07 22:40+0200\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"
@ -233,34 +233,38 @@ msgstr ""
msgid "Start page" msgid "Start page"
msgstr "" msgstr ""
#: project/forms/admin.py:17 project/forms/oauth2_client.py:24 #: project/forms/admin.py:16
msgid "Announcement"
msgstr ""
#: project/forms/admin.py:18 project/forms/oauth2_client.py:24
#: project/forms/user.py:13 #: project/forms/user.py:13
msgid "Save" msgid "Save"
msgstr "" msgstr ""
#: project/forms/admin.py:22 #: project/forms/admin.py:23
msgid "Reset for all users" msgid "Reset for all users"
msgstr "" msgstr ""
#: project/forms/admin.py:24 #: project/forms/admin.py:25
msgid "Reset" msgid "Reset"
msgstr "" msgstr ""
#: project/forms/admin.py:28 project/forms/admin_unit_member.py:14 #: project/forms/admin.py:29 project/forms/admin_unit_member.py:14
#: project/forms/admin_unit_member.py:34 #: project/forms/admin_unit_member.py:34
msgid "Roles" msgid "Roles"
msgstr "" msgstr ""
#: project/forms/admin.py:29 project/templates/admin/update_user.html:4 #: project/forms/admin.py:30 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:33 project/templates/admin/delete_user.html:6 #: project/forms/admin.py:34 project/templates/admin/delete_user.html:6
msgid "Delete user" msgid "Delete user"
msgstr "" msgstr ""
#: project/forms/admin.py:34 project/forms/admin_unit.py:58 #: project/forms/admin.py:35 project/forms/admin_unit.py:58
#: project/forms/admin_unit_member.py:12 project/forms/admin_unit_member.py:25 #: 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:112 #: project/forms/admin_unit_member.py:30 project/forms/event.py:112
#: project/forms/event_suggestion.py:38 project/forms/organizer.py:33 #: project/forms/event_suggestion.py:38 project/forms/organizer.py:33
@ -272,60 +276,60 @@ msgstr ""
msgid "Email" msgid "Email"
msgstr "" msgstr ""
#: project/forms/admin.py:39 #: project/forms/admin.py:40
msgid "Incoming reference requests allowed" msgid "Incoming reference requests allowed"
msgstr "" msgstr ""
#: project/forms/admin.py:40 #: project/forms/admin.py:41
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:46 #: project/forms/admin.py:47
msgid "Suggestions enabled" msgid "Suggestions enabled"
msgstr "" msgstr ""
#: project/forms/admin.py:47 #: project/forms/admin.py:48
msgid "If set, the organization can work with suggestions." msgid "If set, the organization can work with suggestions."
msgstr "" msgstr ""
#: project/forms/admin.py:51 #: project/forms/admin.py:52
msgid "Create other organizations" msgid "Create other organizations"
msgstr "" msgstr ""
#: project/forms/admin.py:52 #: project/forms/admin.py:53
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:58 #: project/forms/admin.py:59
msgid "Invite other organizations" msgid "Invite other organizations"
msgstr "" msgstr ""
#: project/forms/admin.py:59 #: project/forms/admin.py:60
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:65 #: project/forms/admin.py:66
msgid "Verify other organizations" msgid "Verify other organizations"
msgstr "" msgstr ""
#: project/forms/admin.py:66 #: project/forms/admin.py:67
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:71 project/templates/admin/update_admin_unit.html:4 #: project/forms/admin.py:72 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 ""
#: project/forms/admin.py:75 project/templates/admin/delete_admin_unit.html:6 #: project/forms/admin.py:76 project/templates/admin/delete_admin_unit.html:6
#: project/templates/admin_unit/request_deletion.html:6 #: project/templates/admin_unit/request_deletion.html:6
#: project/templates/admin_unit/update.html:94 #: project/templates/admin_unit/update.html:94
msgid "Delete organization" msgid "Delete organization"
msgstr "" msgstr ""
#: project/forms/admin.py:76 project/forms/admin_unit.py:147 #: project/forms/admin.py:77 project/forms/admin_unit.py:147
#: project/forms/admin_unit.py:152 project/forms/admin_unit.py:157 #: project/forms/admin_unit.py:152 project/forms/admin_unit.py:157
#: project/forms/event.py:90 project/forms/event.py:119 #: project/forms/event.py:90 project/forms/event.py:119
#: project/forms/event_place.py:30 project/forms/event_place.py:56 #: project/forms/event_place.py:30 project/forms/event_place.py:56
@ -341,27 +345,27 @@ msgstr ""
msgid "Name" msgid "Name"
msgstr "" msgstr ""
#: project/forms/admin.py:80 project/forms/admin.py:87 #: project/forms/admin.py:81 project/forms/admin.py:88
msgid "Recipient" msgid "Recipient"
msgstr "" msgstr ""
#: project/forms/admin.py:82 #: project/forms/admin.py:83
msgid "Send test mail synchronously" msgid "Send test mail synchronously"
msgstr "" msgstr ""
#: project/forms/admin.py:89 project/forms/admin.py:95 #: project/forms/admin.py:90 project/forms/admin.py:96
msgid "Test recipient" msgid "Test recipient"
msgstr "" msgstr ""
#: project/forms/admin.py:90 #: project/forms/admin.py:91
msgid "All users with enabled newsletter setting" msgid "All users with enabled newsletter setting"
msgstr "" msgstr ""
#: project/forms/admin.py:96 #: project/forms/admin.py:97
msgid "Message" msgid "Message"
msgstr "" msgstr ""
#: project/forms/admin.py:97 #: project/forms/admin.py:98
msgid "Send newsletter" msgid "Send newsletter"
msgstr "" msgstr ""
@ -1926,7 +1930,7 @@ msgstr ""
#: project/templates/admin/reset_tos_accepted.html:4 #: project/templates/admin/reset_tos_accepted.html:4
#: project/templates/admin/reset_tos_accepted.html:8 #: project/templates/admin/reset_tos_accepted.html:8
#: project/templates/admin/settings.html:28 #: project/templates/admin/settings.html:29
#: project/templates/admin/users.html:48 #: project/templates/admin/users.html:48
msgid "Reset acceptance of terms of service and privacy" msgid "Reset acceptance of terms of service and privacy"
msgstr "" msgstr ""

View File

@ -107,3 +107,16 @@ def test_sitemap_xml(seeder, app, utils):
result = runner.invoke(args=["seo", "generate-sitemap"]) result = runner.invoke(args=["seo", "generate-sitemap"])
assert result.exit_code == 0 assert result.exit_code == 0
utils.get_endpoint_ok("sitemap_xml") utils.get_endpoint_ok("sitemap_xml")
def test_announcement(app, db, utils: UtilActions):
with app.app_context():
from project.services.admin import upsert_settings
settings = upsert_settings()
settings.announcement = "Wartungsarbeiten"
db.session.commit()
url = utils.get_url("home")
response = utils.get_ok(url)
assert b"Wartungsarbeiten" in response.data