diff --git a/.coveragerc b/.coveragerc index b7c0f63..9cd4d42 100644 --- a/.coveragerc +++ b/.coveragerc @@ -1,3 +1,3 @@ [run] omit = - project/cli/database.py \ No newline at end of file + project/cli/test.py \ No newline at end of file diff --git a/.github/workflows/cypress.yml b/.github/workflows/cypress.yml index d0a7995..d8a2bd9 100644 --- a/.github/workflows/cypress.yml +++ b/.github/workflows/cypress.yml @@ -54,11 +54,12 @@ jobs: - name: Start server run: | - flask database create-all - flask database seed + flask test create-all + flask test seed gunicorn -b 127.0.0.1:5001 -w 1 project:app --daemon env: DATABASE_URL: postgresql://postgres:postgres@localhost/gsevpt_tests + TESTING: 1 - name: Cypress run uses: cypress-io/github-action@v2 @@ -69,6 +70,7 @@ jobs: config: baseUrl=http://127.0.0.1:5001 env: DATABASE_URL: postgresql://postgres:postgres@localhost/gsevpt_tests + TESTING: 1 CYPRESS_PROJECT_ID: ${{ secrets.CYPRESS_PROJECT_ID }} CYPRESS_RECORD_KEY: ${{ secrets.CYPRESS_RECORD_KEY }} GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} diff --git a/cypress/integration/home_page_spec.js b/cypress/integration/index.js similarity index 100% rename from cypress/integration/home_page_spec.js rename to cypress/integration/index.js diff --git a/cypress/integration/login_spec.js b/cypress/integration/login.js similarity index 100% rename from cypress/integration/login_spec.js rename to cypress/integration/login.js diff --git a/cypress/integration/manage.js b/cypress/integration/manage.js new file mode 100644 index 0000000..8346509 --- /dev/null +++ b/cypress/integration/manage.js @@ -0,0 +1,10 @@ +describe('Manage', () => { + it('manage', () => { + cy.login() + cy.createAdminUnit().then(function(adminUnitId) { + cy.createEvent(adminUnitId).then(function(eventId) { + cy.visit('/manage/admin_unit/' + adminUnitId) + }) + }) + }) + }) \ No newline at end of file diff --git a/cypress/integration/profile_spec.js b/cypress/integration/profile.js similarity index 100% rename from cypress/integration/profile_spec.js rename to cypress/integration/profile.js diff --git a/cypress/integration/reference_request.js b/cypress/integration/reference_request.js new file mode 100644 index 0000000..adb1217 --- /dev/null +++ b/cypress/integration/reference_request.js @@ -0,0 +1,28 @@ +describe('Reference Request', () => { + it('reference request', () => { + cy.login() + cy.createAdminUnit().then(function(adminUnitId) { + cy.createIncomingReferenceRequest(adminUnitId).then(function(referenceRequestId) { + + // Reject + cy.visit('/reference_request/' + referenceRequestId + '/review') + cy.get('.decision-container .btn-danger').click() + cy.get('#rejectFormModal select[name=rejection_reason]').select('Nicht relevant').should('have.value', '4') + cy.screenshot() + 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.screenshot() + cy.get('#acceptFormModal .btn-success').click() + cy.url().should('include', '/reference_requests/incoming') + cy.get('div.alert').should('contain', 'Empfehlung erfolgreich erstellt') + }) + }) + }) + }) \ No newline at end of file diff --git a/cypress/integration/register_spec.js b/cypress/integration/register.js similarity index 100% rename from cypress/integration/register_spec.js rename to cypress/integration/register.js diff --git a/cypress/support/commands.js b/cypress/support/commands.js index cfcc692..17fad94 100644 --- a/cypress/support/commands.js +++ b/cypress/support/commands.js @@ -1,19 +1,42 @@ Cypress.Commands.add('logexec', (command) => { - cy.exec(command, { failOnNonZeroExit: false }).then(result => { + return cy.exec(command, { failOnNonZeroExit: false }).then(function(result) { if (result.code) { throw new Error(`Execution of "${command}" failed Exit code: ${result.code} Stdout:\n${result.stdout} - Stderr:\n${result.stderr}`); + Stderr:\n${result.stderr}`) } + + return result; }) }) Cypress.Commands.add('setup', () => { - cy.logexec('flask database reset --seed') + cy.logexec('flask test reset --seed') cy.logexec('flask user create test@test.de password --confirm') }) +Cypress.Commands.add('createAdminUnit', (userEmail = 'test@test.de', name = 'Meine Crew') => { + return cy.logexec('flask test admin-unit-create ' + userEmail + ' "' + name + '"').then(function(result) { + let json = JSON.parse(result.stdout) + return json.admin_unit_id + }) +}) + +Cypress.Commands.add('createEvent', (adminUnitId) => { + return cy.logexec('flask test event-create ' + adminUnitId).then(function(result) { + let json = JSON.parse(result.stdout) + return json.event_id + }) +}) + +Cypress.Commands.add('createIncomingReferenceRequest', (adminUnitId) => { + return cy.logexec('flask test reference-request-create-incoming ' + adminUnitId).then(function(result) { + let json = JSON.parse(result.stdout) + return json.reference_request_id + }) +}) + Cypress.Commands.add('assertValid', (fieldId) => { cy.get('#' + fieldId).should('have.class', 'is-valid') cy.get('#' + fieldId + '-error').should('be.empty') diff --git a/messages.pot b/messages.pot index bb5cadb..213a833 100644 --- a/messages.pot +++ b/messages.pot @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: PROJECT VERSION\n" "Report-Msgid-Bugs-To: EMAIL@ADDRESS\n" -"POT-Creation-Date: 2021-07-30 15:18+0200\n" +"POT-Creation-Date: 2021-08-06 08:22+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -175,7 +175,7 @@ msgstr "" msgid "Legal notice" msgstr "" -#: project/forms/admin.py:12 project/templates/_macros.html:1271 +#: project/forms/admin.py:12 project/templates/_macros.html:1280 #: project/templates/layout.html:267 #: project/templates/widget/event_suggestion/create.html:172 #: project/views/admin_unit.py:36 project/views/root.py:58 @@ -247,12 +247,12 @@ msgid "Longitude" msgstr "" #: project/forms/admin_unit.py:28 project/forms/event.py:35 -#: project/forms/event.py:64 project/forms/event.py:358 +#: project/forms/event.py:64 project/forms/event.py:362 #: project/forms/event_place.py:25 project/forms/event_place.py:50 #: project/forms/event_suggestion.py:26 project/forms/oauth2_client.py:66 #: project/forms/organizer.py:25 project/forms/organizer.py:52 #: project/forms/reference.py:40 project/forms/reference_request.py:22 -#: project/templates/_macros.html:126 +#: project/templates/_macros.html:135 #: project/templates/admin/admin_units.html:19 #: project/templates/event_place/list.html:19 #: project/templates/oauth2_client/list.html:25 @@ -268,7 +268,7 @@ msgstr "" msgid "The short name is used to create a unique identifier for your events" msgstr "" -#: project/forms/admin_unit.py:40 project/templates/_macros.html:1401 +#: project/forms/admin_unit.py:40 project/templates/_macros.html:1410 msgid "Short name must contain only letters numbers or underscore" msgstr "" @@ -281,19 +281,19 @@ msgstr "" #: project/forms/admin_unit.py:47 project/forms/admin_unit_member.py:11 #: project/forms/admin_unit_member.py:23 project/forms/admin_unit_member.py:28 #: project/forms/event.py:57 project/forms/event_suggestion.py:38 -#: project/forms/organizer.py:27 project/templates/_macros.html:253 -#: project/templates/_macros.html:1361 project/templates/admin/users.html:19 +#: project/forms/organizer.py:27 project/templates/_macros.html:262 +#: project/templates/_macros.html:1370 project/templates/admin/users.html:19 msgid "Email" msgstr "" #: project/forms/admin_unit.py:48 project/forms/event.py:58 #: project/forms/event_suggestion.py:31 project/forms/organizer.py:28 -#: project/templates/_macros.html:296 +#: project/templates/_macros.html:305 msgid "Phone" msgstr "" #: project/forms/admin_unit.py:49 project/forms/event.py:59 -#: project/forms/organizer.py:29 project/templates/_macros.html:304 +#: project/forms/organizer.py:29 project/templates/_macros.html:313 msgid "Fax" msgstr "" @@ -490,7 +490,7 @@ msgstr "" msgid "Enter a link where tickets can be purchased." msgstr "" -#: project/forms/event.py:105 project/templates/_macros.html:235 +#: project/forms/event.py:105 project/templates/_macros.html:244 msgid "Tags" msgstr "" @@ -540,7 +540,7 @@ msgstr "" msgid "If the participants needs to register for the event." msgstr "" -#: project/forms/event.py:139 project/templates/_macros.html:267 +#: project/forms/event.py:139 project/templates/_macros.html:276 #: project/templates/layout.html:157 msgid "Booked up" msgstr "" @@ -620,16 +620,16 @@ msgid "" " course it works without it." msgstr "" -#: project/forms/event.py:206 project/templates/_macros.html:1184 +#: project/forms/event.py:206 project/templates/_macros.html:1193 msgid "The start must be before the end." msgstr "" -#: project/forms/event.py:212 project/templates/_macros.html:1201 +#: project/forms/event.py:212 project/templates/_macros.html:1210 msgid "An event can last a maximum of 14 days." msgstr "" -#: project/forms/event.py:220 project/templates/_macros.html:414 -#: project/templates/_macros.html:573 +#: project/forms/event.py:220 project/templates/_macros.html:423 +#: project/templates/_macros.html:582 msgid "Previous start date" msgstr "" @@ -646,23 +646,23 @@ msgid "Choose categories that fit the event." msgstr "" #: project/forms/event.py:233 project/forms/reference.py:14 -#: project/forms/reference.py:27 project/forms/reference_request.py:70 -#: project/templates/event/create.html:318 +#: project/forms/reference.py:27 project/forms/reference_request.py:75 +#: project/templates/event/create.html:323 #: project/templates/event/update.html:183 msgid "Rating" msgstr "" #: project/forms/event.py:237 project/forms/reference.py:18 -#: project/forms/reference.py:31 project/forms/reference_request.py:74 +#: project/forms/reference.py:31 project/forms/reference_request.py:79 msgid "" "Choose how relevant the event is to your organization. The value is not " "visible and is used for sorting." msgstr "" #: project/forms/event.py:245 project/forms/event.py:254 -#: project/forms/event.py:314 project/forms/event_suggestion.py:50 -#: project/templates/_macros.html:453 project/templates/_macros.html:609 -#: project/templates/event/create.html:243 +#: project/forms/event.py:318 project/forms/event_suggestion.py:50 +#: project/templates/_macros.html:462 project/templates/_macros.html:618 +#: project/templates/event/create.html:248 #: project/templates/event/update.html:133 #: project/templates/event_place/create.html:21 #: project/templates/event_place/delete.html:13 @@ -679,9 +679,9 @@ msgid "Enter new place" msgstr "" #: project/forms/event.py:261 project/forms/event.py:270 -#: project/forms/event.py:322 project/forms/event.py:372 -#: project/forms/event_suggestion.py:60 project/templates/_macros.html:491 -#: project/templates/_macros.html:646 project/templates/event/create.html:218 +#: project/forms/event.py:326 project/forms/event.py:376 +#: project/forms/event_suggestion.py:60 project/templates/_macros.html:500 +#: project/templates/_macros.html:655 project/templates/event/create.html:223 #: project/templates/event/update.html:124 #: project/templates/organizer/create.html:17 #: project/templates/organizer/delete.html:13 @@ -698,101 +698,101 @@ msgid "Enter new organizer" msgstr "" #: project/forms/event.py:276 project/templates/event/create.html:4 -#: project/templates/event/create.html:190 +#: project/templates/event/create.html:195 #: project/templates/manage/events.html:12 #: project/templates/manage/organizers.html:21 msgid "Create event" msgstr "" -#: project/forms/event.py:300 +#: project/forms/event.py:302 msgid "Select existing place or enter new place" msgstr "" -#: project/forms/event.py:305 +#: project/forms/event.py:309 msgid "Select existing organizer or enter new organizer" msgstr "" -#: project/forms/event.py:317 +#: project/forms/event.py:321 msgid "" "Choose where the event takes place. You can add and modify places at " "Manage > Places." msgstr "" -#: project/forms/event.py:325 +#: project/forms/event.py:329 msgid "" "Select the organizer. You can add and modify organizers at Manage > " "Organizers." msgstr "" -#: project/forms/event.py:331 project/templates/event/update.html:114 +#: project/forms/event.py:335 project/templates/event/update.html:114 #: project/templates/oauth2_token/list.html:21 msgid "Status" msgstr "" -#: project/forms/event.py:334 +#: project/forms/event.py:338 msgid "EventStatus.scheduled" msgstr "" -#: project/forms/event.py:335 project/templates/layout.html:111 +#: project/forms/event.py:339 project/templates/layout.html:111 #: project/templates/layout.html:126 msgid "EventStatus.cancelled" msgstr "" -#: project/forms/event.py:336 project/templates/layout.html:114 +#: project/forms/event.py:340 project/templates/layout.html:114 #: project/templates/layout.html:129 msgid "EventStatus.movedOnline" msgstr "" -#: project/forms/event.py:337 project/templates/layout.html:117 +#: project/forms/event.py:341 project/templates/layout.html:117 #: project/templates/layout.html:132 msgid "EventStatus.postponed" msgstr "" -#: project/forms/event.py:338 project/templates/layout.html:120 +#: project/forms/event.py:342 project/templates/layout.html:120 #: project/templates/layout.html:135 msgid "EventStatus.rescheduled" msgstr "" -#: project/forms/event.py:340 +#: project/forms/event.py:344 msgid "Select the status of the event." msgstr "" -#: project/forms/event.py:343 project/templates/event/update.html:4 +#: project/forms/event.py:347 project/templates/event/update.html:4 #: project/templates/event/update.html:86 msgid "Update event" msgstr "" -#: project/forms/event.py:357 project/templates/_macros.html:1156 +#: project/forms/event.py:361 project/templates/_macros.html:1165 #: project/templates/event/actions.html:47 #: project/templates/event/delete.html:6 msgid "Delete event" msgstr "" -#: project/forms/event.py:365 project/forms/event_date.py:15 +#: project/forms/event.py:369 project/forms/event_date.py:15 #: project/forms/planing.py:14 msgid "From" msgstr "" -#: project/forms/event.py:366 project/forms/event_date.py:16 +#: project/forms/event.py:370 project/forms/event_date.py:16 #: project/forms/planing.py:15 msgid "to" msgstr "" -#: project/forms/event.py:367 project/forms/event_date.py:17 +#: project/forms/event.py:371 project/forms/event_date.py:17 msgid "Keyword" msgstr "" -#: project/forms/event.py:369 project/forms/event_date.py:19 -#: project/forms/planing.py:17 project/templates/_macros.html:377 +#: project/forms/event.py:373 project/forms/event_date.py:19 +#: project/forms/planing.py:17 project/templates/_macros.html:386 msgid "Category" msgstr "" -#: project/forms/event.py:375 +#: project/forms/event.py:379 msgid "Find events" msgstr "" #: project/forms/event_date.py:22 project/forms/planing.py:20 -#: project/templates/_macros.html:128 project/templates/_macros.html:311 +#: project/templates/_macros.html:137 project/templates/_macros.html:320 #: project/templates/admin_unit/create.html:29 #: project/templates/admin_unit/update.html:30 #: project/templates/event_place/create.html:30 @@ -846,13 +846,13 @@ msgstr "" msgid "I would like to be notified by email after the review" msgstr "" -#: project/forms/event_suggestion.py:52 project/templates/event/create.html:248 +#: project/forms/event_suggestion.py:52 project/templates/event/create.html:253 msgid "" "Choose where the event takes place. If the venue is not yet in the list, " "just enter it." msgstr "" -#: project/forms/event_suggestion.py:62 project/templates/event/create.html:222 +#: project/forms/event_suggestion.py:62 project/templates/event/create.html:227 msgid "" "Select the organizer. If the organizer is not yet on the list, just enter" " it." @@ -864,7 +864,7 @@ msgstr "" msgid "Create event suggestion" msgstr "" -#: project/forms/event_suggestion.py:116 project/forms/reference_request.py:46 +#: project/forms/event_suggestion.py:116 project/forms/reference_request.py:47 msgid "Rejection reason" msgstr "" @@ -926,7 +926,7 @@ msgid "Weekdays" msgstr "" #: project/forms/reference.py:11 project/forms/reference_request.py:15 -#: project/templates/_macros.html:512 project/templates/_macros.html:672 +#: project/templates/_macros.html:521 project/templates/_macros.html:681 #: project/templates/admin_unit/create.html:19 #: project/templates/admin_unit/update.html:20 msgid "Organization" @@ -953,7 +953,7 @@ msgstr "" msgid "Delete request" msgstr "" -#: project/forms/reference_request.py:27 project/templates/_macros.html:1283 +#: project/forms/reference_request.py:27 project/templates/_macros.html:1292 #: project/templates/event_suggestion/review_status.html:18 #: project/templates/reference_request/review_status.html:12 msgid "Review status" @@ -971,23 +971,35 @@ msgstr "" msgid "EventReferenceRequestReviewStatus.rejected" msgstr "" +#: project/forms/reference_request.py:43 +msgid "Choose the result of your review." +msgstr "" + #: project/forms/reference_request.py:52 -msgid "EventReferenceRequestRejectionReason.duplicate" +msgid "EventReferenceRequestRejectionReason.noreason" msgstr "" #: project/forms/reference_request.py:56 -msgid "EventReferenceRequestRejectionReason.untrustworthy" +msgid "EventReferenceRequestRejectionReason.duplicate" msgstr "" #: project/forms/reference_request.py:60 -msgid "EventReferenceRequestRejectionReason.irrelevant" +msgid "EventReferenceRequestRejectionReason.untrustworthy" msgstr "" #: project/forms/reference_request.py:64 +msgid "EventReferenceRequestRejectionReason.irrelevant" +msgstr "" + +#: project/forms/reference_request.py:68 msgid "EventReferenceRequestRejectionReason.illegal" msgstr "" -#: project/forms/reference_request.py:78 +#: project/forms/reference_request.py:71 +msgid "Choose why you rejected the request." +msgstr "" + +#: project/forms/reference_request.py:83 msgid "Save review" msgstr "" @@ -1003,50 +1015,50 @@ msgstr "" msgid "This field is required." msgstr "" -#: project/templates/_macros.html:125 project/templates/_macros.html:400 -#: project/templates/_macros.html:407 project/templates/_macros.html:852 +#: project/templates/_macros.html:134 project/templates/_macros.html:409 +#: project/templates/_macros.html:416 project/templates/_macros.html:861 msgid "Date" msgstr "" -#: project/templates/_macros.html:127 +#: project/templates/_macros.html:136 msgid "Host" msgstr "" -#: project/templates/_macros.html:149 +#: project/templates/_macros.html:158 msgid "Show all events" msgstr "" -#: project/templates/_macros.html:165 +#: project/templates/_macros.html:174 msgid "Show on Google Maps" msgstr "" -#: project/templates/_macros.html:244 +#: project/templates/_macros.html:253 msgid "Link" msgstr "" -#: project/templates/_macros.html:354 -#, python-format -msgid "Created at %(created_at)s by %(created_by)s." -msgstr "" - -#: project/templates/_macros.html:356 -#, python-format -msgid "Created at %(created_at)s." -msgstr "" - -#: project/templates/_macros.html:361 -#, python-format -msgid "Last updated at %(updated_at)s by %(updated_by)s." -msgstr "" - #: project/templates/_macros.html:363 #, python-format +msgid "Created at %(created_at)s by %(created_by)s." +msgstr "" + +#: project/templates/_macros.html:365 +#, python-format +msgid "Created at %(created_at)s." +msgstr "" + +#: project/templates/_macros.html:370 +#, python-format +msgid "Last updated at %(updated_at)s by %(updated_by)s." +msgstr "" + +#: project/templates/_macros.html:372 +#, python-format msgid "Last updated at %(updated_at)s." msgstr "" -#: project/templates/_macros.html:393 project/templates/_macros.html:569 +#: project/templates/_macros.html:402 project/templates/_macros.html:578 #: project/templates/event/actions.html:12 -#: project/templates/event/create.html:197 +#: project/templates/event/create.html:202 #: project/templates/event/delete.html:13 #: project/templates/event/update.html:93 #: project/templates/reference/delete.html:13 @@ -1054,45 +1066,45 @@ msgstr "" msgid "Event" msgstr "" -#: project/templates/_macros.html:403 project/templates/_macros.html:555 +#: project/templates/_macros.html:412 project/templates/_macros.html:564 #, python-format msgid "%(count)d event dates" msgstr "" -#: project/templates/_macros.html:436 project/templates/_macros.html:591 -#: project/templates/_macros.html:1346 project/templates/event/actions.html:32 +#: project/templates/_macros.html:445 project/templates/_macros.html:600 +#: project/templates/_macros.html:1355 project/templates/event/actions.html:32 msgid "Share" msgstr "" -#: project/templates/_macros.html:440 project/templates/_macros.html:595 -#: project/templates/_macros.html:1376 +#: project/templates/_macros.html:449 project/templates/_macros.html:604 +#: project/templates/_macros.html:1385 msgid "Add to calendar" msgstr "" -#: project/templates/_macros.html:474 project/templates/_macros.html:628 +#: project/templates/_macros.html:483 project/templates/_macros.html:637 msgid "Show directions" msgstr "" -#: project/templates/_macros.html:479 project/templates/_macros.html:633 +#: project/templates/_macros.html:488 project/templates/_macros.html:642 msgid "The event takes place online." msgstr "" -#: project/templates/_macros.html:481 project/templates/_macros.html:635 +#: project/templates/_macros.html:490 project/templates/_macros.html:644 msgid "The event takes place both offline and online." msgstr "" -#: project/templates/_macros.html:696 project/templates/event_date/list.html:4 +#: project/templates/_macros.html:705 project/templates/event_date/list.html:4 #: project/templates/event_date/list.html:258 #: project/templates/event_date/search.html:3 -#: project/templates/reference_request/review.html:30 +#: project/templates/reference_request/review.html:55 msgid "Event Dates" msgstr "" -#: project/templates/_macros.html:769 +#: project/templates/_macros.html:778 msgid "Search location on Google" msgstr "" -#: project/templates/_macros.html:802 project/templates/_macros.html:804 +#: project/templates/_macros.html:811 project/templates/_macros.html:813 #: project/templates/event_date/list.html:279 #: project/templates/widget/event_suggestion/create.html:161 #: project/templates/widget/event_suggestion/create.html:186 @@ -1103,12 +1115,12 @@ msgstr "" msgid "Previous" msgstr "" -#: project/templates/_macros.html:806 +#: project/templates/_macros.html:815 #, python-format msgid "Page %(page)d of %(pages)d (%(total)d total)" msgstr "" -#: project/templates/_macros.html:808 project/templates/_macros.html:810 +#: project/templates/_macros.html:817 project/templates/_macros.html:819 #: project/templates/event_date/list.html:281 #: project/templates/widget/event_suggestion/create.html:162 #: project/templates/widget/event_suggestion/create.html:187 @@ -1118,59 +1130,59 @@ msgstr "" msgid "Next" msgstr "" -#: project/templates/_macros.html:875 +#: project/templates/_macros.html:884 msgid "Radius" msgstr "" -#: project/templates/_macros.html:1085 +#: project/templates/_macros.html:1094 msgid "Edit image" msgstr "" -#: project/templates/_macros.html:1106 +#: project/templates/_macros.html:1115 msgid "Close" msgstr "" -#: project/templates/_macros.html:1107 +#: project/templates/_macros.html:1116 msgid "Okay" msgstr "" -#: project/templates/_macros.html:1119 +#: project/templates/_macros.html:1128 msgid "Choose image file" msgstr "" -#: project/templates/_macros.html:1155 project/templates/event/actions.html:46 +#: project/templates/_macros.html:1164 project/templates/event/actions.html:46 msgid "Edit event" msgstr "" -#: project/templates/_macros.html:1158 project/templates/manage/events.html:30 +#: project/templates/_macros.html:1167 project/templates/manage/events.html:30 msgid "More" msgstr "" -#: project/templates/_macros.html:1243 +#: project/templates/_macros.html:1252 msgid "Event suggestion" msgstr "" -#: project/templates/_macros.html:1355 +#: project/templates/_macros.html:1364 msgid "Link copied" msgstr "" -#: project/templates/_macros.html:1355 +#: project/templates/_macros.html:1364 msgid "Copy link" msgstr "" -#: project/templates/_macros.html:1384 +#: project/templates/_macros.html:1393 msgid "Google calendar" msgstr "" -#: project/templates/_macros.html:1385 +#: project/templates/_macros.html:1394 msgid "Apple calendar" msgstr "" -#: project/templates/_macros.html:1386 +#: project/templates/_macros.html:1395 msgid "Yahoo calendar" msgstr "" -#: project/templates/_macros.html:1387 +#: project/templates/_macros.html:1396 msgid "Other calendar" msgstr "" @@ -1178,7 +1190,7 @@ msgstr "" msgid "Manage" msgstr "" -#: project/templates/home.html:29 project/templates/security/login_user.html:23 +#: project/templates/home.html:29 project/templates/security/login_user.html:35 #: project/views/widget.py:179 msgid "Register for free" msgstr "" @@ -1333,7 +1345,7 @@ msgstr "" #: project/templates/admin_unit/create.html:49 #: project/templates/admin_unit/update.html:50 -#: project/templates/event/create.html:306 +#: project/templates/event/create.html:311 #: project/templates/event/update.html:171 #: project/templates/event_place/create.html:47 #: project/templates/event_place/update.html:47 @@ -1449,21 +1461,21 @@ msgstr "" msgid "Just use %(term)s" msgstr "" -#: project/templates/event/create.html:207 +#: project/templates/event/create.html:212 #: project/templates/event/update.html:103 msgid "Event date" msgstr "" -#: project/templates/event/create.html:268 +#: project/templates/event/create.html:273 msgid "Switch to place search" msgstr "" -#: project/templates/event/create.html:279 +#: project/templates/event/create.html:284 #: project/templates/event/update.html:144 msgid "Access" msgstr "" -#: project/templates/event/create.html:293 +#: project/templates/event/create.html:298 #: project/templates/event/update.html:158 msgid "Target group" msgstr "" @@ -1630,10 +1642,27 @@ msgstr "" msgid "Update reference to event \"%(name)s\"" msgstr "" -#: project/templates/reference_request/review.html:8 +#: project/templates/reference_request/review.html:46 msgid "Review event reference request" msgstr "" +#: project/templates/reference_request/review.html:66 +#: project/templates/reference_request/review.html:74 +#: project/templates/reference_request/review.html:92 +msgid "Accept reference request" +msgstr "" + +#: project/templates/reference_request/review.html:67 +#: project/templates/reference_request/review.html:102 +#: project/templates/reference_request/review.html:119 +msgid "Reject reference request" +msgstr "" + +#: project/templates/reference_request/review.html:91 +#: project/templates/reference_request/review.html:118 +msgid "Cancel" +msgstr "" + #: project/templates/security/authorize.html:10 #, python-format msgid "\"%(client_name)s\" wants to access your account" @@ -1644,7 +1673,7 @@ msgstr "" msgid "This will allow \"%(client_name)s\" to:" msgstr "" -#: project/templates/security/login_user.html:21 +#: project/templates/security/login_user.html:33 msgid "You do not have an account yet? Not a problem!" msgstr "" @@ -1730,23 +1759,23 @@ msgstr "" msgid "Invitation successfully deleted" msgstr "" -#: project/views/event.py:167 +#: project/views/event.py:168 msgid "Event successfully created" msgstr "" -#: project/views/event.py:207 +#: project/views/event.py:208 msgid "Event successfully updated" msgstr "" -#: project/views/event.py:230 project/views/reference.py:162 +#: project/views/event.py:231 project/views/reference.py:162 msgid "Entered name does not match event name" msgstr "" -#: project/views/event.py:236 +#: project/views/event.py:237 msgid "Event successfully deleted" msgstr "" -#: project/views/event.py:379 +#: project/views/event.py:380 msgid "Referenced event changed" msgstr "" @@ -1775,19 +1804,19 @@ msgstr "" msgid "Event review status updated" msgstr "" -#: project/views/js.py:27 +#: project/views/js.py:26 msgid "Short name is already taken" msgstr "" -#: project/views/js.py:41 +#: project/views/js.py:40 msgid "An account already exists with this email." msgstr "" -#: project/views/js.py:66 +#: project/views/js.py:65 msgid "Places of organization" msgstr "" -#: project/views/js.py:74 +#: project/views/js.py:73 msgid "Places of Google Maps" msgstr "" diff --git a/project/__init__.py b/project/__init__.py index eefaf70..e9a97f7 100644 --- a/project/__init__.py +++ b/project/__init__.py @@ -154,10 +154,13 @@ import project.api # Command line import project.cli.cache -import project.cli.database import project.cli.dump import project.cli.event import project.cli.seo + +if os.getenv("TESTING", False): # pragma: no cover + import project.cli.test + import project.cli.user from project import i10n, init_data, jinja_filters diff --git a/project/cli/database.py b/project/cli/database.py deleted file mode 100644 index ec09cdc..0000000 --- a/project/cli/database.py +++ /dev/null @@ -1,49 +0,0 @@ -import click -from flask.cli import AppGroup -from sqlalchemy import MetaData - -from project import app, db -from project.init_data import create_initial_data - -database_cli = AppGroup("database") - - -@database_cli.command("reset") -@click.option("--seed/--no-seed", default=False) -def reset(seed): - meta = MetaData(bind=db.engine, reflect=True) - con = db.engine.connect() - trans = con.begin() - - for table in meta.sorted_tables: - con.execute(f'ALTER TABLE "{table.name}" DISABLE TRIGGER ALL;') - con.execute(table.delete()) - con.execute(f'ALTER TABLE "{table.name}" ENABLE TRIGGER ALL;') - - trans.commit() - - if seed: - create_initial_data() - - click.echo("Reset done.") - - -@database_cli.command("drop-all") -def drop_all(): - db.drop_all() - click.echo("Drop all done.") - - -@database_cli.command("create-all") -def create_all(): - db.create_all() - click.echo("Create all done.") - - -@database_cli.command("seed") -def seed(): - create_initial_data() - click.echo("Seed done.") - - -app.cli.add_command(database_cli) diff --git a/project/cli/test.py b/project/cli/test.py new file mode 100644 index 0000000..b6139a5 --- /dev/null +++ b/project/cli/test.py @@ -0,0 +1,188 @@ +import json + +import click +from flask.cli import AppGroup +from flask_security.confirmable import confirm_user +from sqlalchemy import MetaData + +from project import app, db +from project.init_data import create_initial_data +from project.models import ( + AdminUnit, + Event, + EventAttendanceMode, + EventReferenceRequest, + EventReferenceRequestReviewStatus, + Location, +) +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.organizer import get_event_organizer +from project.services.place import get_event_places +from project.services.user import create_user, find_user_by_email, get_user + +test_cli = AppGroup("test") + + +def _get_now_by_minute(): + from datetime import datetime + + from project.dateutils import get_now + + now = get_now() + return datetime( + now.year, now.month, now.day, now.hour, now.minute, tzinfo=now.tzinfo + ) + + +def _create_user( + email="test@test.de", password="MeinPasswortIstDasBeste", confirm=True +): + user = create_user(email, password) + + if confirm: + confirm_user(user) + + db.session.commit() + return user.id + + +@test_cli.command("reset") +@click.option("--seed/--no-seed", default=False) +def reset(seed): + meta = MetaData(bind=db.engine, reflect=True) + con = db.engine.connect() + trans = con.begin() + + for table in meta.sorted_tables: + con.execute(f'ALTER TABLE "{table.name}" DISABLE TRIGGER ALL;') + con.execute(table.delete()) + con.execute(f'ALTER TABLE "{table.name}" ENABLE TRIGGER ALL;') + + trans.commit() + + if seed: + create_initial_data() + + click.echo("Reset done.") + + +@test_cli.command("drop-all") +def drop_all(): + db.drop_all() + click.echo("Drop all done.") + + +@test_cli.command("create-all") +def create_all(): + db.create_all() + click.echo("Create all done.") + + +@test_cli.command("seed") +def seed(): + create_initial_data() + click.echo("Seed done.") + + +def _create_admin_unit(user_id, name): + user = get_user(user_id) + + admin_unit = AdminUnit() + admin_unit.name = name + admin_unit.short_name = name.lower().replace(" ", "") + admin_unit.incoming_reference_requests_allowed = True + admin_unit.location = Location() + admin_unit.location.postalCode = "38640" + admin_unit.location.city = "Goslar" + insert_admin_unit_for_user(admin_unit, user) + db.session.commit() + + return admin_unit.id + + +@test_cli.command("admin-unit-create") +@click.argument("user_email") +@click.argument("name", default="Meine Crew") +def create_admin_unit(user_email, name): + user = find_user_by_email(user_email) + admin_unit_id = _create_admin_unit(user.id, name) + result = {"admin_unit_id": admin_unit_id} + click.echo(json.dumps(result)) + + +def _create_event(admin_unit_id): + admin_unit = get_admin_unit_by_id(admin_unit_id) + + event = Event() + event.admin_unit_id = admin_unit_id + event.categories = [upsert_event_category("Other")] + event.name = "Name" + event.description = "Beschreibung" + event.start = _get_now_by_minute() + event.event_place_id = get_event_places(admin_unit_id, limit=1)[0].id + event.organizer_id = get_event_organizer(admin_unit_id, admin_unit.name).id + event.ticket_link = "" + event.tags = "" + event.price_info = "" + event.attendance_mode = EventAttendanceMode.offline + insert_event(event) + db.session.commit() + + return event.id + + +@test_cli.command("event-create") +@click.argument("admin_unit_id") +def create_event(admin_unit_id): + event_id = _create_event(admin_unit_id) + result = {"event_id": event_id} + click.echo(json.dumps(result)) + + +def _create_reference_request(event_id, admin_unit_id): + reference_request = EventReferenceRequest() + reference_request.event_id = event_id + reference_request.admin_unit_id = admin_unit_id + reference_request.review_status = EventReferenceRequestReviewStatus.inbox + db.session.add(reference_request) + db.session.commit() + return reference_request.id + + +@test_cli.command("reference-request-create") +@click.argument("event_id") +@click.argument("admin_unit_id") +def create_reference_request(event_id, admin_unit_id): + reference_request_id = _create_reference_request(event_id, admin_unit_id) + result = {"reference_request_id": reference_request_id} + click.echo(json.dumps(result)) + + +def _create_incoming_reference_request(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_request_id = _create_reference_request(event_id, admin_unit_id) + return (other_user_id, other_admin_unit_id, event_id, reference_request_id) + + +@test_cli.command("reference-request-create-incoming") +@click.argument("admin_unit_id") +def create_incoming_reference_request(admin_unit_id): + ( + other_user_id, + other_admin_unit_id, + event_id, + reference_request_id, + ) = _create_incoming_reference_request(admin_unit_id) + result = { + "other_user_id": other_user_id, + "other_admin_unit_id": other_admin_unit_id, + "event_id": event_id, + "reference_request_id": reference_request_id, + } + click.echo(json.dumps(result)) + + +app.cli.add_command(test_cli) diff --git a/project/forms/reference_request.py b/project/forms/reference_request.py index 1807e36..fcd5e35 100644 --- a/project/forms/reference_request.py +++ b/project/forms/reference_request.py @@ -40,13 +40,17 @@ class ReferenceRequestReviewForm(FlaskForm): lazy_gettext("EventReferenceRequestReviewStatus.rejected"), ), ], + description=lazy_gettext("Choose the result of your review."), ) rejection_reason = SelectField( lazy_gettext("Rejection reason"), coerce=int, choices=[ - (0, ""), + ( + 0, + lazy_gettext("EventReferenceRequestRejectionReason.noreason"), + ), ( int(EventReferenceRequestRejectionReason.duplicate), lazy_gettext("EventReferenceRequestRejectionReason.duplicate"), @@ -64,6 +68,7 @@ class ReferenceRequestReviewForm(FlaskForm): lazy_gettext("EventReferenceRequestRejectionReason.illegal"), ), ], + description=lazy_gettext("Choose why you rejected the request."), ) rating = SelectField( diff --git a/project/templates/_macros.html b/project/templates/_macros.html index e19d42d..a76d8d0 100644 --- a/project/templates/_macros.html +++ b/project/templates/_macros.html @@ -56,6 +56,15 @@ {{ field(class="custom-control-input") }} + {% elif 'ri' in kwargs and kwargs['ri'] == 'radio-buttons' %} +
+ {% for choice in field %} + {% set color = kwargs['colors'][loop.index0] if 'colors' in kwargs else 'secondary' %} + + {% endfor %} +
{% else %} {% if 'class' in kwargs %} {% set _dummy=kwargs.pop('class') %} diff --git a/project/templates/reference_request/review.html b/project/templates/reference_request/review.html index 0938020..f278c8f 100644 --- a/project/templates/reference_request/review.html +++ b/project/templates/reference_request/review.html @@ -1,25 +1,50 @@ {% extends "layout.html" %} -{% from "_macros.html" import render_radio_buttons, render_phone_prop, render_email_prop, render_string_prop, render_field_with_errors, render_field, render_event_props, render_image_with_link, render_place, render_link_prop %} +{% from "_macros.html" import render_jquery_steps_header, render_phone_prop, render_email_prop, render_string_prop, render_field_with_errors, render_field, render_event_props, render_image_with_link, render_place, render_link_prop %} {%- block title -%} {{ event.name }} {%- endblock -%} +{% block header_before_site_js %} +{{ render_jquery_steps_header() }} + +{% endblock %} {% block content %}

