Seitenladezeiten optimieren #288

This commit is contained in:
Daniel Grams 2021-09-02 11:31:23 +02:00
parent 2db1a8ae45
commit 29970fef5e
64 changed files with 2407 additions and 845 deletions

View File

@ -8,7 +8,7 @@ env:
jobs: jobs:
# Label of the container job # Label of the container job
runner-job: cypress:
strategy: strategy:
fail-fast: false fail-fast: false
matrix: matrix:
@ -71,6 +71,9 @@ jobs:
env: env:
DATABASE_URL: postgresql://postgres:postgres@localhost/gsevpt_tests DATABASE_URL: postgresql://postgres:postgres@localhost/gsevpt_tests
TESTING: 1 TESTING: 1
AUTHLIB_INSECURE_TRANSPORT: 1
JWT_PRIVATE_KEY: '-----BEGIN RSA PRIVATE KEY-----\nMIIEpAIBAAKCAQEAxMl+DFiwhnoWRiVPcEIstAW66VY39JNo1TG1U10OfaFMuWI8\njcq5VfSRPBdXLRqAJwZi4CZCwOglEvURArf1QTxVBdLpDW75tD6fNOHaHKvX5WPR\nMGC/7Rfo9K/OgEWnQplc/0Me9D8MzTpIA56Uo/H/DE82kGWOMcWdqIA40pHaCZ7i\nWIoD7pS6DcRDt/8o0+IQqhMC4SrjL2HelzXHpg4glgY+GLbvTPOfV/OlFCAWDK3o\nN3wMBYS+TFP2Q/5pXfPCajIrSfF7dHyZU2d/K26A8naKcSUYuJzA8GBXkPx8YObt\nOS5SYYeD5GeGsX3IsVVyk3WqMVN7NXvRqmNjqQIDAQABAoIBABYoJbQYLFAH4Qgm\n3UnjeYsPdhsdpRE5o70VargnKyGEDtJ0uCKy56lA7zVX323ppPI/6tQYGr4DpWD8\nDN1Efy3IMD6Gn8zuaNkdj+lxYJCH3LgsQ/pxekqkvYsHXHXe4dVC1VC8avjPPI7C\n+CbILS5EahYluRwLAzahbH3zafJzXK6qxVCaPBn1QAG/b5FhGCoSSmar+6gxypX1\nIt977gMaZ9sbaRCfQ2BYEeRyWcBvPPWnM1q87Q/s4dFcHplE6ADLtTOAtFzwKne+\n0jP8AvcnQ6/vG7lM7epUfZLyPRt+79PIAj1ndtff10vGwVwoVuhGuwumIp7vMxQq\nF8VC5o0CgYEA/escZHgN25mrUlKhaGWmtxIfqreaLKjCc/mc1pMEfnMAVgrcVUu4\nMiAx6/k6o9CUrPtNUuKktAuAZMAN505it2k9wjwmu+snfgwj2oMKHGsss9yJ19Fc\nlKdoHE4QeHMQWnIqqN/lRza/tfUPlMDLY04gxMZR1R7Y7L2Hf2aLxQMCgYEAxmZ7\najpJResNEiSxFldImwBLjuLhqvOzPYDsqBpwB0gQOJtbKuPPzKB6J8guXVi+DHDz\neTKOAm3BQymb2xRuyvrclFi4a1LWFWsTz+PAMXss2h+TjGm1dkAYt/FiSqyuyLY5\n48igJjdH64G2M4w8eN0YUtKvQRqaZ37jFMbR5uMCgYEAkONbrCilH62sCKmF2KBI\nZSY+U5e4rcsOSkcgq3/wjIbqpi5EU5eFX3Tnh5MLVvZqH9q14JnbCbGWbeb5CAe+\nZJH036SbJZelTVN4EfO8DUNKmsc5EKEyhtCPo7cXxuNBbZq/pOU9W0luU1Gmtmbc\np6mpIR9ZCpcziMMNUjEdiCkCgYB8aoP2Z7rPd8lomU3cHrxPR24amri9xbmfVhwS\nhxG93zkc5n/Tc606O2CfVe+NZjs3/hUQ6d0YNM+/WHZ+el/INmzhMonj87yBDfcM\npVw/K2lDGA4lPZ0oHKXjpCHphkTNZUkESSn1DTGyxFMIHGdHvA6m0axJfW9ae73X\np5611QKBgQC/wOD9Wv6IQLR7f5GQSXrlmiCGmUugd3BG7UXrevYzbm48ePyIIa+e\nPaSvTkZR5Ji5XvajSDhYK1/2qmozk6B1pH1M4jqKD80zZOq8mc9q8lZ9fEIxi5wz\nPVHRdVKT+wEsbeQhxqX/RfaqIi1UcBmwhnZKXutXPon/ZIg7iVoo5g==\n-----END RSA PRIVATE KEY-----\n'
JWT_PUBLIC_JWKS: '{"keys":[{"kid":"default","kty":"RSA","use":"sig","alg":"RS256","n":"xMl-DFiwhnoWRiVPcEIstAW66VY39JNo1TG1U10OfaFMuWI8jcq5VfSRPBdXLRqAJwZi4CZCwOglEvURArf1QTxVBdLpDW75tD6fNOHaHKvX5WPRMGC_7Rfo9K_OgEWnQplc_0Me9D8MzTpIA56Uo_H_DE82kGWOMcWdqIA40pHaCZ7iWIoD7pS6DcRDt_8o0-IQqhMC4SrjL2HelzXHpg4glgY-GLbvTPOfV_OlFCAWDK3oN3wMBYS-TFP2Q_5pXfPCajIrSfF7dHyZU2d_K26A8naKcSUYuJzA8GBXkPx8YObtOS5SYYeD5GeGsX3IsVVyk3WqMVN7NXvRqmNjqQ","e":"AQAB"}]}'
CYPRESS_PROJECT_ID: ${{ secrets.CYPRESS_PROJECT_ID }} CYPRESS_PROJECT_ID: ${{ secrets.CYPRESS_PROJECT_ID }}
CYPRESS_RECORD_KEY: ${{ secrets.CYPRESS_RECORD_KEY }} CYPRESS_RECORD_KEY: ${{ secrets.CYPRESS_RECORD_KEY }}
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}

View File

@ -7,7 +7,7 @@ on: [pull_request, workflow_dispatch]
jobs: jobs:
# Label of the container job # Label of the container job
runner-job: integration-tests:
# Containers must run in Linux based operating systems # Containers must run in Linux based operating systems
runs-on: ubuntu-latest runs-on: ubuntu-latest

View File

@ -0,0 +1,35 @@
describe("Admin", () => {
it("settings", () => {
cy.createUser("admin@test.de", "password", true).then(function (userId) {
cy.login("admin@test.de");
cy.visit("/admin");
cy.visit("/admin/settings");
cy.get("#submit").click();
cy.url().should("include", "/admin");
});
});
it("admin units", () => {
cy.createUser("admin@test.de", "password", true).then(function (userId) {
cy.login("admin@test.de");
cy.visit("/admin/admin_units");
cy.createAdminUnit().then(function (adminUnitId) {
cy.visit("/admin/admin_unit/" + adminUnitId + "/update");
cy.get("#submit").click();
cy.url().should("include", "/admin/admin_units");
});
});
});
it("users", () => {
cy.createUser("admin@test.de", "password", true).then(function (userId) {
cy.login("admin@test.de");
cy.visit("/admin/users");
cy.visit("/admin/user/" + userId + "/update");
cy.get("#submit").click();
cy.url().should("include", "/admin/users");
});
});
});

View File

@ -0,0 +1,44 @@
describe("Admin Unit", () => {
it("creates", () => {
cy.login();
cy.visit("/admin_unit/create");
cy.get("#name").type("Second Crew");
cy.get("#location-postalCode").type("38640");
cy.get("#location-city").type("Goslar");
cy.screenshot("create");
cy.get("#submit").click();
cy.url().should("include", "/manage/admin_unit/");
});
it("updates", () => {
cy.login();
cy.createAdminUnit().then(function (adminUnitId) {
cy.visit("/admin_unit/" + adminUnitId + "/update");
cy.screenshot("update");
cy.get("#submit").click();
cy.url().should("include", "/admin_unit/" + adminUnitId + "/update");
cy.get("div.alert").should(
"contain",
"Organisation erfolgreich aktualisiert"
);
});
});
it("widgets", () => {
cy.login();
cy.createAdminUnit().then(function (adminUnitId) {
cy.visit("/manage/admin_unit/" + adminUnitId + "/widgets");
cy.get("#toggle-settings-btn").click();
cy.screenshot("widgets");
cy.get("#submit").click();
cy.url().should(
"include",
"/manage/admin_unit/" + adminUnitId + "/widgets"
);
cy.get("div.alert").should(
"contain",
"Einstellungen erfolgreich aktualisiert"
);
});
});
});

View File

@ -0,0 +1,41 @@
describe("Admin Unit Member", () => {
it("updates", () => {
cy.login();
cy.createAdminUnit().then(function (adminUnitId) {
cy.createUser("new@test.de").then(function () {
cy.createAdminUnitMember(adminUnitId, "new@test.de").then(function (
memberId
) {
cy.visit("/manage/member/" + memberId + "/update");
cy.screenshot("update");
cy.get("#submit").click();
cy.url().should(
"include",
"/manage/admin_unit/" + adminUnitId + "/members"
);
cy.screenshot("list");
});
});
});
});
it("deletes", () => {
cy.login();
cy.createAdminUnit().then(function (adminUnitId) {
cy.createUser("new@test.de").then(function () {
cy.createAdminUnitMember(adminUnitId, "new@test.de").then(function (
memberId
) {
cy.visit("/manage/member/" + memberId + "/delete");
cy.get("#email").type("new@test.de");
cy.screenshot("delete");
cy.get("#submit").click();
cy.url().should(
"include",
"/manage/admin_unit/" + adminUnitId + "/members"
);
});
});
});
});
});

View File

@ -0,0 +1,49 @@
describe("Admin Unit Member Invitation", () => {
it("creates", () => {
cy.login();
cy.createAdminUnit().then(function (adminUnitId) {
cy.visit("/manage/admin_unit/" + adminUnitId + "/members/invite");
cy.get("#email").type("new@test.de");
cy.screenshot("create");
cy.get("#submit").click();
cy.url().should(
"include",
"/manage/admin_unit/" + adminUnitId + "/members"
);
});
});
it("deletes", () => {
cy.login();
cy.createAdminUnit().then(function (adminUnitId) {
cy.createAdminUnitMemberInvitation(adminUnitId).then(function (
invitationId
) {
cy.visit("/manage/invitation/" + invitationId + "/delete");
cy.get("#email").type("new@test.de");
cy.screenshot("delete");
cy.get("#submit").click();
cy.url().should(
"include",
"/manage/admin_unit/" + adminUnitId + "/members"
);
});
});
});
it("reads", () => {
cy.login();
cy.createAdminUnit().then(function (adminUnitId) {
cy.createAdminUnitMemberInvitation(adminUnitId, "test@test.de").then(
function (invitationId) {
cy.visit("/invitations/" + invitationId);
cy.get("#accept").click();
cy.url().should(
"include",
"/manage/admin_unit/" + adminUnitId + "/events"
);
}
);
});
});
});

View File

@ -0,0 +1,68 @@
describe("Admin unit relations", () => {
it("list", () => {
cy.login();
cy.createAdminUnit().then(function (adminUnitId) {
cy.createAdminUnit("test@test.de", "Other Crew").then(function (
otherAdminUnitId
) {
cy.visit("/manage/admin_unit/" + adminUnitId + "/relations");
cy.screenshot("list");
});
});
});
it("create", () => {
cy.login();
cy.createAdminUnit().then(function (adminUnitId) {
cy.createAdminUnit("test@test.de", "Other Crew").then(function (
otherAdminUnitId
) {
cy.visit("/manage/admin_unit/" + adminUnitId + "/relations");
cy.visit("/manage/admin_unit/" + adminUnitId + "/relations/create");
cy.get("#targetOrganization input").type("ot");
cy.get(".vbt-autcomplete-list").click();
cy.screenshot("create");
cy.get("button[type=submit]").click();
cy.url().should(
"not.include",
"/create"
);
});
});
});
it("updates", () => {
cy.login();
cy.createAdminUnit().then(function (adminUnitId) {
cy.createAdminUnitRelation(adminUnitId).then(function (relationId) {
cy.visit("/manage/admin_unit/" + adminUnitId + "/relations");
cy.visit("/manage/admin_unit/" + adminUnitId + "/relations/" + relationId + "/update");
cy.screenshot("update");
cy.get("button[type=submit]").click();
cy.url().should(
"not.include",
"/update"
);
});
});
});
it("deletes", () => {
cy.login();
cy.createAdminUnit().then(function (adminUnitId) {
cy.createAdminUnitRelation(adminUnitId).then(function (relationId) {
cy.visit("/manage/admin_unit/" + adminUnitId + "/relations");
cy.get('.dropdown-toggle.btn-link').click();
cy.get('.b-dropdown.show li:last').click();
cy.get('.dropdown-toggle.btn-link').should('not.exist');
});
});
});
});

View File

@ -69,10 +69,40 @@ describe("Event", () => {
"contain", "contain",
"Veranstaltung erfolgreich aktualisiert" "Veranstaltung erfolgreich aktualisiert"
); );
cy.screenshot("list");
cy.visit("/manage/admin_unit/" + adminUnitId + "/events"); cy.visit("/manage/admin_unit/" + adminUnitId + "/events");
cy.get('main .badge-pill').should('contain', 'Entwurf') cy.get('main .badge-pill').should('contain', 'Entwurf')
}); });
}); });
it("read and actions", () => {
cy.login();
cy.createAdminUnit().then(function (adminUnitId) {
cy.createEvent(adminUnitId).then(function (eventId) {
cy.visit("/event/" + eventId);
cy.screenshot("read");
cy.visit("/event/" + eventId + "/actions");
cy.screenshot("actions");
});
});
});
it("deletes", () => {
cy.login();
cy.createAdminUnit().then(function (adminUnitId) {
cy.createEvent(adminUnitId).then(function (eventId) {
cy.visit("/event/" + eventId + "/delete");
cy.get("#name").type("Name");
cy.screenshot("delete");
cy.get("#submit").click();
cy.url().should(
"include",
"/manage/admin_unit/" + adminUnitId + "/events"
);
});
});
});
}); });

View File

@ -0,0 +1,19 @@
describe("Event Date", () => {
it("list, search and read", () => {
cy.login();
cy.createAdminUnit().then(function (adminUnitId) {
cy.createEvent(adminUnitId).then(function (eventId) {
cy.visit("/eventdatesearch");
cy.visit("/eventdates");
cy.get("#toggle-search-btn").click();
cy.screenshot("search-form");
cy.screenshotDatepicker("#date_from-user");
cy.get("#toggle-search-btn").click();
cy.get(".stretched-link").click();
cy.screenshot("event-date");
});
});
});
});

View File

@ -0,0 +1,47 @@
describe("Event place", () => {
it("creates", () => {
cy.login();
cy.createAdminUnit().then(function (adminUnitId) {
cy.visit("/manage/admin_unit/" + adminUnitId + "/places/create");
cy.get("#name").type("Mein Platz");
cy.screenshot("create");
cy.get("#submit").click();
cy.url().should(
"include",
"/manage/admin_unit/" + adminUnitId + "/event_places"
);
cy.screenshot("list");
});
});
it("updates", () => {
cy.login();
cy.createAdminUnit().then(function (adminUnitId) {
cy.createEventPlace(adminUnitId).then(function (eventPlaceId) {
cy.visit("/event_place/" + eventPlaceId + "/update");
cy.screenshot("update");
cy.get("#submit").click();
cy.url().should(
"include",
"/manage/admin_unit/" + adminUnitId + "/event_places"
);
});
});
});
it("deletes", () => {
cy.login();
cy.createAdminUnit().then(function (adminUnitId) {
cy.createEventPlace(adminUnitId).then(function (eventPlaceId) {
cy.visit("/event_place/" + eventPlaceId + "/delete");
cy.get("#name").type("Mein Platz");
cy.screenshot("delete");
cy.get("#submit").click();
cy.url().should(
"include",
"/manage/admin_unit/" + adminUnitId + "/event_places"
);
});
});
});
});

View File

@ -0,0 +1,29 @@
describe("Suggestion", () => {
it("reject", () => {
cy.login();
cy.createAdminUnit().then(function (adminUnitId) {
cy.createSuggestion(adminUnitId).then(function (suggestionId) {
cy.visit("/event_suggestion/" + suggestionId + "/review_status");
cy.screenshot("status");
cy.visit("/event_suggestion/" + suggestionId + "/review");
cy.screenshot("review");
cy.get(".decision-container .btn-danger").click();
cy.get("#rejectFormModal select[name=rejection_resaon]")
.select("Duplikat")
.should("have.value", "1");
cy.get("#rejectFormModal").screenshot("reject");
cy.get("#rejectFormModal .btn-danger").click();
cy.url().should("include", "/reviews");
cy.get("div.alert").should(
"contain",
"Veranstaltungsvorschlag erfolgreich abgelehnt"
);
cy.get("main .badge-pill").should("contain", "Abgelehnt");
cy.screenshot("list");
});
});
});
});

View File

@ -1,5 +0,0 @@
describe('Homepage', () => {
it('starts', () => {
cy.visit('/')
})
})

View File

@ -1,28 +0,0 @@
describe('Login', () => {
it('user log in', () => {
cy.visit('/login')
// Blank
cy.get('#submit').click()
cy.assertRequired('email')
cy.assertRequired('password')
// Email
cy.get('#email').type("invalidmail")
cy.assertInvalid('email', 'Geben Sie bitte eine gültige E-Mail-Adresse ein.')
cy.get('#email').clear().type("test@test.de")
cy.assertValid('email')
// Password
cy.get('#password').type("password")
cy.assertValid('password')
// Submit
cy.get('#submit').click()
cy.url().should('include', '/manage')
cy.get('h1').should('contain', 'Organisationen')
cy.getCookie('session').should('exist')
})
})

View File

@ -1,10 +1,20 @@
describe('Manage', () => { describe("Manage", () => {
it('manage', () => { it("manage", () => {
cy.login() cy.login();
cy.createAdminUnit().then(function(adminUnitId) { cy.createAdminUnit().then(function (adminUnitId) {
cy.createEvent(adminUnitId).then(function(eventId) { cy.createEvent(adminUnitId).then(function (eventId) {
cy.visit('/manage/admin_unit/' + adminUnitId) cy.visit("/manage/admin_unit/" + adminUnitId);
}) cy.url().should(
}) "include",
}) "/manage/admin_unit/" + adminUnitId + "/events"
}) );
cy.screenshot("events")
cy.get("#toggle-search-btn").click();
cy.screenshot("search-form");
cy.screenshotDatepicker("#date_from-user");
cy.get("#toggle-search-btn").click();
});
});
});
});

View File

@ -0,0 +1,5 @@
describe("OAuth", () => {
it("authorizes", () => {
cy.authorize(true);
});
});

View File

@ -0,0 +1,56 @@
describe("OAuth2 Client", () => {
it("creates", () => {
cy.createUser("new@test.de", "password", true).then(function (userId) {
cy.createOauth2Client(userId).then(function (result) {
cy.login("new@test.de");
cy.visit("/oauth2_client/create");
cy.get("#client_name").type("Mein Client");
cy.get("#scope-0").check();
cy.get("#redirect_uris").type("/oauth2-redirect.html");
cy.screenshot("create");
cy.get("#submit").click();
});
});
});
it("updates", () => {
cy.createUser("new@test.de", "password", true).then(function (userId) {
cy.createOauth2Client(userId).then(function (result) {
cy.login("new@test.de");
cy.visit("/oauth2_client/" + result.oauth2_client_id + "/update");
cy.screenshot("update");
cy.get("#submit").click();
});
});
});
it("deletes", () => {
cy.createUser("new@test.de", "password", true).then(function (userId) {
cy.createOauth2Client(userId).then(function (result) {
cy.login("new@test.de");
cy.visit("/oauth2_client/" + result.oauth2_client_id + "/delete");
cy.get("#name").type("Mein Client");
cy.screenshot("delete");
cy.get("#submit").click();
cy.url().should("include", "/oauth2_clients");
});
});
});
it("lists and reads", () => {
cy.createUser("new@test.de", "password", true).then(function (userId) {
cy.createOauth2Client(userId).then(function (result) {
cy.login("new@test.de");
cy.visit("/oauth2_clients");
cy.screenshot("list");
cy.visit("/oauth2_client/" + result.oauth2_client_id);
cy.screenshot("read");
});
});
});
});

View File

@ -0,0 +1,14 @@
describe("OAuth2 token", () => {
it("lists and revokes", () => {
cy.authorize().then(function () {
cy.visit("/oauth2_tokens");
cy.screenshot("list");
cy.get("a[href$=revoke]").click();
cy.screenshot("revoke");
cy.get("#submit").click();
cy.url().should("include", "/oauth2_tokens");
});
});
});

View File

@ -0,0 +1,10 @@
describe("Organization", () => {
it("reads", () => {
cy.createAdminUnit().then(function (adminUnitId) {
cy.createEvent(adminUnitId).then(function (eventId) {
cy.visit("/organization/" + adminUnitId);
cy.screenshot("read");
});
});
});
});

View File

@ -0,0 +1,47 @@
describe("Event organizer", () => {
it("creates", () => {
cy.login();
cy.createAdminUnit().then(function (adminUnitId) {
cy.visit("/manage/admin_unit/" + adminUnitId + "/organizers/create");
cy.get("#name").type("Mein Veranstalter");
cy.screenshot("create");
cy.get("#submit").click();
cy.url().should(
"include",
"/manage/admin_unit/" + adminUnitId + "/organizers"
);
cy.screenshot("list");
});
});
it("updates", () => {
cy.login();
cy.createAdminUnit().then(function (adminUnitId) {
cy.createEventOrganizer(adminUnitId).then(function (eventOrganizerId) {
cy.visit("/organizer/" + eventOrganizerId + "/update");
cy.screenshot("update");
cy.get("#submit").click();
cy.url().should(
"include",
"/manage/admin_unit/" + adminUnitId + "/organizers"
);
});
});
});
it("deletes", () => {
cy.login();
cy.createAdminUnit().then(function (adminUnitId) {
cy.createEventOrganizer(adminUnitId).then(function (eventOrganizerId) {
cy.visit("/organizer/" + eventOrganizerId + "/delete");
cy.get("#name").type("Mein Veranstalter");
cy.screenshot("delete");
cy.get("#submit").click();
cy.url().should(
"include",
"/manage/admin_unit/" + adminUnitId + "/organizers"
);
});
});
});
});

View File

@ -0,0 +1,14 @@
describe("Planing", () => {
it("search", () => {
cy.createAdminUnit().then(function (adminUnitId) {
cy.createEvent(adminUnitId).then(function (eventId) {
cy.visit("/planing");
cy.screenshot("search-form");
cy.screenshotDatepicker("#date_from-user");
cy.get('#submit').click();
cy.screenshot("result");
});
});
});
});

View File

@ -0,0 +1,62 @@
describe("Reference", () => {
it("reads and outgoing", () => {
cy.login();
cy.createAdminUnit().then(function (adminUnitId) {
cy.createIncomingReference(adminUnitId).then(function (referenceId) {
cy.visit("/reference/" + referenceId);
cy.screenshot("read");
cy.visit("/manage/admin_unit/" + adminUnitId + "/references/outgoing");
cy.screenshot("outgoing");
});
});
});
it("creates", () => {
cy.login();
cy.createAdminUnit().then(function (adminUnitId) {
cy.createAdminUnit("test@test.de", "Other Crew").then(function (
otherAdminUnitId
) {
cy.createEvent(otherAdminUnitId).then(function (eventId) {
cy.visit("/event/" + eventId + "/reference");
cy.screenshot("create");
cy.get("#submit").click();
cy.url().should("not.include", "/reference");
});
});
});
});
it("updates", () => {
cy.login();
cy.createAdminUnit().then(function (adminUnitId) {
cy.createIncomingReference(adminUnitId).then(function (referenceId) {
cy.visit("/reference/" + referenceId + "/update");
cy.screenshot("update");
cy.get("#submit").click();
cy.url().should(
"include",
"/manage/admin_unit/" + adminUnitId + "/references/incoming"
);
cy.screenshot("incoming");
});
});
});
it("deletes", () => {
cy.login();
cy.createAdminUnit().then(function (adminUnitId) {
cy.createIncomingReference(adminUnitId).then(function (referenceId) {
cy.visit("/reference/" + referenceId + "/delete");
cy.get("#name").type("Name");
cy.screenshot("delete");
cy.get("#submit").click();
cy.url().should(
"include",
"/manage/admin_unit/" + adminUnitId + "/references/incoming"
);
});
});
});
});

View File

@ -1,27 +1,30 @@
describe('Reference Request', () => { describe("Reference request", () => {
it('reference request', () => { it("lists", () => {
cy.login() cy.login();
cy.createAdminUnit().then(function(adminUnitId) { cy.createAdminUnit().then(function (adminUnitId) {
cy.createIncomingReferenceRequest(adminUnitId).then(function(referenceRequestId) { cy.createIncomingReferenceRequest(adminUnitId).then(function (
referenceRequestId
) {
cy.visit(
"/manage/admin_unit/" + adminUnitId + "/reference_requests/incoming"
);
cy.screenshot("incoming");
});
});
});
// Reject it("creates", () => {
cy.visit('/reference_request/' + referenceRequestId + '/review') cy.login();
cy.get('.decision-container .btn-danger').click() cy.createAdminUnit().then(function (adminUnitId) {
cy.get('#rejectFormModal select[name=rejection_reason]').select('Nicht relevant').should('have.value', '4') cy.createAdminUnit("test@test.de", "Other Crew").then(function (otherAdminUnitId) {
cy.get('#rejectFormModal .btn-danger').click() cy.createEvent(adminUnitId).then(function (eventId) {
cy.url().should('include', '/reference_requests/incoming') cy.visit("/event/" + eventId + "/reference_request/create");
cy.get('div.alert').should('contain', 'Empfehlungsanfrage erfolgreich aktualisiert') cy.screenshot("create");
cy.get('main .badge-pill').should('contain', 'Abgelehnt') cy.get("#submit").click();
cy.url().should("include", "/reference_requests/outgoing");
// Accept cy.screenshot("outgoing");
cy.visit('/reference_request/' + referenceRequestId + '/review') });
cy.get('.decision-container .btn-success').click() });
cy.get('#acceptFormModal select[name=rating]').select('6').should('have.value', '60') });
cy.get("#auto_verify").parent().click(); });
cy.get('#acceptFormModal .btn-success').click() });
cy.url().should('include', '/reference_requests/incoming')
cy.get('div.alert').should('contain', 'Empfehlung erfolgreich erstellt')
})
})
})
})

View File

@ -0,0 +1,45 @@
describe("Reference request review", () => {
it("reviews", () => {
cy.login();
cy.createAdminUnit().then(function (adminUnitId) {
cy.createIncomingReferenceRequest(adminUnitId).then(function (
referenceRequestId
) {
// Status
cy.visit("/reference_request/" + referenceRequestId + "/review_status");
cy.screenshot("status");
// Reject
cy.visit("/reference_request/" + referenceRequestId + "/review");
cy.screenshot("review");
cy.get(".decision-container .btn-danger").click();
cy.get("#rejectFormModal select[name=rejection_reason]")
.select("Nicht relevant")
.should("have.value", "4");
cy.get("#rejectFormModal").screenshot("reject");
cy.get("#rejectFormModal .btn-danger").click();
cy.url().should("include", "/reference_requests/incoming");
cy.get("div.alert").should(
"contain",
"Empfehlungsanfrage erfolgreich aktualisiert"
);
cy.get("main .badge-pill").should("contain", "Abgelehnt");
// Accept
cy.visit("/reference_request/" + referenceRequestId + "/review");
cy.get(".decision-container .btn-success").click();
cy.get("#acceptFormModal select[name=rating]")
.select("6")
.should("have.value", "60");
cy.get("#auto_verify").parent().click();
cy.get("#acceptFormModal").screenshot("accept");
cy.get("#acceptFormModal .btn-success").click();
cy.url().should("include", "/reference_requests/incoming");
cy.get("div.alert").should(
"contain",
"Empfehlung erfolgreich erstellt"
);
});
});
});
});

View File

