Make site name configurable #380

This commit is contained in:
Daniel Grams 2023-03-15 20:55:17 +01:00
parent 5561ee39b1
commit 73cab74342
40 changed files with 215 additions and 227 deletions

View File

@ -1,2 +0,0 @@
release: flask db upgrade
web: gunicorn project:app --workers=1 --log-file=-

View File

@ -1,6 +1,6 @@
# Oveda - Open Event Database
# Open Event Database
![Tests](https://github.com/DanielGrams/gsevpt/workflows/Tests/badge.svg) [![codecov](https://codecov.io/gh/DanielGrams/gsevpt/branch/main/graph/badge.svg?token=66CLLWWV7Y)](https://codecov.io/gh/DanielGrams/gsevpt) [![Oveda](https://img.shields.io/endpoint?url=https://dashboard.cypress.io/badge/simple/32g194/main&style=flat&logo=cypress)](https://dashboard.cypress.io/projects/32g194/runs) [![Code style: black](https://img.shields.io/badge/code%20style-black-000000.svg)](https://github.com/psf/black) ![Docker Pulls](https://img.shields.io/docker/pulls/danielgrams/gsevpt)
![Tests](https://github.com/DanielGrams/gsevpt/workflows/Tests/badge.svg) [![codecov](https://codecov.io/gh/DanielGrams/gsevpt/branch/main/graph/badge.svg?token=66CLLWWV7Y)](https://codecov.io/gh/DanielGrams/gsevpt) [![Cypress](https://img.shields.io/endpoint?url=https://dashboard.cypress.io/badge/simple/32g194/main&style=flat&logo=cypress)](https://dashboard.cypress.io/projects/32g194/runs) [![Code style: black](https://img.shields.io/badge/code%20style-black-000000.svg)](https://github.com/psf/black) ![Docker Pulls](https://img.shields.io/docker/pulls/danielgrams/gsevpt)
Event website using Python, Flask and Postgres.

View File

@ -1,18 +0,0 @@
{
"name": "Oveda - Open Event Database",
"description": "Event website using Python, Flask and Postgres.",
"image": "heroku/python",
"keywords": ["python"],
"repository": "https://github.com/DanielGrams/gsevpt",
"addons": ["heroku-postgresql"],
"env": {
"SECRET_TOKEN": {
"description": "A secret key for verifying the integrity of signed cookies.",
"generator": "secret"
},
"SECURITY_PASSWORD_SALT": {
"description": "Bcrypt salt for encrypting passwords.",
"generator": "secret"
}
}
}

View File

@ -30,7 +30,7 @@ describe("User", () => {
cy.get("#password").type("short");
cy.assertInvalid("password", "Geben Sie bitte mindestens 8 Zeichen ein.");
cy.get("#password").clear().type("iloveoveda");
cy.get("#password").clear().type("ilovegsevpt");
cy.assertValid("password");
// Confirm password
@ -40,7 +40,7 @@ describe("User", () => {
"Wiederholen Sie bitte denselben Wert."
);
cy.get("#password_confirm").clear().type("iloveoveda");
cy.get("#password_confirm").clear().type("ilovegsevpt");
cy.assertValid("password_confirm");
// Submit

View File

@ -7,9 +7,9 @@ FLUENTD_LOG_PATH=./tmp/logs/fluentd
FLUENTD_CUSTOM_CONFIG_PATH=./tmp/config
FLUENTD_DOCKER_CONTAINERS_PATH=/var/lib/docker/containers
POSTGRES_USER=oveda
POSTGRES_USER=gsevpt
POSTGRES_PASSWORD=
POSTGRES_DB=oveda
POSTGRES_DB=gsevpt
REDIS_PASSWORD=
WEB_TAG=latest

View File

@ -1,5 +1,5 @@
version: "3.9"
name: "oveda"
name: "gsevpt"
x-web-env:
&default-web-env

View File

@ -3,6 +3,8 @@ source .env
mkdir -p ${POSTGRES_DATA_PATH}
mkdir -p ${POSTGRES_BACKUP_PATH}
mkdir -p ${REDIS_DATA_PATH}
chown -R 1001 ${REDIS_DATA_PATH}
mkdir -p ${CACHE_PATH}
mkdir -p ${STATIC_PATH}
mkdir -p ${FLUENTD_LOG_PATH}

View File

@ -1,5 +1,5 @@
location ^~ /image/ {
root "/var/www/vhosts/oveda.de/cache/img";
root "/var/www/vhosts/gsevpt.de/cache/img";
expires 1h;
location ~ ^/image/(?<id>[0-9]+)/(?<hash>[0-9]+) {
@ -17,20 +17,20 @@ location ^~ /image/ {
}
}
location ^~ /static/ {
alias "/var/www/vhosts/oveda.de/static/";
alias "/var/www/vhosts/gsevpt.de/static/";
expires 1h;
}
location ^~ /dump/ {
alias "/var/www/vhosts/oveda.de/cache/dump/";
alias "/var/www/vhosts/gsevpt.de/cache/dump/";
}
location ^~ /sitemap.xml {
alias "/var/www/vhosts/oveda.de/cache/sitemap.xml";
alias "/var/www/vhosts/gsevpt.de/cache/sitemap.xml";
}
location ^~ /robots.txt {
alias "/var/www/vhosts/oveda.de/cache/robots.txt";
alias "/var/www/vhosts/gsevpt.de/cache/robots.txt";
}
location ^~ /favicon.ico {
alias "/var/www/vhosts/oveda.de/static/favicon.ico";
alias "/var/www/vhosts/gsevpt.de/static/favicon.ico";
expires 12h;
}
location @docker {

View File

@ -1,6 +1,6 @@
set -e
docker compose pull web
docker compose stop web
docker compose stop web worker scheduler
docker compose exec db-backup /backup.sh
docker compose up --detach --force-recreate web
docker compose up --detach --force-recreate web worker scheduler

View File

@ -1,5 +1,5 @@
version: "3.9"
name: "oveda-dev"
name: "gsevpt-dev"
x-web-env:
&default-web-env

View File

@ -8,7 +8,7 @@ msgid ""
msgstr ""
"Project-Id-Version: PROJECT VERSION\n"
"Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
"POT-Creation-Date: 2023-01-12 22:37+0100\n"
"POT-Creation-Date: 2023-03-15 19:10+0100\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
@ -198,25 +198,25 @@ msgstr ""
msgid "You have received an invitation"
msgstr ""
#: project/forms/admin.py:10 project/templates/layout.html:315
#: project/views/root.py:37
#: project/forms/admin.py:10 project/templates/layout.html:317
#: project/views/root.py:55
msgid "Terms of service"
msgstr ""
#: project/forms/admin.py:11 project/templates/layout.html:319
#: project/views/root.py:45
#: project/forms/admin.py:11 project/templates/layout.html:321
#: project/views/root.py:63
msgid "Legal notice"
msgstr ""
#: project/forms/admin.py:12 project/templates/_macros.html:1395
#: project/templates/layout.html:323
#: project/templates/layout.html:325
#: project/templates/widget/event_suggestion/create.html:204
#: project/views/admin_unit.py:73 project/views/root.py:53
#: project/views/admin_unit.py:73 project/views/root.py:71
msgid "Contact"
msgstr ""
#: project/forms/admin.py:13 project/templates/layout.html:327
#: project/views/root.py:61
#: project/forms/admin.py:13 project/templates/layout.html:329
#: project/views/root.py:79
msgid "Privacy"
msgstr ""
@ -1067,7 +1067,7 @@ msgstr ""
#: project/templates/_macros.html:489 project/templates/_macros.html:652
#: project/templates/admin_unit/create.html:28
#: project/templates/admin_unit/update.html:29
#: project/templates/layout.html:263
#: project/templates/layout.html:265
msgid "Organization"
msgstr ""
@ -1225,7 +1225,7 @@ msgstr ""
msgid "The event takes place both offline and online."
msgstr ""
#: project/templates/_macros.html:585 project/templates/layout.html:189
#: project/templates/_macros.html:585 project/templates/layout.html:191
#: project/templates/user/favorite_events.html:4
msgid "Favorite events"
msgstr ""
@ -1370,7 +1370,7 @@ msgstr ""
msgid "Register for free"
msgstr ""
#: project/templates/layout.html:175 project/templates/layout.html:221
#: project/templates/layout.html:175 project/templates/layout.html:223
#: project/templates/manage/events.html:6
#: project/templates/manage/events.html:42
#: project/templates/manage/events_vue.html:4
@ -1380,7 +1380,7 @@ msgstr ""
#: project/templates/admin/admin.html:19
#: project/templates/admin/admin_units.html:4
#: project/templates/admin/admin_units.html:11
#: project/templates/layout.html:176 project/templates/layout.html:187
#: project/templates/layout.html:176 project/templates/layout.html:189
#: project/templates/manage/admin_units.html:3
#: project/templates/manage/admin_units.html:25
#: project/templates/organization/main.html:4
@ -1391,11 +1391,11 @@ msgstr ""
msgid "Planing"
msgstr ""
#: project/templates/layout.html:178
#: project/templates/layout.html:181
msgid "Docs"
msgstr ""
#: project/templates/layout.html:188 project/templates/layout.html:277
#: project/templates/layout.html:190 project/templates/layout.html:279
#: project/templates/oauth2_client/list.html:10
#: project/templates/oauth2_client/read.html:10
#: project/templates/oauth2_token/list.html:10 project/templates/profile.html:4
@ -1405,86 +1405,86 @@ msgstr ""
#: project/templates/admin/admin.html:3 project/templates/admin/admin.html:9
#: project/templates/admin/admin_units.html:10
#: project/templates/admin/users.html:10 project/templates/layout.html:192
#: project/templates/admin/users.html:10 project/templates/layout.html:194
msgid "Admin"
msgstr ""
#: project/templates/layout.html:196
#: project/templates/layout.html:198
msgid "Logout"
msgstr ""
#: project/templates/layout.html:227
#: project/templates/layout.html:229
msgid "Show events"
msgstr ""
#: project/templates/event/create.html:5
#: project/templates/event/create.html:221 project/templates/layout.html:228
#: project/templates/event/create.html:221 project/templates/layout.html:230
#: project/templates/manage/events.html:45
#: project/templates/manage/organizers.html:21
msgid "Create event"
msgstr ""
#: project/templates/layout.html:229
#: project/templates/layout.html:231
msgid "Import event"
msgstr ""
#: project/templates/layout.html:231
#: project/templates/layout.html:233
#: project/templates/manage/event_lists.html:4
msgid "Event lists"
msgstr ""
#: project/templates/layout.html:234
#: project/templates/layout.html:236
msgid "Review suggestions"
msgstr ""
#: project/templates/layout.html:244
#: project/templates/layout.html:246
#: project/templates/manage/references_incoming.html:5
#: project/templates/manage/references_outgoing.html:5
msgid "References"
msgstr ""
#: project/templates/layout.html:250
#: project/templates/layout.html:252
#: project/templates/manage/references_incoming.html:9
msgid "Incoming references"
msgstr ""
#: project/templates/layout.html:251
#: project/templates/layout.html:253
#: project/templates/manage/references_outgoing.html:9
msgid "Outgoing references"
msgstr ""
#: project/templates/layout.html:253
#: project/templates/layout.html:255
#: project/templates/manage/reference_requests_incoming.html:9
msgid "Incoming reference requests"
msgstr ""
#: project/templates/layout.html:258
#: project/templates/layout.html:260
#: project/templates/manage/reference_requests_outgoing.html:9
msgid "Outgoing reference requests"
msgstr ""
#: project/templates/layout.html:266 project/templates/manage/organizers.html:5
#: project/templates/layout.html:268 project/templates/manage/organizers.html:5
#: project/templates/manage/organizers.html:9
msgid "Organizers"
msgstr ""
#: project/templates/event_place/list.html:3
#: project/templates/event_place/list.html:7 project/templates/layout.html:267
#: project/templates/event_place/list.html:7 project/templates/layout.html:269
#: project/templates/manage/places.html:5
#: project/templates/manage/places.html:9
msgid "Places"
msgstr ""
#: project/templates/layout.html:269 project/templates/manage/members.html:5
#: project/templates/layout.html:271 project/templates/manage/members.html:5
#: project/templates/manage/members.html:28
msgid "Members"
msgstr ""
#: project/templates/layout.html:270 project/templates/manage/relations.html:4
#: project/templates/layout.html:272 project/templates/manage/relations.html:4
msgid "Relations"
msgstr ""
#: project/templates/layout.html:272
#: project/templates/layout.html:274
#: project/templates/manage/admin_units.html:17
#: project/templates/manage/organization_invitations.html:4
#: project/templates/user/organization_invitations.html:4
@ -1496,27 +1496,27 @@ msgstr ""
#: project/templates/admin/settings.html:8
#: project/templates/admin_unit/update.html:6
#: project/templates/admin_unit/update.html:23
#: project/templates/layout.html:274 project/templates/manage/widgets.html:11
#: project/templates/layout.html:276 project/templates/manage/widgets.html:11
#: project/templates/manage/widgets.html:15 project/templates/profile.html:19
msgid "Settings"
msgstr ""
#: project/templates/layout.html:275
#: project/templates/layout.html:277
#: project/templates/manage/custom_widgets.html:13
msgid "Custom widgets"
msgstr ""
#: project/templates/layout.html:276 project/templates/manage/reviews.html:10
#: project/templates/layout.html:278 project/templates/manage/reviews.html:10
#: project/templates/manage/widgets.html:5
#: project/templates/manage/widgets.html:9
msgid "Widgets"
msgstr ""
#: project/templates/layout.html:287
#: project/templates/layout.html:289
msgid "Switch organization"
msgstr ""
#: project/templates/developer/read.html:4 project/templates/layout.html:337
#: project/templates/developer/read.html:4 project/templates/layout.html:339
#: project/templates/profile.html:29
msgid "Developer"
msgstr ""
@ -1599,7 +1599,8 @@ msgid "Hi there"
msgstr ""
#: project/templates/email/layout.html:351
msgid "this is a message from Oveda - Die offene Veranstaltungsdatenbank."
#, python-format
msgid "this is a message from %(site_name)s."
msgstr ""
#: project/templates/email/organization_invitation_accepted_notice.html:4
@ -2077,11 +2078,11 @@ msgstr ""
msgid "Event successfully deleted"
msgstr ""
#: project/views/event.py:410
#: project/views/event.py:409
msgid "Referenced event changed"
msgstr ""
#: project/views/event.py:433
#: project/views/event.py:432
msgid "New event report"
msgstr ""

4
package-lock.json generated
View File

@ -1,11 +1,11 @@
{
"name": "oveda",
"name": "gsevpt",
"version": "1.0.0",
"lockfileVersion": 2,
"requires": true,
"packages": {
"": {
"name": "oveda",
"name": "gsevpt",
"version": "1.0.0",
"license": "ISC",
"devDependencies": {

View File

@ -1,5 +1,5 @@
{
"name": "oveda",
"name": "gsevpt",
"version": "1.0.0",
"description": "![Tests](https://github.com/DanielGrams/gsevpt/workflows/Tests/badge.svg) [![codecov](https://codecov.io/gh/DanielGrams/gsevpt/branch/main/graph/badge.svg?token=66CLLWWV7Y)](https://codecov.io/gh/DanielGrams/gsevpt) [![Code style: black](https://img.shields.io/badge/code%20style-black-000000.svg)](https://github.com/psf/black) ![Docker Pulls](https://img.shields.io/docker/pulls/danielgrams/gsevpt)",
"main": "index.js",

View File

@ -34,6 +34,7 @@ app.config["SECURITY_RECOVERABLE"] = True
app.config["SECURITY_CHANGEABLE"] = True
app.config["SECURITY_EMAIL_SENDER"] = os.getenv("MAIL_DEFAULT_SENDER")
app.config["LANGUAGES"] = ["en", "de"]
app.config["SITE_NAME"] = os.getenv("SITE_NAME", "gsevpt")
app.config["SERVER_NAME"] = os.getenv("SERVER_NAME")
app.config["ADMIN_UNIT_CREATE_REQUIRES_ADMIN"] = os.getenv(
"ADMIN_UNIT_CREATE_REQUIRES_ADMIN", False
@ -138,7 +139,7 @@ mail_server = os.getenv("MAIL_SERVER")
if not mail_server:
app.config["MAIL_SUPPRESS_SEND"] = True
app.config["MAIL_DEFAULT_SENDER"] = "test@oveda.de"
app.config["MAIL_DEFAULT_SENDER"] = "test@gsevpt.de"
else: # pragma: no cover
app.config["MAIL_SUPPRESS_SEND"] = False
app.config["MAIL_SERVER"] = mail_server

View File

@ -136,12 +136,12 @@ marshmallow_plugin = MarshmallowPlugin()
app.config.update(
{
"APISPEC_SPEC": APISpec(
title="Oveda API",
title="Event calendar API",
version="0.1.0",
plugins=[marshmallow_plugin],
openapi_version="2.0",
info=dict(
description="This API provides endpoints to interact with the Oveda data."
description="This API provides endpoints to interact with the event calendar data."
),
),
}

View File

@ -115,13 +115,13 @@ def seed():
def _verify_admin_unit(admin_unit_id):
from project.services.admin_unit import get_admin_unit_by_name
other_admin_unit = get_admin_unit_by_name("Oveda")
other_admin_unit = get_admin_unit_by_name("gsevpt")
if other_admin_unit:
other_admin_unit_id = other_admin_unit.id
else:
other_user_id = _create_user("unverified@test.de")
other_admin_unit_id = _create_admin_unit(other_user_id, "Oveda")
other_admin_unit_id = _create_admin_unit(other_user_id, "gsevpt")
_create_admin_unit_relation(
other_admin_unit_id,

View File

@ -232,7 +232,7 @@ def calculate_occurrences(start_date, date_format, rrule_str, start, batch_size)
def create_icalendar() -> icalendar.Calendar:
cal = icalendar.Calendar()
cal.add("prodid", "-//Oveda//oveda.de//")
cal.add("prodid", "-//gsevpt//github.com/DanielGrams/gsevpt//")
cal.add("version", "2.0")
cal.add("x-wr-timezone", berlin_tz.zone)

View File

@ -353,7 +353,7 @@ function scroll_to_element(element, complete) {
}
(function($) {
function OvedaDateDefinition(element, options) {
function GsevptDateDefinition(element, options) {
var self = this;
var container = $(element);
var prefix = container.attr('data-prefix');
@ -434,22 +434,22 @@ function scroll_to_element(element, complete) {
});
}
$.fn.ovedaDateDefinition = function(options) {
$.fn.gsevptDateDefinition = function(options) {
var defaults = {};
var settings = $.extend({}, defaults, options);
if (this.length > 1) {
this.each(function() { $(this).ovedaDateDefinition(options) });
this.each(function() { $(this).gsevptDateDefinition(options) });
return this;
}
if (this.data('ovedaDateDefinition')) {
return this.data('ovedaDateDefinition');
if (this.data('gsevptDateDefinition')) {
return this.data('gsevptDateDefinition');
}
var ovedaDateDefinition = new OvedaDateDefinition(this, settings);
this.data('ovedaDateDefinition', ovedaDateDefinition);
return ovedaDateDefinition;
var gsevptDateDefinition = new GsevptDateDefinition(this, settings);
this.data('gsevptDateDefinition', gsevptDateDefinition);
return gsevptDateDefinition;
}
})(jQuery);

View File

@ -42,7 +42,7 @@ const OrganizationRead = {
</b-row>
<div>
<iframe id="oveda-widget" :src="'/' + organization.short_name + '/widget/eventdates'" style="width: 1px; min-width: 100%; max-width:100%;"></iframe>
<iframe id="gsevpt-widget" :src="'/' + organization.short_name + '/widget/eventdates'" style="width: 1px; min-width: 100%; max-width:100%;"></iframe>
</div>
</div>
</b-overlay>
@ -72,7 +72,7 @@ const OrganizationRead = {
.then((response) => {
this.organization = response.data;
Vue.nextTick(function () {
iFrameResize({ minHeight: 300, onMessage: function(m) {} }, '#oveda-widget');
iFrameResize({ minHeight: 300, onMessage: function(m) {} }, '#gsevpt-widget');
});
});
},

View File

@ -53,8 +53,8 @@ const WidgetConfigurator = {
<b-form-checkbox v-model="form.search.showPagination">
{{ $t("comp.search.pagination") }}
</b-form-checkbox>
<b-form-checkbox v-model="form.search.showOvedaLink">
{{ $t("comp.search.showOvedaLink") }}
<b-form-checkbox v-model="form.search.showGsevptLink">
{{ $t("comp.search.showGsevptLink") }}
</b-form-checkbox>
<b-form-checkbox v-model="form.search.showPrintButton">
{{ $t("comp.search.printButton") }}
@ -264,7 +264,7 @@ const WidgetConfigurator = {
eventListId: "Event list",
view: "Display",
showFilter: "Filter",
showOvedaLink: "Oveda link",
showGsevptLink: "Link",
layout: "Layout",
eventsPerPage: "Events per page",
event: "Event",
@ -310,7 +310,7 @@ const WidgetConfigurator = {
eventListId: "Veranstaltungsliste",
view: "Anzeige",
showFilter: "Filter",
showOvedaLink: "Oveda-Link",
showGsevptLink: "Link",
layout: "Layout",
eventsPerPage: "Events pro Seite",
event: "Event",
@ -354,7 +354,7 @@ const WidgetConfigurator = {
showFilter: true,
showPagination: true,
showPrintButton: false,
showOvedaLink: true,
showGsevptLink: true,
fontFamily: "",
background: "#ffffff",
textColor: "#212529",
@ -498,7 +498,7 @@ const WidgetConfigurator = {
return;
}
resizer.sendMessage({'type': 'OVEDA_WIDGET_SETTINGS_UPDATE_EVENT', 'data': this.settings});
resizer.sendMessage({'type': 'GSEVPT_WIDGET_SETTINGS_UPDATE_EVENT', 'data': this.settings});
},
resizePreview() {
const resizer = this.$refs.previewIframe.iFrameResizer;

View File

@ -104,10 +104,10 @@ const WidgetConfiguratorList = {
return this.$route.params.organization_id;
},
installationHeader() {
return "<!-- Oveda Widget -->\n<script>(function(w,d,s,o,f,js,fjs){w['OvedaWidget']=o;w[o]=w[o]||function(){(w[o].q=w[o].q||[]).push(arguments)};js=d.createElement(s),fjs=d.getElementsByTagName(s)[0];js.id=o;js.src=f;js.async=1;fjs.parentNode.insertBefore(js,fjs);}(window,document,'script','oveda','" + window.location.origin + "/static/widget-loader.js'));</script>\n<!-- End Oveda Widget -->";
return "<!-- Event calendar widget -->\n<script>(function(w,d,s,o,f,js,fjs){w['GsevptWidget']=o;w[o]=w[o]||function(){(w[o].q=w[o].q||[]).push(arguments)};js=d.createElement(s),fjs=d.getElementsByTagName(s)[0];js.id=o;js.src=f;js.async=1;fjs.parentNode.insertBefore(js,fjs);}(window,document,'script','gsevpt','" + window.location.origin + "/static/widget-loader.js'));</script>\n<!-- End event calendar widget -->";
},
installationBody() {
return '<div class="oveda-widget" data-widget-id="' + this.installationWidgetId + '"></div>';
return '<div class="gsevpt-widget" data-widget-id="' + this.installationWidgetId + '"></div>';
}
},
mounted() {

View File

@ -15,7 +15,7 @@
};
function initWidgets() {
var elements = d.getElementsByClassName("oveda-widget");
var elements = d.getElementsByClassName("gsevpt-widget");
for (var i = 0; i < elements.length; i++) {
initIframeWidget(elements.item(i), i);
}
@ -79,8 +79,8 @@
}
var iFrame = d.createElement("iframe");
iFrame.id = "oveda-widget-iframe-" + index;
iFrame.class = "oveda-widget-iframe";
iFrame.id = "gsevpt-widget-iframe-" + index;
iFrame.class = "gsevpt-widget-iframe";
iFrame.src = src;
iFrame.style = style;
iFrame.frameborder = "0";
@ -172,7 +172,7 @@
(function(data) {
config.onInit = function (iFrame) {
iFrame.iFrameResizer.sendMessage({'type': 'OVEDA_WIDGET_SETTINGS_UPDATE_EVENT', 'data': data});
iFrame.iFrameResizer.sendMessage({'type': 'gsevpt_WIDGET_SETTINGS_UPDATE_EVENT', 'data': data});
}
})(container.customWidgetData.settings);
}
@ -185,14 +185,14 @@
function onIframeMessage(messageData, googleTagManager) {
var message = messageData.message;
if (message.type == "OVEDA_ANALYTICS_EVENT") {
if (message.type == "gsevpt_ANALYTICS_EVENT") {
trackAnalyticsEvent(message.data, googleTagManager);
}
}
function trackAnalyticsEvent(data, googleTagManager) {
if (googleTagManager) {
data.event = "ovedaWidget." + data.event;
data.event = "gsevptWidget." + data.event;
if (window.dataLayer !== null && window.dataLayer !== undefined) {
window.dataLayer.push(data);

View File

@ -242,7 +242,7 @@ Vue.component('event-warning-pills', {
},
trackAnalyticsEvent(data) {
if ('parentIFrame' in window) {
parentIFrame.sendMessage({'type': 'OVEDA_ANALYTICS_EVENT', 'data': data});
parentIFrame.sendMessage({'type': 'GSEVPT_ANALYTICS_EVENT', 'data': data});
}
}
}
@ -253,7 +253,7 @@ Vue.component('event-warning-pills', {
app.trackAnalyticsEvent({'event':'pageView', 'url':document.location.href});
},
onMessage: function(message) {
if (message.type != 'OVEDA_WIDGET_SETTINGS_UPDATE_EVENT') {
if (message.type != 'GSEVPT_WIDGET_SETTINGS_UPDATE_EVENT') {
return;
}

View File

@ -3,7 +3,7 @@
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width,initial-scale=1.0">
<title>Oveda Widget</title>
<title>Event calendar widget</title>
<link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.4.1/css/bootstrap.min.css" integrity="sha384-Vkoo8x4CGsO3+Hhxv8T/Q5PaXtkKtu6ug5TOeNV6gBiFeWPGFN9MuhOf23Q9Ifjh" crossorigin="anonymous">
<link type="text/css" rel="stylesheet" href="https://unpkg.com/bootstrap-vue@2.21.2/dist/bootstrap-vue.min.css" />
@ -219,8 +219,8 @@
></b-pagination>
<div class="d-print-none">
<div v-if="widget.settings.showOvedaLink" class="mb-2">
<a href="#" @click.stop.prevent="openSearch()" class="underlined">Veranstaltungen auf oveda.de anzeigen</a>
<div v-if="widget.settings.showGsevptLink" class="mb-2">
<a href="#" @click.stop.prevent="openSearch()" class="underlined">Suche &ouml;ffnen</a>
</div>
<div v-if="widget.settings.showPrintButton">
@ -491,7 +491,7 @@ var app = new Vue({
},
trackAnalyticsEvent(data) {
if ('parentIFrame' in window) {
parentIFrame.sendMessage({'type': 'OVEDA_ANALYTICS_EVENT', 'data': data});
parentIFrame.sendMessage({'type': 'GSEVPT_ANALYTICS_EVENT', 'data': data});
}
},
updateSettings(settings) {
@ -511,7 +511,7 @@ window.iFrameResizer = {
app.trackAnalyticsEvent({'event':'pageView', 'url':document.location.href});
},
onMessage: function(message) {
if (message.type != 'OVEDA_WIDGET_SETTINGS_UPDATE_EVENT') {
if (message.type != 'GSEVPT_WIDGET_SETTINGS_UPDATE_EVENT') {
return;
}

View File

@ -1658,7 +1658,7 @@ $('#allday').on('change', function() {
{% endmacro %}
{% macro render_event_date_defintion_code() %}
$('.date-definition-container').ovedaDateDefinition();
$('.date-definition-container').gsevptDateDefinition();
var min_date_definition_index = $(".date-definition-container").length;
if (min_date_definition_index > 1) {
$('.date-definition-container button.remove-date-defintion-btn').removeClass("d-none");
@ -1690,7 +1690,7 @@ $('#allday').on('change', function() {
});
last_container.after(new_container);
new_container.ovedaDateDefinition();
new_container.gsevptDateDefinition();
if ($.find(".date-definition-container").length > 1) {
$('.date-definition-container button.remove-date-defintion-btn').removeClass("d-none");

View File

@ -348,7 +348,7 @@
<tr>
<td>
<p>{{ _('Hi there') }},</p>
<p>{{ _('this is a message from Oveda - Die offene Veranstaltungsdatenbank.') }}</p>
<p>{{ _('this is a message from %(site_name)s.', site_name=config["SITE_NAME"]) }}</p>
{% block content -%}
{%- endblock content %}
</td>
@ -366,7 +366,7 @@
<table role="presentation" border="0" cellpadding="0" cellspacing="0">
<tr>
<td class="content-block">
<span class="apple-link">Oveda - Die offene Veranstaltungsdatenbank</span>.
<span class="apple-link">{{ config["SITE_NAME"] }}</span>.
</td>
</tr>
</table>

View File

@ -1,7 +1,7 @@
{% extends "layout.html" %}
{% from "_macros.html" import render_place, render_events_sub_menu %}
{%- block title -%}
oveda - Offene Veranstaltungsdatenbank
{{ config["SITE_NAME"] }}
{%- endblock -%}
{% block styles %}
<link rel="stylesheet" type="text/css" href="{{ url_for('static', filename='landing-page.css')}}" />

View File

@ -4,7 +4,7 @@
{%- block html %}
<head>
{%- block head %}
<title>{%- block title -%}{{ title|default('oveda') }}{% endblock title %}</title>
<title>{%- block title -%}{{ title|default('gsevpt') }}{% endblock title %}</title>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
@ -165,7 +165,7 @@
{% block navbar %}
<nav class="navbar navbar-expand-md navbar-dark bg-dark">
<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"> Oveda
<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"] }}
</a>
<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>
@ -178,7 +178,7 @@
</div>
<div class="navbar-nav navbar-right">
{% if False %}
<a class="nav-item nav-link" href="https://docs.oveda.de/" target="_blank" rel="noopener noreferrer">{{ _('Docs') }}</a>
<a class="nav-item nav-link" href="https://docs.gsevpt.de/" target="_blank" rel="noopener noreferrer">{{ _('Docs') }}</a>
{% endif %}
{% if current_user.is_authenticated %}
<li class="nav-item dropdown">

View File

@ -48,11 +48,11 @@
<div class="tab-pane fade show active py-3" id="embedWidgetModalScriptTab" role="tabpanel" aria-labelledby="embedWidgetModalScriptTabLink">
<p>Kopiere den unten stehenden Code und füge ihn auf deiner Website ein.</p>
<p>Füge den folgenden Code im <code>&lt;head&gt;</code> der Seite ein.</p>
<textarea class="form-control text-monospace" style="font-size: 0.7rem;" disabled rows="6"><!-- Oveda Widget -->
<script>(function(w,d,s,o,f,js,fjs){w['OvedaWidget']=o;w[o]=w[o]||function(){(w[o].q=w[o].q||[]).push(arguments)};js=d.createElement(s),fjs=d.getElementsByTagName(s)[0];js.id=o;js.src=f;js.async=1;fjs.parentNode.insertBefore(js,fjs);}(window,document,'script','oveda','{{ url_for('static', filename='widget-loader.js', _external=True) }}'));</script>
<!-- End Oveda Widget --></textarea>
<textarea class="form-control text-monospace" style="font-size: 0.7rem;" disabled rows="6"><!-- Event calendar widget -->
<script>(function(w,d,s,o,f,js,fjs){w['GsevptWidget']=o;w[o]=w[o]||function(){(w[o].q=w[o].q||[]).push(arguments)};js=d.createElement(s),fjs=d.getElementsByTagName(s)[0];js.id=o;js.src=f;js.async=1;fjs.parentNode.insertBefore(js,fjs);}(window,document,'script','gsevpt','{{ url_for('static', filename='widget-loader.js', _external=True) }}'));</script>
<!-- End event calendar widget --></textarea>
<p class="mt-3">Füge den folgenden Code an der Stelle im <code>&lt;body&gt;</code> der Seite ein, wo das Widget dargestellt werden soll.</p>
<textarea class="form-control text-monospace" style="font-size: 0.7rem;" disabled rows="3"><div class="oveda-widget" data-widget-short-name="{{ admin_unit.short_name }}" data-widget-width="100%" data-widget-height="400px" data-widget-resize="true" data-widget-google-tag-manager="false"></div></textarea>
<textarea class="form-control text-monospace" style="font-size: 0.7rem;" disabled rows="3"><div class="gsevpt-widget" data-widget-short-name="{{ admin_unit.short_name }}" data-widget-width="100%" data-widget-height="400px" data-widget-resize="true" data-widget-google-tag-manager="false"></div></textarea>
<p class="mt-3">Mit den folgenden Attributen kann das Widget konfiguriert werden:</p>
<ul>
<li><var>data-widget-short-name</var>: Kurzname der Organisation</li>
@ -61,8 +61,8 @@
<li><var>data-widget-resize</var>: iFrame Größe automatisch anpassen</li>
<li><var>data-widget-google-tag-manager</var>: Events in window.dataLayer für Google Tag Manager schreiben.
<ul>
<li>Event <var>ovedaWidget.pageView</var> mit Parameter <var>url</var></li>
<li>Event <var>ovedaWidget.linkClick</var> mit Parameter <var>url</var></li>
<li>Event <var>gsevptWidget.pageView</var> mit Parameter <var>url</var></li>
<li>Event <var>gsevptWidget.linkClick</var> mit Parameter <var>url</var></li>
</ul>
</li>
</ul>

View File

@ -21,7 +21,7 @@
function trackAnalyticsEvent(data) {
if ('parentIFrame' in window) {
parentIFrame.sendMessage({'type': 'OVEDA_ANALYTICS_EVENT', 'data': data});
parentIFrame.sendMessage({'type': 'GSEVPT_ANALYTICS_EVENT', 'data': data});
}
}

View File

@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: PROJECT VERSION\n"
"Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
"POT-Creation-Date: 2023-01-12 22:37+0100\n"
"POT-Creation-Date: 2023-03-15 19:10+0100\n"
"PO-Revision-Date: 2020-06-07 18:51+0200\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language: de\n"
@ -199,25 +199,25 @@ msgstr "message"
msgid "You have received an invitation"
msgstr "Du hast eine Einladung erhalten"
#: project/forms/admin.py:10 project/templates/layout.html:315
#: project/views/root.py:37
#: project/forms/admin.py:10 project/templates/layout.html:317
#: project/views/root.py:55
msgid "Terms of service"
msgstr "Nutzungsbedingungen"
#: project/forms/admin.py:11 project/templates/layout.html:319
#: project/views/root.py:45
#: project/forms/admin.py:11 project/templates/layout.html:321
#: project/views/root.py:63
msgid "Legal notice"
msgstr "Impressum"
#: project/forms/admin.py:12 project/templates/_macros.html:1395
#: project/templates/layout.html:323
#: project/templates/layout.html:325
#: project/templates/widget/event_suggestion/create.html:204
#: project/views/admin_unit.py:73 project/views/root.py:53
#: project/views/admin_unit.py:73 project/views/root.py:71
msgid "Contact"
msgstr "Kontakt"
#: project/forms/admin.py:13 project/templates/layout.html:327
#: project/views/root.py:61
#: project/forms/admin.py:13 project/templates/layout.html:329
#: project/views/root.py:79
msgid "Privacy"
msgstr "Datenschutz"
@ -1115,7 +1115,7 @@ msgstr "Wochentage"
#: project/templates/_macros.html:489 project/templates/_macros.html:652
#: project/templates/admin_unit/create.html:28
#: project/templates/admin_unit/update.html:29
#: project/templates/layout.html:263
#: project/templates/layout.html:265
msgid "Organization"
msgstr "Organisation"
@ -1275,7 +1275,7 @@ msgstr ""
"Die Veranstaltung findet sowohl als Präsenzveranstaltung als auch online "
"statt."
#: project/templates/_macros.html:585 project/templates/layout.html:189
#: project/templates/_macros.html:585 project/templates/layout.html:191
#: project/templates/user/favorite_events.html:4
msgid "Favorite events"
msgstr "Merkzettel"
@ -1420,7 +1420,7 @@ msgstr "Verwaltung"
msgid "Register for free"
msgstr "Kostenlos registrieren"
#: project/templates/layout.html:175 project/templates/layout.html:221
#: project/templates/layout.html:175 project/templates/layout.html:223
#: project/templates/manage/events.html:6
#: project/templates/manage/events.html:42
#: project/templates/manage/events_vue.html:4
@ -1430,7 +1430,7 @@ msgstr "Veranstaltungen"
#: project/templates/admin/admin.html:19
#: project/templates/admin/admin_units.html:4
#: project/templates/admin/admin_units.html:11
#: project/templates/layout.html:176 project/templates/layout.html:187
#: project/templates/layout.html:176 project/templates/layout.html:189
#: project/templates/manage/admin_units.html:3
#: project/templates/manage/admin_units.html:25
#: project/templates/organization/main.html:4
@ -1441,11 +1441,11 @@ msgstr "Organisationen"
msgid "Planing"
msgstr "Planung"
#: project/templates/layout.html:178
#: project/templates/layout.html:181
msgid "Docs"
msgstr "Doku"
#: project/templates/layout.html:188 project/templates/layout.html:277
#: project/templates/layout.html:190 project/templates/layout.html:279
#: project/templates/oauth2_client/list.html:10
#: project/templates/oauth2_client/read.html:10
#: project/templates/oauth2_token/list.html:10 project/templates/profile.html:4
@ -1455,86 +1455,86 @@ msgstr "Profil"
#: project/templates/admin/admin.html:3 project/templates/admin/admin.html:9
#: project/templates/admin/admin_units.html:10
#: project/templates/admin/users.html:10 project/templates/layout.html:192
#: project/templates/admin/users.html:10 project/templates/layout.html:194
msgid "Admin"
msgstr "Administration"
#: project/templates/layout.html:196
#: project/templates/layout.html:198
msgid "Logout"
msgstr "Ausloggen"
#: project/templates/layout.html:227
#: project/templates/layout.html:229
msgid "Show events"
msgstr "Veranstaltungen anzeigen"
#: project/templates/event/create.html:5
#: project/templates/event/create.html:221 project/templates/layout.html:228
#: project/templates/event/create.html:221 project/templates/layout.html:230
#: project/templates/manage/events.html:45
#: project/templates/manage/organizers.html:21
msgid "Create event"
msgstr "Veranstaltung erstellen"
#: project/templates/layout.html:229
#: project/templates/layout.html:231
msgid "Import event"
msgstr "Veranstaltung imporierten"
#: project/templates/layout.html:231
#: project/templates/layout.html:233
#: project/templates/manage/event_lists.html:4
msgid "Event lists"
msgstr "Veranstaltungslisten"
#: project/templates/layout.html:234
#: project/templates/layout.html:236
msgid "Review suggestions"
msgstr "Vorschläge prüfen"
#: project/templates/layout.html:244
#: project/templates/layout.html:246
#: project/templates/manage/references_incoming.html:5
#: project/templates/manage/references_outgoing.html:5
msgid "References"
msgstr "Empfehlungen"
#: project/templates/layout.html:250
#: project/templates/layout.html:252
#: project/templates/manage/references_incoming.html:9
msgid "Incoming references"
msgstr "Eingehende Empfehlungen"
#: project/templates/layout.html:251
#: project/templates/layout.html:253
#: project/templates/manage/references_outgoing.html:9
msgid "Outgoing references"
msgstr "Ausgehende Empfehlungen"
#: project/templates/layout.html:253
#: project/templates/layout.html:255
#: project/templates/manage/reference_requests_incoming.html:9
msgid "Incoming reference requests"
msgstr "Eingehende Empfehlungsanfragen"
#: project/templates/layout.html:258
#: project/templates/layout.html:260
#: project/templates/manage/reference_requests_outgoing.html:9
msgid "Outgoing reference requests"
msgstr "Ausgehende Empfehlungsanfragen"
#: project/templates/layout.html:266 project/templates/manage/organizers.html:5
#: project/templates/layout.html:268 project/templates/manage/organizers.html:5
#: project/templates/manage/organizers.html:9
msgid "Organizers"
msgstr "Veranstalter"
#: project/templates/event_place/list.html:3
#: project/templates/event_place/list.html:7 project/templates/layout.html:267
#: project/templates/event_place/list.html:7 project/templates/layout.html:269
#: project/templates/manage/places.html:5
#: project/templates/manage/places.html:9
msgid "Places"
msgstr "Orte"
#: project/templates/layout.html:269 project/templates/manage/members.html:5
#: project/templates/layout.html:271 project/templates/manage/members.html:5
#: project/templates/manage/members.html:28
msgid "Members"
msgstr "Mitglieder"
#: project/templates/layout.html:270 project/templates/manage/relations.html:4
#: project/templates/layout.html:272 project/templates/manage/relations.html:4
msgid "Relations"
msgstr "Beziehungen"
#: project/templates/layout.html:272
#: project/templates/layout.html:274
#: project/templates/manage/admin_units.html:17
#: project/templates/manage/organization_invitations.html:4
#: project/templates/user/organization_invitations.html:4
@ -1546,27 +1546,27 @@ msgstr "Organisationseinladungen"
#: project/templates/admin/settings.html:8
#: project/templates/admin_unit/update.html:6
#: project/templates/admin_unit/update.html:23
#: project/templates/layout.html:274 project/templates/manage/widgets.html:11
#: project/templates/layout.html:276 project/templates/manage/widgets.html:11
#: project/templates/manage/widgets.html:15 project/templates/profile.html:19
msgid "Settings"
msgstr "Einstellungen"
#: project/templates/layout.html:275
#: project/templates/layout.html:277
#: project/templates/manage/custom_widgets.html:13
msgid "Custom widgets"
msgstr "Custom widgets"
#: project/templates/layout.html:276 project/templates/manage/reviews.html:10
#: project/templates/layout.html:278 project/templates/manage/reviews.html:10
#: project/templates/manage/widgets.html:5
#: project/templates/manage/widgets.html:9
msgid "Widgets"
msgstr "Widgets"
#: project/templates/layout.html:287
#: project/templates/layout.html:289
msgid "Switch organization"
msgstr "Organisation wechseln"
#: project/templates/developer/read.html:4 project/templates/layout.html:337
#: project/templates/developer/read.html:4 project/templates/layout.html:339
#: project/templates/profile.html:29
msgid "Developer"
msgstr "Entwickler"
@ -1649,8 +1649,9 @@ msgid "Hi there"
msgstr "Moin"
#: project/templates/email/layout.html:351
msgid "this is a message from Oveda - Die offene Veranstaltungsdatenbank."
msgstr "das ist eine Nachricht von Oveda - Die offene Veranstaltungsdatenbank."
#, python-format
msgid "this is a message from %(site_name)s."
msgstr "das ist eine Nachricht von %(site_name)s."
#: project/templates/email/organization_invitation_accepted_notice.html:4
#, python-format
@ -2141,11 +2142,11 @@ msgstr "Veranstaltung erfolgreich aktualisiert"
msgid "Event successfully deleted"
msgstr "Veranstaltung erfolgreich gelöscht"
#: project/views/event.py:410
#: project/views/event.py:409
msgid "Referenced event changed"
msgstr "Empfohlene Veranstaltung wurde geändert"
#: project/views/event.py:433
#: project/views/event.py:432
msgid "New event report"
msgstr "Neue Meldung zu einer Veranstaltung"
@ -2391,4 +2392,3 @@ msgstr "Neue Veranstaltung zu prüfen"
#~ msgid "Veranstaltungen als iFrame einbetten"
#~ msgstr "Veranstaltungen als iFrame einbetten"

View File

@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: PROJECT VERSION\n"
"Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
"POT-Creation-Date: 2023-01-12 22:37+0100\n"
"POT-Creation-Date: 2023-03-15 19:10+0100\n"
"PO-Revision-Date: 2021-04-30 15:04+0200\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language: en\n"
@ -199,25 +199,25 @@ msgstr ""
msgid "You have received an invitation"
msgstr ""
#: project/forms/admin.py:10 project/templates/layout.html:315
#: project/views/root.py:37
#: project/forms/admin.py:10 project/templates/layout.html:317
#: project/views/root.py:55
msgid "Terms of service"
msgstr ""
#: project/forms/admin.py:11 project/templates/layout.html:319
#: project/views/root.py:45
#: project/forms/admin.py:11 project/templates/layout.html:321
#: project/views/root.py:63
msgid "Legal notice"
msgstr ""
#: project/forms/admin.py:12 project/templates/_macros.html:1395
#: project/templates/layout.html:323
#: project/templates/layout.html:325
#: project/templates/widget/event_suggestion/create.html:204
#: project/views/admin_unit.py:73 project/views/root.py:53
#: project/views/admin_unit.py:73 project/views/root.py:71
msgid "Contact"
msgstr ""
#: project/forms/admin.py:13 project/templates/layout.html:327
#: project/views/root.py:61
#: project/forms/admin.py:13 project/templates/layout.html:329
#: project/views/root.py:79
msgid "Privacy"
msgstr ""
@ -1068,7 +1068,7 @@ msgstr ""
#: project/templates/_macros.html:489 project/templates/_macros.html:652
#: project/templates/admin_unit/create.html:28
#: project/templates/admin_unit/update.html:29
#: project/templates/layout.html:263
#: project/templates/layout.html:265
msgid "Organization"
msgstr ""
@ -1226,7 +1226,7 @@ msgstr ""
msgid "The event takes place both offline and online."
msgstr ""
#: project/templates/_macros.html:585 project/templates/layout.html:189
#: project/templates/_macros.html:585 project/templates/layout.html:191
#: project/templates/user/favorite_events.html:4
msgid "Favorite events"
msgstr ""
@ -1371,7 +1371,7 @@ msgstr ""
msgid "Register for free"
msgstr ""
#: project/templates/layout.html:175 project/templates/layout.html:221
#: project/templates/layout.html:175 project/templates/layout.html:223
#: project/templates/manage/events.html:6
#: project/templates/manage/events.html:42
#: project/templates/manage/events_vue.html:4
@ -1381,7 +1381,7 @@ msgstr ""
#: project/templates/admin/admin.html:19
#: project/templates/admin/admin_units.html:4
#: project/templates/admin/admin_units.html:11
#: project/templates/layout.html:176 project/templates/layout.html:187
#: project/templates/layout.html:176 project/templates/layout.html:189
#: project/templates/manage/admin_units.html:3
#: project/templates/manage/admin_units.html:25
#: project/templates/organization/main.html:4
@ -1392,11 +1392,11 @@ msgstr ""
msgid "Planing"
msgstr ""
#: project/templates/layout.html:178
#: project/templates/layout.html:181
msgid "Docs"
msgstr ""
#: project/templates/layout.html:188 project/templates/layout.html:277
#: project/templates/layout.html:190 project/templates/layout.html:279
#: project/templates/oauth2_client/list.html:10
#: project/templates/oauth2_client/read.html:10
#: project/templates/oauth2_token/list.html:10 project/templates/profile.html:4
@ -1406,86 +1406,86 @@ msgstr ""
#: project/templates/admin/admin.html:3 project/templates/admin/admin.html:9
#: project/templates/admin/admin_units.html:10
#: project/templates/admin/users.html:10 project/templates/layout.html:192
#: project/templates/admin/users.html:10 project/templates/layout.html:194
msgid "Admin"
msgstr ""
#: project/templates/layout.html:196
#: project/templates/layout.html:198
msgid "Logout"
msgstr ""
#: project/templates/layout.html:227
#: project/templates/layout.html:229
msgid "Show events"
msgstr ""
#: project/templates/event/create.html:5
#: project/templates/event/create.html:221 project/templates/layout.html:228
#: project/templates/event/create.html:221 project/templates/layout.html:230
#: project/templates/manage/events.html:45
#: project/templates/manage/organizers.html:21
msgid "Create event"
msgstr ""
#: project/templates/layout.html:229
#: project/templates/layout.html:231
msgid "Import event"
msgstr ""
#: project/templates/layout.html:231
#: project/templates/layout.html:233
#: project/templates/manage/event_lists.html:4
msgid "Event lists"
msgstr ""
#: project/templates/layout.html:234
#: project/templates/layout.html:236
msgid "Review suggestions"
msgstr ""
#: project/templates/layout.html:244
#: project/templates/layout.html:246
#: project/templates/manage/references_incoming.html:5
#: project/templates/manage/references_outgoing.html:5
msgid "References"
msgstr ""
#: project/templates/layout.html:250
#: project/templates/layout.html:252
#: project/templates/manage/references_incoming.html:9
msgid "Incoming references"
msgstr ""
#: project/templates/layout.html:251
#: project/templates/layout.html:253
#: project/templates/manage/references_outgoing.html:9
msgid "Outgoing references"
msgstr ""
#: project/templates/layout.html:253
#: project/templates/layout.html:255
#: project/templates/manage/reference_requests_incoming.html:9
msgid "Incoming reference requests"
msgstr ""
#: project/templates/layout.html:258
#: project/templates/layout.html:260
#: project/templates/manage/reference_requests_outgoing.html:9
msgid "Outgoing reference requests"
msgstr ""
#: project/templates/layout.html:266 project/templates/manage/organizers.html:5
#: project/templates/layout.html:268 project/templates/manage/organizers.html:5
#: project/templates/manage/organizers.html:9
msgid "Organizers"
msgstr ""
#: project/templates/event_place/list.html:3
#: project/templates/event_place/list.html:7 project/templates/layout.html:267
#: project/templates/event_place/list.html:7 project/templates/layout.html:269
#: project/templates/manage/places.html:5
#: project/templates/manage/places.html:9
msgid "Places"
msgstr ""
#: project/templates/layout.html:269 project/templates/manage/members.html:5
#: project/templates/layout.html:271 project/templates/manage/members.html:5
#: project/templates/manage/members.html:28
msgid "Members"
msgstr ""
#: project/templates/layout.html:270 project/templates/manage/relations.html:4
#: project/templates/layout.html:272 project/templates/manage/relations.html:4
msgid "Relations"
msgstr ""
#: project/templates/layout.html:272
#: project/templates/layout.html:274
#: project/templates/manage/admin_units.html:17
#: project/templates/manage/organization_invitations.html:4
#: project/templates/user/organization_invitations.html:4
@ -1497,27 +1497,27 @@ msgstr ""
#: project/templates/admin/settings.html:8
#: project/templates/admin_unit/update.html:6
#: project/templates/admin_unit/update.html:23
#: project/templates/layout.html:274 project/templates/manage/widgets.html:11
#: project/templates/layout.html:276 project/templates/manage/widgets.html:11
#: project/templates/manage/widgets.html:15 project/templates/profile.html:19
msgid "Settings"
msgstr ""
#: project/templates/layout.html:275
#: project/templates/layout.html:277
#: project/templates/manage/custom_widgets.html:13
msgid "Custom widgets"
msgstr ""
#: project/templates/layout.html:276 project/templates/manage/reviews.html:10
#: project/templates/layout.html:278 project/templates/manage/reviews.html:10
#: project/templates/manage/widgets.html:5
#: project/templates/manage/widgets.html:9
msgid "Widgets"
msgstr ""
#: project/templates/layout.html:287
#: project/templates/layout.html:289
msgid "Switch organization"
msgstr ""
#: project/templates/developer/read.html:4 project/templates/layout.html:337
#: project/templates/developer/read.html:4 project/templates/layout.html:339
#: project/templates/profile.html:29
msgid "Developer"
msgstr ""
@ -1600,7 +1600,8 @@ msgid "Hi there"
msgstr ""
#: project/templates/email/layout.html:351
msgid "this is a message from Oveda - Die offene Veranstaltungsdatenbank."
#, python-format
msgid "this is a message from %(site_name)s."
msgstr ""
#: project/templates/email/organization_invitation_accepted_notice.html:4
@ -2078,11 +2079,11 @@ msgstr ""
msgid "Event successfully deleted"
msgstr ""
#: project/views/event.py:410
#: project/views/event.py:409
msgid "Referenced event changed"
msgstr ""
#: project/views/event.py:433
#: project/views/event.py:432
msgid "New event report"
msgstr ""

View File

@ -28,7 +28,7 @@ def home():
{
"@context": "http://schema.org",
"@type": "WebSite",
"name": "Oveda",
"name": app.config["SITE_NAME"],
"url": url_for("home", _external=True),
}
)

View File

@ -1 +0,0 @@
python-3.7.10

View File

@ -48,17 +48,17 @@ def test_list_unverified(client, app, seeder, utils):
assert response.json["items"][0]["id"] == verified_admin_unit_id
# Authorisierte Nutzer, die Organisationen verifizieren dürfen, sehen alle Organisationen.
# "admin@oveda.de" ist Mitglied der Organisation "Oveda", die andere Organisationen verifizieren darf.
# "admin@gsevpt.de" ist Mitglied der Organisation "gsevpt", die andere Organisationen verifizieren darf.
with app.app_context():
from project.services.admin_unit import get_admin_unit_by_name
oveda_id = get_admin_unit_by_name("Oveda").id
gsevpt_id = get_admin_unit_by_name("gsevpt").id
utils.logout()
utils.login("admin@oveda.de")
utils.login("admin@gsevpt.de")
response = utils.get_ok(url)
assert len(response.json["items"]) == 3
assert response.json["items"][0]["id"] == oveda_id
assert response.json["items"][0]["id"] == gsevpt_id
assert response.json["items"][1]["id"] == unverified_admin_unit_id
assert response.json["items"][2]["id"] == verified_admin_unit_id

View File

@ -99,14 +99,14 @@ class Seeder(object):
from project.services.admin_unit import get_admin_unit_by_name
with self._app.app_context():
other_admin_unit = get_admin_unit_by_name("Oveda")
other_admin_unit = get_admin_unit_by_name("gsevpt")
if other_admin_unit:
other_admin_unit_id = other_admin_unit.id
else:
other_user_id = self.create_user("admin@oveda.de")
other_user_id = self.create_user("admin@gsevpt.de")
other_admin_unit_id = self.create_admin_unit(
other_user_id, "Oveda", can_verify_other=True
other_user_id, "gsevpt", can_verify_other=True
)
self.create_admin_unit_relation(
@ -637,13 +637,13 @@ class Seeder(object):
def create_common_scenario(self):
with self._app.app_context():
# Admin with Oveda organisation
# Admin with gsevpt organisation
admin_id = self.create_user(
"admin@test.de", "MeinPasswortIstDasBeste", admin=True
)
oveda_admin_unit_id = self.create_admin_unit(
gsevpt_admin_unit_id = self.create_admin_unit(
admin_id,
"Oveda",
"gsevpt",
suggestions_enabled=True,
can_create_other=True,
can_verify_other=True,
@ -661,7 +661,7 @@ class Seeder(object):
incoming_verification_requests_text="Please give us a call",
)
self.create_admin_unit_relation(
oveda_admin_unit_id,
gsevpt_admin_unit_id,
marketing_admin_unit_id,
verify=True,
)

View File

@ -61,6 +61,10 @@ class UtilActions(object):
):
from project.services.user import find_user_by_email
with self._app.app_context():
user = find_user_by_email(email)
assert user
response = self._client.get("/login")
assert response.status_code == 200

View File

@ -1,3 +1,3 @@
def test_index(client):
response = client.get("/")
assert b"oveda" in response.data
assert b"gsevpt" in response.data