{{ _('Review event reference request') }}

-
- {{ form.hidden_tag() }} - - {{ render_field_with_errors(form.review_status) }} - {{ render_field_with_errors(form.rejection_reason) }} - - {% if form.rating.choices|length > 1 %} - {{ render_field_with_errors(form.rating) }} - {% endif %} - - {{ render_field(form.submit) }} -
-
{{ render_event_props(event, event.start, event.end, dates) }} @@ -29,14 +54,74 @@ - {% endif %} +
+ + +
+ + + + +
{% endblock %} \ No newline at end of file diff --git a/project/translations/de/LC_MESSAGES/messages.mo b/project/translations/de/LC_MESSAGES/messages.mo index c314d12..506d2c4 100644 Binary files a/project/translations/de/LC_MESSAGES/messages.mo and b/project/translations/de/LC_MESSAGES/messages.mo differ diff --git a/project/translations/de/LC_MESSAGES/messages.po b/project/translations/de/LC_MESSAGES/messages.po index 490b4d4..07b214f 100644 --- a/project/translations/de/LC_MESSAGES/messages.po +++ b/project/translations/de/LC_MESSAGES/messages.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: PROJECT VERSION\n" "Report-Msgid-Bugs-To: EMAIL@ADDRESS\n" -"POT-Creation-Date: 2021-07-30 15:18+0200\n" +"POT-Creation-Date: 2021-08-06 08:22+0200\n" "PO-Revision-Date: 2020-06-07 18:51+0200\n" "Last-Translator: FULL NAME \n" "Language: de\n" @@ -176,7 +176,7 @@ msgstr "Nutzungsbedingungen" msgid "Legal notice" msgstr "Impressum" -#: project/forms/admin.py:12 project/templates/_macros.html:1271 +#: project/forms/admin.py:12 project/templates/_macros.html:1280 #: project/templates/layout.html:267 #: project/templates/widget/event_suggestion/create.html:172 #: project/views/admin_unit.py:36 project/views/root.py:58 @@ -250,12 +250,12 @@ msgid "Longitude" msgstr "Längengrad" #: project/forms/admin_unit.py:28 project/forms/event.py:35 -#: project/forms/event.py:64 project/forms/event.py:358 +#: project/forms/event.py:64 project/forms/event.py:362 #: project/forms/event_place.py:25 project/forms/event_place.py:50 #: project/forms/event_suggestion.py:26 project/forms/oauth2_client.py:66 #: project/forms/organizer.py:25 project/forms/organizer.py:52 #: project/forms/reference.py:40 project/forms/reference_request.py:22 -#: project/templates/_macros.html:126 +#: project/templates/_macros.html:135 #: project/templates/admin/admin_units.html:19 #: project/templates/event_place/list.html:19 #: project/templates/oauth2_client/list.html:25 @@ -274,7 +274,7 @@ msgstr "" "eindeutig zu identifizieren. Der Kurzname darf nur Buchstaben, Nummern " "und Unterstriche enthalten." -#: project/forms/admin_unit.py:40 project/templates/_macros.html:1401 +#: project/forms/admin_unit.py:40 project/templates/_macros.html:1410 msgid "Short name must contain only letters numbers or underscore" msgstr "Der Kurzname darf nur Buchstaben, Nummern und Unterstriche enthalten" @@ -287,19 +287,19 @@ msgstr "Link URL" #: project/forms/admin_unit.py:47 project/forms/admin_unit_member.py:11 #: project/forms/admin_unit_member.py:23 project/forms/admin_unit_member.py:28 #: project/forms/event.py:57 project/forms/event_suggestion.py:38 -#: project/forms/organizer.py:27 project/templates/_macros.html:253 -#: project/templates/_macros.html:1361 project/templates/admin/users.html:19 +#: project/forms/organizer.py:27 project/templates/_macros.html:262 +#: project/templates/_macros.html:1370 project/templates/admin/users.html:19 msgid "Email" msgstr "Email" #: project/forms/admin_unit.py:48 project/forms/event.py:58 #: project/forms/event_suggestion.py:31 project/forms/organizer.py:28 -#: project/templates/_macros.html:296 +#: project/templates/_macros.html:305 msgid "Phone" msgstr "Telefon" #: project/forms/admin_unit.py:49 project/forms/event.py:59 -#: project/forms/organizer.py:29 project/templates/_macros.html:304 +#: project/forms/organizer.py:29 project/templates/_macros.html:313 msgid "Fax" msgstr "Fax" @@ -506,7 +506,7 @@ msgstr "Ticket Link" msgid "Enter a link where tickets can be purchased." msgstr "Gib einen Link ein, über den Tickets gekauft werden können." -#: project/forms/event.py:105 project/templates/_macros.html:235 +#: project/forms/event.py:105 project/templates/_macros.html:244 msgid "Tags" msgstr "Stichworte" @@ -559,7 +559,7 @@ msgstr "Anmeldung erforderlich" msgid "If the participants needs to register for the event." msgstr "Wenn sich die Teilnehmer für die Veranstaltung anmelden müssen." -#: project/forms/event.py:139 project/templates/_macros.html:267 +#: project/forms/event.py:139 project/templates/_macros.html:276 #: project/templates/layout.html:157 msgid "Booked up" msgstr "Ausgebucht" @@ -645,16 +645,16 @@ msgstr "" "Wir empfehlen dir, ein Foto für die Veranstaltung hochzuladen. Es macht " "schon deutlich mehr her, aber es geht natürlich auch ohne." -#: project/forms/event.py:206 project/templates/_macros.html:1184 +#: project/forms/event.py:206 project/templates/_macros.html:1193 msgid "The start must be before the end." msgstr "Der Start muss vor dem Ende sein." -#: project/forms/event.py:212 project/templates/_macros.html:1201 +#: project/forms/event.py:212 project/templates/_macros.html:1210 msgid "An event can last a maximum of 14 days." msgstr "Eine Veranstaltung darf maximal 14 Tage dauern." -#: project/forms/event.py:220 project/templates/_macros.html:414 -#: project/templates/_macros.html:573 +#: project/forms/event.py:220 project/templates/_macros.html:423 +#: project/templates/_macros.html:582 msgid "Previous start date" msgstr "Vorheriges Startdatum" @@ -673,14 +673,14 @@ msgid "Choose categories that fit the event." msgstr "Wähle Kategorien, die zur Veranstaltung passen." #: project/forms/event.py:233 project/forms/reference.py:14 -#: project/forms/reference.py:27 project/forms/reference_request.py:70 -#: project/templates/event/create.html:318 +#: project/forms/reference.py:27 project/forms/reference_request.py:75 +#: project/templates/event/create.html:323 #: project/templates/event/update.html:183 msgid "Rating" msgstr "Bewertung" #: project/forms/event.py:237 project/forms/reference.py:18 -#: project/forms/reference.py:31 project/forms/reference_request.py:74 +#: project/forms/reference.py:31 project/forms/reference_request.py:79 msgid "" "Choose how relevant the event is to your organization. The value is not " "visible and is used for sorting." @@ -689,9 +689,9 @@ msgstr "" " Wert ist nicht sichtbar und dient der Sortierung." #: project/forms/event.py:245 project/forms/event.py:254 -#: project/forms/event.py:314 project/forms/event_suggestion.py:50 -#: project/templates/_macros.html:453 project/templates/_macros.html:609 -#: project/templates/event/create.html:243 +#: project/forms/event.py:318 project/forms/event_suggestion.py:50 +#: project/templates/_macros.html:462 project/templates/_macros.html:618 +#: project/templates/event/create.html:248 #: project/templates/event/update.html:133 #: project/templates/event_place/create.html:21 #: project/templates/event_place/delete.html:13 @@ -708,9 +708,9 @@ msgid "Enter new place" msgstr "Neuen Ort eingeben" #: project/forms/event.py:261 project/forms/event.py:270 -#: project/forms/event.py:322 project/forms/event.py:372 -#: project/forms/event_suggestion.py:60 project/templates/_macros.html:491 -#: project/templates/_macros.html:646 project/templates/event/create.html:218 +#: project/forms/event.py:326 project/forms/event.py:376 +#: project/forms/event_suggestion.py:60 project/templates/_macros.html:500 +#: project/templates/_macros.html:655 project/templates/event/create.html:223 #: project/templates/event/update.html:124 #: project/templates/organizer/create.html:17 #: project/templates/organizer/delete.html:13 @@ -727,21 +727,21 @@ msgid "Enter new organizer" msgstr "Neuen Veranstalter eingeben" #: project/forms/event.py:276 project/templates/event/create.html:4 -#: project/templates/event/create.html:190 +#: project/templates/event/create.html:195 #: project/templates/manage/events.html:12 #: project/templates/manage/organizers.html:21 msgid "Create event" msgstr "Veranstaltung erstellen" -#: project/forms/event.py:300 +#: project/forms/event.py:302 msgid "Select existing place or enter new place" msgstr "Existierenden Ort wählen oder neuen Ort eingeben" -#: project/forms/event.py:305 +#: project/forms/event.py:309 msgid "Select existing organizer or enter new organizer" msgstr "Wähle einen vorhandenen Veranstalter oder gib einen neuen Veranstalter ein" -#: project/forms/event.py:317 +#: project/forms/event.py:321 msgid "" "Choose where the event takes place. You can add and modify places at " "Manage > Places." @@ -749,7 +749,7 @@ msgstr "" "Wähle, wo die Veranstaltung stattfindet. Du kannst Orte unter Verwaltung " "> Orte hinzufügen und ändern." -#: project/forms/event.py:325 +#: project/forms/event.py:329 msgid "" "Select the organizer. You can add and modify organizers at Manage > " "Organizers." @@ -757,75 +757,75 @@ msgstr "" "Wähle den Veranstalter. Du kannst Veranstalter unter Verwaltung > " "Veranstalter hinzufügen und ändern." -#: project/forms/event.py:331 project/templates/event/update.html:114 +#: project/forms/event.py:335 project/templates/event/update.html:114 #: project/templates/oauth2_token/list.html:21 msgid "Status" msgstr "Status" -#: project/forms/event.py:334 +#: project/forms/event.py:338 msgid "EventStatus.scheduled" msgstr "Geplant" -#: project/forms/event.py:335 project/templates/layout.html:111 +#: project/forms/event.py:339 project/templates/layout.html:111 #: project/templates/layout.html:126 msgid "EventStatus.cancelled" msgstr "Abgesagt" -#: project/forms/event.py:336 project/templates/layout.html:114 +#: project/forms/event.py:340 project/templates/layout.html:114 #: project/templates/layout.html:129 msgid "EventStatus.movedOnline" msgstr "Online verschoben" -#: project/forms/event.py:337 project/templates/layout.html:117 +#: project/forms/event.py:341 project/templates/layout.html:117 #: project/templates/layout.html:132 msgid "EventStatus.postponed" msgstr "Verschoben" -#: project/forms/event.py:338 project/templates/layout.html:120 +#: project/forms/event.py:342 project/templates/layout.html:120 #: project/templates/layout.html:135 msgid "EventStatus.rescheduled" msgstr "Neu angesetzt" -#: project/forms/event.py:340 +#: project/forms/event.py:344 msgid "Select the status of the event." msgstr "Wähle den Status der Veranstaltung." -#: project/forms/event.py:343 project/templates/event/update.html:4 +#: project/forms/event.py:347 project/templates/event/update.html:4 #: project/templates/event/update.html:86 msgid "Update event" msgstr "Veranstaltung aktualisieren" -#: project/forms/event.py:357 project/templates/_macros.html:1156 +#: project/forms/event.py:361 project/templates/_macros.html:1165 #: project/templates/event/actions.html:47 #: project/templates/event/delete.html:6 msgid "Delete event" msgstr "Veranstaltung löschen" -#: project/forms/event.py:365 project/forms/event_date.py:15 +#: project/forms/event.py:369 project/forms/event_date.py:15 #: project/forms/planing.py:14 msgid "From" msgstr "Von" -#: project/forms/event.py:366 project/forms/event_date.py:16 +#: project/forms/event.py:370 project/forms/event_date.py:16 #: project/forms/planing.py:15 msgid "to" msgstr "bis" -#: project/forms/event.py:367 project/forms/event_date.py:17 +#: project/forms/event.py:371 project/forms/event_date.py:17 msgid "Keyword" msgstr "Stichwort" -#: project/forms/event.py:369 project/forms/event_date.py:19 -#: project/forms/planing.py:17 project/templates/_macros.html:377 +#: project/forms/event.py:373 project/forms/event_date.py:19 +#: project/forms/planing.py:17 project/templates/_macros.html:386 msgid "Category" msgstr "Kategorie" -#: project/forms/event.py:375 +#: project/forms/event.py:379 msgid "Find events" msgstr "Veranstaltungen finden" #: project/forms/event_date.py:22 project/forms/planing.py:20 -#: project/templates/_macros.html:128 project/templates/_macros.html:311 +#: project/templates/_macros.html:137 project/templates/_macros.html:320 #: project/templates/admin_unit/create.html:29 #: project/templates/admin_unit/update.html:30 #: project/templates/event_place/create.html:30 @@ -879,7 +879,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" msgstr "Ich möchte per Email benachrichtigt werden nach der Prüfung" -#: project/forms/event_suggestion.py:52 project/templates/event/create.html:248 +#: project/forms/event_suggestion.py:52 project/templates/event/create.html:253 msgid "" "Choose where the event takes place. If the venue is not yet in the list, " "just enter it." @@ -887,7 +887,7 @@ msgstr "" "Wähle aus, wo die Veranstaltung stattfindet. Ist der Veranstaltungsort " "noch nicht in der Liste, trage ihn einfach ein." -#: project/forms/event_suggestion.py:62 project/templates/event/create.html:222 +#: project/forms/event_suggestion.py:62 project/templates/event/create.html:227 msgid "" "Select the organizer. If the organizer is not yet on the list, just enter" " it." @@ -901,7 +901,7 @@ msgstr "" msgid "Create event suggestion" msgstr "Veranstaltung vorschlagen" -#: project/forms/event_suggestion.py:116 project/forms/reference_request.py:46 +#: project/forms/event_suggestion.py:116 project/forms/reference_request.py:47 msgid "Rejection reason" msgstr "Ablehnungsgrund" @@ -963,7 +963,7 @@ msgid "Weekdays" msgstr "Wochentage" #: project/forms/reference.py:11 project/forms/reference_request.py:15 -#: project/templates/_macros.html:512 project/templates/_macros.html:672 +#: project/templates/_macros.html:521 project/templates/_macros.html:681 #: project/templates/admin_unit/create.html:19 #: project/templates/admin_unit/update.html:20 msgid "Organization" @@ -990,7 +990,7 @@ msgstr "Anfrage speichern" msgid "Delete request" msgstr "Anfrage löschen" -#: project/forms/reference_request.py:27 project/templates/_macros.html:1283 +#: project/forms/reference_request.py:27 project/templates/_macros.html:1292 #: project/templates/event_suggestion/review_status.html:18 #: project/templates/reference_request/review_status.html:12 msgid "Review status" @@ -1008,23 +1008,35 @@ msgstr "Verifiziert" msgid "EventReferenceRequestReviewStatus.rejected" msgstr "Abgelehnt" +#: project/forms/reference_request.py:43 +msgid "Choose the result of your review." +msgstr "Wähle das Ergebnis deiner Prüfung." + #: project/forms/reference_request.py:52 +msgid "EventReferenceRequestRejectionReason.noreason" +msgstr "Ohne Grund" + +#: project/forms/reference_request.py:56 msgid "EventReferenceRequestRejectionReason.duplicate" msgstr "Duplikat" -#: project/forms/reference_request.py:56 +#: project/forms/reference_request.py:60 msgid "EventReferenceRequestRejectionReason.untrustworthy" msgstr "Unseriös" -#: project/forms/reference_request.py:60 +#: project/forms/reference_request.py:64 msgid "EventReferenceRequestRejectionReason.irrelevant" msgstr "Nicht relevant" -#: project/forms/reference_request.py:64 +#: project/forms/reference_request.py:68 msgid "EventReferenceRequestRejectionReason.illegal" msgstr "Unzulässig" -#: project/forms/reference_request.py:78 +#: project/forms/reference_request.py:71 +msgid "Choose why you rejected the request." +msgstr "Wähle aus, warum du die Anfrage abgelehnt hast." + +#: project/forms/reference_request.py:83 msgid "Save review" msgstr "Prüfung speichern" @@ -1040,50 +1052,50 @@ msgstr "Ablehnen" msgid "This field is required." msgstr "Dieses Feld ist erforderlich." -#: project/templates/_macros.html:125 project/templates/_macros.html:400 -#: project/templates/_macros.html:407 project/templates/_macros.html:852 +#: project/templates/_macros.html:134 project/templates/_macros.html:409 +#: project/templates/_macros.html:416 project/templates/_macros.html:861 msgid "Date" msgstr "Datum" -#: project/templates/_macros.html:127 +#: project/templates/_macros.html:136 msgid "Host" msgstr "Veranstalter" -#: project/templates/_macros.html:149 +#: project/templates/_macros.html:158 msgid "Show all events" msgstr "Alle Veranstaltungen anzeigen" -#: project/templates/_macros.html:165 +#: project/templates/_macros.html:174 msgid "Show on Google Maps" msgstr "Auf Google Maps anzeigen" -#: project/templates/_macros.html:244 +#: project/templates/_macros.html:253 msgid "Link" msgstr "Link" -#: project/templates/_macros.html:354 +#: project/templates/_macros.html:363 #, python-format msgid "Created at %(created_at)s by %(created_by)s." msgstr "Erstellt am %(created_at)s von %(created_by)s." -#: project/templates/_macros.html:356 +#: project/templates/_macros.html:365 #, python-format msgid "Created at %(created_at)s." msgstr "Erstellt am %(created_at)s." -#: project/templates/_macros.html:361 +#: project/templates/_macros.html:370 #, python-format msgid "Last updated at %(updated_at)s by %(updated_by)s." msgstr "Zuletzt aktualisiert am %(updated_at)s von %(updated_by)s." -#: project/templates/_macros.html:363 +#: project/templates/_macros.html:372 #, python-format msgid "Last updated at %(updated_at)s." msgstr "Zuletzt aktualisiert am %(updated_at)s." -#: project/templates/_macros.html:393 project/templates/_macros.html:569 +#: project/templates/_macros.html:402 project/templates/_macros.html:578 #: project/templates/event/actions.html:12 -#: project/templates/event/create.html:197 +#: project/templates/event/create.html:202 #: project/templates/event/delete.html:13 #: project/templates/event/update.html:93 #: project/templates/reference/delete.html:13 @@ -1091,47 +1103,47 @@ msgstr "Zuletzt aktualisiert am %(updated_at)s." msgid "Event" msgstr "Veranstaltung" -#: project/templates/_macros.html:403 project/templates/_macros.html:555 +#: project/templates/_macros.html:412 project/templates/_macros.html:564 #, python-format msgid "%(count)d event dates" msgstr "%(count)d Termine" -#: project/templates/_macros.html:436 project/templates/_macros.html:591 -#: project/templates/_macros.html:1346 project/templates/event/actions.html:32 +#: project/templates/_macros.html:445 project/templates/_macros.html:600 +#: project/templates/_macros.html:1355 project/templates/event/actions.html:32 msgid "Share" msgstr "Teilen" -#: project/templates/_macros.html:440 project/templates/_macros.html:595 -#: project/templates/_macros.html:1376 +#: project/templates/_macros.html:449 project/templates/_macros.html:604 +#: project/templates/_macros.html:1385 msgid "Add to calendar" msgstr "Zum Kalender" -#: project/templates/_macros.html:474 project/templates/_macros.html:628 +#: project/templates/_macros.html:483 project/templates/_macros.html:637 msgid "Show directions" msgstr "Anreise planen" -#: project/templates/_macros.html:479 project/templates/_macros.html:633 +#: project/templates/_macros.html:488 project/templates/_macros.html:642 msgid "The event takes place online." msgstr "Die Veranstaltung findet online statt." -#: project/templates/_macros.html:481 project/templates/_macros.html:635 +#: project/templates/_macros.html:490 project/templates/_macros.html:644 msgid "The event takes place both offline and online." msgstr "" "Die Veranstaltung findet sowohl als Präsenzveranstaltung als auch online " "statt." -#: project/templates/_macros.html:696 project/templates/event_date/list.html:4 +#: project/templates/_macros.html:705 project/templates/event_date/list.html:4 #: project/templates/event_date/list.html:258 #: project/templates/event_date/search.html:3 -#: project/templates/reference_request/review.html:30 +#: project/templates/reference_request/review.html:55 msgid "Event Dates" msgstr "Termine" -#: project/templates/_macros.html:769 +#: project/templates/_macros.html:778 msgid "Search location on Google" msgstr "Ort bei Google suchen" -#: project/templates/_macros.html:802 project/templates/_macros.html:804 +#: project/templates/_macros.html:811 project/templates/_macros.html:813 #: project/templates/event_date/list.html:279 #: project/templates/widget/event_suggestion/create.html:161 #: project/templates/widget/event_suggestion/create.html:186 @@ -1142,12 +1154,12 @@ msgstr "Ort bei Google suchen" msgid "Previous" msgstr "Zurück" -#: project/templates/_macros.html:806 +#: project/templates/_macros.html:815 #, python-format msgid "Page %(page)d of %(pages)d (%(total)d total)" msgstr "Seite %(page)d von %(pages)d (%(total)d insgesamt)" -#: project/templates/_macros.html:808 project/templates/_macros.html:810 +#: project/templates/_macros.html:817 project/templates/_macros.html:819 #: project/templates/event_date/list.html:281 #: project/templates/widget/event_suggestion/create.html:162 #: project/templates/widget/event_suggestion/create.html:187 @@ -1157,59 +1169,59 @@ msgstr "Seite %(page)d von %(pages)d (%(total)d insgesamt)" msgid "Next" msgstr "Weiter" -#: project/templates/_macros.html:875 +#: project/templates/_macros.html:884 msgid "Radius" msgstr "Umkreis" -#: project/templates/_macros.html:1085 +#: project/templates/_macros.html:1094 msgid "Edit image" msgstr "Bild bearbeiten" -#: project/templates/_macros.html:1106 +#: project/templates/_macros.html:1115 msgid "Close" msgstr "Schließen" -#: project/templates/_macros.html:1107 +#: project/templates/_macros.html:1116 msgid "Okay" msgstr "OK" -#: project/templates/_macros.html:1119 +#: project/templates/_macros.html:1128 msgid "Choose image file" msgstr "Bild-Datei auswählen" -#: project/templates/_macros.html:1155 project/templates/event/actions.html:46 +#: project/templates/_macros.html:1164 project/templates/event/actions.html:46 msgid "Edit event" msgstr "Veranstaltung bearbeiten" -#: project/templates/_macros.html:1158 project/templates/manage/events.html:30 +#: project/templates/_macros.html:1167 project/templates/manage/events.html:30 msgid "More" msgstr "Mehr" -#: project/templates/_macros.html:1243 +#: project/templates/_macros.html:1252 msgid "Event suggestion" msgstr "Veranstaltungsvorschlag" -#: project/templates/_macros.html:1355 +#: project/templates/_macros.html:1364 msgid "Link copied" msgstr "Link kopiert" -#: project/templates/_macros.html:1355 +#: project/templates/_macros.html:1364 msgid "Copy link" msgstr "Link kopieren" -#: project/templates/_macros.html:1384 +#: project/templates/_macros.html:1393 msgid "Google calendar" msgstr "Google Kalender" -#: project/templates/_macros.html:1385 +#: project/templates/_macros.html:1394 msgid "Apple calendar" msgstr "Apple Kalender" -#: project/templates/_macros.html:1386 +#: project/templates/_macros.html:1395 msgid "Yahoo calendar" msgstr "Yahoo Kalender" -#: project/templates/_macros.html:1387 +#: project/templates/_macros.html:1396 msgid "Other calendar" msgstr "Anderer Kalender" @@ -1217,7 +1229,7 @@ msgstr "Anderer Kalender" msgid "Manage" msgstr "Verwaltung" -#: project/templates/home.html:29 project/templates/security/login_user.html:23 +#: project/templates/home.html:29 project/templates/security/login_user.html:35 #: project/views/widget.py:179 msgid "Register for free" msgstr "Kostenlos registrieren" @@ -1372,7 +1384,7 @@ msgstr "Bearbeiten" #: project/templates/admin_unit/create.html:49 #: project/templates/admin_unit/update.html:50 -#: project/templates/event/create.html:306 +#: project/templates/event/create.html:311 #: project/templates/event/update.html:171 #: project/templates/event_place/create.html:47 #: project/templates/event_place/update.html:47 @@ -1490,21 +1502,21 @@ msgstr "Orte oder Adresse eingeben" msgid "Just use %(term)s" msgstr "Verwende einfach %(term)s" -#: project/templates/event/create.html:207 +#: project/templates/event/create.html:212 #: project/templates/event/update.html:103 msgid "Event date" msgstr "Termin" -#: project/templates/event/create.html:268 +#: project/templates/event/create.html:273 msgid "Switch to place search" msgstr "Zur Ortssuche wechseln" -#: project/templates/event/create.html:279 +#: project/templates/event/create.html:284 #: project/templates/event/update.html:144 msgid "Access" msgstr "Zugang" -#: project/templates/event/create.html:293 +#: project/templates/event/create.html:298 #: project/templates/event/update.html:158 msgid "Target group" msgstr "Zielgruppe" @@ -1671,10 +1683,27 @@ msgstr "Empfehlung bearbeiten" msgid "Update reference to event \"%(name)s\"" msgstr "Empfehlung aktualisieren für Veranstaltung \"%(name)s\"" -#: project/templates/reference_request/review.html:8 +#: project/templates/reference_request/review.html:46 msgid "Review event reference request" msgstr "Empfehlungsanfrage prüfen" +#: project/templates/reference_request/review.html:66 +#: project/templates/reference_request/review.html:74 +#: project/templates/reference_request/review.html:92 +msgid "Accept reference request" +msgstr "Anfrage akzeptieren" + +#: project/templates/reference_request/review.html:67 +#: project/templates/reference_request/review.html:102 +#: project/templates/reference_request/review.html:119 +msgid "Reject reference request" +msgstr "Anfrage ablehnen" + +#: project/templates/reference_request/review.html:91 +#: project/templates/reference_request/review.html:118 +msgid "Cancel" +msgstr "Abbrechen" + #: project/templates/security/authorize.html:10 #, python-format msgid "\"%(client_name)s\" wants to access your account" @@ -1685,7 +1714,7 @@ msgstr "\"%(client_name)s\" möchte auf deinen Account zugreifen" msgid "This will allow \"%(client_name)s\" to:" msgstr "Dies ermöglicht \"%(client_name)s\":" -#: project/templates/security/login_user.html:21 +#: project/templates/security/login_user.html:33 msgid "You do not have an account yet? Not a problem!" msgstr "Du hast noch keinen Account? Kein Problem!" @@ -1774,23 +1803,23 @@ msgstr "Die eingegebene Email passt nicht zur Email der Einladung" msgid "Invitation successfully deleted" msgstr "Einladung erfolgreich gelöscht" -#: project/views/event.py:167 +#: project/views/event.py:168 msgid "Event successfully created" msgstr "Veranstaltung erfolgreich erstellt" -#: project/views/event.py:207 +#: project/views/event.py:208 msgid "Event successfully updated" msgstr "Veranstaltung erfolgreich aktualisiert" -#: project/views/event.py:230 project/views/reference.py:162 +#: project/views/event.py:231 project/views/reference.py:162 msgid "Entered name does not match event name" msgstr "Der eingegebene Name entspricht nicht dem Namen der Veranstaltung" -#: project/views/event.py:236 +#: project/views/event.py:237 msgid "Event successfully deleted" msgstr "Veranstaltung erfolgreich gelöscht" -#: project/views/event.py:379 +#: project/views/event.py:380 msgid "Referenced event changed" msgstr "Empfohlene Veranstaltung wurde geändert" @@ -1819,19 +1848,19 @@ msgstr "Veranstaltungsvorschlag erfolgreich abgelehnt" msgid "Event review status updated" msgstr "Prüfungsstatus aktualisiert" -#: project/views/js.py:27 +#: project/views/js.py:26 msgid "Short name is already taken" msgstr "Der Kurzname ist bereits vergeben" -#: project/views/js.py:41 +#: project/views/js.py:40 msgid "An account already exists with this email." msgstr "Mit dieser E-Mail existiert bereits ein Account." -#: project/views/js.py:66 +#: project/views/js.py:65 msgid "Places of organization" msgstr "Orte der Organisation" -#: project/views/js.py:74 +#: project/views/js.py:73 msgid "Places of Google Maps" msgstr "Orte von Google Maps" diff --git a/project/translations/en/LC_MESSAGES/messages.mo b/project/translations/en/LC_MESSAGES/messages.mo index 9451832..1125b85 100644 Binary files a/project/translations/en/LC_MESSAGES/messages.mo and b/project/translations/en/LC_MESSAGES/messages.mo differ diff --git a/project/translations/en/LC_MESSAGES/messages.po b/project/translations/en/LC_MESSAGES/messages.po index c07e65e..63aa5a3 100644 --- a/project/translations/en/LC_MESSAGES/messages.po +++ b/project/translations/en/LC_MESSAGES/messages.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: PROJECT VERSION\n" "Report-Msgid-Bugs-To: EMAIL@ADDRESS\n" -"POT-Creation-Date: 2021-07-30 15:18+0200\n" +"POT-Creation-Date: 2021-08-06 08:22+0200\n" "PO-Revision-Date: 2021-04-30 15:04+0200\n" "Last-Translator: FULL NAME \n" "Language: en\n" @@ -176,7 +176,7 @@ msgstr "" msgid "Legal notice" msgstr "" -#: project/forms/admin.py:12 project/templates/_macros.html:1271 +#: project/forms/admin.py:12 project/templates/_macros.html:1280 #: project/templates/layout.html:267 #: project/templates/widget/event_suggestion/create.html:172 #: project/views/admin_unit.py:36 project/views/root.py:58 @@ -248,12 +248,12 @@ msgid "Longitude" msgstr "" #: project/forms/admin_unit.py:28 project/forms/event.py:35 -#: project/forms/event.py:64 project/forms/event.py:358 +#: project/forms/event.py:64 project/forms/event.py:362 #: project/forms/event_place.py:25 project/forms/event_place.py:50 #: project/forms/event_suggestion.py:26 project/forms/oauth2_client.py:66 #: project/forms/organizer.py:25 project/forms/organizer.py:52 #: project/forms/reference.py:40 project/forms/reference_request.py:22 -#: project/templates/_macros.html:126 +#: project/templates/_macros.html:135 #: project/templates/admin/admin_units.html:19 #: project/templates/event_place/list.html:19 #: project/templates/oauth2_client/list.html:25 @@ -269,7 +269,7 @@ msgstr "" msgid "The short name is used to create a unique identifier for your events" msgstr "" -#: project/forms/admin_unit.py:40 project/templates/_macros.html:1401 +#: project/forms/admin_unit.py:40 project/templates/_macros.html:1410 msgid "Short name must contain only letters numbers or underscore" msgstr "" @@ -282,19 +282,19 @@ msgstr "" #: project/forms/admin_unit.py:47 project/forms/admin_unit_member.py:11 #: project/forms/admin_unit_member.py:23 project/forms/admin_unit_member.py:28 #: project/forms/event.py:57 project/forms/event_suggestion.py:38 -#: project/forms/organizer.py:27 project/templates/_macros.html:253 -#: project/templates/_macros.html:1361 project/templates/admin/users.html:19 +#: project/forms/organizer.py:27 project/templates/_macros.html:262 +#: project/templates/_macros.html:1370 project/templates/admin/users.html:19 msgid "Email" msgstr "" #: project/forms/admin_unit.py:48 project/forms/event.py:58 #: project/forms/event_suggestion.py:31 project/forms/organizer.py:28 -#: project/templates/_macros.html:296 +#: project/templates/_macros.html:305 msgid "Phone" msgstr "" #: project/forms/admin_unit.py:49 project/forms/event.py:59 -#: project/forms/organizer.py:29 project/templates/_macros.html:304 +#: project/forms/organizer.py:29 project/templates/_macros.html:313 msgid "Fax" msgstr "" @@ -491,7 +491,7 @@ msgstr "" msgid "Enter a link where tickets can be purchased." msgstr "" -#: project/forms/event.py:105 project/templates/_macros.html:235 +#: project/forms/event.py:105 project/templates/_macros.html:244 msgid "Tags" msgstr "" @@ -541,7 +541,7 @@ msgstr "" msgid "If the participants needs to register for the event." msgstr "" -#: project/forms/event.py:139 project/templates/_macros.html:267 +#: project/forms/event.py:139 project/templates/_macros.html:276 #: project/templates/layout.html:157 msgid "Booked up" msgstr "" @@ -621,16 +621,16 @@ msgid "" " course it works without it." msgstr "" -#: project/forms/event.py:206 project/templates/_macros.html:1184 +#: project/forms/event.py:206 project/templates/_macros.html:1193 msgid "The start must be before the end." msgstr "" -#: project/forms/event.py:212 project/templates/_macros.html:1201 +#: project/forms/event.py:212 project/templates/_macros.html:1210 msgid "An event can last a maximum of 14 days." msgstr "" -#: project/forms/event.py:220 project/templates/_macros.html:414 -#: project/templates/_macros.html:573 +#: project/forms/event.py:220 project/templates/_macros.html:423 +#: project/templates/_macros.html:582 msgid "Previous start date" msgstr "" @@ -647,23 +647,23 @@ msgid "Choose categories that fit the event." msgstr "" #: project/forms/event.py:233 project/forms/reference.py:14 -#: project/forms/reference.py:27 project/forms/reference_request.py:70 -#: project/templates/event/create.html:318 +#: project/forms/reference.py:27 project/forms/reference_request.py:75 +#: project/templates/event/create.html:323 #: project/templates/event/update.html:183 msgid "Rating" msgstr "" #: project/forms/event.py:237 project/forms/reference.py:18 -#: project/forms/reference.py:31 project/forms/reference_request.py:74 +#: project/forms/reference.py:31 project/forms/reference_request.py:79 msgid "" "Choose how relevant the event is to your organization. The value is not " "visible and is used for sorting." msgstr "" #: project/forms/event.py:245 project/forms/event.py:254 -#: project/forms/event.py:314 project/forms/event_suggestion.py:50 -#: project/templates/_macros.html:453 project/templates/_macros.html:609 -#: project/templates/event/create.html:243 +#: project/forms/event.py:318 project/forms/event_suggestion.py:50 +#: project/templates/_macros.html:462 project/templates/_macros.html:618 +#: project/templates/event/create.html:248 #: project/templates/event/update.html:133 #: project/templates/event_place/create.html:21 #: project/templates/event_place/delete.html:13 @@ -680,9 +680,9 @@ msgid "Enter new place" msgstr "" #: project/forms/event.py:261 project/forms/event.py:270 -#: project/forms/event.py:322 project/forms/event.py:372 -#: project/forms/event_suggestion.py:60 project/templates/_macros.html:491 -#: project/templates/_macros.html:646 project/templates/event/create.html:218 +#: project/forms/event.py:326 project/forms/event.py:376 +#: project/forms/event_suggestion.py:60 project/templates/_macros.html:500 +#: project/templates/_macros.html:655 project/templates/event/create.html:223 #: project/templates/event/update.html:124 #: project/templates/organizer/create.html:17 #: project/templates/organizer/delete.html:13 @@ -699,101 +699,101 @@ msgid "Enter new organizer" msgstr "" #: project/forms/event.py:276 project/templates/event/create.html:4 -#: project/templates/event/create.html:190 +#: project/templates/event/create.html:195 #: project/templates/manage/events.html:12 #: project/templates/manage/organizers.html:21 msgid "Create event" msgstr "" -#: project/forms/event.py:300 +#: project/forms/event.py:302 msgid "Select existing place or enter new place" msgstr "" -#: project/forms/event.py:305 +#: project/forms/event.py:309 msgid "Select existing organizer or enter new organizer" msgstr "" -#: project/forms/event.py:317 +#: project/forms/event.py:321 msgid "" "Choose where the event takes place. You can add and modify places at " "Manage > Places." msgstr "" -#: project/forms/event.py:325 +#: project/forms/event.py:329 msgid "" "Select the organizer. You can add and modify organizers at Manage > " "Organizers." msgstr "" -#: project/forms/event.py:331 project/templates/event/update.html:114 +#: project/forms/event.py:335 project/templates/event/update.html:114 #: project/templates/oauth2_token/list.html:21 msgid "Status" msgstr "" -#: project/forms/event.py:334 +#: project/forms/event.py:338 msgid "EventStatus.scheduled" msgstr "Scheduled" -#: project/forms/event.py:335 project/templates/layout.html:111 +#: project/forms/event.py:339 project/templates/layout.html:111 #: project/templates/layout.html:126 msgid "EventStatus.cancelled" msgstr "Cancelled" -#: project/forms/event.py:336 project/templates/layout.html:114 +#: project/forms/event.py:340 project/templates/layout.html:114 #: project/templates/layout.html:129 msgid "EventStatus.movedOnline" msgstr "Moved online" -#: project/forms/event.py:337 project/templates/layout.html:117 +#: project/forms/event.py:341 project/templates/layout.html:117 #: project/templates/layout.html:132 msgid "EventStatus.postponed" msgstr "Postponed" -#: project/forms/event.py:338 project/templates/layout.html:120 +#: project/forms/event.py:342 project/templates/layout.html:120 #: project/templates/layout.html:135 msgid "EventStatus.rescheduled" msgstr "Rescheduled" -#: project/forms/event.py:340 +#: project/forms/event.py:344 msgid "Select the status of the event." msgstr "" -#: project/forms/event.py:343 project/templates/event/update.html:4 +#: project/forms/event.py:347 project/templates/event/update.html:4 #: project/templates/event/update.html:86 msgid "Update event" msgstr "" -#: project/forms/event.py:357 project/templates/_macros.html:1156 +#: project/forms/event.py:361 project/templates/_macros.html:1165 #: project/templates/event/actions.html:47 #: project/templates/event/delete.html:6 msgid "Delete event" msgstr "" -#: project/forms/event.py:365 project/forms/event_date.py:15 +#: project/forms/event.py:369 project/forms/event_date.py:15 #: project/forms/planing.py:14 msgid "From" msgstr "" -#: project/forms/event.py:366 project/forms/event_date.py:16 +#: project/forms/event.py:370 project/forms/event_date.py:16 #: project/forms/planing.py:15 msgid "to" msgstr "" -#: project/forms/event.py:367 project/forms/event_date.py:17 +#: project/forms/event.py:371 project/forms/event_date.py:17 msgid "Keyword" msgstr "" -#: project/forms/event.py:369 project/forms/event_date.py:19 -#: project/forms/planing.py:17 project/templates/_macros.html:377 +#: project/forms/event.py:373 project/forms/event_date.py:19 +#: project/forms/planing.py:17 project/templates/_macros.html:386 msgid "Category" msgstr "" -#: project/forms/event.py:375 +#: project/forms/event.py:379 msgid "Find events" msgstr "" #: project/forms/event_date.py:22 project/forms/planing.py:20 -#: project/templates/_macros.html:128 project/templates/_macros.html:311 +#: project/templates/_macros.html:137 project/templates/_macros.html:320 #: project/templates/admin_unit/create.html:29 #: project/templates/admin_unit/update.html:30 #: project/templates/event_place/create.html:30 @@ -847,13 +847,13 @@ msgstr "" msgid "I would like to be notified by email after the review" msgstr "" -#: project/forms/event_suggestion.py:52 project/templates/event/create.html:248 +#: project/forms/event_suggestion.py:52 project/templates/event/create.html:253 msgid "" "Choose where the event takes place. If the venue is not yet in the list, " "just enter it." msgstr "" -#: project/forms/event_suggestion.py:62 project/templates/event/create.html:222 +#: project/forms/event_suggestion.py:62 project/templates/event/create.html:227 msgid "" "Select the organizer. If the organizer is not yet on the list, just enter" " it." @@ -865,7 +865,7 @@ msgstr "" msgid "Create event suggestion" msgstr "" -#: project/forms/event_suggestion.py:116 project/forms/reference_request.py:46 +#: project/forms/event_suggestion.py:116 project/forms/reference_request.py:47 msgid "Rejection reason" msgstr "" @@ -927,7 +927,7 @@ msgid "Weekdays" msgstr "" #: project/forms/reference.py:11 project/forms/reference_request.py:15 -#: project/templates/_macros.html:512 project/templates/_macros.html:672 +#: project/templates/_macros.html:521 project/templates/_macros.html:681 #: project/templates/admin_unit/create.html:19 #: project/templates/admin_unit/update.html:20 msgid "Organization" @@ -954,7 +954,7 @@ msgstr "" msgid "Delete request" msgstr "" -#: project/forms/reference_request.py:27 project/templates/_macros.html:1283 +#: project/forms/reference_request.py:27 project/templates/_macros.html:1292 #: project/templates/event_suggestion/review_status.html:18 #: project/templates/reference_request/review_status.html:12 msgid "Review status" @@ -972,23 +972,35 @@ msgstr "Verified" msgid "EventReferenceRequestReviewStatus.rejected" msgstr "Rejected" +#: project/forms/reference_request.py:43 +msgid "Choose the result of your review." +msgstr "" + #: project/forms/reference_request.py:52 +msgid "EventReferenceRequestRejectionReason.noreason" +msgstr "No reason" + +#: project/forms/reference_request.py:56 msgid "EventReferenceRequestRejectionReason.duplicate" msgstr "Duplicate" -#: project/forms/reference_request.py:56 +#: project/forms/reference_request.py:60 msgid "EventReferenceRequestRejectionReason.untrustworthy" msgstr "Untrustworthy" -#: project/forms/reference_request.py:60 +#: project/forms/reference_request.py:64 msgid "EventReferenceRequestRejectionReason.irrelevant" msgstr "Irrelevant" -#: project/forms/reference_request.py:64 +#: project/forms/reference_request.py:68 msgid "EventReferenceRequestRejectionReason.illegal" msgstr "Illegal" -#: project/forms/reference_request.py:78 +#: project/forms/reference_request.py:71 +msgid "Choose why you rejected the request." +msgstr "" + +#: project/forms/reference_request.py:83 msgid "Save review" msgstr "" @@ -1004,50 +1016,50 @@ msgstr "" msgid "This field is required." msgstr "" -#: project/templates/_macros.html:125 project/templates/_macros.html:400 -#: project/templates/_macros.html:407 project/templates/_macros.html:852 +#: project/templates/_macros.html:134 project/templates/_macros.html:409 +#: project/templates/_macros.html:416 project/templates/_macros.html:861 msgid "Date" msgstr "" -#: project/templates/_macros.html:127 +#: project/templates/_macros.html:136 msgid "Host" msgstr "" -#: project/templates/_macros.html:149 +#: project/templates/_macros.html:158 msgid "Show all events" msgstr "" -#: project/templates/_macros.html:165 +#: project/templates/_macros.html:174 msgid "Show on Google Maps" msgstr "" -#: project/templates/_macros.html:244 +#: project/templates/_macros.html:253 msgid "Link" msgstr "" -#: project/templates/_macros.html:354 -#, python-format -msgid "Created at %(created_at)s by %(created_by)s." -msgstr "" - -#: project/templates/_macros.html:356 -#, python-format -msgid "Created at %(created_at)s." -msgstr "" - -#: project/templates/_macros.html:361 -#, python-format -msgid "Last updated at %(updated_at)s by %(updated_by)s." -msgstr "" - #: project/templates/_macros.html:363 #, python-format +msgid "Created at %(created_at)s by %(created_by)s." +msgstr "" + +#: project/templates/_macros.html:365 +#, python-format +msgid "Created at %(created_at)s." +msgstr "" + +#: project/templates/_macros.html:370 +#, python-format +msgid "Last updated at %(updated_at)s by %(updated_by)s." +msgstr "" + +#: project/templates/_macros.html:372 +#, python-format msgid "Last updated at %(updated_at)s." msgstr "" -#: project/templates/_macros.html:393 project/templates/_macros.html:569 +#: project/templates/_macros.html:402 project/templates/_macros.html:578 #: project/templates/event/actions.html:12 -#: project/templates/event/create.html:197 +#: project/templates/event/create.html:202 #: project/templates/event/delete.html:13 #: project/templates/event/update.html:93 #: project/templates/reference/delete.html:13 @@ -1055,45 +1067,45 @@ msgstr "" msgid "Event" msgstr "" -#: project/templates/_macros.html:403 project/templates/_macros.html:555 +#: project/templates/_macros.html:412 project/templates/_macros.html:564 #, python-format msgid "%(count)d event dates" msgstr "" -#: project/templates/_macros.html:436 project/templates/_macros.html:591 -#: project/templates/_macros.html:1346 project/templates/event/actions.html:32 +#: project/templates/_macros.html:445 project/templates/_macros.html:600 +#: project/templates/_macros.html:1355 project/templates/event/actions.html:32 msgid "Share" msgstr "" -#: project/templates/_macros.html:440 project/templates/_macros.html:595 -#: project/templates/_macros.html:1376 +#: project/templates/_macros.html:449 project/templates/_macros.html:604 +#: project/templates/_macros.html:1385 msgid "Add to calendar" msgstr "" -#: project/templates/_macros.html:474 project/templates/_macros.html:628 +#: project/templates/_macros.html:483 project/templates/_macros.html:637 msgid "Show directions" msgstr "" -#: project/templates/_macros.html:479 project/templates/_macros.html:633 +#: project/templates/_macros.html:488 project/templates/_macros.html:642 msgid "The event takes place online." msgstr "" -#: project/templates/_macros.html:481 project/templates/_macros.html:635 +#: project/templates/_macros.html:490 project/templates/_macros.html:644 msgid "The event takes place both offline and online." msgstr "" -#: project/templates/_macros.html:696 project/templates/event_date/list.html:4 +#: project/templates/_macros.html:705 project/templates/event_date/list.html:4 #: project/templates/event_date/list.html:258 #: project/templates/event_date/search.html:3 -#: project/templates/reference_request/review.html:30 +#: project/templates/reference_request/review.html:55 msgid "Event Dates" msgstr "" -#: project/templates/_macros.html:769 +#: project/templates/_macros.html:778 msgid "Search location on Google" msgstr "" -#: project/templates/_macros.html:802 project/templates/_macros.html:804 +#: project/templates/_macros.html:811 project/templates/_macros.html:813 #: project/templates/event_date/list.html:279 #: project/templates/widget/event_suggestion/create.html:161 #: project/templates/widget/event_suggestion/create.html:186 @@ -1104,12 +1116,12 @@ msgstr "" msgid "Previous" msgstr "" -#: project/templates/_macros.html:806 +#: project/templates/_macros.html:815 #, python-format msgid "Page %(page)d of %(pages)d (%(total)d total)" msgstr "" -#: project/templates/_macros.html:808 project/templates/_macros.html:810 +#: project/templates/_macros.html:817 project/templates/_macros.html:819 #: project/templates/event_date/list.html:281 #: project/templates/widget/event_suggestion/create.html:162 #: project/templates/widget/event_suggestion/create.html:187 @@ -1119,59 +1131,59 @@ msgstr "" msgid "Next" msgstr "" -#: project/templates/_macros.html:875 +#: project/templates/_macros.html:884 msgid "Radius" msgstr "" -#: project/templates/_macros.html:1085 +#: project/templates/_macros.html:1094 msgid "Edit image" msgstr "" -#: project/templates/_macros.html:1106 +#: project/templates/_macros.html:1115 msgid "Close" msgstr "" -#: project/templates/_macros.html:1107 +#: project/templates/_macros.html:1116 msgid "Okay" msgstr "" -#: project/templates/_macros.html:1119 +#: project/templates/_macros.html:1128 msgid "Choose image file" msgstr "" -#: project/templates/_macros.html:1155 project/templates/event/actions.html:46 +#: project/templates/_macros.html:1164 project/templates/event/actions.html:46 msgid "Edit event" msgstr "" -#: project/templates/_macros.html:1158 project/templates/manage/events.html:30 +#: project/templates/_macros.html:1167 project/templates/manage/events.html:30 msgid "More" msgstr "" -#: project/templates/_macros.html:1243 +#: project/templates/_macros.html:1252 msgid "Event suggestion" msgstr "" -#: project/templates/_macros.html:1355 +#: project/templates/_macros.html:1364 msgid "Link copied" msgstr "" -#: project/templates/_macros.html:1355 +#: project/templates/_macros.html:1364 msgid "Copy link" msgstr "" -#: project/templates/_macros.html:1384 +#: project/templates/_macros.html:1393 msgid "Google calendar" msgstr "" -#: project/templates/_macros.html:1385 +#: project/templates/_macros.html:1394 msgid "Apple calendar" msgstr "" -#: project/templates/_macros.html:1386 +#: project/templates/_macros.html:1395 msgid "Yahoo calendar" msgstr "" -#: project/templates/_macros.html:1387 +#: project/templates/_macros.html:1396 msgid "Other calendar" msgstr "" @@ -1179,7 +1191,7 @@ msgstr "" msgid "Manage" msgstr "" -#: project/templates/home.html:29 project/templates/security/login_user.html:23 +#: project/templates/home.html:29 project/templates/security/login_user.html:35 #: project/views/widget.py:179 msgid "Register for free" msgstr "" @@ -1334,7 +1346,7 @@ msgstr "" #: project/templates/admin_unit/create.html:49 #: project/templates/admin_unit/update.html:50 -#: project/templates/event/create.html:306 +#: project/templates/event/create.html:311 #: project/templates/event/update.html:171 #: project/templates/event_place/create.html:47 #: project/templates/event_place/update.html:47 @@ -1450,21 +1462,21 @@ msgstr "" msgid "Just use %(term)s" msgstr "" -#: project/templates/event/create.html:207 +#: project/templates/event/create.html:212 #: project/templates/event/update.html:103 msgid "Event date" msgstr "" -#: project/templates/event/create.html:268 +#: project/templates/event/create.html:273 msgid "Switch to place search" msgstr "" -#: project/templates/event/create.html:279 +#: project/templates/event/create.html:284 #: project/templates/event/update.html:144 msgid "Access" msgstr "" -#: project/templates/event/create.html:293 +#: project/templates/event/create.html:298 #: project/templates/event/update.html:158 msgid "Target group" msgstr "" @@ -1631,10 +1643,27 @@ msgstr "" msgid "Update reference to event \"%(name)s\"" msgstr "" -#: project/templates/reference_request/review.html:8 +#: project/templates/reference_request/review.html:46 msgid "Review event reference request" msgstr "" +#: project/templates/reference_request/review.html:66 +#: project/templates/reference_request/review.html:74 +#: project/templates/reference_request/review.html:92 +msgid "Accept reference request" +msgstr "" + +#: project/templates/reference_request/review.html:67 +#: project/templates/reference_request/review.html:102 +#: project/templates/reference_request/review.html:119 +msgid "Reject reference request" +msgstr "" + +#: project/templates/reference_request/review.html:91 +#: project/templates/reference_request/review.html:118 +msgid "Cancel" +msgstr "" + #: project/templates/security/authorize.html:10 #, python-format msgid "\"%(client_name)s\" wants to access your account" @@ -1645,7 +1674,7 @@ msgstr "" msgid "This will allow \"%(client_name)s\" to:" msgstr "" -#: project/templates/security/login_user.html:21 +#: project/templates/security/login_user.html:33 msgid "You do not have an account yet? Not a problem!" msgstr "" @@ -1731,23 +1760,23 @@ msgstr "" msgid "Invitation successfully deleted" msgstr "" -#: project/views/event.py:167 +#: project/views/event.py:168 msgid "Event successfully created" msgstr "" -#: project/views/event.py:207 +#: project/views/event.py:208 msgid "Event successfully updated" msgstr "" -#: project/views/event.py:230 project/views/reference.py:162 +#: project/views/event.py:231 project/views/reference.py:162 msgid "Entered name does not match event name" msgstr "" -#: project/views/event.py:236 +#: project/views/event.py:237 msgid "Event successfully deleted" msgstr "" -#: project/views/event.py:379 +#: project/views/event.py:380 msgid "Referenced event changed" msgstr "" @@ -1776,19 +1805,19 @@ msgstr "" msgid "Event review status updated" msgstr "" -#: project/views/js.py:27 +#: project/views/js.py:26 msgid "Short name is already taken" msgstr "" -#: project/views/js.py:41 +#: project/views/js.py:40 msgid "An account already exists with this email." msgstr "" -#: project/views/js.py:66 +#: project/views/js.py:65 msgid "Places of organization" msgstr "" -#: project/views/js.py:74 +#: project/views/js.py:73 msgid "Places of Google Maps" msgstr ""