@ -1,43 +0,0 @@
describe('Register', () => {
it('registers user', () => {
cy.visit('/register')
// Blank
cy.get('#submit').click()
cy.assertRequired('email')
cy.assertRequired('password')
cy.assertRequired('password_confirm')
cy.assertRequired('accept_tos')
// Email
cy.get('#email').type("invalidmail")
cy.assertInvalid('email', 'Geben Sie bitte eine gültige E-Mail-Adresse ein.')
cy.get('#email').clear().type("test@test.de")
cy.assertInvalid('email', 'Mit dieser E-Mail existiert bereits ein Account.')
cy.get('#email').clear().type("firstname.lastname@gmail.com")
cy.assertValid('email')
// Password
cy.get('#password').type("short")
cy.assertInvalid('password', 'Geben Sie bitte mindestens 8 Zeichen ein.')
cy.get('#password').clear().type("iloveoveda")
cy.assertValid('password')
// Confirm password
cy.get('#password_confirm').type("different")
cy.assertInvalid('password_confirm', 'Wiederholen Sie bitte denselben Wert.')
cy.get('#password_confirm').clear().type("iloveoveda")
cy.assertValid('password_confirm')
// Submit
cy.get('#accept_tos').check()
cy.get('#submit').click()
cy.url().should('eq', Cypress.config().baseUrl + '/')
cy.get('div.alert').should('contain', 'Bestätigungsanleitung')
})
})

View File

@ -1,10 +0,0 @@
describe('Relations', () => {
it('list', () => {
cy.login()
cy.createAdminUnit().then(function(adminUnitId) {
cy.createAdminUnit("test@test.de", "Other Crew").then(function(otherAdminUnitId) {
cy.visit('/manage/admin_unit/' + adminUnitId + "/relations")
})
})
})
})

View File

@ -0,0 +1,30 @@
describe("Root", () => {
it("simple", () => {
cy.visit("/");
cy.screenshot("home");
cy.visit("/tos");
cy.screenshot("tos");
cy.visit("/legal_notice");
cy.screenshot("legal_notice");
cy.visit("/contact");
cy.screenshot("contact");
cy.visit("/privacy");
cy.screenshot("privacy");
cy.visit("/developer");
cy.screenshot("developer");
});
it("example", () => {
cy.createAdminUnit("test@test.de", "Goslar").then(function (adminUnitId) {
cy.createEvent(adminUnitId).then(function (eventId) {
cy.visit("/example");
cy.screenshot("example");
});
});
});
});

View File

@ -0,0 +1,88 @@
describe("User", () => {
it("registers user", () => {
cy.visit("/register");
cy.screenshot("register");
// Blank
cy.get("#submit").click();
cy.assertRequired("email");
cy.assertRequired("password");
cy.assertRequired("password_confirm");
cy.assertRequired("accept_tos");
// Email
cy.get("#email").type("invalidmail");
cy.assertInvalid(
"email",
"Geben Sie bitte eine gültige E-Mail-Adresse ein."
);
cy.get("#email").clear().type("test@test.de");
cy.assertInvalid(
"email",
"Mit dieser E-Mail existiert bereits ein Account."
);
cy.get("#email").clear().type("firstname.lastname@gmail.com");
cy.assertValid("email");
// Password
cy.get("#password").type("short");
cy.assertInvalid("password", "Geben Sie bitte mindestens 8 Zeichen ein.");
cy.get("#password").clear().type("iloveoveda");
cy.assertValid("password");
// Confirm password
cy.get("#password_confirm").type("different");
cy.assertInvalid(
"password_confirm",
"Wiederholen Sie bitte denselben Wert."
);
cy.get("#password_confirm").clear().type("iloveoveda");
cy.assertValid("password_confirm");
// Submit
cy.get("#accept_tos").check();
cy.get("#submit").click();
cy.url().should("eq", Cypress.config().baseUrl + "/");
cy.get("div.alert").should("contain", "Bestätigungsanleitung");
});
it("login", () => {
cy.visit("/login");
cy.screenshot("login");
// Blank
cy.get("#submit").click();
cy.assertRequired("email");
cy.assertRequired("password");
// Email
cy.get("#email").type("invalidmail");
cy.assertInvalid(
"email",
"Geben Sie bitte eine gültige E-Mail-Adresse ein."
);
cy.get("#email").clear().type("test@test.de");
cy.assertValid("email");
// Password
cy.get("#password").type("password");
cy.assertValid("password");
// Submit
cy.get("#submit").click();
cy.url().should("include", "/manage");
cy.get("h1").should("contain", "Organisationen");
cy.getCookie("session").should("exist");
// Profile
cy.visit("/profile");
cy.screenshot("profile");
});
});

View File

@ -1,4 +1,21 @@
describe("Suggestion", () => { describe("Widget", () => {
it("event dates", () => {
cy.createAdminUnit().then(function (adminUnitId) {
cy.createEvent(adminUnitId).then(function (eventId) {
cy.visit("/meinecrew/widget/eventdates");
cy.screenshotDatepicker("#date_from-user");
cy.screenshot("eventdates");
cy.get(".stretched-link")
.invoke("attr", "href")
.then((href) => {
cy.visit(href);
cy.screenshot("event-date");
});
});
});
});
[ [
{ {
recurrence: false, recurrence: false,
@ -71,22 +88,4 @@ describe("Suggestion", () => {
} }
); );
}); });
it('reject', () => {
cy.login()
cy.createAdminUnit().then(function(adminUnitId) {
cy.createSuggestion(adminUnitId).then(function(suggestionId) {
cy.visit('/event_suggestion/' + suggestionId + '/review')
cy.get('.decision-container .btn-danger').click()
cy.get('#rejectFormModal select[name=rejection_resaon]').select('Duplikat').should('have.value', '1')
cy.screenshot()
cy.get('#rejectFormModal .btn-danger').click()
cy.url().should('include', '/reviews')
cy.get('div.alert').should('contain', 'Veranstaltungsvorschlag erfolgreich abgelehnt')
cy.get('main .badge-pill').should('contain', 'Abgelehnt')
})
})
})
}); });

View File

@ -11,12 +11,20 @@
// This function is called when a project is opened or re-opened (e.g. due to // This function is called when a project is opened or re-opened (e.g. due to
// the project's config changing) // the project's config changing)
const { renameSync } = require("fs");
/** /**
* @type {Cypress.PluginConfig} * @type {Cypress.PluginConfig}
*/ */
// eslint-disable-next-line no-unused-vars // eslint-disable-next-line no-unused-vars
module.exports = (on, config) => { module.exports = (on, config) => {
// `on` is used to hook into various events Cypress emits on("after:screenshot", ({ path }) => {
// `config` is the resolved Cypress config renameSync(
} path,
path
.replace(/ \(\d*\)/i, "")
.replace(".png", "-" + config.viewportWidth + ".png")
);
});
return config;
};

View File

