Merge pull request #247 from DanielGrams/issue/246

Optimize reference request review #246
This commit is contained in:
Daniel Grams 2021-08-06 10:08:18 +02:00 committed by GitHub
commit 2d0b78635a
20 changed files with 819 additions and 428 deletions

View File

@ -1,3 +1,3 @@
[run]
omit =
project/cli/database.py
project/cli/test.py

View File

@ -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 }}

View File

@ -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)
})
})
})
})

View File

@ -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')
})
})
})
})

View File

@ -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')

View File

@ -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 <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\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 ""

View File

@ -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

View File

@ -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)

188
project/cli/test.py Normal file
View File

@ -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)

View File

@ -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(

View File

@ -56,6 +56,15 @@
{{ field(class="custom-control-input") }}
<label class="custom-control-label" for="{{ field.id }}"></label>
</div>
{% elif 'ri' in kwargs and kwargs['ri'] == 'radio-buttons' %}
<div class="btn-group btn-group-toggle" data-toggle="buttons">
{% for choice in field %}
{% set color = kwargs['colors'][loop.index0] if 'colors' in kwargs else 'secondary' %}
<label class="btn btn-outline-{{ color }}">
<input type="radio" id="{{ choice.id }}" name="{{ field.id }}" value="{{ choice.id[-1] }}" {% if choice.checked %}checked {% endif %}> {{ choice.label.text }}
</label>
{% endfor %}
</div>
{% else %}
{% if 'class' in kwargs %}
{% set _dummy=kwargs.pop('class') %}

View File

@ -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() }}
<script>
$( function() {
function update_input_visibility(value) {
switch (value) {
case '0':
$('#review_status_container').hide();
$('#rating_container').hide();
break;
case '1':
$('#review_status_container').hide();
$('#rating_container').show();
break;
case '2':
$('#review_status_container').show();
$('#rating_container').hide();
break;
}
}
$('input[name=review_status]').on('change', function() {
update_input_visibility($(this).val());
});
update_input_visibility($('input[name=review_status]:checked').val());
$('#acceptFormModal .btn-success').click(function() {
$('#acceptFormModal form').submit();
});
$('#rejectFormModal .btn-danger').click(function() {
$('#rejectFormModal form').submit();
});
});
</script>
{% endblock %}
{% block content %}
<h1>{{ _('Review event reference request') }}</h1>
<form action="" method="POST">
{{ 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) }}
</form>
<div class="mt-3 w-normal">
{{ render_event_props(event, event.start, event.end, dates) }}
@ -29,14 +54,74 @@
<div class="card-header">
<a name="event-dates">{{ _('Event Dates') }}</a>
</div>
<div class="list-group list-group-flush">
<div class="list-group list-group-flush" style="max-height: 30vh; overflow: scroll; overflow-y: auto;">
{% for date in dates %}
<a href="#" class="list-group-item">{{ date.start | datetimeformat('short') }}</a>
<a href="{{ url_for('event_date', id=date.id) }}" class="list-group-item">{{ date.start | datetimeformat('short') }}</a>
{% endfor %}
</div>
</div>
{% endif %}
<div class="d-flex justify-content-between my-4 decision-container">
<button type="button" class="btn btn-success m-1" data-toggle="modal" data-target="#acceptFormModal"><i class="fa fa-check"></i> {{ _('Accept reference request') }}&hellip;</button>
<button type="button" class="btn btn-danger m-1" data-toggle="modal" data-target="#rejectFormModal"><i class="fa fa-ban"></i> {{ _('Reject reference request') }}&hellip;</button>
</div>
<div class="modal fade" id="acceptFormModal" tabindex="-1" role="dialog" aria-hidden="true">
<div class="modal-dialog modal-dialog-centered" role="document">
<div class="modal-content">
<div class="modal-header">
<h5 class="modal-title">{{ _('Accept reference request') }}</h5>
<button type="button" class="close" data-dismiss="modal" aria-label="Close">
<span aria-hidden="true">&times;</span>
</button>
</div>
<div class="modal-body">
<form action="" method="POST">
{{ form.hidden_tag() }}
<input type="hidden" name="{{ form.review_status.name }}" value="2" />
<input type="hidden" name="{{ form.rejection_reason.name }}" value="0" />
{% if form.rating.choices|length > 1 %}
{{ render_field_with_errors(form.rating) }}
{% endif %}
</form>
</div>
<div class="modal-footer">
<button type="button" class="btn btn-secondary" data-dismiss="modal">{{ _('Cancel') }}</button>
<button type="button" class="btn btn-success">{{ _('Accept reference request') }}</button>
</div>
</div>
</div>
</div>
<div class="modal fade" id="rejectFormModal" tabindex="-1" role="dialog" aria-hidden="true">
<div class="modal-dialog modal-dialog-centered" role="document">
<div class="modal-content">
<div class="modal-header">
<h5 class="modal-title">{{ _('Reject reference request') }}</h5>
<button type="button" class="close" data-dismiss="modal" aria-label="Close">
<span aria-hidden="true">&times;</span>
</button>
</div>
<div class="modal-body">
<form action="" method="POST">
{{ form.hidden_tag() }}
<input type="hidden" name="{{ form.review_status.name }}" value="3" />
{% if form.rating.choices|length > 1 %}
{{ render_field_with_errors(form.rejection_reason) }}
{% endif %}
</form>
</div>
<div class="modal-footer">
<button type="button" class="btn btn-secondary" data-dismiss="modal">{{ _('Cancel') }}</button>
<button type="button" class="btn btn-danger">{{ _('Reject reference request') }}</button>
</div>
</div>
</div>
</div>
</div>
{% endblock %}

View File

@ -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 <EMAIL@ADDRESS>\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"

View File

@ -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 <EMAIL@ADDRESS>\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 ""