@ -16,6 +16,20 @@ Cypress.Commands.add("setup", () => {
cy.logexec("flask user create test@test.de password --confirm"); cy.logexec("flask user create test@test.de password --confirm");
}); });
Cypress.Commands.add(
"createUser",
(email = "test@test.de", password = "password", admin = false) => {
let cmd = 'flask user create "' + email + '" "' + password + '" --confirm';
if (admin) {
cmd += " --admin";
}
return cy.logexec(cmd).then(function (result) {
let json = JSON.parse(result.stdout);
return json.user_id;
});
}
);
Cypress.Commands.add( Cypress.Commands.add(
"createAdminUnit", "createAdminUnit",
(userEmail = "test@test.de", name = "Meine Crew") => { (userEmail = "test@test.de", name = "Meine Crew") => {
@ -28,6 +42,37 @@ Cypress.Commands.add(
} }
); );
Cypress.Commands.add(
"createAdminUnitMemberInvitation",
(adminUnitId, userEmail = "new@test.de") => {
return cy
.logexec(
"flask test admin-unit-member-invitation-create " +
adminUnitId +
" " +
userEmail
)
.then(function (result) {
let json = JSON.parse(result.stdout);
return json.invitation_id;
});
}
);
Cypress.Commands.add(
"createAdminUnitMember",
(adminUnitId, userEmail = "new@test.de") => {
return cy
.logexec(
"flask test admin-unit-member-create " + adminUnitId + " " + userEmail
)
.then(function (result) {
let json = JSON.parse(result.stdout);
return json.member_id;
});
}
);
Cypress.Commands.add("createEvent", (adminUnitId) => { Cypress.Commands.add("createEvent", (adminUnitId) => {
return cy return cy
.logexec("flask test event-create " + adminUnitId) .logexec("flask test event-create " + adminUnitId)
@ -37,6 +82,38 @@ Cypress.Commands.add("createEvent", (adminUnitId) => {
}); });
}); });
Cypress.Commands.add("createEventPlace", (adminUnitId, name = "Mein Platz") => {
return cy
.logexec("flask test event-place-create " + adminUnitId + ' "' + name + '"')
.then(function (result) {
let json = JSON.parse(result.stdout);
return json.event_place_id;
});
});
Cypress.Commands.add(
"createEventOrganizer",
(adminUnitId, name = "Mein Veranstalter") => {
return cy
.logexec(
"flask test event-organizer-create " + adminUnitId + ' "' + name + '"'
)
.then(function (result) {
let json = JSON.parse(result.stdout);
return json.event_organizer_id;
});
}
);
Cypress.Commands.add("createOauth2Client", (userId) => {
return cy
.logexec("flask test oauth2-client-create " + userId)
.then(function (result) {
let json = JSON.parse(result.stdout);
return json;
});
});
Cypress.Commands.add("createIncomingReferenceRequest", (adminUnitId) => { Cypress.Commands.add("createIncomingReferenceRequest", (adminUnitId) => {
return cy return cy
.logexec("flask test reference-request-create-incoming " + adminUnitId) .logexec("flask test reference-request-create-incoming " + adminUnitId)
@ -46,6 +123,24 @@ Cypress.Commands.add("createIncomingReferenceRequest", (adminUnitId) => {
}); });
}); });
Cypress.Commands.add("createIncomingReference", (adminUnitId) => {
return cy
.logexec("flask test reference-create-incoming " + adminUnitId)
.then(function (result) {
let json = JSON.parse(result.stdout);
return json.reference_id;
});
});
Cypress.Commands.add("createAdminUnitRelation", (adminUnitId) => {
return cy
.logexec("flask test admin-unit-relation-create " + adminUnitId)
.then(function (result) {
let json = JSON.parse(result.stdout);
return json.relation_id;
});
});
Cypress.Commands.add("createSuggestion", (adminUnitId) => { Cypress.Commands.add("createSuggestion", (adminUnitId) => {
return cy return cy
.logexec("flask test suggestion-create " + adminUnitId) .logexec("flask test suggestion-create " + adminUnitId)
@ -107,10 +202,10 @@ Cypress.Commands.add(
Cypress.Commands.add("inputsShouldHaveSameValue", (input1, input2) => { Cypress.Commands.add("inputsShouldHaveSameValue", (input1, input2) => {
cy.get(input1) cy.get(input1)
.invoke("val") .invoke("val")
.then((value) => { .then((value) => {
cy.get(input2).should("have.value", value); cy.get(input2).should("have.value", value);
}); });
}); });
Cypress.Commands.add( Cypress.Commands.add(
@ -165,3 +260,54 @@ Cypress.Commands.add(
} }
} }
); );
Cypress.Commands.add(
"screenshotDatepicker",
(elementId, screenshotName = "datepicker") => {
cy.get(elementId).click();
cy.get("#ui-datepicker-div").should("be.visible");
cy.get(".ui-datepicker-next > .ui-icon").click();
cy.screenshot(screenshotName);
}
);
Cypress.Commands.add("authorize", (screenshot = false) => {
return cy.createUser("new@test.de", "password", true).then(function (userId) {
cy.createOauth2Client(userId).then(function (result) {
cy.login("new@test.de");
cy.visit(
"/oauth/authorize?nonce=4711&response_type=code&client_id=" +
result.oauth2_client_client_id +
"&scope=" +
result.oauth2_client_scope +
"&redirect_uri=/"
);
if (screenshot) {
cy.screenshot("authorize");
}
cy.get("#allow").click();
cy.url().should("not.include", "authorize");
cy.location().then((location) => {
const urlParams = new URLSearchParams(location.search);
const code = urlParams.get("code");
cy.request({
method: "POST",
url: "/oauth/token",
form: true,
body: {
client_id: result.oauth2_client_client_id,
client_secret: result.oauth2_client_secret,
grant_type: "authorization_code",
scope: result.oauth2_client_scope,
code: code,
redirect_uri: "/",
},
});
});
});
});
});

View File

@ -1,4 +1,7 @@
import "./commands"; import "./commands";
import failOnConsoleError from 'cypress-fail-on-console-error';
failOnConsoleError();
beforeEach(() => { beforeEach(() => {
cy.setup(); cy.setup();

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: 2021-08-30 23:19+0200\n" "POT-Creation-Date: 2021-09-02 10:13+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"
@ -158,6 +158,14 @@ msgid "Scope_event:write"
msgstr "" msgstr ""
#: project/i10n.py:48 #: project/i10n.py:48
msgid "Scope_organization:read"
msgstr ""
#: project/i10n.py:49
msgid "Scope_organization:write"
msgstr ""
#: project/i10n.py:50
msgid "There must be no self-reference." msgid "There must be no self-reference."
msgstr "" msgstr ""
@ -169,28 +177,28 @@ msgstr ""
msgid "." msgid "."
msgstr "" msgstr ""
#: project/api/__init__.py:83 #: project/api/__init__.py:84
msgid "message" msgid "message"
msgstr "" msgstr ""
#: project/forms/admin.py:10 project/templates/layout.html:335 #: project/forms/admin.py:10 project/templates/layout.html:307
#: project/views/root.py:42 #: project/views/root.py:42
msgid "Terms of service" msgid "Terms of service"
msgstr "" msgstr ""
#: project/forms/admin.py:11 project/templates/layout.html:339 #: project/forms/admin.py:11 project/templates/layout.html:311
#: project/views/root.py:50 #: project/views/root.py:50
msgid "Legal notice" msgid "Legal notice"
msgstr "" msgstr ""
#: project/forms/admin.py:12 project/templates/_macros.html:1356 #: project/forms/admin.py:12 project/templates/_macros.html:1356
#: project/templates/layout.html:343 #: project/templates/layout.html:315
#: project/templates/widget/event_suggestion/create.html:199 #: project/templates/widget/event_suggestion/create.html:204
#: project/views/admin_unit.py:36 project/views/root.py:58 #: project/views/admin_unit.py:36 project/views/root.py:58
msgid "Contact" msgid "Contact"
msgstr "" msgstr ""
#: project/forms/admin.py:13 project/templates/layout.html:347 #: project/forms/admin.py:13 project/templates/layout.html:319
#: project/views/root.py:66 #: project/views/root.py:66
msgid "Privacy" msgid "Privacy"
msgstr "" msgstr ""
@ -317,7 +325,8 @@ msgstr ""
msgid "Logo" msgid "Logo"
msgstr "" msgstr ""
#: project/forms/admin_unit.py:63 project/templates/admin_unit/create.html:13 #: project/forms/admin_unit.py:63 project/templates/admin_unit/create.html:5
#: project/templates/admin_unit/create.html:22
#: project/templates/manage/admin_units.html:18 #: project/templates/manage/admin_units.html:18
msgid "Create organization" msgid "Create organization"
msgstr "" msgstr ""
@ -472,9 +481,9 @@ msgstr ""
msgid "Indicate when the event will end. An event can last a maximum of 14 days." msgid "Indicate when the event will end. An event can last a maximum of 14 days."
msgstr "" msgstr ""
#: project/forms/event.py:82 project/templates/event/create.html:244 #: project/forms/event.py:82 project/templates/event/create.html:251
#: project/templates/event/update.html:135 #: project/templates/event/update.html:142
#: project/templates/widget/event_suggestion/create.html:234 #: project/templates/widget/event_suggestion/create.html:239
msgid "Recurring event" msgid "Recurring event"
msgstr "" msgstr ""
@ -551,7 +560,7 @@ msgid "If the participants needs to register for the event."
msgstr "" msgstr ""
#: project/forms/event.py:137 project/templates/_macros.html:276 #: project/forms/event.py:137 project/templates/_macros.html:276
#: project/templates/layout.html:159 #: project/templates/layout.html:130
msgid "Booked up" msgid "Booked up"
msgstr "" msgstr ""
@ -607,11 +616,11 @@ msgstr ""
msgid "EventAttendanceMode.offline" msgid "EventAttendanceMode.offline"
msgstr "" msgstr ""
#: project/forms/event.py:184 project/templates/layout.html:147 #: project/forms/event.py:184 project/templates/layout.html:118
msgid "EventAttendanceMode.online" msgid "EventAttendanceMode.online"
msgstr "" msgstr ""
#: project/forms/event.py:186 project/templates/layout.html:150 #: project/forms/event.py:186 project/templates/layout.html:121
msgid "EventAttendanceMode.mixed" msgid "EventAttendanceMode.mixed"
msgstr "" msgstr ""
@ -620,7 +629,7 @@ msgid "Choose how people can attend the event."
msgstr "" msgstr ""
#: project/forms/event.py:192 project/forms/event_place.py:27 #: project/forms/event.py:192 project/forms/event_place.py:27
#: project/templates/widget/event_suggestion/create.html:252 #: project/templates/widget/event_suggestion/create.html:257
msgid "Photo" msgid "Photo"
msgstr "" msgstr ""
@ -657,8 +666,8 @@ msgstr ""
#: project/forms/event.py:231 project/forms/reference.py:14 #: project/forms/event.py:231 project/forms/reference.py:14
#: project/forms/reference.py:27 project/forms/reference_request.py:76 #: project/forms/reference.py:27 project/forms/reference_request.py:76
#: project/templates/event/create.html:358 #: project/templates/event/create.html:365
#: project/templates/event/update.html:215 #: project/templates/event/update.html:222
msgid "Rating" msgid "Rating"
msgstr "" msgstr ""
@ -672,11 +681,11 @@ msgstr ""
#: project/forms/event.py:243 project/forms/event.py:252 #: project/forms/event.py:243 project/forms/event.py:252
#: project/forms/event.py:321 project/forms/event_suggestion.py:50 #: project/forms/event.py:321 project/forms/event_suggestion.py:50
#: project/templates/_macros.html:468 project/templates/_macros.html:624 #: project/templates/_macros.html:468 project/templates/_macros.html:624
#: project/templates/event/create.html:283 #: project/templates/event/create.html:290
#: project/templates/event/update.html:165 #: project/templates/event/update.html:172
#: project/templates/event_place/create.html:22 #: project/templates/event_place/create.html:31
#: project/templates/event_place/delete.html:13 #: project/templates/event_place/delete.html:13
#: project/templates/event_place/update.html:22 #: project/templates/event_place/update.html:31
msgid "Place" msgid "Place"
msgstr "" msgstr ""
@ -689,13 +698,13 @@ msgid "Enter new place"
msgstr "" msgstr ""
#: project/forms/event.py:259 project/forms/event.py:268 #: project/forms/event.py:259 project/forms/event.py:268
#: project/forms/event.py:329 project/forms/event.py:389 #: project/forms/event.py:329 project/forms/event.py:391
#: project/forms/event_suggestion.py:60 project/templates/_macros.html:506 #: project/forms/event_suggestion.py:60 project/templates/_macros.html:506
#: project/templates/_macros.html:661 project/templates/event/create.html:254 #: project/templates/_macros.html:661 project/templates/event/create.html:261
#: project/templates/event/update.html:156 #: project/templates/event/update.html:163
#: project/templates/organizer/create.html:18 #: project/templates/organizer/create.html:27
#: project/templates/organizer/delete.html:13 #: project/templates/organizer/delete.html:13
#: project/templates/organizer/update.html:18 #: project/templates/organizer/update.html:27
msgid "Organizer" msgid "Organizer"
msgstr "" msgstr ""
@ -735,7 +744,7 @@ msgid ""
"Organizers." "Organizers."
msgstr "" msgstr ""
#: project/forms/event.py:338 project/templates/event/update.html:145 #: project/forms/event.py:338 project/templates/event/update.html:152
#: project/templates/oauth2_token/list.html:21 #: project/templates/oauth2_token/list.html:21
msgid "Status" msgid "Status"
msgstr "" msgstr ""
@ -744,23 +753,23 @@ msgstr ""
msgid "EventStatus.scheduled" msgid "EventStatus.scheduled"
msgstr "" msgstr ""
#: project/forms/event.py:342 project/templates/layout.html:113 #: project/forms/event.py:342 project/templates/layout.html:84
#: project/templates/layout.html:128 #: project/templates/layout.html:99
msgid "EventStatus.cancelled" msgid "EventStatus.cancelled"
msgstr "" msgstr ""
#: project/forms/event.py:343 project/templates/layout.html:116 #: project/forms/event.py:343 project/templates/layout.html:87
#: project/templates/layout.html:131 #: project/templates/layout.html:102
msgid "EventStatus.movedOnline" msgid "EventStatus.movedOnline"
msgstr "" msgstr ""
#: project/forms/event.py:344 project/templates/layout.html:119 #: project/forms/event.py:344 project/templates/layout.html:90
#: project/templates/layout.html:134 #: project/templates/layout.html:105
msgid "EventStatus.postponed" msgid "EventStatus.postponed"
msgstr "" msgstr ""
#: project/forms/event.py:345 project/templates/layout.html:122 #: project/forms/event.py:345 project/templates/layout.html:93
#: project/templates/layout.html:137 #: project/templates/layout.html:108
msgid "EventStatus.rescheduled" msgid "EventStatus.rescheduled"
msgstr "" msgstr ""
@ -784,8 +793,8 @@ msgstr ""
msgid "Select the public status of the event." msgid "Select the public status of the event."
msgstr "" msgstr ""
#: project/forms/event.py:360 project/templates/event/update.html:4 #: project/forms/event.py:360 project/templates/event/update.html:5
#: project/templates/event/update.html:112 #: project/templates/event/update.html:119
msgid "Update event" msgid "Update event"
msgstr "" msgstr ""
@ -800,52 +809,54 @@ msgstr ""
msgid "From" msgid "From"
msgstr "" msgstr ""
#: project/forms/event.py:383 project/forms/event_date.py:16 #: project/forms/event.py:384 project/forms/event_date.py:17
#: project/forms/planing.py:15 #: project/forms/planing.py:16
msgid "to" msgid "to"
msgstr "" msgstr ""
#: project/forms/event.py:384 project/forms/event_date.py:17 #: project/forms/event.py:386 project/forms/event_date.py:19
msgid "Keyword" msgid "Keyword"
msgstr "" msgstr ""
#: project/forms/event.py:386 project/forms/event_date.py:19 #: project/forms/event.py:388 project/forms/event_date.py:21
#: project/forms/planing.py:17 project/templates/_macros.html:392 #: project/forms/planing.py:19 project/templates/_macros.html:392
msgid "Category" msgid "Category"
msgstr "" msgstr ""
#: project/forms/event.py:392 #: project/forms/event.py:394
msgid "Find events" msgid "Find events"
msgstr "" msgstr ""
#: project/forms/event_date.py:22 project/forms/planing.py:20 #: project/forms/event_date.py:24 project/forms/planing.py:22
#: project/templates/_macros.html:137 project/templates/_macros.html:326 #: project/templates/_macros.html:137 project/templates/_macros.html:326
#: project/templates/admin_unit/create.html:29 #: project/templates/admin_unit/create.html:38
#: project/templates/admin_unit/update.html:30 #: project/templates/admin_unit/update.html:39
#: project/templates/event_place/create.html:31 #: project/templates/event_place/create.html:40
#: project/templates/event_place/update.html:31 #: project/templates/event_place/update.html:40
#: project/templates/organizer/create.html:27 #: project/templates/organizer/create.html:36
#: project/templates/organizer/update.html:27 #: project/templates/organizer/update.html:36
msgid "Location" msgid "Location"
msgstr "" msgstr ""
#: project/forms/event_date.py:24 project/forms/planing.py:22 #: project/forms/event_date.py:26 project/forms/planing.py:24
msgid "Distance" msgid "Distance"
msgstr "" msgstr ""
#: project/forms/event_date.py:30 project/forms/planing.py:34 #: project/forms/event_date.py:32 project/forms/planing.py:36
#: project/templates/widget/event_date/list.html:53 #: project/templates/widget/event_date/list.html:60
msgid "Find" msgid "Find"
msgstr "" msgstr ""
#: project/forms/event_place.py:41 project/templates/event_place/create.html:12 #: project/forms/event_place.py:41 project/templates/event_place/create.html:5
#: project/templates/event_place/create.html:21
#: project/templates/event_place/list.html:11 #: project/templates/event_place/list.html:11
#: project/templates/manage/places.html:18 #: project/templates/manage/places.html:18
msgid "Create place" msgid "Create place"
msgstr "" msgstr ""
#: project/forms/event_place.py:45 project/templates/event_place/read.html:12 #: project/forms/event_place.py:45 project/templates/event_place/read.html:12
#: project/templates/event_place/update.html:12 #: project/templates/event_place/update.html:5
#: project/templates/event_place/update.html:21
msgid "Update place" msgid "Update place"
msgstr "" msgstr ""
@ -873,21 +884,21 @@ msgstr ""
msgid "I would like to be notified by email after the review" msgid "I would like to be notified by email after the review"
msgstr "" msgstr ""
#: project/forms/event_suggestion.py:52 project/templates/event/create.html:288 #: project/forms/event_suggestion.py:52 project/templates/event/create.html:295
msgid "" msgid ""
"Choose where the event takes place. If the venue is not yet in the list, " "Choose where the event takes place. If the venue is not yet in the list, "
"just enter it." "just enter it."
msgstr "" msgstr ""
#: project/forms/event_suggestion.py:62 project/templates/event/create.html:258 #: project/forms/event_suggestion.py:62 project/templates/event/create.html:265
msgid "" msgid ""
"Select the organizer. If the organizer is not yet on the list, just enter" "Select the organizer. If the organizer is not yet on the list, just enter"
" it." " it."
msgstr "" msgstr ""
#: project/forms/event_suggestion.py:78 #: project/forms/event_suggestion.py:78
#: project/templates/widget/event_suggestion/create.html:4 #: project/templates/widget/event_suggestion/create.html:5
#: project/templates/widget/event_suggestion/create.html:152 #: project/templates/widget/event_suggestion/create.html:157
msgid "Create event suggestion" msgid "Create event suggestion"
msgstr "" msgstr ""
@ -942,11 +953,13 @@ msgid "Revoke OAuth2 token"
msgstr "" msgstr ""
#: project/forms/organizer.py:43 project/templates/manage/organizers.html:12 #: project/forms/organizer.py:43 project/templates/manage/organizers.html:12
#: project/templates/organizer/create.html:12 #: project/templates/organizer/create.html:5
#: project/templates/organizer/create.html:21
msgid "Create organizer" msgid "Create organizer"
msgstr "" msgstr ""
#: project/forms/organizer.py:47 project/templates/organizer/update.html:12 #: project/forms/organizer.py:47 project/templates/organizer/update.html:5
#: project/templates/organizer/update.html:21
msgid "Update organizer" msgid "Update organizer"
msgstr "" msgstr ""
@ -954,15 +967,15 @@ msgstr ""
msgid "Delete organizer" msgid "Delete organizer"
msgstr "" msgstr ""
#: project/forms/planing.py:28 #: project/forms/planing.py:30
msgid "Weekdays" msgid "Weekdays"
msgstr "" msgstr ""
#: project/forms/reference.py:11 project/forms/reference_request.py:16 #: project/forms/reference.py:11 project/forms/reference_request.py:16
#: project/templates/_macros.html:527 project/templates/_macros.html:687 #: project/templates/_macros.html:527 project/templates/_macros.html:687
#: project/templates/admin_unit/create.html:19 #: project/templates/admin_unit/create.html:28
#: project/templates/admin_unit/update.html:20 #: project/templates/admin_unit/update.html:29
#: project/templates/layout.html:289 #: project/templates/layout.html:260
msgid "Organization" msgid "Organization"
msgstr "" msgstr ""
@ -1049,7 +1062,7 @@ msgstr ""
msgid "Deny" msgid "Deny"
msgstr "" msgstr ""
#: project/forms/widgets.py:137 #: project/forms/widgets.py:154
msgid "This field is required." msgid "This field is required."
msgstr "" msgstr ""
@ -1096,11 +1109,11 @@ msgstr ""
#: project/templates/_macros.html:408 project/templates/_macros.html:584 #: project/templates/_macros.html:408 project/templates/_macros.html:584
#: project/templates/event/actions.html:12 #: project/templates/event/actions.html:12
#: project/templates/event/create.html:228 #: project/templates/event/create.html:235
#: project/templates/event/delete.html:13 #: project/templates/event/delete.html:13
#: project/templates/event/update.html:119 #: project/templates/event/update.html:126
#: project/templates/reference/delete.html:13 #: project/templates/reference/delete.html:13
#: project/templates/widget/event_suggestion/create.html:224 #: project/templates/widget/event_suggestion/create.html:229
msgid "Event" msgid "Event"
msgstr "" msgstr ""
@ -1131,8 +1144,8 @@ 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:711 project/templates/event_date/list.html:4 #: project/templates/_macros.html:711 project/templates/event_date/list.html:5
#: project/templates/event_date/list.html:259 #: project/templates/event_date/list.html:278
#: project/templates/event_date/search.html:3 #: project/templates/event_date/search.html:3
#: project/templates/reference_request/review.html:32 #: project/templates/reference_request/review.html:32
msgid "Event Dates" msgid "Event Dates"
@ -1143,13 +1156,13 @@ msgid "Search location on Google"
msgstr "" msgstr ""
#: project/templates/_macros.html:845 project/templates/_macros.html:847 #: project/templates/_macros.html:845 project/templates/_macros.html:847
#: project/templates/event_date/list.html:280 #: project/templates/event_date/list.html:299
#: project/templates/widget/event_suggestion/create.html:188 #: project/templates/widget/event_suggestion/create.html:193
#: project/templates/widget/event_suggestion/create.html:213 #: project/templates/widget/event_suggestion/create.html:218
#: project/templates/widget/event_suggestion/create.html:241 #: project/templates/widget/event_suggestion/create.html:246
#: project/templates/widget/event_suggestion/create.html:264 #: project/templates/widget/event_suggestion/create.html:269
#: project/templates/widget/event_suggestion/create.html:297 #: project/templates/widget/event_suggestion/create.html:302
#: project/templates/widget/event_suggestion/create.html:326 #: project/templates/widget/event_suggestion/create.html:331
msgid "Previous" msgid "Previous"
msgstr "" msgstr ""
@ -1159,12 +1172,12 @@ msgid "Page %(page)d of %(pages)d (%(total)d total)"
msgstr "" msgstr ""
#: project/templates/_macros.html:851 project/templates/_macros.html:853 #: project/templates/_macros.html:851 project/templates/_macros.html:853
#: project/templates/event_date/list.html:282 #: project/templates/event_date/list.html:301
#: project/templates/widget/event_suggestion/create.html:189 #: project/templates/widget/event_suggestion/create.html:194
#: project/templates/widget/event_suggestion/create.html:214 #: project/templates/widget/event_suggestion/create.html:219
#: project/templates/widget/event_suggestion/create.html:242 #: project/templates/widget/event_suggestion/create.html:247
#: project/templates/widget/event_suggestion/create.html:265 #: project/templates/widget/event_suggestion/create.html:270
#: project/templates/widget/event_suggestion/create.html:298 #: project/templates/widget/event_suggestion/create.html:303
msgid "Next" msgid "Next"
msgstr "" msgstr ""
@ -1192,7 +1205,7 @@ msgstr ""
msgid "Edit event" msgid "Edit event"
msgstr "" msgstr ""
#: project/templates/_macros.html:1201 project/templates/manage/events.html:30 #: project/templates/_macros.html:1201 project/templates/manage/events.html:40
msgid "More" msgid "More"
msgstr "" msgstr ""
@ -1242,31 +1255,31 @@ msgstr ""
msgid "Register for free" msgid "Register for free"
msgstr "" msgstr ""
#: project/templates/event_place/read.html:22 project/templates/layout.html:206 #: project/templates/event_place/read.html:22 project/templates/layout.html:177
#: project/templates/layout.html:250 project/templates/manage/events.html:5 #: project/templates/layout.html:221 project/templates/manage/events.html:6
#: project/templates/manage/events.html:9 #: project/templates/manage/events.html:19
msgid "Events" msgid "Events"
msgstr "" msgstr ""
#: project/templates/layout.html:207 #: project/templates/layout.html:178
msgid "Planing" msgid "Planing"
msgstr "" msgstr ""
#: project/templates/layout.html:208 #: project/templates/layout.html:179
msgid "Example" msgid "Example"
msgstr "" 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:217 #: project/templates/layout.html:188
#: project/templates/manage/admin_units.html:3 #: project/templates/manage/admin_units.html:3
#: project/templates/manage/admin_units.html:16 #: project/templates/manage/admin_units.html:16
#: project/templates/profile.html:60 #: project/templates/profile.html:60
msgid "Organizations" msgid "Organizations"
msgstr "" msgstr ""
#: project/templates/layout.html:218 #: project/templates/layout.html:189
#: 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
@ -1276,92 +1289,97 @@ 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:221 #: project/templates/admin/users.html:10 project/templates/layout.html:192
msgid "Admin" msgid "Admin"
msgstr "" msgstr ""
#: project/templates/layout.html:225 #: project/templates/layout.html:196
msgid "Logout" msgid "Logout"
msgstr "" msgstr ""
#: project/templates/layout.html:256 #: project/templates/layout.html:227
msgid "Show events" msgid "Show events"
msgstr "" msgstr ""
#: project/templates/event/create.html:4 #: project/templates/event/create.html:5
#: project/templates/event/create.html:221 project/templates/layout.html:257 #: project/templates/event/create.html:228 project/templates/layout.html:228
#: project/templates/manage/events.html:12 #: project/templates/manage/events.html:22
#: project/templates/manage/organizers.html:21 #: project/templates/manage/organizers.html:21
msgid "Create event" msgid "Create event"
msgstr "" msgstr ""
#: project/templates/layout.html:260 #: project/templates/layout.html:231
msgid "Review suggestions" msgid "Review suggestions"
msgstr "" msgstr ""
#: project/templates/layout.html:270 #: project/templates/layout.html:241
#: 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:276 #: project/templates/layout.html:247
#: 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:277 #: project/templates/layout.html:248
#: 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:279 #: project/templates/layout.html:250
#: 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:284 #: project/templates/layout.html:255
#: 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:292 project/templates/manage/organizers.html:5 #: project/templates/layout.html:263 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:293 #: project/templates/event_place/list.html:7 project/templates/layout.html:264
#: 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:295 project/templates/manage/members.html:5 #: project/templates/layout.html:266 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:267 project/templates/manage/relations.html:3
msgid "Relations"
msgstr ""
#: project/templates/admin/admin.html:15 #: project/templates/admin/admin.html:15
#: project/templates/admin/settings.html:4 #: project/templates/admin/settings.html:4
#: project/templates/admin/settings.html:8 #: project/templates/admin/settings.html:8
#: project/templates/admin_unit/update.html:14 #: project/templates/admin_unit/update.html:6
#: project/templates/layout.html:296 project/templates/manage/widgets.html:12 #: project/templates/admin_unit/update.html:23
#: project/templates/layout.html:268 project/templates/manage/widgets.html:12
#: project/templates/profile.html:19 #: project/templates/profile.html:19
msgid "Settings" msgid "Settings"
msgstr "" msgstr ""
#: project/templates/layout.html:297 project/templates/manage/reviews.html:10 #: project/templates/layout.html:269 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:307 #: project/templates/layout.html:279
msgid "Switch organization" msgid "Switch organization"
msgstr "" msgstr ""
#: project/templates/developer/read.html:4 project/templates/layout.html:357 #: project/templates/developer/read.html:4 project/templates/layout.html:329
#: project/templates/profile.html:29 #: project/templates/profile.html:29
msgid "Developer" msgid "Developer"
msgstr "" msgstr ""
@ -1389,7 +1407,7 @@ msgstr ""
#: project/templates/admin/admin_units.html:27 #: project/templates/admin/admin_units.html:27
#: project/templates/admin/users.html:27 #: project/templates/admin/users.html:27
#: project/templates/manage/events.html:27 #: project/templates/manage/events.html:37
#: project/templates/manage/members.html:35 #: project/templates/manage/members.html:35
#: project/templates/manage/organizers.html:22 #: project/templates/manage/organizers.html:22
#: project/templates/manage/places.html:27 #: project/templates/manage/places.html:27
@ -1399,14 +1417,14 @@ msgstr ""
msgid "Edit" msgid "Edit"
msgstr "" msgstr ""
#: project/templates/admin_unit/create.html:49 #: project/templates/admin_unit/create.html:58
#: project/templates/admin_unit/update.html:50 #: project/templates/admin_unit/update.html:59
#: project/templates/event/create.html:346 #: project/templates/event/create.html:353
#: project/templates/event/update.html:203 #: project/templates/event/update.html:210
#: project/templates/event_place/create.html:48 #: project/templates/event_place/create.html:57
#: project/templates/event_place/update.html:48 #: project/templates/event_place/update.html:57
#: project/templates/organizer/create.html:47 #: project/templates/organizer/create.html:56
#: project/templates/organizer/update.html:47 #: project/templates/organizer/update.html:56
msgid "Additional information" msgid "Additional information"
msgstr "" msgstr ""
@ -1512,38 +1530,38 @@ msgstr ""
msgid "List all events of %(admin_unit_name)s" msgid "List all events of %(admin_unit_name)s"
msgstr "" msgstr ""
#: project/templates/event/create.html:90 #: project/templates/event/create.html:97
#: project/templates/event/update.html:76 #: project/templates/event/update.html:83
#: project/templates/widget/event_suggestion/create.html:99 #: project/templates/widget/event_suggestion/create.html:104
msgid "Enter place or address" msgid "Enter place or address"
msgstr "" msgstr ""
#: project/templates/event/create.html:176 #: project/templates/event/create.html:183
#: project/templates/event/update.html:99 #: project/templates/event/update.html:106
#: project/templates/widget/event_suggestion/create.html:124 #: project/templates/widget/event_suggestion/create.html:129
msgid "Enter organizer" msgid "Enter organizer"
msgstr "" msgstr ""
#: project/templates/event/create.html:238 #: project/templates/event/create.html:245
#: project/templates/event/update.html:129 #: project/templates/event/update.html:136
msgid "Event date" msgid "Event date"
msgstr "" msgstr ""
#: project/templates/event/create.html:275 #: project/templates/event/create.html:282
msgid "Switch to organizer search" msgid "Switch to organizer search"
msgstr "" msgstr ""
#: project/templates/event/create.html:308 #: project/templates/event/create.html:315
msgid "Switch to place search" msgid "Switch to place search"
msgstr "" msgstr ""
#: project/templates/event/create.html:319 #: project/templates/event/create.html:326
#: project/templates/event/update.html:176 #: project/templates/event/update.html:183
msgid "Access" msgid "Access"
msgstr "" msgstr ""
#: project/templates/event/create.html:333 #: project/templates/event/create.html:340
#: project/templates/event/update.html:190 #: project/templates/event/update.html:197
msgid "Target group" msgid "Target group"
msgstr "" msgstr ""
@ -1601,13 +1619,13 @@ msgstr ""
msgid "Member" msgid "Member"
msgstr "" msgstr ""
#: project/templates/manage/events.html:26 #: project/templates/manage/events.html:36
#: project/templates/manage/references_incoming.html:19 #: project/templates/manage/references_incoming.html:19
#: project/templates/manage/references_outgoing.html:19 #: project/templates/manage/references_outgoing.html:19
msgid "View" msgid "View"
msgstr "" msgstr ""
#: project/templates/manage/events.html:28 #: project/templates/manage/events.html:38
#: project/templates/manage/members.html:21 #: project/templates/manage/members.html:21
#: project/templates/manage/members.html:36 #: project/templates/manage/members.html:36
#: project/templates/manage/organizers.html:23 #: project/templates/manage/organizers.html:23
@ -1617,7 +1635,7 @@ msgstr ""
msgid "Delete" msgid "Delete"
msgstr "" msgstr ""
#: project/templates/manage/events.html:29 #: project/templates/manage/events.html:39
msgid "Duplicate" msgid "Duplicate"
msgstr "" msgstr ""
@ -1643,10 +1661,6 @@ msgstr ""
msgid "Show review status" msgid "Show review status"
msgstr "" msgstr ""
#: project/templates/manage/relations.html:3
msgid "Relations"
msgstr ""
#: project/templates/manage/reviews.html:5 #: project/templates/manage/reviews.html:5
#: project/templates/manage/reviews.html:9 #: project/templates/manage/reviews.html:9
msgid "Reviews" msgid "Reviews"
@ -1696,7 +1710,8 @@ msgstr ""
msgid "Revoke" msgid "Revoke"
msgstr "" msgstr ""
#: project/templates/planing/list.html:4 project/templates/planing/list.html:94 #: project/templates/planing/list.html:5
#: project/templates/planing/list.html:105
msgid "Event Planing" msgid "Event Planing"
msgstr "" msgstr ""
@ -1750,23 +1765,23 @@ msgstr ""
msgid "You do not have an account yet? Not a problem!" msgid "You do not have an account yet? Not a problem!"
msgstr "" msgstr ""
#: project/templates/widget/event_date/list.html:4 #: project/templates/widget/event_date/list.html:5
msgid "Widget" msgid "Widget"
msgstr "" msgstr ""
#: project/templates/widget/event_date/list.html:116 #: project/templates/widget/event_date/list.html:123
msgid "Print" msgid "Print"
msgstr "" msgstr ""
#: project/templates/widget/event_suggestion/create.html:170 #: project/templates/widget/event_suggestion/create.html:175
msgid "Continue as guest" msgid "Continue as guest"
msgstr "" msgstr ""
#: project/templates/widget/event_suggestion/create.html:275 #: project/templates/widget/event_suggestion/create.html:280
msgid "Optional details" msgid "Optional details"
msgstr "" msgstr ""
#: project/templates/widget/event_suggestion/create.html:308 #: project/templates/widget/event_suggestion/create.html:313
msgid "Preview" msgid "Preview"
msgstr "" msgstr ""
@ -1832,27 +1847,27 @@ msgstr ""
msgid "Invitation successfully deleted" msgid "Invitation successfully deleted"
msgstr "" msgstr ""
#: project/views/event.py:171 #: project/views/event.py:172
msgid "Event successfully published" msgid "Event successfully published"
msgstr "" msgstr ""
#: project/views/event.py:173 #: project/views/event.py:174
msgid "Draft successfully saved" msgid "Draft successfully saved"
msgstr "" msgstr ""
#: project/views/event.py:216 #: project/views/event.py:217
msgid "Event successfully updated" msgid "Event successfully updated"
msgstr "" msgstr ""
#: project/views/event.py:239 project/views/reference.py:162 #: project/views/event.py:240 project/views/reference.py:162
msgid "Entered name does not match event name" msgid "Entered name does not match event name"
msgstr "" msgstr ""
#: project/views/event.py:245 #: project/views/event.py:246
msgid "Event successfully deleted" msgid "Event successfully deleted"
msgstr "" msgstr ""
#: project/views/event.py:392 #: project/views/event.py:393
msgid "Referenced event changed" msgid "Referenced event changed"
msgstr "" msgstr ""
@ -1979,22 +1994,22 @@ msgid ""
"verified automatically." "verified automatically."
msgstr "" msgstr ""
#: project/views/utils.py:36 #: project/views/utils.py:54
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:83 #: project/views/utils.py:101
#, python-format #, python-format
msgid "Error in the %s field - %s" msgid "Error in the %s field - %s"
msgstr "" msgstr ""
#: project/views/utils.py:90 #: project/views/utils.py:108
msgid "Show" msgid "Show"
msgstr "" msgstr ""
#: project/views/utils.py:97 #: project/views/utils.py:115
msgid "You do not have permission for this action" msgid "You do not have permission for this action"
msgstr "" msgstr ""

389
package-lock.json generated
View File

@ -9,7 +9,8 @@
"version": "1.0.0", "version": "1.0.0",
"license": "ISC", "license": "ISC",
"devDependencies": { "devDependencies": {
"cypress": "^8.3.1" "cypress": "^8.3.1",
"cypress-fail-on-console-error": "^2.1.2"
} }
}, },
"node_modules/@cypress/request": { "node_modules/@cypress/request": {
@ -61,6 +62,41 @@
"ms": "^2.1.1" "ms": "^2.1.1"
} }
}, },
"node_modules/@sinonjs/commons": {
"version": "1.8.3",
"resolved": "https://registry.npmjs.org/@sinonjs/commons/-/commons-1.8.3.tgz",
"integrity": "sha512-xkNcLAn/wZaX14RPlwizcKicDk9G3F8m2nU3L7Ukm5zBgTwiT0wsoFAHx9Jq56fJA1z/7uKGtCRu16sOUCLIHQ==",
"dev": true,
"dependencies": {
"type-detect": "4.0.8"
}
},
"node_modules/@sinonjs/fake-timers": {
"version": "7.1.2",
"resolved": "https://registry.npmjs.org/@sinonjs/fake-timers/-/fake-timers-7.1.2.tgz",
"integrity": "sha512-iQADsW4LBMISqZ6Ci1dupJL9pprqwcVFTcOsEmQOEhW+KLCVn/Y4Jrvg2k19fIHCp+iFprriYPTdRcQR8NbUPg==",
"dev": true,
"dependencies": {
"@sinonjs/commons": "^1.7.0"
}
},
"node_modules/@sinonjs/samsam": {
"version": "6.0.2",
"resolved": "https://registry.npmjs.org/@sinonjs/samsam/-/samsam-6.0.2.tgz",
"integrity": "sha512-jxPRPp9n93ci7b8hMfJOFDPRLFYadN6FSpeROFTR4UNF4i5b+EK6m4QXPO46BDhFgRy1JuS87zAnFOzCUwMJcQ==",
"dev": true,
"dependencies": {
"@sinonjs/commons": "^1.6.0",
"lodash.get": "^4.4.2",
"type-detect": "^4.0.8"
}
},
"node_modules/@sinonjs/text-encoding": {
"version": "0.7.1",
"resolved": "https://registry.npmjs.org/@sinonjs/text-encoding/-/text-encoding-0.7.1.tgz",
"integrity": "sha512-+iTbntw2IZPb/anVDbypzfQa+ay64MW0Zo8aJ8gZPWMMK6/OubMVb6lUPMagqjOPnmtauXnFCACVl3O7ogjeqQ==",
"dev": true
},
"node_modules/@types/node": { "node_modules/@types/node": {
"version": "14.17.6", "version": "14.17.6",
"resolved": "https://registry.npmjs.org/@types/node/-/node-14.17.6.tgz", "resolved": "https://registry.npmjs.org/@types/node/-/node-14.17.6.tgz",
@ -204,6 +240,15 @@
"node": ">=0.8" "node": ">=0.8"
} }
}, },
"node_modules/assertion-error": {
"version": "1.1.0",
"resolved": "https://registry.npmjs.org/assertion-error/-/assertion-error-1.1.0.tgz",
"integrity": "sha512-jgsaNduz+ndvGyFt3uSuWqvy4lCnIJiovtouQN5JZHOKCS2QuhEdbcQHFhVksz2N2U9hXJo8odG7ETyWlEeuDw==",
"dev": true,
"engines": {
"node": "*"
}
},
"node_modules/astral-regex": { "node_modules/astral-regex": {
"version": "2.0.0", "version": "2.0.0",
"resolved": "https://registry.npmjs.org/astral-regex/-/astral-regex-2.0.0.tgz", "resolved": "https://registry.npmjs.org/astral-regex/-/astral-regex-2.0.0.tgz",
@ -310,6 +355,23 @@
"integrity": "sha1-G2gcIf+EAzyCZUMJBolCDRhxUdw=", "integrity": "sha1-G2gcIf+EAzyCZUMJBolCDRhxUdw=",
"dev": true "dev": true
}, },
"node_modules/chai": {
"version": "4.3.4",
"resolved": "https://registry.npmjs.org/chai/-/chai-4.3.4.tgz",
"integrity": "sha512-yS5H68VYOCtN1cjfwumDSuzn/9c+yza4f3reKXlE5rUg7SFcCEy90gJvydNgOYtblyf4Zi6jIWRnXOgErta0KA==",
"dev": true,
"dependencies": {
"assertion-error": "^1.1.0",
"check-error": "^1.0.2",
"deep-eql": "^3.0.1",
"get-func-name": "^2.0.0",
"pathval": "^1.1.1",
"type-detect": "^4.0.5"
},
"engines": {
"node": ">=4"
}
},
"node_modules/chalk": { "node_modules/chalk": {
"version": "4.1.2", "version": "4.1.2",
"resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz",
@ -338,6 +400,15 @@
"node": ">=8" "node": ">=8"
} }
}, },
"node_modules/check-error": {
"version": "1.0.2",
"resolved": "https://registry.npmjs.org/check-error/-/check-error-1.0.2.tgz",
"integrity": "sha1-V00xLt2Iu13YkS6Sht1sCu1KrII=",
"dev": true,
"engines": {
"node": "*"
}
},
"node_modules/check-more-types": { "node_modules/check-more-types": {
"version": "2.24.0", "version": "2.24.0",
"resolved": "https://registry.npmjs.org/check-more-types/-/check-more-types-2.24.0.tgz", "resolved": "https://registry.npmjs.org/check-more-types/-/check-more-types-2.24.0.tgz",
@ -552,6 +623,17 @@
"node": ">=12.0.0" "node": ">=12.0.0"
} }
}, },
"node_modules/cypress-fail-on-console-error": {
"version": "2.1.2",
"resolved": "https://registry.npmjs.org/cypress-fail-on-console-error/-/cypress-fail-on-console-error-2.1.2.tgz",
"integrity": "sha512-bRmKTqvXLu6oZq/5jOgFarn7e7+O/Ic2XjlOPstOYpns8FLeVAnXAUcoUVeV8GW+fm//x38vq/voI5Ij4+TAbg==",
"dev": true,
"dependencies": {
"chai": "^4.3.4",
"sinon": "^11.1.2",
"sinon-chai": "^3.7.0"
}
},
"node_modules/dashdash": { "node_modules/dashdash": {
"version": "1.14.1", "version": "1.14.1",
"resolved": "https://registry.npmjs.org/dashdash/-/dashdash-1.14.1.tgz", "resolved": "https://registry.npmjs.org/dashdash/-/dashdash-1.14.1.tgz",
@ -587,6 +669,18 @@
} }
} }
}, },
"node_modules/deep-eql": {
"version": "3.0.1",
"resolved": "https://registry.npmjs.org/deep-eql/-/deep-eql-3.0.1.tgz",
"integrity": "sha512-+QeIQyN5ZuO+3Uk5DYh6/1eKO0m0YmJFGNmFHGACpf1ClL1nmlV/p4gNgbl2pJGxgXb4faqo6UE+M5ACEMyVcw==",
"dev": true,
"dependencies": {
"type-detect": "^4.0.0"
},
"engines": {
"node": ">=0.12"
}
},
"node_modules/delayed-stream": { "node_modules/delayed-stream": {
"version": "1.0.0", "version": "1.0.0",
"resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz",
@ -596,6 +690,15 @@
"node": ">=0.4.0" "node": ">=0.4.0"
} }
}, },
"node_modules/diff": {
"version": "5.0.0",
"resolved": "https://registry.npmjs.org/diff/-/diff-5.0.0.tgz",
"integrity": "sha512-/VTCrvm5Z0JGty/BWHljh+BAiw3IK+2j87NGMu8Nwc/f48WoDAC395uomO9ZD117ZOBaHmkX1oyLvkVM/aIT3w==",
"dev": true,
"engines": {
"node": ">=0.3.1"
}
},
"node_modules/ecc-jsbn": { "node_modules/ecc-jsbn": {
"version": "0.1.2", "version": "0.1.2",
"resolved": "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz", "resolved": "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz",
@ -798,6 +901,15 @@
"integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=", "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=",
"dev": true "dev": true
}, },
"node_modules/get-func-name": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/get-func-name/-/get-func-name-2.0.0.tgz",
"integrity": "sha1-6td0q+5y4gQJQzoGY2YCPdaIekE=",
"dev": true,
"engines": {
"node": "*"
}
},
"node_modules/get-stream": { "node_modules/get-stream": {
"version": "5.2.0", "version": "5.2.0",
"resolved": "https://registry.npmjs.org/get-stream/-/get-stream-5.2.0.tgz", "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-5.2.0.tgz",
@ -1038,6 +1150,12 @@
"url": "https://github.com/sponsors/sindresorhus" "url": "https://github.com/sponsors/sindresorhus"
} }
}, },
"node_modules/isarray": {
"version": "0.0.1",
"resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz",
"integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8=",
"dev": true
},
"node_modules/isexe": { "node_modules/isexe": {
"version": "2.0.0", "version": "2.0.0",
"resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz",
@ -1101,6 +1219,12 @@
"verror": "1.10.0" "verror": "1.10.0"
} }
}, },
"node_modules/just-extend": {
"version": "4.2.1",
"resolved": "https://registry.npmjs.org/just-extend/-/just-extend-4.2.1.tgz",
"integrity": "sha512-g3UB796vUFIY90VIv/WX3L2c8CS2MdWUww3CNrYmqza1Fg0DURc2K/O4YrnklBdQarSJ/y8JnJYDGc+1iumQjg==",
"dev": true
},
"node_modules/lazy-ass": { "node_modules/lazy-ass": {
"version": "1.6.0", "version": "1.6.0",
"resolved": "https://registry.npmjs.org/lazy-ass/-/lazy-ass-1.6.0.tgz", "resolved": "https://registry.npmjs.org/lazy-ass/-/lazy-ass-1.6.0.tgz",
@ -1137,6 +1261,12 @@
"integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==", "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==",
"dev": true "dev": true
}, },
"node_modules/lodash.get": {
"version": "4.4.2",
"resolved": "https://registry.npmjs.org/lodash.get/-/lodash.get-4.4.2.tgz",
"integrity": "sha1-LRd/ZS+jHpObRDjVNBSZ36OCXpk=",
"dev": true
},
"node_modules/lodash.once": { "node_modules/lodash.once": {
"version": "4.1.1", "version": "4.1.1",
"resolved": "https://registry.npmjs.org/lodash.once/-/lodash.once-4.1.1.tgz", "resolved": "https://registry.npmjs.org/lodash.once/-/lodash.once-4.1.1.tgz",
@ -1268,6 +1398,19 @@
"integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==",
"dev": true "dev": true
}, },
"node_modules/nise": {
"version": "5.1.0",
"resolved": "https://registry.npmjs.org/nise/-/nise-5.1.0.tgz",
"integrity": "sha512-W5WlHu+wvo3PaKLsJJkgPup2LrsXCcm7AWwyNZkUnn5rwPkuPBi3Iwk5SQtN0mv+K65k7nKKjwNQ30wg3wLAQQ==",
"dev": true,
"dependencies": {
"@sinonjs/commons": "^1.7.0",
"@sinonjs/fake-timers": "^7.0.4",
"@sinonjs/text-encoding": "^0.7.1",
"just-extend": "^4.0.2",
"path-to-regexp": "^1.7.0"
}
},
"node_modules/npm-run-path": { "node_modules/npm-run-path": {
"version": "4.0.1", "version": "4.0.1",
"resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-4.0.1.tgz", "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-4.0.1.tgz",
@ -1352,6 +1495,24 @@
"node": ">=8" "node": ">=8"
} }
}, },
"node_modules/path-to-regexp": {
"version": "1.8.0",
"resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-1.8.0.tgz",
"integrity": "sha512-n43JRhlUKUAlibEJhPeir1ncUID16QnEjNpwzNdO3Lm4ywrBpBZ5oLD0I6br9evr1Y9JTqwRtAh7JLoOzAQdVA==",
"dev": true,
"dependencies": {
"isarray": "0.0.1"
}
},
"node_modules/pathval": {
"version": "1.1.1",
"resolved": "https://registry.npmjs.org/pathval/-/pathval-1.1.1.tgz",
"integrity": "sha512-Dp6zGqpTdETdR63lehJYPeIOqpiNBNtc7BpWSLrOje7UaIsE5aY92r/AunQA7rsXvet3lrJ3JnZX29UPTKXyKQ==",
"dev": true,
"engines": {
"node": "*"
}
},
"node_modules/pend": { "node_modules/pend": {
"version": "1.2.0", "version": "1.2.0",
"resolved": "https://registry.npmjs.org/pend/-/pend-1.2.0.tgz", "resolved": "https://registry.npmjs.org/pend/-/pend-1.2.0.tgz",
@ -1537,6 +1698,46 @@
"integrity": "sha512-VUJ49FC8U1OxwZLxIbTTrDvLnf/6TDgxZcK8wxR8zs13xpx7xbG60ndBlhNrFi2EMuFRoeDoJO7wthSLq42EjA==", "integrity": "sha512-VUJ49FC8U1OxwZLxIbTTrDvLnf/6TDgxZcK8wxR8zs13xpx7xbG60ndBlhNrFi2EMuFRoeDoJO7wthSLq42EjA==",
"dev": true "dev": true
}, },
"node_modules/sinon": {
"version": "11.1.2",
"resolved": "https://registry.npmjs.org/sinon/-/sinon-11.1.2.tgz",
"integrity": "sha512-59237HChms4kg7/sXhiRcUzdSkKuydDeTiamT/jesUVHshBgL8XAmhgFo0GfK6RruMDM/iRSij1EybmMog9cJw==",
"dev": true,
"dependencies": {
"@sinonjs/commons": "^1.8.3",
"@sinonjs/fake-timers": "^7.1.2",
"@sinonjs/samsam": "^6.0.2",
"diff": "^5.0.0",
"nise": "^5.1.0",
"supports-color": "^7.2.0"
},
"funding": {
"type": "opencollective",
"url": "https://opencollective.com/sinon"
}
},
"node_modules/sinon-chai": {
"version": "3.7.0",
"resolved": "https://registry.npmjs.org/sinon-chai/-/sinon-chai-3.7.0.tgz",
"integrity": "sha512-mf5NURdUaSdnatJx3uhoBOrY9dtL19fiOtAdT1Azxg3+lNJFiuN0uzaU3xX1LeAfL17kHQhTAJgpsfhbMJMY2g==",
"dev": true,
"peerDependencies": {
"chai": "^4.0.0",
"sinon": ">=4.0.0"
}
},
"node_modules/sinon/node_modules/supports-color": {
"version": "7.2.0",
"resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz",
"integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==",
"dev": true,
"dependencies": {
"has-flag": "^4.0.0"
},
"engines": {
"node": ">=8"
}
},
"node_modules/slice-ansi": { "node_modules/slice-ansi": {
"version": "3.0.0", "version": "3.0.0",
"resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-3.0.0.tgz", "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-3.0.0.tgz",
@ -1687,6 +1888,15 @@
"integrity": "sha1-WuaBd/GS1EViadEIr6k/+HQ/T2Q=", "integrity": "sha1-WuaBd/GS1EViadEIr6k/+HQ/T2Q=",
"dev": true "dev": true
}, },
"node_modules/type-detect": {
"version": "4.0.8",
"resolved": "https://registry.npmjs.org/type-detect/-/type-detect-4.0.8.tgz",
"integrity": "sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g==",
"dev": true,
"engines": {
"node": ">=4"
}
},
"node_modules/type-fest": { "node_modules/type-fest": {
"version": "0.21.3", "version": "0.21.3",
"resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.21.3.tgz", "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.21.3.tgz",
@ -1863,6 +2073,41 @@
} }
} }
}, },
"@sinonjs/commons": {
"version": "1.8.3",
"resolved": "https://registry.npmjs.org/@sinonjs/commons/-/commons-1.8.3.tgz",
"integrity": "sha512-xkNcLAn/wZaX14RPlwizcKicDk9G3F8m2nU3L7Ukm5zBgTwiT0wsoFAHx9Jq56fJA1z/7uKGtCRu16sOUCLIHQ==",
"dev": true,
"requires": {
"type-detect": "4.0.8"
}
},
"@sinonjs/fake-timers": {
"version": "7.1.2",
"resolved": "https://registry.npmjs.org/@sinonjs/fake-timers/-/fake-timers-7.1.2.tgz",
"integrity": "sha512-iQADsW4LBMISqZ6Ci1dupJL9pprqwcVFTcOsEmQOEhW+KLCVn/Y4Jrvg2k19fIHCp+iFprriYPTdRcQR8NbUPg==",
"dev": true,
"requires": {
"@sinonjs/commons": "^1.7.0"
}
},
"@sinonjs/samsam": {
"version": "6.0.2",
"resolved": "https://registry.npmjs.org/@sinonjs/samsam/-/samsam-6.0.2.tgz",
"integrity": "sha512-jxPRPp9n93ci7b8hMfJOFDPRLFYadN6FSpeROFTR4UNF4i5b+EK6m4QXPO46BDhFgRy1JuS87zAnFOzCUwMJcQ==",
"dev": true,
"requires": {
"@sinonjs/commons": "^1.6.0",
"lodash.get": "^4.4.2",
"type-detect": "^4.0.8"
}
},
"@sinonjs/text-encoding": {
"version": "0.7.1",
"resolved": "https://registry.npmjs.org/@sinonjs/text-encoding/-/text-encoding-0.7.1.tgz",
"integrity": "sha512-+iTbntw2IZPb/anVDbypzfQa+ay64MW0Zo8aJ8gZPWMMK6/OubMVb6lUPMagqjOPnmtauXnFCACVl3O7ogjeqQ==",
"dev": true
},
"@types/node": { "@types/node": {
"version": "14.17.6", "version": "14.17.6",
"resolved": "https://registry.npmjs.org/@types/node/-/node-14.17.6.tgz", "resolved": "https://registry.npmjs.org/@types/node/-/node-14.17.6.tgz",
@ -1964,6 +2209,12 @@
"integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=", "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=",
"dev": true "dev": true
}, },
"assertion-error": {
"version": "1.1.0",
"resolved": "https://registry.npmjs.org/assertion-error/-/assertion-error-1.1.0.tgz",
"integrity": "sha512-jgsaNduz+ndvGyFt3uSuWqvy4lCnIJiovtouQN5JZHOKCS2QuhEdbcQHFhVksz2N2U9hXJo8odG7ETyWlEeuDw==",
"dev": true
},
"astral-regex": { "astral-regex": {
"version": "2.0.0", "version": "2.0.0",
"resolved": "https://registry.npmjs.org/astral-regex/-/astral-regex-2.0.0.tgz", "resolved": "https://registry.npmjs.org/astral-regex/-/astral-regex-2.0.0.tgz",
@ -2055,6 +2306,20 @@
"integrity": "sha1-G2gcIf+EAzyCZUMJBolCDRhxUdw=", "integrity": "sha1-G2gcIf+EAzyCZUMJBolCDRhxUdw=",
"dev": true "dev": true
}, },
"chai": {
"version": "4.3.4",
"resolved": "https://registry.npmjs.org/chai/-/chai-4.3.4.tgz",
"integrity": "sha512-yS5H68VYOCtN1cjfwumDSuzn/9c+yza4f3reKXlE5rUg7SFcCEy90gJvydNgOYtblyf4Zi6jIWRnXOgErta0KA==",
"dev": true,
"requires": {
"assertion-error": "^1.1.0",
"check-error": "^1.0.2",
"deep-eql": "^3.0.1",
"get-func-name": "^2.0.0",
"pathval": "^1.1.1",
"type-detect": "^4.0.5"
}
},
"chalk": { "chalk": {
"version": "4.1.2", "version": "4.1.2",
"resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz",
@ -2076,6 +2341,12 @@
} }
} }
}, },
"check-error": {
"version": "1.0.2",
"resolved": "https://registry.npmjs.org/check-error/-/check-error-1.0.2.tgz",
"integrity": "sha1-V00xLt2Iu13YkS6Sht1sCu1KrII=",
"dev": true
},
"check-more-types": { "check-more-types": {
"version": "2.24.0", "version": "2.24.0",
"resolved": "https://registry.npmjs.org/check-more-types/-/check-more-types-2.24.0.tgz", "resolved": "https://registry.npmjs.org/check-more-types/-/check-more-types-2.24.0.tgz",
@ -2245,6 +2516,17 @@
"yauzl": "^2.10.0" "yauzl": "^2.10.0"
} }
}, },
"cypress-fail-on-console-error": {
"version": "2.1.2",
"resolved": "https://registry.npmjs.org/cypress-fail-on-console-error/-/cypress-fail-on-console-error-2.1.2.tgz",
"integrity": "sha512-bRmKTqvXLu6oZq/5jOgFarn7e7+O/Ic2XjlOPstOYpns8FLeVAnXAUcoUVeV8GW+fm//x38vq/voI5Ij4+TAbg==",
"dev": true,
"requires": {
"chai": "^4.3.4",
"sinon": "^11.1.2",
"sinon-chai": "^3.7.0"
}
},
"dashdash": { "dashdash": {
"version": "1.14.1", "version": "1.14.1",
"resolved": "https://registry.npmjs.org/dashdash/-/dashdash-1.14.1.tgz", "resolved": "https://registry.npmjs.org/dashdash/-/dashdash-1.14.1.tgz",
@ -2269,12 +2551,27 @@
"ms": "2.1.2" "ms": "2.1.2"
} }
}, },
"deep-eql": {
"version": "3.0.1",
"resolved": "https://registry.npmjs.org/deep-eql/-/deep-eql-3.0.1.tgz",
"integrity": "sha512-+QeIQyN5ZuO+3Uk5DYh6/1eKO0m0YmJFGNmFHGACpf1ClL1nmlV/p4gNgbl2pJGxgXb4faqo6UE+M5ACEMyVcw==",
"dev": true,
"requires": {
"type-detect": "^4.0.0"
}
},
"delayed-stream": { "delayed-stream": {
"version": "1.0.0", "version": "1.0.0",
"resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz",
"integrity": "sha1-3zrhmayt+31ECqrgsp4icrJOxhk=", "integrity": "sha1-3zrhmayt+31ECqrgsp4icrJOxhk=",
"dev": true "dev": true
}, },
"diff": {
"version": "5.0.0",
"resolved": "https://registry.npmjs.org/diff/-/diff-5.0.0.tgz",
"integrity": "sha512-/VTCrvm5Z0JGty/BWHljh+BAiw3IK+2j87NGMu8Nwc/f48WoDAC395uomO9ZD117ZOBaHmkX1oyLvkVM/aIT3w==",
"dev": true
},
"ecc-jsbn": { "ecc-jsbn": {
"version": "0.1.2", "version": "0.1.2",
"resolved": "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz", "resolved": "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz",
@ -2436,6 +2733,12 @@
"integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=", "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=",
"dev": true "dev": true
}, },
"get-func-name": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/get-func-name/-/get-func-name-2.0.0.tgz",
"integrity": "sha1-6td0q+5y4gQJQzoGY2YCPdaIekE=",
"dev": true
},
"get-stream": { "get-stream": {
"version": "5.2.0", "version": "5.2.0",
"resolved": "https://registry.npmjs.org/get-stream/-/get-stream-5.2.0.tgz", "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-5.2.0.tgz",
@ -2608,6 +2911,12 @@
"integrity": "sha512-knxG2q4UC3u8stRGyAVJCOdxFmv5DZiRcdlIaAQXAbSfJya+OhopNotLQrstBhququ4ZpuKbDc/8S6mgXgPFPw==", "integrity": "sha512-knxG2q4UC3u8stRGyAVJCOdxFmv5DZiRcdlIaAQXAbSfJya+OhopNotLQrstBhququ4ZpuKbDc/8S6mgXgPFPw==",
"dev": true "dev": true
}, },
"isarray": {
"version": "0.0.1",
"resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz",
"integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8=",
"dev": true
},
"isexe": { "isexe": {
"version": "2.0.0", "version": "2.0.0",
"resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz",
@ -2666,6 +2975,12 @@
"verror": "1.10.0" "verror": "1.10.0"
} }
}, },
"just-extend": {
"version": "4.2.1",
"resolved": "https://registry.npmjs.org/just-extend/-/just-extend-4.2.1.tgz",
"integrity": "sha512-g3UB796vUFIY90VIv/WX3L2c8CS2MdWUww3CNrYmqza1Fg0DURc2K/O4YrnklBdQarSJ/y8JnJYDGc+1iumQjg==",
"dev": true
},
"lazy-ass": { "lazy-ass": {
"version": "1.6.0", "version": "1.6.0",
"resolved": "https://registry.npmjs.org/lazy-ass/-/lazy-ass-1.6.0.tgz", "resolved": "https://registry.npmjs.org/lazy-ass/-/lazy-ass-1.6.0.tgz",
@ -2693,6 +3008,12 @@
"integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==", "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==",
"dev": true "dev": true
}, },
"lodash.get": {
"version": "4.4.2",
"resolved": "https://registry.npmjs.org/lodash.get/-/lodash.get-4.4.2.tgz",
"integrity": "sha1-LRd/ZS+jHpObRDjVNBSZ36OCXpk=",
"dev": true
},
"lodash.once": { "lodash.once": {
"version": "4.1.1", "version": "4.1.1",
"resolved": "https://registry.npmjs.org/lodash.once/-/lodash.once-4.1.1.tgz", "resolved": "https://registry.npmjs.org/lodash.once/-/lodash.once-4.1.1.tgz",
@ -2793,6 +3114,19 @@
"integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==",
"dev": true "dev": true
}, },
"nise": {
"version": "5.1.0",
"resolved": "https://registry.npmjs.org/nise/-/nise-5.1.0.tgz",
"integrity": "sha512-W5WlHu+wvo3PaKLsJJkgPup2LrsXCcm7AWwyNZkUnn5rwPkuPBi3Iwk5SQtN0mv+K65k7nKKjwNQ30wg3wLAQQ==",
"dev": true,
"requires": {
"@sinonjs/commons": "^1.7.0",
"@sinonjs/fake-timers": "^7.0.4",
"@sinonjs/text-encoding": "^0.7.1",
"just-extend": "^4.0.2",
"path-to-regexp": "^1.7.0"
}
},
"npm-run-path": { "npm-run-path": {
"version": "4.0.1", "version": "4.0.1",
"resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-4.0.1.tgz", "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-4.0.1.tgz",
@ -2853,6 +3187,21 @@
"integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==",
"dev": true "dev": true
}, },
"path-to-regexp": {
"version": "1.8.0",
"resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-1.8.0.tgz",
"integrity": "sha512-n43JRhlUKUAlibEJhPeir1ncUID16QnEjNpwzNdO3Lm4ywrBpBZ5oLD0I6br9evr1Y9JTqwRtAh7JLoOzAQdVA==",
"dev": true,
"requires": {
"isarray": "0.0.1"
}
},
"pathval": {
"version": "1.1.1",
"resolved": "https://registry.npmjs.org/pathval/-/pathval-1.1.1.tgz",
"integrity": "sha512-Dp6zGqpTdETdR63lehJYPeIOqpiNBNtc7BpWSLrOje7UaIsE5aY92r/AunQA7rsXvet3lrJ3JnZX29UPTKXyKQ==",
"dev": true
},
"pend": { "pend": {
"version": "1.2.0", "version": "1.2.0",
"resolved": "https://registry.npmjs.org/pend/-/pend-1.2.0.tgz", "resolved": "https://registry.npmjs.org/pend/-/pend-1.2.0.tgz",
@ -2987,6 +3336,38 @@
"integrity": "sha512-VUJ49FC8U1OxwZLxIbTTrDvLnf/6TDgxZcK8wxR8zs13xpx7xbG60ndBlhNrFi2EMuFRoeDoJO7wthSLq42EjA==", "integrity": "sha512-VUJ49FC8U1OxwZLxIbTTrDvLnf/6TDgxZcK8wxR8zs13xpx7xbG60ndBlhNrFi2EMuFRoeDoJO7wthSLq42EjA==",
"dev": true "dev": true
}, },
"sinon": {
"version": "11.1.2",
"resolved": "https://registry.npmjs.org/sinon/-/sinon-11.1.2.tgz",
"integrity": "sha512-59237HChms4kg7/sXhiRcUzdSkKuydDeTiamT/jesUVHshBgL8XAmhgFo0GfK6RruMDM/iRSij1EybmMog9cJw==",
"dev": true,
"requires": {
"@sinonjs/commons": "^1.8.3",
"@sinonjs/fake-timers": "^7.1.2",
"@sinonjs/samsam": "^6.0.2",
"diff": "^5.0.0",
"nise": "^5.1.0",
"supports-color": "^7.2.0"
},
"dependencies": {
"supports-color": {
"version": "7.2.0",
"resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz",
"integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==",
"dev": true,
"requires": {
"has-flag": "^4.0.0"
}
}
}
},
"sinon-chai": {
"version": "3.7.0",
"resolved": "https://registry.npmjs.org/sinon-chai/-/sinon-chai-3.7.0.tgz",
"integrity": "sha512-mf5NURdUaSdnatJx3uhoBOrY9dtL19fiOtAdT1Azxg3+lNJFiuN0uzaU3xX1LeAfL17kHQhTAJgpsfhbMJMY2g==",
"dev": true,
"requires": {}
},
"slice-ansi": { "slice-ansi": {
"version": "3.0.0", "version": "3.0.0",
"resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-3.0.0.tgz", "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-3.0.0.tgz",
@ -3102,6 +3483,12 @@
"integrity": "sha1-WuaBd/GS1EViadEIr6k/+HQ/T2Q=", "integrity": "sha1-WuaBd/GS1EViadEIr6k/+HQ/T2Q=",
"dev": true "dev": true
}, },
"type-detect": {
"version": "4.0.8",
"resolved": "https://registry.npmjs.org/type-detect/-/type-detect-4.0.8.tgz",
"integrity": "sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g==",
"dev": true
},
"type-fest": { "type-fest": {
"version": "0.21.3", "version": "0.21.3",
"resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.21.3.tgz", "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.21.3.tgz",

View File

@ -22,6 +22,7 @@
}, },
"homepage": "https://github.com/DanielGrams/gsevpt#readme", "homepage": "https://github.com/DanielGrams/gsevpt#readme",
"devDependencies": { "devDependencies": {
"cypress": "^8.3.1" "cypress": "^8.3.1",
"cypress-fail-on-console-error": "^2.1.2"
} }
} }

View File

@ -6,21 +6,31 @@ from flask_security.confirmable import confirm_user
from sqlalchemy import MetaData from sqlalchemy import MetaData
from project import app, db from project import app, db
from project.api import scope_list
from project.init_data import create_initial_data from project.init_data import create_initial_data
from project.models import ( from project.models import (
AdminUnit, AdminUnit,
Event, Event,
EventAttendanceMode, EventAttendanceMode,
EventReference,
EventReferenceRequest, EventReferenceRequest,
EventReferenceRequestReviewStatus, EventReferenceRequestReviewStatus,
EventSuggestion, EventSuggestion,
Location, Location,
OAuth2Client,
)
from project.services.admin_unit import (
add_user_to_admin_unit_with_roles,
get_admin_unit_by_id,
insert_admin_unit_for_user,
insert_admin_unit_member_invitation,
upsert_admin_unit_relation,
) )
from project.services.admin_unit import get_admin_unit_by_id, insert_admin_unit_for_user
from project.services.event import insert_event, upsert_event_category from project.services.event import insert_event, upsert_event_category
from project.services.event_suggestion import insert_event_suggestion from project.services.event_suggestion import insert_event_suggestion
from project.services.organizer import get_event_organizer from project.services.oauth2_client import complete_oauth2_client
from project.services.place import get_event_places from project.services.organizer import get_event_organizer, upsert_event_organizer
from project.services.place import get_event_places, upsert_event_place
from project.services.user import create_user, find_user_by_email, get_user from project.services.user import create_user, find_user_by_email, get_user
test_cli = AppGroup("test") test_cli = AppGroup("test")
@ -124,6 +134,27 @@ def create_admin_unit(user_email, name):
click.echo(json.dumps(result)) click.echo(json.dumps(result))
@test_cli.command("admin-unit-member-invitation-create")
@click.argument("admin_unit_id")
@click.argument("email")
def create_admin_unit_member_invitation(admin_unit_id, email):
invitation = insert_admin_unit_member_invitation(admin_unit_id, email, [])
result = {"invitation_id": invitation.id}
click.echo(json.dumps(result))
@test_cli.command("admin-unit-member-create")
@click.argument("admin_unit_id")
@click.argument("user_email")
def create_admin_unit_member(admin_unit_id, user_email):
user = find_user_by_email(user_email)
admin_unit = get_admin_unit_by_id(admin_unit_id)
member = add_user_to_admin_unit_with_roles(user, admin_unit, [])
db.session.commit()
result = {"member_id": member.id}
click.echo(json.dumps(result))
def _create_event(admin_unit_id): def _create_event(admin_unit_id):
event = Event() event = Event()
event.admin_unit_id = admin_unit_id event.admin_unit_id = admin_unit_id
@ -151,6 +182,59 @@ def create_event(admin_unit_id):
click.echo(json.dumps(result)) click.echo(json.dumps(result))
@test_cli.command("event-place-create")
@click.argument("admin_unit_id")
@click.argument("name")
def create_event_place(admin_unit_id, name):
event_place = upsert_event_place(admin_unit_id, name)
db.session.commit()
result = {"event_place_id": event_place.id}
click.echo(json.dumps(result))
@test_cli.command("event-organizer-create")
@click.argument("admin_unit_id")
@click.argument("name")
def create_event_organizer(admin_unit_id, name):
event_organizer = upsert_event_organizer(admin_unit_id, name)
db.session.commit()
result = {"event_organizer_id": event_organizer.id}
click.echo(json.dumps(result))
def _insert_default_oauth2_client(user_id):
client = OAuth2Client()
client.user_id = user_id
complete_oauth2_client(client)
metadata = dict()
metadata["client_name"] = "Mein Client"
metadata["scope"] = " ".join(scope_list)
metadata["grant_types"] = ["authorization_code", "refresh_token"]
metadata["response_types"] = ["code"]
metadata["token_endpoint_auth_method"] = "client_secret_post"
metadata["redirect_uris"] = ["/"]
client.set_client_metadata(metadata)
db.session.add(client)
db.session.commit()
return client
@test_cli.command("oauth2-client-create")
@click.argument("user_id")
def create_oauth2_client(user_id):
oauth2_client = _insert_default_oauth2_client(user_id)
result = {
"oauth2_client_id": oauth2_client.id,
"oauth2_client_client_id": oauth2_client.client_id,
"oauth2_client_secret": oauth2_client.client_secret,
"oauth2_client_scope": oauth2_client.scope,
}
click.echo(json.dumps(result))
def _create_reference_request(event_id, admin_unit_id): def _create_reference_request(event_id, admin_unit_id):
reference_request = EventReferenceRequest() reference_request = EventReferenceRequest()
reference_request.event_id = event_id reference_request.event_id = event_id
@ -196,6 +280,75 @@ def create_incoming_reference_request(admin_unit_id):
click.echo(json.dumps(result)) click.echo(json.dumps(result))
def _create_reference(event_id, admin_unit_id):
reference = EventReference()
reference.event_id = event_id
reference.admin_unit_id = admin_unit_id
db.session.add(reference)
db.session.commit()
return reference.id
def _create_incoming_reference(admin_unit_id):
other_user_id = _create_user("other@test.de")
other_admin_unit_id = _create_admin_unit(other_user_id, "Other Crew")
event_id = _create_event(other_admin_unit_id)
reference_id = _create_reference(event_id, admin_unit_id)
return (other_user_id, other_admin_unit_id, event_id, reference_id)
@test_cli.command("reference-create-incoming")
@click.argument("admin_unit_id")
def create_incoming_request(admin_unit_id):
(
other_user_id,
other_admin_unit_id,
event_id,
reference_id,
) = _create_incoming_reference(admin_unit_id)
result = {
"other_user_id": other_user_id,
"other_admin_unit_id": other_admin_unit_id,
"event_id": event_id,
"reference_id": reference_id,
}
click.echo(json.dumps(result))
def _create_admin_unit_relation(
admin_unit_id,
target_admin_unit_id,
auto_verify_event_reference_requests=False,
):
relation = upsert_admin_unit_relation(admin_unit_id, target_admin_unit_id)
relation.auto_verify_event_reference_requests = auto_verify_event_reference_requests
db.session.commit()
return relation.id
def _create_any_admin_unit_relation(admin_unit_id):
other_user_id = _create_user("other@test.de")
other_admin_unit_id = _create_admin_unit(other_user_id, "Other Crew")
relation_id = _create_admin_unit_relation(admin_unit_id, other_admin_unit_id)
return (other_user_id, other_admin_unit_id, relation_id)
@test_cli.command("admin-unit-relation-create")
@click.argument("admin_unit_id")
def create_admin_unit_relation(admin_unit_id):
(
other_user_id,
other_admin_unit_id,
relation_id,
) = _create_any_admin_unit_relation(admin_unit_id)
result = {
"other_user_id": other_user_id,
"other_admin_unit_id": other_admin_unit_id,
"relation_id": relation_id,
}
click.echo(json.dumps(result))
def _create_event_suggestion(admin_unit_id, free_text=False): def _create_event_suggestion(admin_unit_id, free_text=False):
suggestion = EventSuggestion() suggestion = EventSuggestion()
suggestion.admin_unit_id = admin_unit_id suggestion.admin_unit_id = admin_unit_id

View File

@ -1,3 +1,5 @@
import json
import click import click
from flask.cli import AppGroup from flask.cli import AppGroup
from flask_security.confirmable import confirm_user from flask_security.confirmable import confirm_user
@ -24,14 +26,19 @@ def add_admin_roles(email):
@click.argument("email") @click.argument("email")
@click.argument("password") @click.argument("password")
@click.option("--confirm/--no-confirm", default=False) @click.option("--confirm/--no-confirm", default=False)
def create(email, password, confirm): @click.option("--admin/--no-admin", default=False)
def create(email, password, confirm, admin):
user = create_user(email, password) user = create_user(email, password)
if confirm: if confirm:
confirm_user(user) confirm_user(user)
if admin:
add_admin_roles_to_user(email)
db.session.commit() db.session.commit()
click.echo(f"Created user {email}.") result = {"user_id": user.id}
click.echo(json.dumps(result))
@user_cli.command("confirm") @user_cli.command("confirm")

View File

@ -45,4 +45,6 @@ def print_dynamic_texts():
gettext("Scope_organizer:write") gettext("Scope_organizer:write")
gettext("Scope_place:write") gettext("Scope_place:write")
gettext("Scope_event:write") gettext("Scope_event:write")
gettext("Scope_organization:read")
gettext("Scope_organization:write")
gettext("There must be no self-reference.") gettext("There must be no self-reference.")

View File

@ -1875,3 +1875,131 @@
}; };
}(jQuery)); }(jQuery));
jQuery.tools.recurrenceinput.localize("de", {
displayUnactivate: "Keine Wiederholungen",
displayActivate: "Alle ",
edit_rules: "Bearbeiten...",
add_rules: "Hinzufügen...",
delete_rules: "Löschen",
add: "Hinzufügen",
refresh: "Aktualisieren",
title: "Regelmäßige Veranstaltung",
preview: "Ausgewählte Termine",
addDate: "Termin hinzufügen",
recurrenceType: "Wiederholt sich",
dailyInterval1: "Wiederholt sich alle",
dailyInterval2: "Tage",
weeklyInterval1: "Wiederholt sich alle",
weeklyInterval2: "Woche(n)",
weeklyWeekdays: "Wiederholt sich alle",
weeklyWeekdaysHuman: "am: ",
monthlyInterval1: "Wiederholt sich alle",
monthlyInterval2: "Monat(e)",
monthlyDayOfMonth1: "Tag",
monthlyDayOfMonth1Human: "am Tag",
monthlyDayOfMonth2: "des Monats",
monthlyDayOfMonth3: "Monat(e)",
monthlyDayOfMonth4: "monthly_day_of_month_4",
monthlyWeekdayOfMonth1: "Den",
monthlyWeekdayOfMonth1Human: "am",
monthlyWeekdayOfMonth2: " ",
monthlyWeekdayOfMonth3: "im Monat",
monthlyRepeatOn: "Wiederholt sich",
yearlyInterval1: "Wiederholt sich alle",
yearlyInterval2: "Jahr(e)",
yearlyDayOfMonth1: "Jeden",
yearlyDayOfMonth1Human: "am",
yearlyDayOfMonth2: " ",
yearlyDayOfMonth3: " ",
yearlyWeekdayOfMonth1: "Jeden",
yearlyWeekdayOfMonth1Human: "am",
yearlyWeekdayOfMonth2: " ",
yearlyWeekdayOfMonth3: "im",
yearlyWeekdayOfMonth4: " ",
yearlyRepeatOn: "Wiederholt sich",
range: "Ende der Wiederholung",
rangeNoEnd: "Niemals",
rangeByOccurrences1: "Endet nach",
rangeByOccurrences1Human: "endet nach",
rangeByOccurrences2: "Ereigniss(en)",
rangeByEndDate: "Bis ",
rangeByEndDateHuman: "endet am ",
including: ", und auch ",
except: ", ausser für",
cancel: "Abbrechen",
save: "Speichern",
recurrenceStart: "Beginn der Wiederholung",
additionalDate: "Weitere Termine",
include: "Eingeschlossen",
exclude: "Ausgenommen",
remove: "Entfernen",
orderIndexes: ["ersten", "zweiten", "dritten", "vierten", "letzten"],
months: [
"Januar",
"Februar",
"März",
"April",
"Mai",
"Juni",
"Juli",
"August",
"September",
"Oktober",
"November",
"Dezember",
],
shortMonths: [
"Jan",
"Feb",
"Mär",
"Apr",
"Mai",
"Jun",
"Jul",
"Aug",
"Sep",
"Okt",
"Nov",
"Dez",
],
weekdays: [
"Sonntag",
"Montag",
"Dienstag",
"Mittwoch",
"Donnerstag",
"Freitag",
"Samstag",
],
shortWeekdays: ["Son", "Mon", "Die", "Mit", "Don", "Fre", "Sam"],
longDateFormat: "D, dd.mm.yy",
shortDateFormat: "dd.mm.yy",
unsupportedFeatures:
"Warning: This event uses recurrence features not supported by this widget. Saving the recurrence may change the recurrence in unintended ways: ",
noTemplateMatch: "No matching recurrence template",
multipleDayOfMonth:
"Dieses Widget unterstützt keine mehrfach angelegten Tage in monatlicher oder jährlicher Wiederholung",
bysetpos: "BYSETPOS wird nicht unterstützt",
noRule: "Keine RRULE in RRULE Daten",
noRepeatEvery: 'Error: The "Repeat every"-field must be between 1 and 1000',
noEndDate:
"Fehler: Das Terminende ist nicht gesetzt. Bitte geben Sie einen korrekten Wert ein.",
noRepeatOn: 'Error: "Repeat on"-value must be selected',
pastEndDate: "Fehler: Das Terminende kann nicht vor dem Terminanfang sein.",
noEndAfterNOccurrences:
'Error: The "After N occurrences"-field must be between 1 and 1000',
alreadyAdded: "Das Datum wurde bereits hinzugefügt",
rtemplate: {
daily: "Täglich",
mondayfriday: "Montags und Freitags",
weekdays: "Wochentags",
weekly: "Wöchentlich",
monthly: "Monatlich",
yearly: "Jährlich",
},
reccStart: "Startdatum",
reccStartTime: "Beginn",
reccFoEndTime: "Ende",
});

View File

@ -1,133 +1,4 @@
moment.locale("de"); moment.locale("de");
$.datepicker.setDefaults($.datepicker.regional["de"]);
jQuery.tools.recurrenceinput.localize("de", {
displayUnactivate: "Keine Wiederholungen",
displayActivate: "Alle ",
edit_rules: "Bearbeiten...",
add_rules: "Hinzufügen...",
delete_rules: "Löschen",
add: "Hinzufügen",
refresh: "Aktualisieren",
title: "Regelmäßige Veranstaltung",
preview: "Ausgewählte Termine",
addDate: "Termin hinzufügen",
recurrenceType: "Wiederholt sich",
dailyInterval1: "Wiederholt sich alle",
dailyInterval2: "Tage",
weeklyInterval1: "Wiederholt sich alle",
weeklyInterval2: "Woche(n)",
weeklyWeekdays: "Wiederholt sich alle",
weeklyWeekdaysHuman: "am: ",
monthlyInterval1: "Wiederholt sich alle",
monthlyInterval2: "Monat(e)",
monthlyDayOfMonth1: "Tag",
monthlyDayOfMonth1Human: "am Tag",
monthlyDayOfMonth2: "des Monats",
monthlyDayOfMonth3: "Monat(e)",
monthlyDayOfMonth4: "monthly_day_of_month_4",
monthlyWeekdayOfMonth1: "Den",
monthlyWeekdayOfMonth1Human: "am",
monthlyWeekdayOfMonth2: " ",
monthlyWeekdayOfMonth3: "im Monat",
monthlyRepeatOn: "Wiederholt sich",
yearlyInterval1: "Wiederholt sich alle",
yearlyInterval2: "Jahr(e)",
yearlyDayOfMonth1: "Jeden",
yearlyDayOfMonth1Human: "am",
yearlyDayOfMonth2: " ",
yearlyDayOfMonth3: " ",
yearlyWeekdayOfMonth1: "Jeden",
yearlyWeekdayOfMonth1Human: "am",
yearlyWeekdayOfMonth2: " ",
yearlyWeekdayOfMonth3: "im",
yearlyWeekdayOfMonth4: " ",
yearlyRepeatOn: "Wiederholt sich",
range: "Ende der Wiederholung",
rangeNoEnd: "Niemals",
rangeByOccurrences1: "Endet nach",
rangeByOccurrences1Human: "endet nach",
rangeByOccurrences2: "Ereigniss(en)",
rangeByEndDate: "Bis ",
rangeByEndDateHuman: "endet am ",
including: ", und auch ",
except: ", ausser für",
cancel: "Abbrechen",
save: "Speichern",
recurrenceStart: "Beginn der Wiederholung",
additionalDate: "Weitere Termine",
include: "Eingeschlossen",
exclude: "Ausgenommen",
remove: "Entfernen",
orderIndexes: ["ersten", "zweiten", "dritten", "vierten", "letzten"],
months: [
"Januar",
"Februar",
"März",
"April",
"Mai",
"Juni",
"Juli",
"August",
"September",
"Oktober",
"November",
"Dezember",
],
shortMonths: [
"Jan",
"Feb",
"Mär",
"Apr",
"Mai",
"Jun",
"Jul",
"Aug",
"Sep",
"Okt",
"Nov",
"Dez",
],
weekdays: [
"Sonntag",
"Montag",
"Dienstag",
"Mittwoch",
"Donnerstag",
"Freitag",
"Samstag",
],
shortWeekdays: ["Son", "Mon", "Die", "Mit", "Don", "Fre", "Sam"],
longDateFormat: "D, dd.mm.yy",
shortDateFormat: "dd.mm.yy",
unsupportedFeatures:
"Warning: This event uses recurrence features not supported by this widget. Saving the recurrence may change the recurrence in unintended ways: ",
noTemplateMatch: "No matching recurrence template",
multipleDayOfMonth:
"Dieses Widget unterstützt keine mehrfach angelegten Tage in monatlicher oder jährlicher Wiederholung",
bysetpos: "BYSETPOS wird nicht unterstützt",
noRule: "Keine RRULE in RRULE Daten",
noRepeatEvery: 'Error: The "Repeat every"-field must be between 1 and 1000',
noEndDate:
"Fehler: Das Terminende ist nicht gesetzt. Bitte geben Sie einen korrekten Wert ein.",
noRepeatOn: 'Error: "Repeat on"-value must be selected',
pastEndDate: "Fehler: Das Terminende kann nicht vor dem Terminanfang sein.",
noEndAfterNOccurrences:
'Error: The "After N occurrences"-field must be between 1 and 1000',
alreadyAdded: "Das Datum wurde bereits hinzugefügt",
rtemplate: {
daily: "Täglich",
mondayfriday: "Montags und Freitags",
weekdays: "Wochentags",
weekly: "Wöchentlich",
monthly: "Monatlich",
yearly: "Jährlich",
},
reccStart: "Startdatum",
reccStartTime: "Beginn",
reccFoEndTime: "Ende",
});
function get_moment_with_time(field_id) { function get_moment_with_time(field_id) {
var date_time_string = $(field_id).val(); var date_time_string = $(field_id).val();
@ -408,15 +279,6 @@ function scroll_to_element(element, complete) {
$(function () { $(function () {
$('[data-toggle="tooltip"]').tooltip(); $('[data-toggle="tooltip"]').tooltip();
$.fn.select2.defaults.set("language", "de");
$(".autocomplete").select2({
width: "100%",
theme: "bootstrap4",
});
$(".autocomplete-multi").select2({
width: "100%",
});
$(".datepicker").each(function (index, element) { $(".datepicker").each(function (index, element) {
start_datepicker($(element)); start_datepicker($(element));
}); });

View File

@ -5,6 +5,7 @@ const OrganizationRelationCreate = {
<ValidationObserver v-slot="{ handleSubmit }"> <ValidationObserver v-slot="{ handleSubmit }">
<b-form @submit.stop.prevent="handleSubmit(submitForm)"> <b-form @submit.stop.prevent="handleSubmit(submitForm)">
<custom-typeahead <custom-typeahead
id="targetOrganization"
v-model="form.targetOrganization" v-model="form.targetOrganization"
fetchURL="/api/v1/organizations?keyword={query}" fetchURL="/api/v1/organizations?keyword={query}"
labelKey="shared.models.adminUnitRelation.targetOrganization" labelKey="shared.models.adminUnitRelation.targetOrganization"

View File

@ -1317,9 +1317,9 @@ $('#end-container').on('hidden', function() {
{% endmacro %} {% endmacro %}
{% macro render_cropper_header() %} {% macro render_cropper_header() %}
<script src="https://cdnjs.cloudflare.com/ajax/libs/cropperjs/1.5.9/cropper.js" integrity="sha512-oqBsjjSHWqkDx4UKoU+5IUZN2nW2qDp2GFSKw9+mcFm+ZywqfBKp79nfWmGPco2wzTWuE46XpjtCjZ9tFmI12g==" crossorigin="anonymous"></script> <script src="https://cdnjs.cloudflare.com/ajax/libs/cropperjs/1.5.9/cropper.min.js" integrity="sha512-9pGiHYK23sqK5Zm0oF45sNBAX/JqbZEP7bSDHyt+nT3GddF+VFIcYNqREt0GDpmFVZI3LZ17Zu9nMMc9iktkCw==" crossorigin="anonymous"></script>
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/cropperjs/1.5.9/cropper.css" integrity="sha512-949FvIQOibfhLTgmNws4F3DVlYz3FmCRRhJznR22hx76SKkcpZiVV5Kwo0iwK9L6BFuY+6mpdqB2+vDIGVuyHg==" crossorigin="anonymous" /> <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/cropperjs/1.5.9/cropper.min.css" integrity="sha512-w+u2vZqMNUVngx+0GVZYM21Qm093kAexjueWOv9e9nIeYJb1iEfiHC7Y+VvmP/tviQyA5IR32mwN/5hTEJx6Ng==" crossorigin="anonymous" />
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery-cropper/1.0.1/jquery-cropper.js" integrity="sha512-7H4tikIFoyAdYD31w/uNYvvAUL6gyunWXLwTQ7ZXkyjD+brw+PfJpLxFkANnbkKnSJzU89YpnF3fJKbpvV+QYg==" crossorigin="anonymous"></script> <script src="https://cdnjs.cloudflare.com/ajax/libs/jquery-cropper/1.0.1/jquery-cropper.min.js" integrity="sha512-V8cSoC5qfk40d43a+VhrTEPf8G9dfWlEJgvLSiq2T2BmgGRmZzB8dGe7XAABQrWj3sEfrR5xjYICTY4eJr76QQ==" crossorigin="anonymous"></script>
{% endmacro %} {% endmacro %}
{% macro render_event_suggestion(event_suggestion, hide_review_status=False) %} {% macro render_event_suggestion(event_suggestion, hide_review_status=False) %}
@ -1483,7 +1483,7 @@ $('#end-container').on('hidden', function() {
</div> </div>
{% endmacro %} {% endmacro %}
{% macro render_admin_unit_form_script(admin_unit_id=None) %} {% macro render_admin_unit_form_script(admin_unit=None) %}
<script> <script>
$( function() { $( function() {
@ -1492,7 +1492,7 @@ $('#end-container').on('hidden', function() {
}, jQuery.validator.format("{{ _('Short name must contain only letters numbers or underscore') }}")); }, jQuery.validator.format("{{ _('Short name must contain only letters numbers or underscore') }}"));
var form = $("#main-form"); var form = $("#main-form");
form.validate({ var validator = form.validate({
rules: { rules: {
} }
}); });
@ -1502,12 +1502,17 @@ $('#end-container').on('hidden', function() {
remote: { remote: {
url: "{{ url_for('js_check_org_short_name') }}", url: "{{ url_for('js_check_org_short_name') }}",
type: "post" type: "post"
{% if admin_unit_id %} {% if admin_unit %}
,data: { ,data: {
admin_unit_id: function() { admin_unit_id: function() {
return "{{ admin_unit_id }}"; return "{{ admin_unit.id }}";
} }
} }
{% if admin_unit.short_name %}
,depends: function() {
return $('#short_name').val() != '{{ admin_unit.short_name }}';
}
{% endif %}
{% endif %} {% endif %}
} }
}); });
@ -1528,7 +1533,58 @@ $('#end-container').on('hidden', function() {
$('#location_search').closest('.card-body').find(':input').valid(); $('#location_search').closest('.card-body').find(':input').valid();
$('#location_search').removeClass('is-valid'); $('#location_search').removeClass('is-valid');
}); });
}); });
</script> </script>
{% endmacro %} {% endmacro %}
{% macro render_form_scripts() %}
<script src="https://code.jquery.com/ui/1.12.1/jquery-ui.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/jqueryui/1.11.4/i18n/jquery-ui-i18n.min.js" integrity="sha256-pIEbIH2QxTg2nHVPn1HLn1asQIDxqtbZn12/kAkAZkY=" crossorigin="anonymous"></script>
<script src="https://cdn.jsdelivr.net/npm/select2@4.1.0-beta.1/dist/js/select2.min.js"></script>
<script src="https://cdn.jsdelivr.net/npm/select2@4.1.0-beta.1/dist/js/i18n/de.min.js"></script>
<script src="https://cdn.jsdelivr.net/npm/timepicker@1.13.18/jquery.timepicker.min.js"></script>
<script type="text/javascript">
var csrf_token = "{{ csrf_token() }}";
$.ajaxSetup({
beforeSend: function(xhr, settings) {
if (!/^(GET|HEAD|OPTIONS|TRACE)$/i.test(settings.type) && !this.crossDomain) {
xhr.setRequestHeader("X-CSRFToken", csrf_token);
}
}
});
$.datepicker.setDefaults($.datepicker.regional["de"]);
$.fn.select2.defaults.set("language", "de");
$(function () {
$(".autocomplete").select2({
width: "100%",
theme: "bootstrap4",
});
$(".autocomplete-multi").select2({
width: "100%",
});
});
</script>
{% endmacro %}
{% macro render_manage_form_scripts() %}
{{ render_form_scripts() }}
<script src="https://cdnjs.cloudflare.com/ajax/libs/jsrender/1.0.6/jsrender.min.js" integrity="sha512-Bh8Z8kuMiQKW0jO+zvR2I2lbRhN0eGOn3u8hxOOIU44IZZjwvNfLyzdXxQ9PtoTK68j5hQIqc9sycQnbwRlVCQ==" crossorigin="anonymous"></script>
<script src="{{ url_for('static', filename='jquery.recurrenceinput.js')}}"></script>
{% endmacro %}
{% macro render_form_styles() %}
<link rel="stylesheet" href="https://code.jquery.com/ui/1.12.1/themes/base/jquery-ui.min.css">
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/select2@4.1.0-beta.1/dist/css/select2.min.css" />
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/@ttskch/select2-bootstrap4-theme@1.5.2/dist/select2-bootstrap4.min.css" >
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/timepicker@1.13.18/jquery.timepicker.min.css" />
{% endmacro %}
{% macro render_manage_form_styles() %}
{{ render_form_styles() }}
<link rel="stylesheet" type="text/css" href="{{ url_for('static', filename='jquery.recurrenceinput.css')}}" />
{% endmacro %}

View File

@ -1,7 +1,16 @@
{% extends "layout.html" %} {% extends "layout.html" %}
{% from "_macros.html" import render_admin_unit_form_script, render_jquery_steps_header, render_cropper_logo_block, render_crop_image_form_section, render_google_place_autocomplete_header, render_google_place_autocomplete_field, render_field_with_errors, render_field %} {% from "_macros.html" import render_manage_form_styles, render_manage_form_scripts, render_admin_unit_form_script, render_jquery_steps_header, render_cropper_logo_block, render_crop_image_form_section, render_google_place_autocomplete_header, render_google_place_autocomplete_field, render_field_with_errors, render_field %}
{%- block title -%}
{{ _('Create organization') }}
{%- endblock -%}
{% block styles %}
{{ render_manage_form_styles() }}
{% endblock %}
{% block header %} {% block header %}
{{ render_manage_form_scripts() }}
{{ render_jquery_steps_header() }} {{ render_jquery_steps_header() }}
{{ render_google_place_autocomplete_header() }} {{ render_google_place_autocomplete_header() }}
{{ render_cropper_logo_block() }} {{ render_cropper_logo_block() }}

View File

@ -1,12 +1,21 @@
{% extends "layout.html" %} {% extends "layout.html" %}
{% set active_id = "settings" %} {% set active_id = "settings" %}
{% from "_macros.html" import render_admin_unit_form_script, render_jquery_steps_header, render_cropper_logo_block, render_crop_image_form_section, render_google_place_autocomplete_header, render_google_place_autocomplete_field, render_field_with_errors, render_field %} {% from "_macros.html" import render_manage_form_styles, render_manage_form_scripts, render_admin_unit_form_script, render_jquery_steps_header, render_cropper_logo_block, render_crop_image_form_section, render_google_place_autocomplete_header, render_google_place_autocomplete_field, render_field_with_errors, render_field %}
{%- block title -%}
{{ _('Settings') }}
{%- endblock -%}
{% block styles %}
{{ render_manage_form_styles() }}
{% endblock %}
{% block header %} {% block header %}
{{ render_manage_form_scripts() }}
{{ render_jquery_steps_header() }} {{ render_jquery_steps_header() }}
{{ render_google_place_autocomplete_header() }} {{ render_google_place_autocomplete_header() }}
{{ render_cropper_logo_block() }} {{ render_cropper_logo_block() }}
{{ render_admin_unit_form_script(admin_unit.id) }} {{ render_admin_unit_form_script(admin_unit) }}
{% endblock %} {% endblock %}
{% block content %} {% block content %}

View File

@ -1,9 +1,16 @@
{% extends "layout.html" %} {% extends "layout.html" %}
{% from "_macros.html" import render_cropper_header, render_end_container_handling, render_jquery_steps_header, render_cropper_header, render_cropper_code, render_crop_image_form_section, render_radio_buttons, render_field_with_errors, render_field %} {% from "_macros.html" import render_manage_form_styles, render_manage_form_scripts, render_cropper_header, render_end_container_handling, render_jquery_steps_header, render_cropper_header, render_cropper_code, render_crop_image_form_section, render_radio_buttons, render_field_with_errors, render_field %}
{%- block title -%} {%- block title -%}
{{ _('Create event') }} {{ _('Create event') }}
{%- endblock -%} {%- endblock -%}
{% block styles %}
{{ render_manage_form_styles() }}
{% endblock %}
{% block header_before_site_js %} {% block header_before_site_js %}
{{ render_manage_form_scripts() }}
{{ render_jquery_steps_header() }} {{ render_jquery_steps_header() }}
{{ render_cropper_header() }} {{ render_cropper_header() }}
<script> <script>

View File

@ -1,9 +1,16 @@
{% extends "layout.html" %} {% extends "layout.html" %}
{% from "_macros.html" import render_cropper_header, render_end_container_handling, render_jquery_steps_header, render_cropper_code, render_crop_image_form_section, render_radio_buttons, render_field_with_errors, render_field %} {% from "_macros.html" import render_manage_form_styles, render_manage_form_scripts, render_cropper_header, render_end_container_handling, render_jquery_steps_header, render_cropper_code, render_crop_image_form_section, render_radio_buttons, render_field_with_errors, render_field %}
{%- block title -%} {%- block title -%}
{{ _('Update event') }} {{ _('Update event') }}
{%- endblock -%} {%- endblock -%}
{% block styles %}
{{ render_manage_form_styles() }}
{% endblock %}
{% block header_before_site_js %} {% block header_before_site_js %}
{{ render_manage_form_scripts() }}
{{ render_jquery_steps_header() }} {{ render_jquery_steps_header() }}
{{ render_cropper_header() }} {{ render_cropper_header() }}

View File

@ -1,9 +1,27 @@
{% extends "layout.html" %} {% extends "layout.html" %}
{% from "_macros.html" import render_jquery_steps_header, render_google_filter_autocomplete_header, render_event_dates_filter_form, render_pagination, render_place, render_events_sub_menu %} {% from "_macros.html" import render_form_styles, render_form_scripts, render_jquery_steps_header, render_google_filter_autocomplete_header, render_event_dates_filter_form, render_pagination, render_place, render_events_sub_menu %}
{%- block title -%} {%- block title -%}
{{ _('Event Dates') }} {{ _('Event Dates') }}
{%- endblock -%} {%- endblock -%}
{% block styles %}
{{ render_form_styles() }}
<link rel="stylesheet" href="https://unpkg.com/leaflet@1.5.1/dist/leaflet.css" integrity="sha512-xwE/Az9zrjBIphAcBb3F6JVqxf46+CDLwfLMHloNu6KEQCAWi6HcDUbeOfBIptF7tcCzusKFjFw2yuvEpDL9wQ==" crossorigin=""/>
<link rel="stylesheet" href="https://unpkg.com/leaflet.markercluster@1.4.1/dist/MarkerCluster.Default.css" />
<link rel="stylesheet" href="https://unpkg.com/leaflet.markercluster@1.4.1/dist/MarkerCluster.css" />
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/leaflet.locatecontrol@0.68.0/dist/L.Control.Locate.min.css" />
{% endblock %}
{% block header_before_site_js %}
{{ render_form_scripts() }}
<script src="https://unpkg.com/leaflet@1.5.1/dist/leaflet.js" integrity="sha512-GffPMF3RvMeYyc1LWMHtK8EbPv0iNZ8/oTtHPx9/cc2ILxQ+u905qIwdpULaqDkyBKgOaB57QTMg7ztg8Jm2Og==" crossorigin=""></script>
<script src="https://unpkg.com/leaflet.markercluster@1.4.1/dist/leaflet.markercluster.js"></script>
<script src="https://cdn.jsdelivr.net/npm/leaflet.locatecontrol@0.68.0/dist/L.Control.Locate.min.js" charset="utf-8"></script>
{%- endblock -%}
{% block header %} {% block header %}
<script src="{{ url_for('static', filename='svg-icon.js')}}"></script>
{{ render_jquery_steps_header() }} {{ render_jquery_steps_header() }}
{{ render_google_filter_autocomplete_header() }} {{ render_google_filter_autocomplete_header() }}
<script> <script>
@ -253,12 +271,13 @@
}); });
</script> </script>
{% endblock %} {% endblock %}
{% block content %} {% block content %}
<h1> <h1>
{{ _('Event Dates') }} {{ _('Event Dates') }}
<button type="button" class="btn btn-outline-secondary mx-2" data-toggle="collapse" data-target="#search_form" aria-expanded="{% if form.is_submitted() %}true{% else %}false{% endif %}"><i class="fa fa-search"></i></button> <button type="button" id="toggle-search-btn" class="btn btn-outline-secondary mx-2" data-toggle="collapse" data-target="#search_form" aria-expanded="{% if form.is_submitted() %}true{% else %}false{% endif %}"><i class="fa fa-search"></i></button>
<button type="button" class="btn btn-outline-secondary" onclick="toggle_map()"><i class="fa fa-map"></i></button> <button type="button" id="toggle-map-btn" class="btn btn-outline-secondary" onclick="toggle_map()"><i class="fa fa-map"></i></button>
</h1> </h1>
<div class="{% if form.is_submitted() %}{% else %}collapse{% endif %}" id="search_form"> <div class="{% if form.is_submitted() %}{% else %}collapse{% endif %}" id="search_form">

View File

@ -1,7 +1,16 @@
{% extends "layout.html" %} {% extends "layout.html" %}
{% from "_macros.html" import render_jquery_steps_header, render_cropper_block, render_crop_image_form_section, render_google_place_autocomplete_header, render_google_place_autocomplete_field, render_field_with_errors, render_field %} {% from "_macros.html" import render_manage_form_styles, render_manage_form_scripts, render_jquery_steps_header, render_cropper_block, render_crop_image_form_section, render_google_place_autocomplete_header, render_google_place_autocomplete_field, render_field_with_errors, render_field %}
{%- block title -%}
{{ _('Create place') }}
{%- endblock -%}
{% block styles %}
{{ render_manage_form_styles() }}
{% endblock %}
{% block header %} {% block header %}
{{ render_manage_form_scripts() }}
{{ render_jquery_steps_header() }} {{ render_jquery_steps_header() }}
{{ render_google_place_autocomplete_header() }} {{ render_google_place_autocomplete_header() }}
{{ render_cropper_block() }} {{ render_cropper_block() }}

View File

@ -1,7 +1,16 @@
{% extends "layout.html" %} {% extends "layout.html" %}
{% from "_macros.html" import render_jquery_steps_header, render_cropper_block, render_crop_image_form_section, render_google_place_autocomplete_header, render_google_place_autocomplete_field, render_field_with_errors, render_field %} {% from "_macros.html" import render_manage_form_styles, render_manage_form_scripts, render_jquery_steps_header, render_cropper_block, render_crop_image_form_section, render_google_place_autocomplete_header, render_google_place_autocomplete_field, render_field_with_errors, render_field %}
{%- block title -%}
{{ _('Update place') }}
{%- endblock -%}
{% block styles %}
{{ render_manage_form_styles() }}
{% endblock %}
{% block header %} {% block header %}
{{ render_manage_form_scripts() }}
{{ render_jquery_steps_header() }} {{ render_jquery_steps_header() }}
{{ render_google_place_autocomplete_header() }} {{ render_google_place_autocomplete_header() }}
{{ render_cropper_block() }} {{ render_cropper_block() }}

View File

@ -4,6 +4,7 @@
oveda - Offene Veranstaltungsdatenbank oveda - Offene Veranstaltungsdatenbank
{%- endblock -%} {%- endblock -%}
{% block styles %} {% block styles %}
<link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Lato:300,400,700" type="text/css">
<link rel="stylesheet" type="text/css" href="{{ url_for('static', filename='landing-page.css')}}" /> <link rel="stylesheet" type="text/css" href="{{ url_for('static', filename='landing-page.css')}}" />
{% endblock %} {% endblock %}
{% block body_content__attribs %} style="padding:0;"{% endblock %} {% block body_content__attribs %} style="padding:0;"{% endblock %}

View File

@ -44,18 +44,9 @@
<link rel="manifest" href="{{ url_for('static', filename='site.webmanifest')}}"> <link rel="manifest" href="{{ url_for('static', filename='site.webmanifest')}}">
<link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.4.1/css/bootstrap.min.css" integrity="sha384-Vkoo8x4CGsO3+Hhxv8T/Q5PaXtkKtu6ug5TOeNV6gBiFeWPGFN9MuhOf23Q9Ifjh" crossorigin="anonymous"> <link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.4.1/css/bootstrap.min.css" integrity="sha384-Vkoo8x4CGsO3+Hhxv8T/Q5PaXtkKtu6ug5TOeNV6gBiFeWPGFN9MuhOf23Q9Ifjh" crossorigin="anonymous">
<link rel="stylesheet" href="//code.jquery.com/ui/1.12.1/themes/base/jquery-ui.css">
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/5.13.1/css/all.min.css"> <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/5.13.1/css/all.min.css">
<link rel="stylesheet" type="text/css" href="{{ url_for('static', filename='site.css')}}" /> <link rel="stylesheet" type="text/css" href="{{ url_for('static', filename='site.css')}}" />
<link href="https://cdn.jsdelivr.net/npm/select2@4.1.0-beta.1/dist/css/select2.min.css" rel="stylesheet" />
<link href="https://cdn.jsdelivr.net/npm/@ttskch/select2-bootstrap4-theme@1.5.2/dist/select2-bootstrap4.min.css" rel="stylesheet">
<link rel="stylesheet" type="text/css" href="{{ url_for('static', filename='jquery.recurrenceinput.css')}}" />
<link href="https://fonts.googleapis.com/css?family=Lato:300,400,700,300italic,400italic,700italic" rel="stylesheet" type="text/css">
<link rel="stylesheet" href="https://unpkg.com/leaflet@1.5.1/dist/leaflet.css" integrity="sha512-xwE/Az9zrjBIphAcBb3F6JVqxf46+CDLwfLMHloNu6KEQCAWi6HcDUbeOfBIptF7tcCzusKFjFw2yuvEpDL9wQ==" crossorigin=""/>
<link rel="stylesheet" href="https://unpkg.com/leaflet.markercluster@1.4.1/dist/MarkerCluster.Default.css" />
<link rel="stylesheet" href="https://unpkg.com/leaflet.markercluster@1.4.1/dist/MarkerCluster.css" />
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/leaflet.locatecontrol@0.68.0/dist/L.Control.Locate.min.css" />
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/timepicker@1.13.18/jquery.timepicker.min.css" />
{%- block styles %} {%- block styles %}
{%- endblock styles %} {%- endblock styles %}
@ -77,34 +68,12 @@
{% endif %} {% endif %}
{%- endblock gtm_header %} {%- endblock gtm_header %}
<script src="https://code.jquery.com/jquery-1.12.4.js"></script> <script src="https://code.jquery.com/jquery-1.12.4.min.js"></script>
<script src="https://code.jquery.com/ui/1.12.1/jquery-ui.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/jqueryui/1.11.4/i18n/jquery-ui-i18n.js" integrity="sha256-HwXB0HPJCXhungCtZoScc1a53ngQOXua64nb0cI6PHY=" 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> <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://cdn.jsdelivr.net/npm/select2@4.1.0-beta.1/dist/js/select2.min.js"></script>
<script src="https://cdn.jsdelivr.net/npm/select2@4.1.0-beta.1/dist/js/i18n/de.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/jsrender/1.0.6/jsrender.js" integrity="sha512-DtWD/uCp2x1mspIw6vhZGPuJP85aKEL0HFI0jFVxcEiWw1OHJn36LqtkX9G9chzKVYLtTT0G8uJ2miDEL7ucTQ==" crossorigin="anonymous"></script>
<script src="https://unpkg.com/leaflet@1.5.1/dist/leaflet.js" integrity="sha512-GffPMF3RvMeYyc1LWMHtK8EbPv0iNZ8/oTtHPx9/cc2ILxQ+u905qIwdpULaqDkyBKgOaB57QTMg7ztg8Jm2Og==" crossorigin=""></script>
<script src="https://unpkg.com/leaflet.markercluster@1.4.1/dist/leaflet.markercluster.js"></script>
<script src="https://cdn.jsdelivr.net/npm/leaflet.locatecontrol@0.68.0/dist/L.Control.Locate.min.js" charset="utf-8"></script>
<script src="https://cdn.jsdelivr.net/npm/timepicker@1.13.18/jquery.timepicker.min.js"></script>
<script src="{{ url_for('static', filename='jquery.recurrenceinput.js')}}"></script>
<script type="text/javascript">
var csrf_token = "{{ csrf_token() }}";
$.ajaxSetup({
beforeSend: function(xhr, settings) {
if (!/^(GET|HEAD|OPTIONS|TRACE)$/i.test(settings.type) && !this.crossDomain) {
xhr.setRequestHeader("X-CSRFToken", csrf_token);
}
}
});
</script>
{% block header_before_site_js %} {% block header_before_site_js %}
{%- endblock -%} {%- endblock -%}
<script src="{{ url_for('static', filename='site.js')}}"></script> <script src="{{ url_for('static', filename='site.js')}}"></script>
<script src="{{ url_for('static', filename='svg-icon.js')}}"></script>
<script> <script>
function render_event_status_pill(event) { function render_event_status_pill(event) {

View File

@ -1,12 +1,22 @@
{% extends "layout.html" %} {% extends "layout.html" %}
{% set active_id = "events" %} {% set active_id = "events" %}
{% from "_macros.html" import render_event_dates_filter_form, render_event_warning_pills, render_pagination, render_event_date, render_field_with_errors, render_event_organizer %} {% from "_macros.html" import render_manage_form_styles, render_manage_form_scripts, render_event_dates_filter_form, render_event_warning_pills, render_pagination, render_event_date, render_field_with_errors, render_event_organizer %}
{%- block title -%} {%- block title -%}
{{ _('Events') }} {{ _('Events') }}
{%- endblock -%} {%- endblock -%}
{% block styles %}
{{ render_manage_form_styles() }}
{% endblock %}
{% block header_before_site_js %}
{{ render_manage_form_scripts() }}
{%- endblock -%}
{% block content %} {% block content %}
<h1>{{ _('Events') }} <button type="button" class="btn btn-outline-secondary mx-2" data-toggle="collapse" data-target="#search_form" aria-expanded="{% if form.is_submitted() %}true{% else %}false{% endif %}"><i class="fa fa-search"></i></button></h1> <h1>{{ _('Events') }} <button id="toggle-search-btn" type="button" class="btn btn-outline-secondary mx-2" data-toggle="collapse" data-target="#search_form" aria-expanded="{% if form.is_submitted() %}true{% else %}false{% endif %}"><i class="fa fa-search"></i></button></h1>
<div class="my-4"> <div class="my-4">
<a class="btn btn-outline-secondary my-1" href="{{ url_for('event_create_for_admin_unit_id', id=admin_unit.id) }}" role="button"><i class="fa fa-plus"></i> {{ _('Create event') }}</a> <a class="btn btn-outline-secondary my-1" href="{{ url_for('event_create_for_admin_unit_id', id=admin_unit.id) }}" role="button"><i class="fa fa-plus"></i> {{ _('Create event') }}</a>

View File

@ -1,25 +1,33 @@
{% extends "layout.html" %} {% set active_id = "organizers" %} {% from {% extends "layout.html" %}
"_macros.html" import render_event_organizer %} {%- block title -%} {{
_('Relations') }} {%- endblock -%} {% block header_before_site_js %} {%- block title -%}
{{ _('Relations') }}
{%- endblock -%}
{% block header_before_site_js %}
<link <link
type="text/css" type="text/css"
rel="stylesheet" rel="stylesheet"
href="https://unpkg.com/bootstrap-vue@2.21.2/dist/bootstrap-vue.css" href="https://unpkg.com/bootstrap-vue@2.21.2/dist/bootstrap-vue.min.css"
/> />
<script src="https://unpkg.com/vue"></script> {% if False | env_override('FLASK_DEBUG') %}
<script src="https://unpkg.com/bootstrap-vue@2.21.2/dist/bootstrap-vue.js"></script> <script src="https://unpkg.com/vue@2.6.14/dist/vue.js"></script>
<script src="https://unpkg.com/vue-router@2.0.0"></script> {% else %}
<script src="https://unpkg.com/vue-i18n@8"></script> <script src="https://unpkg.com/vue@2.6.14/dist/vue.min.js"></script>
<script src="https://unpkg.com/axios/dist/axios.min.js"></script> {% endif %}
<script src="https://unpkg.com/lodash@latest/lodash.min.js"></script> <script src="https://unpkg.com/bootstrap-vue@2.21.2/dist/bootstrap-vue.min.js"></script>
<script src="http://unpkg.com/portal-vue"></script> <script src="https://unpkg.com/vue-router@2.0.0/dist/vue-router.min.js"></script>
<script src="https://unpkg.com/vue-i18n@8.25.0/dist/vue-i18n.min.js"></script>
<script src="https://unpkg.com/axios@0.21.1/dist/axios.min.js"></script>
<script src="https://unpkg.com/lodash@4.17.21/lodash.min.js"></script>
<script src="https://unpkg.com/portal-vue@2.1.7/dist/portal-vue.umd.min.js"></script>
<link <link
href="https://unpkg.com/vue-typeahead-bootstrap/dist/VueTypeaheadBootstrap.css" href="https://unpkg.com/vue-typeahead-bootstrap@2.12.0/dist/VueTypeaheadBootstrap.css"
rel="stylesheet" rel="stylesheet"
/> />
<script src="https://unpkg.com/vue-typeahead-bootstrap@2.12.0/dist/VueTypeaheadBootstrap.umd.min.js"></script> <script src="https://unpkg.com/vue-typeahead-bootstrap@2.12.0/dist/VueTypeaheadBootstrap.umd.min.js"></script>
<script src="https://unpkg.com/vee-validate@3.4.11/dist/vee-validate.full.js"></script> <script src="https://unpkg.com/vee-validate@3.4.11/dist/vee-validate.full.min.js"></script>
<script src="{{ url_for('static', filename='vue/organization-relations/list.vue.js')}}"></script> <script src="{{ url_for('static', filename='vue/organization-relations/list.vue.js')}}"></script>
<script src="{{ url_for('static', filename='vue/organization-relations/create.vue.js')}}"></script> <script src="{{ url_for('static', filename='vue/organization-relations/create.vue.js')}}"></script>
<script src="{{ url_for('static', filename='vue/organization-relations/update.vue.js')}}"></script> <script src="{{ url_for('static', filename='vue/organization-relations/update.vue.js')}}"></script>

View File

@ -6,7 +6,7 @@
{%- endblock -%} {%- endblock -%}
{% block content %} {% block content %}
<h1>{{ _('Widgets') }} <a class="btn btn-light" role="button" data-toggle="collapse" href="#settingsContainer" aria-expanded="false" aria-controls="settingsContainer"><i class="fa fa-cog"></i></a></h1> <h1>{{ _('Widgets') }} <a id="toggle-settings-btn" class="btn btn-light" role="button" data-toggle="collapse" href="#settingsContainer" aria-expanded="false" aria-controls="settingsContainer"><i class="fa fa-cog"></i></a></h1>
<div class="collapse" id="settingsContainer"> <div class="collapse" id="settingsContainer">
<h2>{{ _('Settings') }}</h2> <h2>{{ _('Settings') }}</h2>

View File

@ -1,7 +1,16 @@
{% extends "layout.html" %} {% extends "layout.html" %}
{% from "_macros.html" import render_jquery_steps_header, render_cropper_logo_block, render_crop_image_form_section, render_google_place_autocomplete_header, render_google_place_autocomplete_field, render_field_with_errors, render_field %} {% from "_macros.html" import render_manage_form_styles, render_manage_form_scripts, render_jquery_steps_header, render_cropper_logo_block, render_crop_image_form_section, render_google_place_autocomplete_header, render_google_place_autocomplete_field, render_field_with_errors, render_field %}
{%- block title -%}
{{ _('Create organizer') }}
{%- endblock -%}
{% block styles %}
{{ render_manage_form_styles() }}
{% endblock %}
{% block header %} {% block header %}
{{ render_manage_form_scripts() }}
{{ render_jquery_steps_header() }} {{ render_jquery_steps_header() }}
{{ render_google_place_autocomplete_header() }} {{ render_google_place_autocomplete_header() }}
{{ render_cropper_logo_block() }} {{ render_cropper_logo_block() }}

View File

@ -1,7 +1,16 @@
{% extends "layout.html" %} {% extends "layout.html" %}
{% from "_macros.html" import render_jquery_steps_header, render_cropper_logo_block, render_crop_image_form_section, render_google_place_autocomplete_header, render_google_place_autocomplete_field, render_field_with_errors, render_field %} {% from "_macros.html" import render_manage_form_styles, render_manage_form_scripts, render_jquery_steps_header, render_cropper_logo_block, render_crop_image_form_section, render_google_place_autocomplete_header, render_google_place_autocomplete_field, render_field_with_errors, render_field %}
{%- block title -%}
{{ _('Update organizer') }}
{%- endblock -%}
{% block styles %}
{{ render_manage_form_styles() }}
{% endblock %}
{% block header %} {% block header %}
{{ render_manage_form_scripts() }}
{{ render_jquery_steps_header() }} {{ render_jquery_steps_header() }}
{{ render_google_place_autocomplete_header() }} {{ render_google_place_autocomplete_header() }}
{{ render_cropper_logo_block() }} {{ render_cropper_logo_block() }}

View File

@ -1,9 +1,20 @@
{% extends "layout.html" %} {% extends "layout.html" %}
{% from "_macros.html" import render_jquery_steps_header, render_field, render_field_with_errors, render_event_dates_date_field, render_event_dates_location_field, render_google_filter_autocomplete_header, render_pagination, render_place, render_events_sub_menu %} {% from "_macros.html" import render_form_styles, render_form_scripts, render_jquery_steps_header, render_field, render_field_with_errors, render_event_dates_date_field, render_event_dates_location_field, render_google_filter_autocomplete_header, render_pagination, render_place, render_events_sub_menu %}
{%- block title -%} {%- block title -%}
{{ _('Event Planing') }} {{ _('Event Planing') }}
{%- endblock -%} {%- endblock -%}
{% block content_container_attribs %}{% endblock %} {% block content_container_attribs %}{% endblock %}
{% block styles %}
{{ render_form_styles() }}
{% endblock %}
{% block header_before_site_js %}
{{ render_form_scripts() }}
{%- endblock -%}
{% block header %} {% block header %}
{{ render_jquery_steps_header() }} {{ render_jquery_steps_header() }}
{{ render_google_filter_autocomplete_header() }} {{ render_google_filter_autocomplete_header() }}

View File

@ -1,7 +1,8 @@
{% extends "layout.html" %} {% extends "layout.html" %}
{% from "_macros.html" import render_jquery_steps_header, render_field_with_errors, render_field %} {% from "_macros.html" import render_manage_form_scripts, render_jquery_steps_header, render_field_with_errors, render_field %}
{% block header %} {% block header %}
{{ render_manage_form_scripts() }}
{{ render_jquery_steps_header() }} {{ render_jquery_steps_header() }}
<script> <script>

View File

@ -1,9 +1,16 @@
{% extends "layout_widget.html" %} {% extends "layout_widget.html" %}
{% from "_macros.html" import render_pagination, render_event_warning_pills, render_event_warning_pills, render_place %} {% from "_macros.html" import render_form_styles, render_form_scripts, render_pagination, render_event_warning_pills, render_event_warning_pills, render_place %}
{%- block title -%} {%- block title -%}
{{ _('Widget') }} {{ _('Widget') }}
{%- endblock -%} {%- endblock -%}
{% block styles %}
{{ render_form_styles() }}
{% endblock %}
{% block header_before_site_js %} {% block header_before_site_js %}
{{ render_form_scripts() }}
<script> <script>
window.iFrameResizer = { window.iFrameResizer = {
onReady: function() { onReady: function() {

View File

@ -1,13 +1,18 @@
{% extends "layout_widget.html" %} {% extends "layout_widget.html" %}
{% from "_macros.html" import render_end_container_handling, render_logo, render_cropper_code, render_crop_image_form, render_jquery_steps_header, render_cropper_header, render_radio_buttons, render_field_with_errors, render_field %} {% from "_macros.html" import render_manage_form_styles, render_manage_form_scripts, render_end_container_handling, render_logo, render_cropper_code, render_crop_image_form, render_jquery_steps_header, render_cropper_header, render_radio_buttons, render_field_with_errors, render_field %}
{%- block title -%} {%- block title -%}
{{ _('Create event suggestion') }} {{ _('Create event suggestion') }}
{%- endblock -%} {%- endblock -%}
{% block styles %} {% block styles %}
{{ render_manage_form_styles() }}
<link rel="stylesheet" type="text/css" href="{{ url_for('static', filename='jquery-steps.css')}}" /> <link rel="stylesheet" type="text/css" href="{{ url_for('static', filename='jquery-steps.css')}}" />
{{ super() }} {{ super() }}
{% endblock %} {% endblock %}
{% block header_before_site_js %} {% block header_before_site_js %}
{{ render_manage_form_scripts() }}
{{ render_jquery_steps_header() }} {{ render_jquery_steps_header() }}
{{ render_cropper_header() }} {{ render_cropper_header() }}
<script> <script>

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: 2021-08-30 23:19+0200\n" "POT-Creation-Date: 2021-09-02 10:13+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"
@ -159,6 +159,14 @@ msgid "Scope_event:write"
msgstr "Veranstaltungen anlegen, ändern und löschen" msgstr "Veranstaltungen anlegen, ändern und löschen"
#: project/i10n.py:48 #: project/i10n.py:48
msgid "Scope_organization:read"
msgstr "Organisationen lesen"
#: project/i10n.py:49
msgid "Scope_organization:write"
msgstr "Organisationen anlegen, ändern und löschen"
#: project/i10n.py:50
msgid "There must be no self-reference." msgid "There must be no self-reference."
msgstr "Es darf keine Selbstreferenz geben." msgstr "Es darf keine Selbstreferenz geben."
@ -170,28 +178,28 @@ msgstr "Event_"
msgid "." msgid "."
msgstr "." msgstr "."
#: project/api/__init__.py:83 #: project/api/__init__.py:84
msgid "message" msgid "message"
msgstr "message" msgstr "message"
#: project/forms/admin.py:10 project/templates/layout.html:335 #: project/forms/admin.py:10 project/templates/layout.html:307
#: project/views/root.py:42 #: project/views/root.py:42
msgid "Terms of service" msgid "Terms of service"
msgstr "Nutzungsbedingungen" msgstr "Nutzungsbedingungen"
#: project/forms/admin.py:11 project/templates/layout.html:339 #: project/forms/admin.py:11 project/templates/layout.html:311
#: project/views/root.py:50 #: project/views/root.py:50
msgid "Legal notice" msgid "Legal notice"
msgstr "Impressum" msgstr "Impressum"
#: project/forms/admin.py:12 project/templates/_macros.html:1356 #: project/forms/admin.py:12 project/templates/_macros.html:1356
#: project/templates/layout.html:343 #: project/templates/layout.html:315
#: project/templates/widget/event_suggestion/create.html:199 #: project/templates/widget/event_suggestion/create.html:204
#: project/views/admin_unit.py:36 project/views/root.py:58 #: project/views/admin_unit.py:36 project/views/root.py:58
msgid "Contact" msgid "Contact"
msgstr "Kontakt" msgstr "Kontakt"
#: project/forms/admin.py:13 project/templates/layout.html:347 #: project/forms/admin.py:13 project/templates/layout.html:319
#: project/views/root.py:66 #: project/views/root.py:66
msgid "Privacy" msgid "Privacy"
msgstr "Datenschutz" msgstr "Datenschutz"
@ -323,7 +331,8 @@ msgstr "Fax"
msgid "Logo" msgid "Logo"
msgstr "Logo" msgstr "Logo"
#: project/forms/admin_unit.py:63 project/templates/admin_unit/create.html:13 #: project/forms/admin_unit.py:63 project/templates/admin_unit/create.html:5
#: project/templates/admin_unit/create.html:22
#: project/templates/manage/admin_units.html:18 #: project/templates/manage/admin_units.html:18
msgid "Create organization" msgid "Create organization"
msgstr "Organisation erstellen" msgstr "Organisation erstellen"
@ -483,9 +492,9 @@ msgstr ""
"Gib an, wann die Veranstaltung endet. Eine Veranstaltung darf maximal 14 " "Gib an, wann die Veranstaltung endet. Eine Veranstaltung darf maximal 14 "
"Tage dauern." "Tage dauern."
#: project/forms/event.py:82 project/templates/event/create.html:244 #: project/forms/event.py:82 project/templates/event/create.html:251
#: project/templates/event/update.html:135 #: project/templates/event/update.html:142
#: project/templates/widget/event_suggestion/create.html:234 #: project/templates/widget/event_suggestion/create.html:239
msgid "Recurring event" msgid "Recurring event"
msgstr "Regelmäßige Veranstaltung" msgstr "Regelmäßige Veranstaltung"
@ -567,7 +576,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:137 project/templates/_macros.html:276 #: project/forms/event.py:137 project/templates/_macros.html:276
#: project/templates/layout.html:159 #: project/templates/layout.html:130
msgid "Booked up" msgid "Booked up"
msgstr "Ausgebucht" msgstr "Ausgebucht"
@ -627,11 +636,11 @@ msgstr "Teilnahme"
msgid "EventAttendanceMode.offline" msgid "EventAttendanceMode.offline"
msgstr "Präsenzveranstaltung" msgstr "Präsenzveranstaltung"
#: project/forms/event.py:184 project/templates/layout.html:147 #: project/forms/event.py:184 project/templates/layout.html:118
msgid "EventAttendanceMode.online" msgid "EventAttendanceMode.online"
msgstr "Online" msgstr "Online"
#: project/forms/event.py:186 project/templates/layout.html:150 #: project/forms/event.py:186 project/templates/layout.html:121
msgid "EventAttendanceMode.mixed" msgid "EventAttendanceMode.mixed"
msgstr "Präsenzveranstaltung und online" msgstr "Präsenzveranstaltung und online"
@ -640,7 +649,7 @@ msgid "Choose how people can attend the event."
msgstr "Wähle aus, wie Personen an der Veranstaltung teilnehmen können." msgstr "Wähle aus, wie Personen an der Veranstaltung teilnehmen können."
#: project/forms/event.py:192 project/forms/event_place.py:27 #: project/forms/event.py:192 project/forms/event_place.py:27
#: project/templates/widget/event_suggestion/create.html:252 #: project/templates/widget/event_suggestion/create.html:257
msgid "Photo" msgid "Photo"
msgstr "Foto" msgstr "Foto"
@ -681,8 +690,8 @@ msgstr "Wähle Kategorien, die zur Veranstaltung passen."
#: project/forms/event.py:231 project/forms/reference.py:14 #: project/forms/event.py:231 project/forms/reference.py:14
#: project/forms/reference.py:27 project/forms/reference_request.py:76 #: project/forms/reference.py:27 project/forms/reference_request.py:76
#: project/templates/event/create.html:358 #: project/templates/event/create.html:365
#: project/templates/event/update.html:215 #: project/templates/event/update.html:222
msgid "Rating" msgid "Rating"
msgstr "Bewertung" msgstr "Bewertung"
@ -698,11 +707,11 @@ msgstr ""
#: project/forms/event.py:243 project/forms/event.py:252 #: project/forms/event.py:243 project/forms/event.py:252
#: project/forms/event.py:321 project/forms/event_suggestion.py:50 #: project/forms/event.py:321 project/forms/event_suggestion.py:50
#: project/templates/_macros.html:468 project/templates/_macros.html:624 #: project/templates/_macros.html:468 project/templates/_macros.html:624
#: project/templates/event/create.html:283 #: project/templates/event/create.html:290
#: project/templates/event/update.html:165 #: project/templates/event/update.html:172
#: project/templates/event_place/create.html:22 #: project/templates/event_place/create.html:31
#: project/templates/event_place/delete.html:13 #: project/templates/event_place/delete.html:13
#: project/templates/event_place/update.html:22 #: project/templates/event_place/update.html:31
msgid "Place" msgid "Place"
msgstr "Ort" msgstr "Ort"
@ -715,13 +724,13 @@ msgid "Enter new place"
msgstr "Neuen Ort eingeben" msgstr "Neuen Ort eingeben"
#: project/forms/event.py:259 project/forms/event.py:268 #: project/forms/event.py:259 project/forms/event.py:268
#: project/forms/event.py:329 project/forms/event.py:389 #: project/forms/event.py:329 project/forms/event.py:391
#: project/forms/event_suggestion.py:60 project/templates/_macros.html:506 #: project/forms/event_suggestion.py:60 project/templates/_macros.html:506
#: project/templates/_macros.html:661 project/templates/event/create.html:254 #: project/templates/_macros.html:661 project/templates/event/create.html:261
#: project/templates/event/update.html:156 #: project/templates/event/update.html:163
#: project/templates/organizer/create.html:18 #: project/templates/organizer/create.html:27
#: project/templates/organizer/delete.html:13 #: project/templates/organizer/delete.html:13
#: project/templates/organizer/update.html:18 #: project/templates/organizer/update.html:27
msgid "Organizer" msgid "Organizer"
msgstr "Veranstalter" msgstr "Veranstalter"
@ -765,7 +774,7 @@ msgstr ""
"Wähle den Veranstalter. Du kannst Veranstalter unter Verwaltung > " "Wähle den Veranstalter. Du kannst Veranstalter unter Verwaltung > "
"Veranstalter hinzufügen und ändern." "Veranstalter hinzufügen und ändern."
#: project/forms/event.py:338 project/templates/event/update.html:145 #: project/forms/event.py:338 project/templates/event/update.html:152
#: project/templates/oauth2_token/list.html:21 #: project/templates/oauth2_token/list.html:21
msgid "Status" msgid "Status"
msgstr "Status" msgstr "Status"
@ -774,23 +783,23 @@ msgstr "Status"
msgid "EventStatus.scheduled" msgid "EventStatus.scheduled"
msgstr "Geplant" msgstr "Geplant"
#: project/forms/event.py:342 project/templates/layout.html:113 #: project/forms/event.py:342 project/templates/layout.html:84
#: project/templates/layout.html:128 #: project/templates/layout.html:99
msgid "EventStatus.cancelled" msgid "EventStatus.cancelled"
msgstr "Abgesagt" msgstr "Abgesagt"
#: project/forms/event.py:343 project/templates/layout.html:116 #: project/forms/event.py:343 project/templates/layout.html:87
#: project/templates/layout.html:131 #: project/templates/layout.html:102
msgid "EventStatus.movedOnline" msgid "EventStatus.movedOnline"
msgstr "Online verschoben" msgstr "Online verschoben"
#: project/forms/event.py:344 project/templates/layout.html:119 #: project/forms/event.py:344 project/templates/layout.html:90
#: project/templates/layout.html:134 #: project/templates/layout.html:105
msgid "EventStatus.postponed" msgid "EventStatus.postponed"
msgstr "Verschoben" msgstr "Verschoben"
#: project/forms/event.py:345 project/templates/layout.html:122 #: project/forms/event.py:345 project/templates/layout.html:93
#: project/templates/layout.html:137 #: project/templates/layout.html:108
msgid "EventStatus.rescheduled" msgid "EventStatus.rescheduled"
msgstr "Neu angesetzt" msgstr "Neu angesetzt"
@ -814,8 +823,8 @@ msgstr "Entwurf"
msgid "Select the public status of the event." msgid "Select the public status of the event."
msgstr "Wähle den öffentlichen Status der Veranstaltung." msgstr "Wähle den öffentlichen Status der Veranstaltung."
#: project/forms/event.py:360 project/templates/event/update.html:4 #: project/forms/event.py:360 project/templates/event/update.html:5
#: project/templates/event/update.html:112 #: project/templates/event/update.html:119
msgid "Update event" msgid "Update event"
msgstr "Veranstaltung aktualisieren" msgstr "Veranstaltung aktualisieren"
@ -830,52 +839,54 @@ msgstr "Veranstaltung löschen"
msgid "From" msgid "From"
msgstr "Von" msgstr "Von"
#: project/forms/event.py:383 project/forms/event_date.py:16 #: project/forms/event.py:384 project/forms/event_date.py:17
#: project/forms/planing.py:15 #: project/forms/planing.py:16
msgid "to" msgid "to"
msgstr "bis" msgstr "bis"
#: project/forms/event.py:384 project/forms/event_date.py:17 #: project/forms/event.py:386 project/forms/event_date.py:19
msgid "Keyword" msgid "Keyword"
msgstr "Stichwort" msgstr "Stichwort"
#: project/forms/event.py:386 project/forms/event_date.py:19 #: project/forms/event.py:388 project/forms/event_date.py:21
#: project/forms/planing.py:17 project/templates/_macros.html:392 #: project/forms/planing.py:19 project/templates/_macros.html:392
msgid "Category" msgid "Category"
msgstr "Kategorie" msgstr "Kategorie"
#: project/forms/event.py:392 #: project/forms/event.py:394
msgid "Find events" msgid "Find events"
msgstr "Veranstaltungen finden" msgstr "Veranstaltungen finden"
#: project/forms/event_date.py:22 project/forms/planing.py:20 #: project/forms/event_date.py:24 project/forms/planing.py:22
#: project/templates/_macros.html:137 project/templates/_macros.html:326 #: project/templates/_macros.html:137 project/templates/_macros.html:326
#: project/templates/admin_unit/create.html:29 #: project/templates/admin_unit/create.html:38
#: project/templates/admin_unit/update.html:30 #: project/templates/admin_unit/update.html:39
#: project/templates/event_place/create.html:31 #: project/templates/event_place/create.html:40
#: project/templates/event_place/update.html:31 #: project/templates/event_place/update.html:40
#: project/templates/organizer/create.html:27 #: project/templates/organizer/create.html:36
#: project/templates/organizer/update.html:27 #: project/templates/organizer/update.html:36
msgid "Location" msgid "Location"
msgstr "Standort" msgstr "Standort"
#: project/forms/event_date.py:24 project/forms/planing.py:22 #: project/forms/event_date.py:26 project/forms/planing.py:24
msgid "Distance" msgid "Distance"
msgstr "Distanz" msgstr "Distanz"
#: project/forms/event_date.py:30 project/forms/planing.py:34 #: project/forms/event_date.py:32 project/forms/planing.py:36
#: project/templates/widget/event_date/list.html:53 #: project/templates/widget/event_date/list.html:60
msgid "Find" msgid "Find"
msgstr "Finden" msgstr "Finden"
#: project/forms/event_place.py:41 project/templates/event_place/create.html:12 #: project/forms/event_place.py:41 project/templates/event_place/create.html:5
#: project/templates/event_place/create.html:21
#: project/templates/event_place/list.html:11 #: project/templates/event_place/list.html:11
#: project/templates/manage/places.html:18 #: project/templates/manage/places.html:18
msgid "Create place" msgid "Create place"
msgstr "Ort hinzufügen" msgstr "Ort hinzufügen"
#: project/forms/event_place.py:45 project/templates/event_place/read.html:12 #: project/forms/event_place.py:45 project/templates/event_place/read.html:12
#: project/templates/event_place/update.html:12 #: project/templates/event_place/update.html:5
#: project/templates/event_place/update.html:21
msgid "Update place" msgid "Update place"
msgstr "Ort aktualisieren" msgstr "Ort aktualisieren"
@ -903,7 +914,7 @@ msgstr "Bitte gib deine Email-Adresse oder deine Telefonnummer für die Prüfung
msgid "I would like to be notified by email after the review" msgid "I would like to be notified by email after the review"
msgstr "Ich möchte per Email benachrichtigt werden nach der Prüfung" msgstr "Ich möchte per Email benachrichtigt werden nach der Prüfung"
#: project/forms/event_suggestion.py:52 project/templates/event/create.html:288 #: project/forms/event_suggestion.py:52 project/templates/event/create.html:295
msgid "" msgid ""
"Choose where the event takes place. If the venue is not yet in the list, " "Choose where the event takes place. If the venue is not yet in the list, "
"just enter it." "just enter it."
@ -911,7 +922,7 @@ msgstr ""
"Wähle aus, wo die Veranstaltung stattfindet. Ist der Veranstaltungsort " "Wähle aus, wo die Veranstaltung stattfindet. Ist der Veranstaltungsort "
"noch nicht in der Liste, trage ihn einfach ein." "noch nicht in der Liste, trage ihn einfach ein."
#: project/forms/event_suggestion.py:62 project/templates/event/create.html:258 #: project/forms/event_suggestion.py:62 project/templates/event/create.html:265
msgid "" msgid ""
"Select the organizer. If the organizer is not yet on the list, just enter" "Select the organizer. If the organizer is not yet on the list, just enter"
" it." " it."
@ -920,8 +931,8 @@ msgstr ""
" trage ihn einfach ein." " trage ihn einfach ein."
#: project/forms/event_suggestion.py:78 #: project/forms/event_suggestion.py:78
#: project/templates/widget/event_suggestion/create.html:4 #: project/templates/widget/event_suggestion/create.html:5
#: project/templates/widget/event_suggestion/create.html:152 #: project/templates/widget/event_suggestion/create.html:157
msgid "Create event suggestion" msgid "Create event suggestion"
msgstr "Veranstaltung vorschlagen" msgstr "Veranstaltung vorschlagen"
@ -976,11 +987,13 @@ msgid "Revoke OAuth2 token"
msgstr "OAuth2 Token widerrufen" msgstr "OAuth2 Token widerrufen"
#: project/forms/organizer.py:43 project/templates/manage/organizers.html:12 #: project/forms/organizer.py:43 project/templates/manage/organizers.html:12
#: project/templates/organizer/create.html:12 #: project/templates/organizer/create.html:5
#: project/templates/organizer/create.html:21
msgid "Create organizer" msgid "Create organizer"
msgstr "Veranstalter hinzufügen" msgstr "Veranstalter hinzufügen"
#: project/forms/organizer.py:47 project/templates/organizer/update.html:12 #: project/forms/organizer.py:47 project/templates/organizer/update.html:5
#: project/templates/organizer/update.html:21
msgid "Update organizer" msgid "Update organizer"
msgstr "Veranstalter aktualisieren" msgstr "Veranstalter aktualisieren"
@ -988,15 +1001,15 @@ msgstr "Veranstalter aktualisieren"
msgid "Delete organizer" msgid "Delete organizer"
msgstr "Veranstalter löschen" msgstr "Veranstalter löschen"
#: project/forms/planing.py:28 #: project/forms/planing.py:30
msgid "Weekdays" msgid "Weekdays"
msgstr "Wochentage" msgstr "Wochentage"
#: project/forms/reference.py:11 project/forms/reference_request.py:16 #: project/forms/reference.py:11 project/forms/reference_request.py:16
#: project/templates/_macros.html:527 project/templates/_macros.html:687 #: project/templates/_macros.html:527 project/templates/_macros.html:687
#: project/templates/admin_unit/create.html:19 #: project/templates/admin_unit/create.html:28
#: project/templates/admin_unit/update.html:20 #: project/templates/admin_unit/update.html:29
#: project/templates/layout.html:289 #: project/templates/layout.html:260
msgid "Organization" msgid "Organization"
msgstr "Organisation" msgstr "Organisation"
@ -1083,7 +1096,7 @@ msgstr "Erlauben"
msgid "Deny" msgid "Deny"
msgstr "Ablehnen" msgstr "Ablehnen"
#: project/forms/widgets.py:137 #: project/forms/widgets.py:154
msgid "This field is required." msgid "This field is required."
msgstr "Dieses Feld ist erforderlich." msgstr "Dieses Feld ist erforderlich."
@ -1130,11 +1143,11 @@ msgstr "Zuletzt aktualisiert am %(updated_at)s."
#: project/templates/_macros.html:408 project/templates/_macros.html:584 #: project/templates/_macros.html:408 project/templates/_macros.html:584
#: project/templates/event/actions.html:12 #: project/templates/event/actions.html:12
#: project/templates/event/create.html:228 #: project/templates/event/create.html:235
#: project/templates/event/delete.html:13 #: project/templates/event/delete.html:13
#: project/templates/event/update.html:119 #: project/templates/event/update.html:126
#: project/templates/reference/delete.html:13 #: project/templates/reference/delete.html:13
#: project/templates/widget/event_suggestion/create.html:224 #: project/templates/widget/event_suggestion/create.html:229
msgid "Event" msgid "Event"
msgstr "Veranstaltung" msgstr "Veranstaltung"
@ -1167,8 +1180,8 @@ 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:711 project/templates/event_date/list.html:4 #: project/templates/_macros.html:711 project/templates/event_date/list.html:5
#: project/templates/event_date/list.html:259 #: project/templates/event_date/list.html:278
#: project/templates/event_date/search.html:3 #: project/templates/event_date/search.html:3
#: project/templates/reference_request/review.html:32 #: project/templates/reference_request/review.html:32
msgid "Event Dates" msgid "Event Dates"
@ -1179,13 +1192,13 @@ msgid "Search location on Google"
msgstr "Ort bei Google suchen" msgstr "Ort bei Google suchen"
#: project/templates/_macros.html:845 project/templates/_macros.html:847 #: project/templates/_macros.html:845 project/templates/_macros.html:847
#: project/templates/event_date/list.html:280 #: project/templates/event_date/list.html:299
#: project/templates/widget/event_suggestion/create.html:188 #: project/templates/widget/event_suggestion/create.html:193
#: project/templates/widget/event_suggestion/create.html:213 #: project/templates/widget/event_suggestion/create.html:218
#: project/templates/widget/event_suggestion/create.html:241 #: project/templates/widget/event_suggestion/create.html:246
#: project/templates/widget/event_suggestion/create.html:264 #: project/templates/widget/event_suggestion/create.html:269
#: project/templates/widget/event_suggestion/create.html:297 #: project/templates/widget/event_suggestion/create.html:302
#: project/templates/widget/event_suggestion/create.html:326 #: project/templates/widget/event_suggestion/create.html:331
msgid "Previous" msgid "Previous"
msgstr "Zurück" msgstr "Zurück"
@ -1195,12 +1208,12 @@ msgid "Page %(page)d of %(pages)d (%(total)d total)"
msgstr "Seite %(page)d von %(pages)d (%(total)d insgesamt)" msgstr "Seite %(page)d von %(pages)d (%(total)d insgesamt)"
#: project/templates/_macros.html:851 project/templates/_macros.html:853 #: project/templates/_macros.html:851 project/templates/_macros.html:853
#: project/templates/event_date/list.html:282 #: project/templates/event_date/list.html:301
#: project/templates/widget/event_suggestion/create.html:189 #: project/templates/widget/event_suggestion/create.html:194
#: project/templates/widget/event_suggestion/create.html:214 #: project/templates/widget/event_suggestion/create.html:219
#: project/templates/widget/event_suggestion/create.html:242 #: project/templates/widget/event_suggestion/create.html:247
#: project/templates/widget/event_suggestion/create.html:265 #: project/templates/widget/event_suggestion/create.html:270
#: project/templates/widget/event_suggestion/create.html:298 #: project/templates/widget/event_suggestion/create.html:303
msgid "Next" msgid "Next"
msgstr "Weiter" msgstr "Weiter"
@ -1228,7 +1241,7 @@ msgstr "Bild-Datei auswählen"
msgid "Edit event" msgid "Edit event"
msgstr "Veranstaltung bearbeiten" msgstr "Veranstaltung bearbeiten"
#: project/templates/_macros.html:1201 project/templates/manage/events.html:30 #: project/templates/_macros.html:1201 project/templates/manage/events.html:40
msgid "More" msgid "More"
msgstr "Mehr" msgstr "Mehr"
@ -1278,31 +1291,31 @@ msgstr "Verwaltung"
msgid "Register for free" msgid "Register for free"
msgstr "Kostenlos registrieren" msgstr "Kostenlos registrieren"
#: project/templates/event_place/read.html:22 project/templates/layout.html:206 #: project/templates/event_place/read.html:22 project/templates/layout.html:177
#: project/templates/layout.html:250 project/templates/manage/events.html:5 #: project/templates/layout.html:221 project/templates/manage/events.html:6
#: project/templates/manage/events.html:9 #: project/templates/manage/events.html:19
msgid "Events" msgid "Events"
msgstr "Veranstaltungen" msgstr "Veranstaltungen"
#: project/templates/layout.html:207 #: project/templates/layout.html:178
msgid "Planing" msgid "Planing"
msgstr "Planung" msgstr "Planung"
#: project/templates/layout.html:208 #: project/templates/layout.html:179
msgid "Example" msgid "Example"
msgstr "Beispiel" msgstr "Beispiel"
#: 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:217 #: project/templates/layout.html:188
#: project/templates/manage/admin_units.html:3 #: project/templates/manage/admin_units.html:3
#: project/templates/manage/admin_units.html:16 #: project/templates/manage/admin_units.html:16
#: project/templates/profile.html:60 #: project/templates/profile.html:60
msgid "Organizations" msgid "Organizations"
msgstr "Organisationen" msgstr "Organisationen"
#: project/templates/layout.html:218 #: project/templates/layout.html:189
#: 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
@ -1312,92 +1325,97 @@ 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:221 #: project/templates/admin/users.html:10 project/templates/layout.html:192
msgid "Admin" msgid "Admin"
msgstr "Administration" msgstr "Administration"
#: project/templates/layout.html:225 #: project/templates/layout.html:196
msgid "Logout" msgid "Logout"
msgstr "Ausloggen" msgstr "Ausloggen"
#: project/templates/layout.html:256 #: project/templates/layout.html:227
msgid "Show events" msgid "Show events"
msgstr "Veranstaltungen anzeigen" msgstr "Veranstaltungen anzeigen"
#: project/templates/event/create.html:4 #: project/templates/event/create.html:5
#: project/templates/event/create.html:221 project/templates/layout.html:257 #: project/templates/event/create.html:228 project/templates/layout.html:228
#: project/templates/manage/events.html:12 #: project/templates/manage/events.html:22
#: 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:260 #: project/templates/layout.html:231
msgid "Review suggestions" msgid "Review suggestions"
msgstr "Vorschläge prüfen" msgstr "Vorschläge prüfen"
#: project/templates/layout.html:270 #: project/templates/layout.html:241
#: 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:276 #: project/templates/layout.html:247
#: 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:277 #: project/templates/layout.html:248
#: 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:279 #: project/templates/layout.html:250
#: 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:284 #: project/templates/layout.html:255
#: 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:292 project/templates/manage/organizers.html:5 #: project/templates/layout.html:263 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:293 #: project/templates/event_place/list.html:7 project/templates/layout.html:264
#: 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:295 project/templates/manage/members.html:5 #: project/templates/layout.html:266 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:267 project/templates/manage/relations.html:3
msgid "Relations"
msgstr "Beziehungen"
#: project/templates/admin/admin.html:15 #: project/templates/admin/admin.html:15
#: project/templates/admin/settings.html:4 #: project/templates/admin/settings.html:4
#: project/templates/admin/settings.html:8 #: project/templates/admin/settings.html:8
#: project/templates/admin_unit/update.html:14 #: project/templates/admin_unit/update.html:6
#: project/templates/layout.html:296 project/templates/manage/widgets.html:12 #: project/templates/admin_unit/update.html:23
#: project/templates/layout.html:268 project/templates/manage/widgets.html:12
#: project/templates/profile.html:19 #: project/templates/profile.html:19
msgid "Settings" msgid "Settings"
msgstr "Einstellungen" msgstr "Einstellungen"
#: project/templates/layout.html:297 project/templates/manage/reviews.html:10 #: project/templates/layout.html:269 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:307 #: project/templates/layout.html:279
msgid "Switch organization" msgid "Switch organization"
msgstr "Organisation wechseln" msgstr "Organisation wechseln"
#: project/templates/developer/read.html:4 project/templates/layout.html:357 #: project/templates/developer/read.html:4 project/templates/layout.html:329
#: project/templates/profile.html:29 #: project/templates/profile.html:29
msgid "Developer" msgid "Developer"
msgstr "Entwickler" msgstr "Entwickler"
@ -1425,7 +1443,7 @@ msgstr "Benutzer"
#: project/templates/admin/admin_units.html:27 #: project/templates/admin/admin_units.html:27
#: project/templates/admin/users.html:27 #: project/templates/admin/users.html:27
#: project/templates/manage/events.html:27 #: project/templates/manage/events.html:37
#: project/templates/manage/members.html:35 #: project/templates/manage/members.html:35
#: project/templates/manage/organizers.html:22 #: project/templates/manage/organizers.html:22
#: project/templates/manage/places.html:27 #: project/templates/manage/places.html:27
@ -1435,14 +1453,14 @@ msgstr "Benutzer"
msgid "Edit" msgid "Edit"
msgstr "Bearbeiten" msgstr "Bearbeiten"
#: project/templates/admin_unit/create.html:49 #: project/templates/admin_unit/create.html:58
#: project/templates/admin_unit/update.html:50 #: project/templates/admin_unit/update.html:59
#: project/templates/event/create.html:346 #: project/templates/event/create.html:353
#: project/templates/event/update.html:203 #: project/templates/event/update.html:210
#: project/templates/event_place/create.html:48 #: project/templates/event_place/create.html:57
#: project/templates/event_place/update.html:48 #: project/templates/event_place/update.html:57
#: project/templates/organizer/create.html:47 #: project/templates/organizer/create.html:56
#: project/templates/organizer/update.html:47 #: project/templates/organizer/update.html:56
msgid "Additional information" msgid "Additional information"
msgstr "Zusätzliche Informationen" msgstr "Zusätzliche Informationen"
@ -1550,38 +1568,38 @@ msgstr "Erstelle eine weitere Veranstaltung für %(admin_unit_name)s"
msgid "List all events of %(admin_unit_name)s" msgid "List all events of %(admin_unit_name)s"
msgstr "Zeige alle Veranstaltungen von %(admin_unit_name)s" msgstr "Zeige alle Veranstaltungen von %(admin_unit_name)s"
#: project/templates/event/create.html:90 #: project/templates/event/create.html:97
#: project/templates/event/update.html:76 #: project/templates/event/update.html:83
#: project/templates/widget/event_suggestion/create.html:99 #: project/templates/widget/event_suggestion/create.html:104
msgid "Enter place or address" msgid "Enter place or address"
msgstr "Orte oder Adresse eingeben" msgstr "Orte oder Adresse eingeben"
#: project/templates/event/create.html:176 #: project/templates/event/create.html:183
#: project/templates/event/update.html:99 #: project/templates/event/update.html:106
#: project/templates/widget/event_suggestion/create.html:124 #: project/templates/widget/event_suggestion/create.html:129
msgid "Enter organizer" msgid "Enter organizer"
msgstr "Veranstalter eingeben" msgstr "Veranstalter eingeben"
#: project/templates/event/create.html:238 #: project/templates/event/create.html:245
#: project/templates/event/update.html:129 #: project/templates/event/update.html:136
msgid "Event date" msgid "Event date"
msgstr "Termin" msgstr "Termin"
#: project/templates/event/create.html:275 #: project/templates/event/create.html:282
msgid "Switch to organizer search" msgid "Switch to organizer search"
msgstr "Zur Veranstaltersuche wechseln" msgstr "Zur Veranstaltersuche wechseln"
#: project/templates/event/create.html:308 #: project/templates/event/create.html:315
msgid "Switch to place search" msgid "Switch to place search"
msgstr "Zur Ortssuche wechseln" msgstr "Zur Ortssuche wechseln"
#: project/templates/event/create.html:319 #: project/templates/event/create.html:326
#: project/templates/event/update.html:176 #: project/templates/event/update.html:183
msgid "Access" msgid "Access"
msgstr "Zugang" msgstr "Zugang"
#: project/templates/event/create.html:333 #: project/templates/event/create.html:340
#: project/templates/event/update.html:190 #: project/templates/event/update.html:197
msgid "Target group" msgid "Target group"
msgstr "Zielgruppe" msgstr "Zielgruppe"
@ -1639,13 +1657,13 @@ msgstr "Möchtest du die Einladung von %(name)s akzeptieren?"
msgid "Member" msgid "Member"
msgstr "Mitglied" msgstr "Mitglied"
#: project/templates/manage/events.html:26 #: project/templates/manage/events.html:36
#: project/templates/manage/references_incoming.html:19 #: project/templates/manage/references_incoming.html:19
#: project/templates/manage/references_outgoing.html:19 #: project/templates/manage/references_outgoing.html:19
msgid "View" msgid "View"
msgstr "Anzeigen" msgstr "Anzeigen"
#: project/templates/manage/events.html:28 #: project/templates/manage/events.html:38
#: project/templates/manage/members.html:21 #: project/templates/manage/members.html:21
#: project/templates/manage/members.html:36 #: project/templates/manage/members.html:36
#: project/templates/manage/organizers.html:23 #: project/templates/manage/organizers.html:23
@ -1655,7 +1673,7 @@ msgstr "Anzeigen"
msgid "Delete" msgid "Delete"
msgstr "Löschen" msgstr "Löschen"
#: project/templates/manage/events.html:29 #: project/templates/manage/events.html:39
msgid "Duplicate" msgid "Duplicate"
msgstr "Duplizieren" msgstr "Duplizieren"
@ -1681,10 +1699,6 @@ msgstr "Empfehlung anfragen"
msgid "Show review status" msgid "Show review status"
msgstr "Prüfungsstatus anzeigen" msgstr "Prüfungsstatus anzeigen"
#: project/templates/manage/relations.html:3
msgid "Relations"
msgstr "Beziehungen"
#: project/templates/manage/reviews.html:5 #: project/templates/manage/reviews.html:5
#: project/templates/manage/reviews.html:9 #: project/templates/manage/reviews.html:9
msgid "Reviews" msgid "Reviews"
@ -1734,7 +1748,8 @@ msgstr "Aktiv"
msgid "Revoke" msgid "Revoke"
msgstr "Widerrufen" msgstr "Widerrufen"
#: project/templates/planing/list.html:4 project/templates/planing/list.html:94 #: project/templates/planing/list.html:5
#: project/templates/planing/list.html:105
msgid "Event Planing" msgid "Event Planing"
msgstr "Planungsassistent" msgstr "Planungsassistent"
@ -1788,23 +1803,23 @@ msgstr "Dies ermöglicht \"%(client_name)s\":"
msgid "You do not have an account yet? Not a problem!" msgid "You do not have an account yet? Not a problem!"
msgstr "Du hast noch keinen Account? Kein Problem!" msgstr "Du hast noch keinen Account? Kein Problem!"
#: project/templates/widget/event_date/list.html:4 #: project/templates/widget/event_date/list.html:5
msgid "Widget" msgid "Widget"
msgstr "Widget" msgstr "Widget"
#: project/templates/widget/event_date/list.html:116 #: project/templates/widget/event_date/list.html:123
msgid "Print" msgid "Print"
msgstr "Drucken" msgstr "Drucken"
#: project/templates/widget/event_suggestion/create.html:170 #: project/templates/widget/event_suggestion/create.html:175
msgid "Continue as guest" msgid "Continue as guest"
msgstr "Weiter als Gast" msgstr "Weiter als Gast"
#: project/templates/widget/event_suggestion/create.html:275 #: project/templates/widget/event_suggestion/create.html:280
msgid "Optional details" msgid "Optional details"
msgstr "Optionale Details" msgstr "Optionale Details"
#: project/templates/widget/event_suggestion/create.html:308 #: project/templates/widget/event_suggestion/create.html:313
msgid "Preview" msgid "Preview"
msgstr "Vorschau" msgstr "Vorschau"
@ -1873,27 +1888,27 @@ msgstr "Die eingegebene Email passt nicht zur Email der Einladung"
msgid "Invitation successfully deleted" msgid "Invitation successfully deleted"
msgstr "Einladung erfolgreich gelöscht" msgstr "Einladung erfolgreich gelöscht"
#: project/views/event.py:171 #: project/views/event.py:172
msgid "Event successfully published" msgid "Event successfully published"
msgstr "Veranstaltung erfolgreich veröffentlicht" msgstr "Veranstaltung erfolgreich veröffentlicht"
#: project/views/event.py:173 #: project/views/event.py:174
msgid "Draft successfully saved" msgid "Draft successfully saved"
msgstr "Entwurf erfolgreich gespeichert" msgstr "Entwurf erfolgreich gespeichert"
#: project/views/event.py:216 #: project/views/event.py:217
msgid "Event successfully updated" msgid "Event successfully updated"
msgstr "Veranstaltung erfolgreich aktualisiert" msgstr "Veranstaltung erfolgreich aktualisiert"
#: project/views/event.py:239 project/views/reference.py:162 #: project/views/event.py:240 project/views/reference.py:162
msgid "Entered name does not match event name" msgid "Entered name does not match event name"
msgstr "Der eingegebene Name entspricht nicht dem Namen der Veranstaltung" msgstr "Der eingegebene Name entspricht nicht dem Namen der Veranstaltung"
#: project/views/event.py:245 #: project/views/event.py:246
msgid "Event successfully deleted" msgid "Event successfully deleted"
msgstr "Veranstaltung erfolgreich gelöscht" msgstr "Veranstaltung erfolgreich gelöscht"
#: project/views/event.py:392 #: project/views/event.py:393
msgid "Referenced event changed" msgid "Referenced event changed"
msgstr "Empfohlene Veranstaltung wurde geändert" msgstr "Empfohlene Veranstaltung wurde geändert"
@ -2020,9 +2035,11 @@ msgstr "Empfehlungsanfrage erfolgreich aktualisiert"
msgid "" msgid ""
"If all upcoming reference requests of %(admin_unit_name)s should be " "If all upcoming reference requests of %(admin_unit_name)s should be "
"verified automatically." "verified automatically."
msgstr "Ob alle zukünftigen Empfehlungsanfragen von %(admin_unit_name)s automatisch verifiziert werden sollen." msgstr ""
"Ob alle zukünftigen Empfehlungsanfragen von %(admin_unit_name)s "
"automatisch verifiziert werden sollen."
#: project/views/utils.py:36 #: project/views/utils.py:54
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."
@ -2030,16 +2047,16 @@ 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:83 #: project/views/utils.py:101
#, 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:90 #: project/views/utils.py:108
msgid "Show" msgid "Show"
msgstr "Anzeigen" msgstr "Anzeigen"
#: project/views/utils.py:97 #: project/views/utils.py:115
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"

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: 2021-08-30 23:19+0200\n" "POT-Creation-Date: 2021-09-02 10:13+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"
@ -159,6 +159,14 @@ msgid "Scope_event:write"
msgstr "Create, update and delete events" msgstr "Create, update and delete events"
#: project/i10n.py:48 #: project/i10n.py:48
msgid "Scope_organization:read"
msgstr "Read organizations"
#: project/i10n.py:49
msgid "Scope_organization:write"
msgstr "Create, update and delete organizations"
#: project/i10n.py:50
msgid "There must be no self-reference." msgid "There must be no self-reference."
msgstr "" msgstr ""
@ -170,28 +178,28 @@ msgstr ""
msgid "." msgid "."
msgstr "" msgstr ""
#: project/api/__init__.py:83 #: project/api/__init__.py:84
msgid "message" msgid "message"
msgstr "" msgstr ""
#: project/forms/admin.py:10 project/templates/layout.html:335 #: project/forms/admin.py:10 project/templates/layout.html:307
#: project/views/root.py:42 #: project/views/root.py:42
msgid "Terms of service" msgid "Terms of service"
msgstr "" msgstr ""
#: project/forms/admin.py:11 project/templates/layout.html:339 #: project/forms/admin.py:11 project/templates/layout.html:311
#: project/views/root.py:50 #: project/views/root.py:50
msgid "Legal notice" msgid "Legal notice"
msgstr "" msgstr ""
#: project/forms/admin.py:12 project/templates/_macros.html:1356 #: project/forms/admin.py:12 project/templates/_macros.html:1356
#: project/templates/layout.html:343 #: project/templates/layout.html:315
#: project/templates/widget/event_suggestion/create.html:199 #: project/templates/widget/event_suggestion/create.html:204
#: project/views/admin_unit.py:36 project/views/root.py:58 #: project/views/admin_unit.py:36 project/views/root.py:58
msgid "Contact" msgid "Contact"
msgstr "" msgstr ""
#: project/forms/admin.py:13 project/templates/layout.html:347 #: project/forms/admin.py:13 project/templates/layout.html:319
#: project/views/root.py:66 #: project/views/root.py:66
msgid "Privacy" msgid "Privacy"
msgstr "" msgstr ""
@ -318,7 +326,8 @@ msgstr ""
msgid "Logo" msgid "Logo"
msgstr "" msgstr ""
#: project/forms/admin_unit.py:63 project/templates/admin_unit/create.html:13 #: project/forms/admin_unit.py:63 project/templates/admin_unit/create.html:5
#: project/templates/admin_unit/create.html:22
#: project/templates/manage/admin_units.html:18 #: project/templates/manage/admin_units.html:18
msgid "Create organization" msgid "Create organization"
msgstr "" msgstr ""
@ -473,9 +482,9 @@ msgstr ""
msgid "Indicate when the event will end. An event can last a maximum of 14 days." msgid "Indicate when the event will end. An event can last a maximum of 14 days."
msgstr "" msgstr ""
#: project/forms/event.py:82 project/templates/event/create.html:244 #: project/forms/event.py:82 project/templates/event/create.html:251
#: project/templates/event/update.html:135 #: project/templates/event/update.html:142
#: project/templates/widget/event_suggestion/create.html:234 #: project/templates/widget/event_suggestion/create.html:239
msgid "Recurring event" msgid "Recurring event"
msgstr "" msgstr ""
@ -552,7 +561,7 @@ msgid "If the participants needs to register for the event."
msgstr "" msgstr ""
#: project/forms/event.py:137 project/templates/_macros.html:276 #: project/forms/event.py:137 project/templates/_macros.html:276
#: project/templates/layout.html:159 #: project/templates/layout.html:130
msgid "Booked up" msgid "Booked up"
msgstr "" msgstr ""
@ -608,11 +617,11 @@ msgstr ""
msgid "EventAttendanceMode.offline" msgid "EventAttendanceMode.offline"
msgstr "Normal (Offline)" msgstr "Normal (Offline)"
#: project/forms/event.py:184 project/templates/layout.html:147 #: project/forms/event.py:184 project/templates/layout.html:118
msgid "EventAttendanceMode.online" msgid "EventAttendanceMode.online"
msgstr "Online" msgstr "Online"
#: project/forms/event.py:186 project/templates/layout.html:150 #: project/forms/event.py:186 project/templates/layout.html:121
msgid "EventAttendanceMode.mixed" msgid "EventAttendanceMode.mixed"
msgstr "Online and offline" msgstr "Online and offline"
@ -621,7 +630,7 @@ msgid "Choose how people can attend the event."
msgstr "" msgstr ""
#: project/forms/event.py:192 project/forms/event_place.py:27 #: project/forms/event.py:192 project/forms/event_place.py:27
#: project/templates/widget/event_suggestion/create.html:252 #: project/templates/widget/event_suggestion/create.html:257
msgid "Photo" msgid "Photo"
msgstr "" msgstr ""
@ -658,8 +667,8 @@ msgstr ""
#: project/forms/event.py:231 project/forms/reference.py:14 #: project/forms/event.py:231 project/forms/reference.py:14
#: project/forms/reference.py:27 project/forms/reference_request.py:76 #: project/forms/reference.py:27 project/forms/reference_request.py:76
#: project/templates/event/create.html:358 #: project/templates/event/create.html:365
#: project/templates/event/update.html:215 #: project/templates/event/update.html:222
msgid "Rating" msgid "Rating"
msgstr "" msgstr ""
@ -673,11 +682,11 @@ msgstr ""
#: project/forms/event.py:243 project/forms/event.py:252 #: project/forms/event.py:243 project/forms/event.py:252
#: project/forms/event.py:321 project/forms/event_suggestion.py:50 #: project/forms/event.py:321 project/forms/event_suggestion.py:50
#: project/templates/_macros.html:468 project/templates/_macros.html:624 #: project/templates/_macros.html:468 project/templates/_macros.html:624
#: project/templates/event/create.html:283 #: project/templates/event/create.html:290
#: project/templates/event/update.html:165 #: project/templates/event/update.html:172
#: project/templates/event_place/create.html:22 #: project/templates/event_place/create.html:31
#: project/templates/event_place/delete.html:13 #: project/templates/event_place/delete.html:13
#: project/templates/event_place/update.html:22 #: project/templates/event_place/update.html:31
msgid "Place" msgid "Place"
msgstr "" msgstr ""
@ -690,13 +699,13 @@ msgid "Enter new place"
msgstr "" msgstr ""
#: project/forms/event.py:259 project/forms/event.py:268 #: project/forms/event.py:259 project/forms/event.py:268
#: project/forms/event.py:329 project/forms/event.py:389 #: project/forms/event.py:329 project/forms/event.py:391
#: project/forms/event_suggestion.py:60 project/templates/_macros.html:506 #: project/forms/event_suggestion.py:60 project/templates/_macros.html:506
#: project/templates/_macros.html:661 project/templates/event/create.html:254 #: project/templates/_macros.html:661 project/templates/event/create.html:261
#: project/templates/event/update.html:156 #: project/templates/event/update.html:163
#: project/templates/organizer/create.html:18 #: project/templates/organizer/create.html:27
#: project/templates/organizer/delete.html:13 #: project/templates/organizer/delete.html:13
#: project/templates/organizer/update.html:18 #: project/templates/organizer/update.html:27
msgid "Organizer" msgid "Organizer"
msgstr "" msgstr ""
@ -736,7 +745,7 @@ msgid ""
"Organizers." "Organizers."
msgstr "" msgstr ""
#: project/forms/event.py:338 project/templates/event/update.html:145 #: project/forms/event.py:338 project/templates/event/update.html:152
#: project/templates/oauth2_token/list.html:21 #: project/templates/oauth2_token/list.html:21
msgid "Status" msgid "Status"
msgstr "" msgstr ""
@ -745,23 +754,23 @@ msgstr ""
msgid "EventStatus.scheduled" msgid "EventStatus.scheduled"
msgstr "Scheduled" msgstr "Scheduled"
#: project/forms/event.py:342 project/templates/layout.html:113 #: project/forms/event.py:342 project/templates/layout.html:84
#: project/templates/layout.html:128 #: project/templates/layout.html:99
msgid "EventStatus.cancelled" msgid "EventStatus.cancelled"
msgstr "Cancelled" msgstr "Cancelled"
#: project/forms/event.py:343 project/templates/layout.html:116 #: project/forms/event.py:343 project/templates/layout.html:87
#: project/templates/layout.html:131 #: project/templates/layout.html:102
msgid "EventStatus.movedOnline" msgid "EventStatus.movedOnline"
msgstr "Moved online" msgstr "Moved online"
#: project/forms/event.py:344 project/templates/layout.html:119 #: project/forms/event.py:344 project/templates/layout.html:90
#: project/templates/layout.html:134 #: project/templates/layout.html:105
msgid "EventStatus.postponed" msgid "EventStatus.postponed"
msgstr "Postponed" msgstr "Postponed"
#: project/forms/event.py:345 project/templates/layout.html:122 #: project/forms/event.py:345 project/templates/layout.html:93
#: project/templates/layout.html:137 #: project/templates/layout.html:108
msgid "EventStatus.rescheduled" msgid "EventStatus.rescheduled"
msgstr "Rescheduled" msgstr "Rescheduled"
@ -785,8 +794,8 @@ msgstr ""
msgid "Select the public status of the event." msgid "Select the public status of the event."
msgstr "" msgstr ""
#: project/forms/event.py:360 project/templates/event/update.html:4 #: project/forms/event.py:360 project/templates/event/update.html:5
#: project/templates/event/update.html:112 #: project/templates/event/update.html:119
msgid "Update event" msgid "Update event"
msgstr "" msgstr ""
@ -801,52 +810,54 @@ msgstr ""
msgid "From" msgid "From"
msgstr "" msgstr ""
#: project/forms/event.py:383 project/forms/event_date.py:16 #: project/forms/event.py:384 project/forms/event_date.py:17
#: project/forms/planing.py:15 #: project/forms/planing.py:16
msgid "to" msgid "to"
msgstr "" msgstr ""
#: project/forms/event.py:384 project/forms/event_date.py:17 #: project/forms/event.py:386 project/forms/event_date.py:19
msgid "Keyword" msgid "Keyword"
msgstr "" msgstr ""
#: project/forms/event.py:386 project/forms/event_date.py:19 #: project/forms/event.py:388 project/forms/event_date.py:21
#: project/forms/planing.py:17 project/templates/_macros.html:392 #: project/forms/planing.py:19 project/templates/_macros.html:392
msgid "Category" msgid "Category"
msgstr "" msgstr ""
#: project/forms/event.py:392 #: project/forms/event.py:394
msgid "Find events" msgid "Find events"
msgstr "" msgstr ""
#: project/forms/event_date.py:22 project/forms/planing.py:20 #: project/forms/event_date.py:24 project/forms/planing.py:22
#: project/templates/_macros.html:137 project/templates/_macros.html:326 #: project/templates/_macros.html:137 project/templates/_macros.html:326
#: project/templates/admin_unit/create.html:29 #: project/templates/admin_unit/create.html:38
#: project/templates/admin_unit/update.html:30 #: project/templates/admin_unit/update.html:39
#: project/templates/event_place/create.html:31 #: project/templates/event_place/create.html:40
#: project/templates/event_place/update.html:31 #: project/templates/event_place/update.html:40
#: project/templates/organizer/create.html:27 #: project/templates/organizer/create.html:36
#: project/templates/organizer/update.html:27 #: project/templates/organizer/update.html:36
msgid "Location" msgid "Location"
msgstr "" msgstr ""
#: project/forms/event_date.py:24 project/forms/planing.py:22 #: project/forms/event_date.py:26 project/forms/planing.py:24
msgid "Distance" msgid "Distance"
msgstr "" msgstr ""
#: project/forms/event_date.py:30 project/forms/planing.py:34 #: project/forms/event_date.py:32 project/forms/planing.py:36
#: project/templates/widget/event_date/list.html:53 #: project/templates/widget/event_date/list.html:60
msgid "Find" msgid "Find"
msgstr "" msgstr ""
#: project/forms/event_place.py:41 project/templates/event_place/create.html:12 #: project/forms/event_place.py:41 project/templates/event_place/create.html:5
#: project/templates/event_place/create.html:21
#: project/templates/event_place/list.html:11 #: project/templates/event_place/list.html:11
#: project/templates/manage/places.html:18 #: project/templates/manage/places.html:18
msgid "Create place" msgid "Create place"
msgstr "" msgstr ""
#: project/forms/event_place.py:45 project/templates/event_place/read.html:12 #: project/forms/event_place.py:45 project/templates/event_place/read.html:12
#: project/templates/event_place/update.html:12 #: project/templates/event_place/update.html:5
#: project/templates/event_place/update.html:21
msgid "Update place" msgid "Update place"
msgstr "" msgstr ""
@ -874,21 +885,21 @@ msgstr ""
msgid "I would like to be notified by email after the review" msgid "I would like to be notified by email after the review"
msgstr "" msgstr ""
#: project/forms/event_suggestion.py:52 project/templates/event/create.html:288 #: project/forms/event_suggestion.py:52 project/templates/event/create.html:295
msgid "" msgid ""
"Choose where the event takes place. If the venue is not yet in the list, " "Choose where the event takes place. If the venue is not yet in the list, "
"just enter it." "just enter it."
msgstr "" msgstr ""
#: project/forms/event_suggestion.py:62 project/templates/event/create.html:258 #: project/forms/event_suggestion.py:62 project/templates/event/create.html:265
msgid "" msgid ""
"Select the organizer. If the organizer is not yet on the list, just enter" "Select the organizer. If the organizer is not yet on the list, just enter"
" it." " it."
msgstr "" msgstr ""
#: project/forms/event_suggestion.py:78 #: project/forms/event_suggestion.py:78
#: project/templates/widget/event_suggestion/create.html:4 #: project/templates/widget/event_suggestion/create.html:5
#: project/templates/widget/event_suggestion/create.html:152 #: project/templates/widget/event_suggestion/create.html:157
msgid "Create event suggestion" msgid "Create event suggestion"
msgstr "" msgstr ""
@ -943,11 +954,13 @@ msgid "Revoke OAuth2 token"
msgstr "" msgstr ""
#: project/forms/organizer.py:43 project/templates/manage/organizers.html:12 #: project/forms/organizer.py:43 project/templates/manage/organizers.html:12
#: project/templates/organizer/create.html:12 #: project/templates/organizer/create.html:5
#: project/templates/organizer/create.html:21
msgid "Create organizer" msgid "Create organizer"
msgstr "" msgstr ""
#: project/forms/organizer.py:47 project/templates/organizer/update.html:12 #: project/forms/organizer.py:47 project/templates/organizer/update.html:5
#: project/templates/organizer/update.html:21
msgid "Update organizer" msgid "Update organizer"
msgstr "" msgstr ""
@ -955,15 +968,15 @@ msgstr ""
msgid "Delete organizer" msgid "Delete organizer"
msgstr "" msgstr ""
#: project/forms/planing.py:28 #: project/forms/planing.py:30
msgid "Weekdays" msgid "Weekdays"
msgstr "" msgstr ""
#: project/forms/reference.py:11 project/forms/reference_request.py:16 #: project/forms/reference.py:11 project/forms/reference_request.py:16
#: project/templates/_macros.html:527 project/templates/_macros.html:687 #: project/templates/_macros.html:527 project/templates/_macros.html:687
#: project/templates/admin_unit/create.html:19 #: project/templates/admin_unit/create.html:28
#: project/templates/admin_unit/update.html:20 #: project/templates/admin_unit/update.html:29
#: project/templates/layout.html:289 #: project/templates/layout.html:260
msgid "Organization" msgid "Organization"
msgstr "" msgstr ""
@ -1050,7 +1063,7 @@ msgstr ""
msgid "Deny" msgid "Deny"
msgstr "" msgstr ""
#: project/forms/widgets.py:137 #: project/forms/widgets.py:154
msgid "This field is required." msgid "This field is required."
msgstr "" msgstr ""
@ -1097,11 +1110,11 @@ msgstr ""
#: project/templates/_macros.html:408 project/templates/_macros.html:584 #: project/templates/_macros.html:408 project/templates/_macros.html:584
#: project/templates/event/actions.html:12 #: project/templates/event/actions.html:12
#: project/templates/event/create.html:228 #: project/templates/event/create.html:235
#: project/templates/event/delete.html:13 #: project/templates/event/delete.html:13
#: project/templates/event/update.html:119 #: project/templates/event/update.html:126
#: project/templates/reference/delete.html:13 #: project/templates/reference/delete.html:13
#: project/templates/widget/event_suggestion/create.html:224 #: project/templates/widget/event_suggestion/create.html:229
msgid "Event" msgid "Event"
msgstr "" msgstr ""
@ -1132,8 +1145,8 @@ 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:711 project/templates/event_date/list.html:4 #: project/templates/_macros.html:711 project/templates/event_date/list.html:5
#: project/templates/event_date/list.html:259 #: project/templates/event_date/list.html:278
#: project/templates/event_date/search.html:3 #: project/templates/event_date/search.html:3
#: project/templates/reference_request/review.html:32 #: project/templates/reference_request/review.html:32
msgid "Event Dates" msgid "Event Dates"
@ -1144,13 +1157,13 @@ msgid "Search location on Google"
msgstr "" msgstr ""
#: project/templates/_macros.html:845 project/templates/_macros.html:847 #: project/templates/_macros.html:845 project/templates/_macros.html:847
#: project/templates/event_date/list.html:280 #: project/templates/event_date/list.html:299
#: project/templates/widget/event_suggestion/create.html:188 #: project/templates/widget/event_suggestion/create.html:193
#: project/templates/widget/event_suggestion/create.html:213 #: project/templates/widget/event_suggestion/create.html:218
#: project/templates/widget/event_suggestion/create.html:241 #: project/templates/widget/event_suggestion/create.html:246
#: project/templates/widget/event_suggestion/create.html:264 #: project/templates/widget/event_suggestion/create.html:269
#: project/templates/widget/event_suggestion/create.html:297 #: project/templates/widget/event_suggestion/create.html:302
#: project/templates/widget/event_suggestion/create.html:326 #: project/templates/widget/event_suggestion/create.html:331
msgid "Previous" msgid "Previous"
msgstr "" msgstr ""
@ -1160,12 +1173,12 @@ msgid "Page %(page)d of %(pages)d (%(total)d total)"
msgstr "" msgstr ""
#: project/templates/_macros.html:851 project/templates/_macros.html:853 #: project/templates/_macros.html:851 project/templates/_macros.html:853
#: project/templates/event_date/list.html:282 #: project/templates/event_date/list.html:301
#: project/templates/widget/event_suggestion/create.html:189 #: project/templates/widget/event_suggestion/create.html:194
#: project/templates/widget/event_suggestion/create.html:214 #: project/templates/widget/event_suggestion/create.html:219
#: project/templates/widget/event_suggestion/create.html:242 #: project/templates/widget/event_suggestion/create.html:247
#: project/templates/widget/event_suggestion/create.html:265 #: project/templates/widget/event_suggestion/create.html:270
#: project/templates/widget/event_suggestion/create.html:298 #: project/templates/widget/event_suggestion/create.html:303
msgid "Next" msgid "Next"
msgstr "" msgstr ""
@ -1193,7 +1206,7 @@ msgstr ""
msgid "Edit event" msgid "Edit event"
msgstr "" msgstr ""
#: project/templates/_macros.html:1201 project/templates/manage/events.html:30 #: project/templates/_macros.html:1201 project/templates/manage/events.html:40
msgid "More" msgid "More"
msgstr "" msgstr ""
@ -1243,31 +1256,31 @@ msgstr ""
msgid "Register for free" msgid "Register for free"
msgstr "" msgstr ""
#: project/templates/event_place/read.html:22 project/templates/layout.html:206 #: project/templates/event_place/read.html:22 project/templates/layout.html:177
#: project/templates/layout.html:250 project/templates/manage/events.html:5 #: project/templates/layout.html:221 project/templates/manage/events.html:6
#: project/templates/manage/events.html:9 #: project/templates/manage/events.html:19
msgid "Events" msgid "Events"
msgstr "" msgstr ""
#: project/templates/layout.html:207 #: project/templates/layout.html:178
msgid "Planing" msgid "Planing"
msgstr "" msgstr ""
#: project/templates/layout.html:208 #: project/templates/layout.html:179
msgid "Example" msgid "Example"
msgstr "" 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:217 #: project/templates/layout.html:188
#: project/templates/manage/admin_units.html:3 #: project/templates/manage/admin_units.html:3
#: project/templates/manage/admin_units.html:16 #: project/templates/manage/admin_units.html:16
#: project/templates/profile.html:60 #: project/templates/profile.html:60
msgid "Organizations" msgid "Organizations"
msgstr "" msgstr ""
#: project/templates/layout.html:218 #: project/templates/layout.html:189
#: 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
@ -1277,92 +1290,97 @@ 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:221 #: project/templates/admin/users.html:10 project/templates/layout.html:192
msgid "Admin" msgid "Admin"
msgstr "" msgstr ""
#: project/templates/layout.html:225 #: project/templates/layout.html:196
msgid "Logout" msgid "Logout"
msgstr "" msgstr ""
#: project/templates/layout.html:256 #: project/templates/layout.html:227
msgid "Show events" msgid "Show events"
msgstr "" msgstr ""
#: project/templates/event/create.html:4 #: project/templates/event/create.html:5
#: project/templates/event/create.html:221 project/templates/layout.html:257 #: project/templates/event/create.html:228 project/templates/layout.html:228
#: project/templates/manage/events.html:12 #: project/templates/manage/events.html:22
#: project/templates/manage/organizers.html:21 #: project/templates/manage/organizers.html:21
msgid "Create event" msgid "Create event"
msgstr "" msgstr ""
#: project/templates/layout.html:260 #: project/templates/layout.html:231
msgid "Review suggestions" msgid "Review suggestions"
msgstr "" msgstr ""
#: project/templates/layout.html:270 #: project/templates/layout.html:241
#: 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:276 #: project/templates/layout.html:247
#: 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:277 #: project/templates/layout.html:248
#: 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:279 #: project/templates/layout.html:250
#: 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:284 #: project/templates/layout.html:255
#: 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:292 project/templates/manage/organizers.html:5 #: project/templates/layout.html:263 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:293 #: project/templates/event_place/list.html:7 project/templates/layout.html:264
#: 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:295 project/templates/manage/members.html:5 #: project/templates/layout.html:266 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:267 project/templates/manage/relations.html:3
msgid "Relations"
msgstr ""
#: project/templates/admin/admin.html:15 #: project/templates/admin/admin.html:15
#: project/templates/admin/settings.html:4 #: project/templates/admin/settings.html:4
#: project/templates/admin/settings.html:8 #: project/templates/admin/settings.html:8
#: project/templates/admin_unit/update.html:14 #: project/templates/admin_unit/update.html:6
#: project/templates/layout.html:296 project/templates/manage/widgets.html:12 #: project/templates/admin_unit/update.html:23
#: project/templates/layout.html:268 project/templates/manage/widgets.html:12
#: project/templates/profile.html:19 #: project/templates/profile.html:19
msgid "Settings" msgid "Settings"
msgstr "" msgstr ""
#: project/templates/layout.html:297 project/templates/manage/reviews.html:10 #: project/templates/layout.html:269 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:307 #: project/templates/layout.html:279
msgid "Switch organization" msgid "Switch organization"
msgstr "" msgstr ""
#: project/templates/developer/read.html:4 project/templates/layout.html:357 #: project/templates/developer/read.html:4 project/templates/layout.html:329
#: project/templates/profile.html:29 #: project/templates/profile.html:29
msgid "Developer" msgid "Developer"
msgstr "" msgstr ""
@ -1390,7 +1408,7 @@ msgstr ""
#: project/templates/admin/admin_units.html:27 #: project/templates/admin/admin_units.html:27
#: project/templates/admin/users.html:27 #: project/templates/admin/users.html:27
#: project/templates/manage/events.html:27 #: project/templates/manage/events.html:37
#: project/templates/manage/members.html:35 #: project/templates/manage/members.html:35
#: project/templates/manage/organizers.html:22 #: project/templates/manage/organizers.html:22
#: project/templates/manage/places.html:27 #: project/templates/manage/places.html:27
@ -1400,14 +1418,14 @@ msgstr ""
msgid "Edit" msgid "Edit"
msgstr "" msgstr ""
#: project/templates/admin_unit/create.html:49 #: project/templates/admin_unit/create.html:58
#: project/templates/admin_unit/update.html:50 #: project/templates/admin_unit/update.html:59
#: project/templates/event/create.html:346 #: project/templates/event/create.html:353
#: project/templates/event/update.html:203 #: project/templates/event/update.html:210
#: project/templates/event_place/create.html:48 #: project/templates/event_place/create.html:57
#: project/templates/event_place/update.html:48 #: project/templates/event_place/update.html:57
#: project/templates/organizer/create.html:47 #: project/templates/organizer/create.html:56
#: project/templates/organizer/update.html:47 #: project/templates/organizer/update.html:56
msgid "Additional information" msgid "Additional information"
msgstr "" msgstr ""
@ -1513,38 +1531,38 @@ msgstr ""
msgid "List all events of %(admin_unit_name)s" msgid "List all events of %(admin_unit_name)s"
msgstr "" msgstr ""
#: project/templates/event/create.html:90 #: project/templates/event/create.html:97
#: project/templates/event/update.html:76 #: project/templates/event/update.html:83
#: project/templates/widget/event_suggestion/create.html:99 #: project/templates/widget/event_suggestion/create.html:104
msgid "Enter place or address" msgid "Enter place or address"
msgstr "" msgstr ""
#: project/templates/event/create.html:176 #: project/templates/event/create.html:183
#: project/templates/event/update.html:99 #: project/templates/event/update.html:106
#: project/templates/widget/event_suggestion/create.html:124 #: project/templates/widget/event_suggestion/create.html:129
msgid "Enter organizer" msgid "Enter organizer"
msgstr "" msgstr ""
#: project/templates/event/create.html:238 #: project/templates/event/create.html:245
#: project/templates/event/update.html:129 #: project/templates/event/update.html:136
msgid "Event date" msgid "Event date"
msgstr "" msgstr ""
#: project/templates/event/create.html:275 #: project/templates/event/create.html:282
msgid "Switch to organizer search" msgid "Switch to organizer search"
msgstr "" msgstr ""
#: project/templates/event/create.html:308 #: project/templates/event/create.html:315
msgid "Switch to place search" msgid "Switch to place search"
msgstr "" msgstr ""
#: project/templates/event/create.html:319 #: project/templates/event/create.html:326
#: project/templates/event/update.html:176 #: project/templates/event/update.html:183
msgid "Access" msgid "Access"
msgstr "" msgstr ""
#: project/templates/event/create.html:333 #: project/templates/event/create.html:340
#: project/templates/event/update.html:190 #: project/templates/event/update.html:197
msgid "Target group" msgid "Target group"
msgstr "" msgstr ""
@ -1602,13 +1620,13 @@ msgstr ""
msgid "Member" msgid "Member"
msgstr "" msgstr ""
#: project/templates/manage/events.html:26 #: project/templates/manage/events.html:36
#: project/templates/manage/references_incoming.html:19 #: project/templates/manage/references_incoming.html:19
#: project/templates/manage/references_outgoing.html:19 #: project/templates/manage/references_outgoing.html:19
msgid "View" msgid "View"
msgstr "" msgstr ""
#: project/templates/manage/events.html:28 #: project/templates/manage/events.html:38
#: project/templates/manage/members.html:21 #: project/templates/manage/members.html:21
#: project/templates/manage/members.html:36 #: project/templates/manage/members.html:36
#: project/templates/manage/organizers.html:23 #: project/templates/manage/organizers.html:23
@ -1618,7 +1636,7 @@ msgstr ""
msgid "Delete" msgid "Delete"
msgstr "" msgstr ""
#: project/templates/manage/events.html:29 #: project/templates/manage/events.html:39
msgid "Duplicate" msgid "Duplicate"
msgstr "" msgstr ""
@ -1644,10 +1662,6 @@ msgstr ""
msgid "Show review status" msgid "Show review status"
msgstr "" msgstr ""
#: project/templates/manage/relations.html:3
msgid "Relations"
msgstr ""
#: project/templates/manage/reviews.html:5 #: project/templates/manage/reviews.html:5
#: project/templates/manage/reviews.html:9 #: project/templates/manage/reviews.html:9
msgid "Reviews" msgid "Reviews"
@ -1697,7 +1711,8 @@ msgstr ""
msgid "Revoke" msgid "Revoke"
msgstr "" msgstr ""
#: project/templates/planing/list.html:4 project/templates/planing/list.html:94 #: project/templates/planing/list.html:5
#: project/templates/planing/list.html:105
msgid "Event Planing" msgid "Event Planing"
msgstr "" msgstr ""
@ -1751,23 +1766,23 @@ msgstr ""
msgid "You do not have an account yet? Not a problem!" msgid "You do not have an account yet? Not a problem!"
msgstr "" msgstr ""
#: project/templates/widget/event_date/list.html:4 #: project/templates/widget/event_date/list.html:5
msgid "Widget" msgid "Widget"
msgstr "" msgstr ""
#: project/templates/widget/event_date/list.html:116 #: project/templates/widget/event_date/list.html:123
msgid "Print" msgid "Print"
msgstr "" msgstr ""
#: project/templates/widget/event_suggestion/create.html:170 #: project/templates/widget/event_suggestion/create.html:175
msgid "Continue as guest" msgid "Continue as guest"
msgstr "" msgstr ""
#: project/templates/widget/event_suggestion/create.html:275 #: project/templates/widget/event_suggestion/create.html:280
msgid "Optional details" msgid "Optional details"
msgstr "" msgstr ""
#: project/templates/widget/event_suggestion/create.html:308 #: project/templates/widget/event_suggestion/create.html:313
msgid "Preview" msgid "Preview"
msgstr "" msgstr ""
@ -1833,27 +1848,27 @@ msgstr ""
msgid "Invitation successfully deleted" msgid "Invitation successfully deleted"
msgstr "" msgstr ""
#: project/views/event.py:171 #: project/views/event.py:172
msgid "Event successfully published" msgid "Event successfully published"
msgstr "" msgstr ""
#: project/views/event.py:173 #: project/views/event.py:174
msgid "Draft successfully saved" msgid "Draft successfully saved"
msgstr "" msgstr ""
#: project/views/event.py:216 #: project/views/event.py:217
msgid "Event successfully updated" msgid "Event successfully updated"
msgstr "" msgstr ""
#: project/views/event.py:239 project/views/reference.py:162 #: project/views/event.py:240 project/views/reference.py:162
msgid "Entered name does not match event name" msgid "Entered name does not match event name"
msgstr "" msgstr ""
#: project/views/event.py:245 #: project/views/event.py:246
msgid "Event successfully deleted" msgid "Event successfully deleted"
msgstr "" msgstr ""
#: project/views/event.py:392 #: project/views/event.py:393
msgid "Referenced event changed" msgid "Referenced event changed"
msgstr "" msgstr ""
@ -1980,22 +1995,22 @@ msgid ""
"verified automatically." "verified automatically."
msgstr "" msgstr ""
#: project/views/utils.py:36 #: project/views/utils.py:54
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:83 #: project/views/utils.py:101
#, python-format #, python-format
msgid "Error in the %s field - %s" msgid "Error in the %s field - %s"
msgstr "" msgstr ""
#: project/views/utils.py:90 #: project/views/utils.py:108
msgid "Show" msgid "Show"
msgstr "" msgstr ""
#: project/views/utils.py:97 #: project/views/utils.py:115
msgid "You do not have permission for this action" msgid "You do not have permission for this action"
msgstr "" msgstr ""

View File

@ -39,7 +39,7 @@ def test_create(client, seeder, app):
result = runner.invoke( result = runner.invoke(
args=["user", "create", "test@test.de", "password", "--confirm"] args=["user", "create", "test@test.de", "password", "--confirm"]
) )
assert "Created user test@test.de." in result.output assert "user_id" in result.output
with app.app_context(): with app.app_context():
from project.services.user import find_user_by_email from project.services.user import find_user_by_email