Merge pull request #238 from DanielGrams/issue/237

Add validation to AdminUnit:Create #237
This commit is contained in:
Daniel Grams 2021-07-25 23:15:18 +02:00 committed by GitHub
commit c6453c8c37
14 changed files with 625 additions and 458 deletions

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-22 22:41+0200\n"
"POT-Creation-Date: 2021-07-25 22:35+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"
@ -165,24 +165,24 @@ msgstr ""
msgid "."
msgstr ""
#: project/forms/admin.py:10 project/templates/layout.html:246
#: project/forms/admin.py:10 project/templates/layout.html:257
#: project/views/root.py:42
msgid "Terms of service"
msgstr ""
#: project/forms/admin.py:11 project/templates/layout.html:250
#: project/forms/admin.py:11 project/templates/layout.html:261
#: project/views/root.py:50
msgid "Legal notice"
msgstr ""
#: project/forms/admin.py:12 project/templates/_macros.html:1245
#: project/templates/layout.html:254
#: project/templates/widget/event_suggestion/create.html:170
#: project/forms/admin.py:12 project/templates/_macros.html:1271
#: project/templates/layout.html:265
#: project/templates/widget/event_suggestion/create.html:172
#: project/views/admin_unit.py:36 project/views/root.py:58
msgid "Contact"
msgstr ""
#: project/forms/admin.py:13 project/templates/layout.html:258
#: project/forms/admin.py:13 project/templates/layout.html:269
#: project/views/root.py:66
msgid "Privacy"
msgstr ""
@ -216,43 +216,43 @@ msgstr ""
msgid "Update organization"
msgstr ""
#: project/forms/admin_unit.py:13 project/forms/event.py:33
#: project/forms/admin_unit.py:14 project/forms/event.py:33
#: project/forms/event_place.py:12 project/forms/organizer.py:12
msgid "Street"
msgstr ""
#: project/forms/admin_unit.py:14 project/forms/event.py:34
#: project/forms/admin_unit.py:15 project/forms/event.py:34
#: project/forms/event_place.py:13 project/forms/organizer.py:13
msgid "Postal code"
msgstr ""
#: project/forms/admin_unit.py:15 project/forms/event.py:35
#: project/forms/admin_unit.py:16 project/forms/event.py:35
#: project/forms/event_place.py:14 project/forms/organizer.py:14
msgid "City"
msgstr ""
#: project/forms/admin_unit.py:16 project/forms/event_place.py:15
#: project/forms/admin_unit.py:17 project/forms/event_place.py:15
#: project/forms/organizer.py:15
msgid "State"
msgstr ""
#: project/forms/admin_unit.py:18 project/forms/event_place.py:17
#: project/forms/admin_unit.py:19 project/forms/event_place.py:17
#: project/forms/organizer.py:17
msgid "Latitude"
msgstr ""
#: project/forms/admin_unit.py:21 project/forms/event_place.py:20
#: project/forms/admin_unit.py:22 project/forms/event_place.py:20
#: project/forms/organizer.py:20
msgid "Longitude"
msgstr ""
#: project/forms/admin_unit.py:26 project/forms/event.py:40
#: project/forms/admin_unit.py:28 project/forms/event.py:40
#: project/forms/event.py:69 project/forms/event.py:363
#: 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:111
#: project/templates/_macros.html:126
#: project/templates/admin/admin_units.html:19
#: project/templates/event_place/list.html:19
#: project/templates/oauth2_client/list.html:25
@ -260,69 +260,69 @@ msgstr ""
msgid "Name"
msgstr ""
#: project/forms/admin_unit.py:28
#: project/forms/admin_unit.py:31
msgid "Short name"
msgstr ""
#: project/forms/admin_unit.py:29
#: project/forms/admin_unit.py:32
msgid "The short name is used to create a unique identifier for your events"
msgstr ""
#: project/forms/admin_unit.py:36
#: project/forms/admin_unit.py:40 project/templates/admin_unit/create.html:13
msgid "Short name must contain only letters numbers or underscore"
msgstr ""
#: project/forms/admin_unit.py:42 project/forms/event.py:61
#: project/forms/admin_unit.py:46 project/forms/event.py:61
#: project/forms/event.py:98 project/forms/event_place.py:26
#: project/forms/organizer.py:26
msgid "Link URL"
msgstr ""
#: project/forms/admin_unit.py:43 project/forms/admin_unit_member.py:11
#: 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:62 project/forms/event_suggestion.py:38
#: project/forms/organizer.py:27 project/templates/_macros.html:238
#: project/templates/_macros.html:1335 project/templates/admin/users.html:19
#: project/forms/organizer.py:27 project/templates/_macros.html:253
#: project/templates/_macros.html:1361 project/templates/admin/users.html:19
msgid "Email"
msgstr ""
#: project/forms/admin_unit.py:44 project/forms/event.py:63
#: project/forms/admin_unit.py:48 project/forms/event.py:63
#: project/forms/event_suggestion.py:31 project/forms/organizer.py:28
#: project/templates/_macros.html:281
#: project/templates/_macros.html:296
msgid "Phone"
msgstr ""
#: project/forms/admin_unit.py:45 project/forms/event.py:64
#: project/forms/organizer.py:29 project/templates/_macros.html:289
#: project/forms/admin_unit.py:49 project/forms/event.py:64
#: project/forms/organizer.py:29 project/templates/_macros.html:304
msgid "Fax"
msgstr ""
#: project/forms/admin_unit.py:46 project/forms/organizer.py:30
#: project/forms/admin_unit.py:50 project/forms/organizer.py:30
msgid "Logo"
msgstr ""
#: project/forms/admin_unit.py:59 project/templates/admin_unit/create.html:11
#: project/forms/admin_unit.py:63 project/templates/admin_unit/create.html:52
#: project/templates/manage/admin_units.html:18
msgid "Create organization"
msgstr ""
#: project/forms/admin_unit.py:63 project/forms/admin_unit.py:86
#: project/forms/admin_unit.py:67 project/forms/admin_unit.py:90
msgid "Update settings"
msgstr ""
#: project/forms/admin_unit.py:67
#: project/forms/admin_unit.py:71
msgid "Font"
msgstr ""
#: project/forms/admin_unit.py:69
#: project/forms/admin_unit.py:73
msgid "Background Color"
msgstr ""
#: project/forms/admin_unit.py:75
#: project/forms/admin_unit.py:79
msgid "Primary Color"
msgstr ""
#: project/forms/admin_unit.py:81
#: project/forms/admin_unit.py:85
msgid "Link Color"
msgstr ""
@ -490,7 +490,7 @@ msgstr ""
msgid "Enter a link where tickets can be purchased."
msgstr ""
#: project/forms/event.py:110 project/templates/_macros.html:220
#: project/forms/event.py:110 project/templates/_macros.html:235
msgid "Tags"
msgstr ""
@ -540,8 +540,8 @@ msgstr ""
msgid "If the participants needs to register for the event."
msgstr ""
#: project/forms/event.py:144 project/templates/_macros.html:252
#: project/templates/layout.html:144
#: project/forms/event.py:144 project/templates/_macros.html:267
#: project/templates/layout.html:155
msgid "Booked up"
msgstr ""
@ -597,11 +597,11 @@ msgstr ""
msgid "EventAttendanceMode.offline"
msgstr ""
#: project/forms/event.py:191 project/templates/layout.html:132
#: project/forms/event.py:191 project/templates/layout.html:143
msgid "EventAttendanceMode.online"
msgstr ""
#: project/forms/event.py:193 project/templates/layout.html:135
#: project/forms/event.py:193 project/templates/layout.html:146
msgid "EventAttendanceMode.mixed"
msgstr ""
@ -610,7 +610,7 @@ msgid "Choose how people can attend the event."
msgstr ""
#: project/forms/event.py:199 project/forms/event_place.py:27
#: project/templates/widget/event_suggestion/create.html:217
#: project/templates/widget/event_suggestion/create.html:219
msgid "Photo"
msgstr ""
@ -620,16 +620,16 @@ msgid ""
" course it works without it."
msgstr ""
#: project/forms/event.py:211 project/templates/_macros.html:1172
#: project/forms/event.py:211 project/templates/_macros.html:1184
msgid "The start must be before the end."
msgstr ""
#: project/forms/event.py:217 project/templates/_macros.html:1189
#: project/forms/event.py:217 project/templates/_macros.html:1201
msgid "An event can last a maximum of 14 days."
msgstr ""
#: project/forms/event.py:225 project/templates/_macros.html:399
#: project/templates/_macros.html:558
#: project/forms/event.py:225 project/templates/_macros.html:414
#: project/templates/_macros.html:573
msgid "Previous start date"
msgstr ""
@ -647,8 +647,8 @@ msgstr ""
#: project/forms/event.py:238 project/forms/reference.py:14
#: project/forms/reference.py:27 project/forms/reference_request.py:70
#: project/templates/event/create.html:190
#: project/templates/event/update.html:155
#: project/templates/event/create.html:193
#: project/templates/event/update.html:158
msgid "Rating"
msgstr ""
@ -661,9 +661,9 @@ msgstr ""
#: project/forms/event.py:250 project/forms/event.py:259
#: project/forms/event.py:319 project/forms/event_suggestion.py:50
#: project/templates/_macros.html:438 project/templates/_macros.html:594
#: project/templates/event/create.html:121
#: project/templates/event/update.html:105
#: project/templates/_macros.html:453 project/templates/_macros.html:609
#: project/templates/event/create.html:124
#: project/templates/event/update.html:108
#: project/templates/event_place/create.html:21
#: project/templates/event_place/delete.html:13
#: project/templates/event_place/update.html:21
@ -680,9 +680,9 @@ msgstr ""
#: project/forms/event.py:266 project/forms/event.py:275
#: project/forms/event.py:327 project/forms/event.py:377
#: project/forms/event_suggestion.py:60 project/templates/_macros.html:476
#: project/templates/_macros.html:631 project/templates/event/create.html:96
#: project/templates/event/update.html:96
#: project/forms/event_suggestion.py:60 project/templates/_macros.html:491
#: project/templates/_macros.html:646 project/templates/event/create.html:99
#: project/templates/event/update.html:99
#: project/templates/organizer/create.html:17
#: project/templates/organizer/delete.html:13
#: project/templates/organizer/update.html:17
@ -698,7 +698,7 @@ msgid "Enter new organizer"
msgstr ""
#: project/forms/event.py:281 project/templates/event/create.html:4
#: project/templates/event/create.html:68
#: project/templates/event/create.html:71
#: project/templates/manage/events.html:12
#: project/templates/manage/organizers.html:21
msgid "Create event"
@ -724,7 +724,7 @@ msgid ""
"Organizers."
msgstr ""
#: project/forms/event.py:336 project/templates/event/update.html:86
#: project/forms/event.py:336 project/templates/event/update.html:89
#: project/templates/oauth2_token/list.html:21
msgid "Status"
msgstr ""
@ -733,23 +733,23 @@ msgstr ""
msgid "EventStatus.scheduled"
msgstr ""
#: project/forms/event.py:340 project/templates/layout.html:98
#: project/templates/layout.html:113
#: project/forms/event.py:340 project/templates/layout.html:109
#: project/templates/layout.html:124
msgid "EventStatus.cancelled"
msgstr ""
#: project/forms/event.py:341 project/templates/layout.html:101
#: project/templates/layout.html:116
#: project/forms/event.py:341 project/templates/layout.html:112
#: project/templates/layout.html:127
msgid "EventStatus.movedOnline"
msgstr ""
#: project/forms/event.py:342 project/templates/layout.html:104
#: project/templates/layout.html:119
#: project/forms/event.py:342 project/templates/layout.html:115
#: project/templates/layout.html:130
msgid "EventStatus.postponed"
msgstr ""
#: project/forms/event.py:343 project/templates/layout.html:107
#: project/templates/layout.html:122
#: project/forms/event.py:343 project/templates/layout.html:118
#: project/templates/layout.html:133
msgid "EventStatus.rescheduled"
msgstr ""
@ -758,11 +758,11 @@ msgid "Select the status of the event."
msgstr ""
#: project/forms/event.py:348 project/templates/event/update.html:4
#: project/templates/event/update.html:58
#: project/templates/event/update.html:61
msgid "Update event"
msgstr ""
#: project/forms/event.py:362 project/templates/_macros.html:1140
#: project/forms/event.py:362 project/templates/_macros.html:1156
#: project/templates/event/actions.html:47
#: project/templates/event/delete.html:6
msgid "Delete event"
@ -783,7 +783,7 @@ msgid "Keyword"
msgstr ""
#: project/forms/event.py:374 project/forms/event_date.py:19
#: project/forms/planing.py:17 project/templates/_macros.html:362
#: project/forms/planing.py:17 project/templates/_macros.html:377
msgid "Category"
msgstr ""
@ -792,8 +792,8 @@ msgid "Find events"
msgstr ""
#: project/forms/event_date.py:22 project/forms/planing.py:20
#: project/templates/_macros.html:113 project/templates/_macros.html:296
#: project/templates/admin_unit/create.html:27
#: project/templates/_macros.html:128 project/templates/_macros.html:311
#: project/templates/admin_unit/create.html:68
#: project/templates/admin_unit/update.html:28
#: project/templates/event_place/create.html:30
#: project/templates/event_place/update.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:126
#: project/forms/event_suggestion.py:52 project/templates/event/create.html:129
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:100
#: project/forms/event_suggestion.py:62 project/templates/event/create.html:103
msgid ""
"Select the organizer. If the organizer is not yet on the list, just enter"
" it."
@ -860,7 +860,7 @@ msgstr ""
#: project/forms/event_suggestion.py:78
#: project/templates/widget/event_suggestion/create.html:4
#: project/templates/widget/event_suggestion/create.html:123
#: project/templates/widget/event_suggestion/create.html:125
msgid "Create event suggestion"
msgstr ""
@ -926,8 +926,8 @@ msgid "Weekdays"
msgstr ""
#: project/forms/reference.py:11 project/forms/reference_request.py:15
#: project/templates/_macros.html:497 project/templates/_macros.html:657
#: project/templates/admin_unit/create.html:17
#: project/templates/_macros.html:512 project/templates/_macros.html:672
#: project/templates/admin_unit/create.html:58
#: project/templates/admin_unit/update.html:18
msgid "Organization"
msgstr ""
@ -953,7 +953,7 @@ msgstr ""
msgid "Delete request"
msgstr ""
#: project/forms/reference_request.py:27 project/templates/_macros.html:1257
#: project/forms/reference_request.py:27 project/templates/_macros.html:1283
#: project/templates/event_suggestion/review_status.html:18
#: project/templates/reference_request/review_status.html:12
msgid "Review status"
@ -999,206 +999,206 @@ msgstr ""
msgid "Deny"
msgstr ""
#: project/forms/widgets.py:149
#: project/forms/widgets.py:147
msgid "This field is required."
msgstr ""
#: project/templates/_macros.html:110 project/templates/_macros.html:385
#: project/templates/_macros.html:392 project/templates/_macros.html:836
#: project/templates/_macros.html:125 project/templates/_macros.html:400
#: project/templates/_macros.html:407 project/templates/_macros.html:852
msgid "Date"
msgstr ""
#: project/templates/_macros.html:112
#: project/templates/_macros.html:127
msgid "Host"
msgstr ""
#: project/templates/_macros.html:134
#: project/templates/_macros.html:149
msgid "Show all events"
msgstr ""
#: project/templates/_macros.html:150
#: project/templates/_macros.html:165
msgid "Show on Google Maps"
msgstr ""
#: project/templates/_macros.html:229
#: project/templates/_macros.html:244
msgid "Link"
msgstr ""
#: project/templates/_macros.html:339
#: project/templates/_macros.html:354
#, python-format
msgid "Created at %(created_at)s by %(created_by)s."
msgstr ""
#: project/templates/_macros.html:341
#: project/templates/_macros.html:356
#, python-format
msgid "Created at %(created_at)s."
msgstr ""
#: project/templates/_macros.html:346
#: project/templates/_macros.html:361
#, python-format
msgid "Last updated at %(updated_at)s by %(updated_by)s."
msgstr ""
#: project/templates/_macros.html:348
#: project/templates/_macros.html:363
#, python-format
msgid "Last updated at %(updated_at)s."
msgstr ""
#: project/templates/_macros.html:378 project/templates/_macros.html:554
#: project/templates/_macros.html:393 project/templates/_macros.html:569
#: project/templates/event/actions.html:12
#: project/templates/event/create.html:75
#: project/templates/event/create.html:78
#: project/templates/event/delete.html:13
#: project/templates/event/update.html:65
#: project/templates/event/update.html:68
#: project/templates/reference/delete.html:13
#: project/templates/widget/event_suggestion/create.html:195
#: project/templates/widget/event_suggestion/create.html:197
msgid "Event"
msgstr ""
#: project/templates/_macros.html:388 project/templates/_macros.html:540
#: project/templates/_macros.html:403 project/templates/_macros.html:555
#, python-format
msgid "%(count)d event dates"
msgstr ""
#: project/templates/_macros.html:421 project/templates/_macros.html:576
#: project/templates/_macros.html:1320 project/templates/event/actions.html:32
#: project/templates/_macros.html:436 project/templates/_macros.html:591
#: project/templates/_macros.html:1346 project/templates/event/actions.html:32
msgid "Share"
msgstr ""
#: project/templates/_macros.html:425 project/templates/_macros.html:580
#: project/templates/_macros.html:1350
#: project/templates/_macros.html:440 project/templates/_macros.html:595
#: project/templates/_macros.html:1376
msgid "Add to calendar"
msgstr ""
#: project/templates/_macros.html:459 project/templates/_macros.html:613
#: project/templates/_macros.html:474 project/templates/_macros.html:628
msgid "Show directions"
msgstr ""
#: project/templates/_macros.html:464 project/templates/_macros.html:618
#: project/templates/_macros.html:479 project/templates/_macros.html:633
msgid "The event takes place online."
msgstr ""
#: project/templates/_macros.html:466 project/templates/_macros.html:620
#: project/templates/_macros.html:481 project/templates/_macros.html:635
msgid "The event takes place both offline and online."
msgstr ""
#: project/templates/_macros.html:681 project/templates/event_date/list.html:4
#: project/templates/_macros.html:696 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
msgid "Event Dates"
msgstr ""
#: project/templates/_macros.html:753
#: project/templates/_macros.html:769
msgid "Search location on Google"
msgstr ""
#: project/templates/_macros.html:786 project/templates/_macros.html:788
#: project/templates/_macros.html:802 project/templates/_macros.html:804
#: project/templates/event_date/list.html:279
#: project/templates/widget/event_suggestion/create.html:159
#: project/templates/widget/event_suggestion/create.html:184
#: project/templates/widget/event_suggestion/create.html:206
#: project/templates/widget/event_suggestion/create.html:229
#: project/templates/widget/event_suggestion/create.html:262
#: project/templates/widget/event_suggestion/create.html:291
#: project/templates/widget/event_suggestion/create.html:161
#: project/templates/widget/event_suggestion/create.html:186
#: project/templates/widget/event_suggestion/create.html:208
#: project/templates/widget/event_suggestion/create.html:231
#: project/templates/widget/event_suggestion/create.html:264
#: project/templates/widget/event_suggestion/create.html:293
msgid "Previous"
msgstr ""
#: project/templates/_macros.html:790
#: project/templates/_macros.html:806
#, python-format
msgid "Page %(page)d of %(pages)d (%(total)d total)"
msgstr ""
#: project/templates/_macros.html:792 project/templates/_macros.html:794
#: project/templates/_macros.html:808 project/templates/_macros.html:810
#: project/templates/event_date/list.html:281
#: project/templates/widget/event_suggestion/create.html:160
#: project/templates/widget/event_suggestion/create.html:185
#: project/templates/widget/event_suggestion/create.html:207
#: project/templates/widget/event_suggestion/create.html:230
#: project/templates/widget/event_suggestion/create.html:263
#: project/templates/widget/event_suggestion/create.html:162
#: project/templates/widget/event_suggestion/create.html:187
#: project/templates/widget/event_suggestion/create.html:209
#: project/templates/widget/event_suggestion/create.html:232
#: project/templates/widget/event_suggestion/create.html:265
msgid "Next"
msgstr ""
#: project/templates/_macros.html:859
#: project/templates/_macros.html:875
msgid "Radius"
msgstr ""
#: project/templates/_macros.html:1069
#: project/templates/_macros.html:1085
msgid "Edit image"
msgstr ""
#: project/templates/_macros.html:1090
#: project/templates/_macros.html:1106
msgid "Close"
msgstr ""
#: project/templates/_macros.html:1091
#: project/templates/_macros.html:1107
msgid "Okay"
msgstr ""
#: project/templates/_macros.html:1103
#: project/templates/_macros.html:1119
msgid "Choose image file"
msgstr ""
#: project/templates/_macros.html:1139 project/templates/event/actions.html:46
#: project/templates/_macros.html:1155 project/templates/event/actions.html:46
msgid "Edit event"
msgstr ""
#: project/templates/_macros.html:1142 project/templates/manage/events.html:30
#: project/templates/_macros.html:1158 project/templates/manage/events.html:30
msgid "More"
msgstr ""
#: project/templates/_macros.html:1217
#: project/templates/_macros.html:1243
msgid "Event suggestion"
msgstr ""
#: project/templates/_macros.html:1329
#: project/templates/_macros.html:1355
msgid "Link copied"
msgstr ""
#: project/templates/_macros.html:1329
#: project/templates/_macros.html:1355
msgid "Copy link"
msgstr ""
#: project/templates/_macros.html:1358
#: project/templates/_macros.html:1384
msgid "Google calendar"
msgstr ""
#: project/templates/_macros.html:1359
#: project/templates/_macros.html:1385
msgid "Apple calendar"
msgstr ""
#: project/templates/_macros.html:1360
#: project/templates/_macros.html:1386
msgid "Yahoo calendar"
msgstr ""
#: project/templates/_macros.html:1361
#: project/templates/_macros.html:1387
msgid "Other calendar"
msgstr ""
#: project/templates/home.html:27 project/templates/layout.html:192
#: project/templates/home.html:27 project/templates/layout.html:203
msgid "Manage"
msgstr ""
#: project/templates/home.html:29 project/templates/security/login_user.html:23
#: project/views/widget.py:175
#: project/views/widget.py:179
msgid "Register for free"
msgstr ""
#: project/templates/event_place/read.html:22 project/templates/layout.html:195
#: project/templates/event_place/read.html:22 project/templates/layout.html:206
#: project/templates/layout_manage.html:24
#: project/templates/manage/events.html:5
#: project/templates/manage/events.html:9
msgid "Events"
msgstr ""
#: project/templates/layout.html:196
#: project/templates/layout.html:207
msgid "Planing"
msgstr ""
#: project/templates/layout.html:197
#: project/templates/layout.html:208
msgid "Example"
msgstr ""
#: project/templates/layout.html:206
#: project/templates/layout.html:217
#: project/templates/oauth2_client/list.html:10
#: project/templates/oauth2_client/read.html:10
#: project/templates/oauth2_token/list.html:10 project/templates/profile.html:4
@ -1208,15 +1208,15 @@ msgstr ""
#: project/templates/admin/admin.html:3 project/templates/admin/admin.html:9
#: project/templates/admin/admin_units.html:10
#: project/templates/admin/users.html:10 project/templates/layout.html:209
#: project/templates/admin/users.html:10 project/templates/layout.html:220
msgid "Admin"
msgstr ""
#: project/templates/layout.html:213
#: project/templates/layout.html:224
msgid "Logout"
msgstr ""
#: project/templates/developer/read.html:4 project/templates/layout.html:268
#: project/templates/developer/read.html:4 project/templates/layout.html:279
#: project/templates/profile.html:29
msgid "Developer"
msgstr ""
@ -1331,10 +1331,10 @@ msgstr ""
msgid "Edit"
msgstr ""
#: project/templates/admin_unit/create.html:47
#: project/templates/admin_unit/create.html:88
#: project/templates/admin_unit/update.html:48
#: project/templates/event/create.html:178
#: project/templates/event/update.html:143
#: project/templates/event/create.html:181
#: project/templates/event/update.html:146
#: project/templates/event_place/create.html:47
#: project/templates/event_place/update.html:47
#: project/templates/organizer/create.html:46
@ -1439,18 +1439,18 @@ msgstr ""
msgid "List all events of %(admin_unit_name)s"
msgstr ""
#: project/templates/event/create.html:85
#: project/templates/event/update.html:75
#: project/templates/event/create.html:88
#: project/templates/event/update.html:78
msgid "Event date"
msgstr ""
#: project/templates/event/create.html:151
#: project/templates/event/update.html:116
#: project/templates/event/create.html:154
#: project/templates/event/update.html:119
msgid "Access"
msgstr ""
#: project/templates/event/create.html:165
#: project/templates/event/update.html:130
#: project/templates/event/create.html:168
#: project/templates/event/update.html:133
msgid "Target group"
msgstr ""
@ -1642,15 +1642,15 @@ msgstr ""
msgid "Print"
msgstr ""
#: project/templates/widget/event_suggestion/create.html:141
#: project/templates/widget/event_suggestion/create.html:143
msgid "Continue as guest"
msgstr ""
#: project/templates/widget/event_suggestion/create.html:240
#: project/templates/widget/event_suggestion/create.html:242
msgid "Optional details"
msgstr ""
#: project/templates/widget/event_suggestion/create.html:273
#: project/templates/widget/event_suggestion/create.html:275
msgid "Preview"
msgstr ""
@ -1761,6 +1761,10 @@ msgstr ""
msgid "Event review status updated"
msgstr ""
#: project/views/js.py:20
msgid "Short name is already taken"
msgstr ""
#: project/views/oauth2_client.py:37
msgid "OAuth2 client successfully created"
msgstr ""
@ -1850,17 +1854,17 @@ msgstr ""
msgid "You do not have permission for this action"
msgstr ""
#: project/views/widget.py:167
#: project/views/widget.py:171
msgid "Thank you so much! The event is being verified."
msgstr ""
#: project/views/widget.py:171
#: project/views/widget.py:175
msgid ""
"For more options and your own calendar of events, you can register for "
"free."
msgstr ""
#: project/views/widget.py:234
#: project/views/widget.py:238
msgid "New event review"
msgstr ""

View File

@ -10,6 +10,7 @@ from flask_migrate import Migrate
from flask_qrcode import QRcode
from flask_security import Security, SQLAlchemySessionUserDatastore
from flask_sqlalchemy import SQLAlchemy
from flask_wtf.csrf import CSRFProtect
from project.custom_session_interface import CustomSessionInterface
@ -85,6 +86,10 @@ babel = Babel(app)
# cors
cors = CORS(app, resources={r"/.well-known/*", r"/api/*", r"/oauth/*", "/swagger/"})
# CRSF protection
csrf = CSRFProtect(app)
app.config["WTF_CSRF_CHECK_DEFAULT"] = False
# Mail
mail_server = os.getenv("MAIL_SERVER")
@ -168,6 +173,7 @@ from project.views import (
event_place,
event_suggestion,
image,
js,
manage,
oauth,
oauth2_client,

View File

@ -2,10 +2,11 @@ from flask_babelex import lazy_gettext
from flask_wtf import FlaskForm
from wtforms import DecimalField, FormField, StringField, SubmitField
from wtforms.fields.html5 import EmailField, TelField, URLField
from wtforms.validators import DataRequired, Optional, Regexp
from wtforms.validators import DataRequired, Length, Optional, Regexp
from wtforms.widgets.html5 import ColorInput
from project.forms.common import Base64ImageForm
from project.forms.widgets import HTML5StringField
from project.models import Image, Location
@ -23,14 +24,17 @@ class AdminUnitLocationForm(FlaskForm):
class BaseAdminUnitForm(FlaskForm):
name = StringField(lazy_gettext("Name"), validators=[DataRequired()])
short_name = StringField(
name = HTML5StringField(
lazy_gettext("Name"), validators=[DataRequired(), Length(min=5, max=255)]
)
short_name = HTML5StringField(
lazy_gettext("Short name"),
description=lazy_gettext(
"The short name is used to create a unique identifier for your events"
),
validators=[
DataRequired(),
Length(min=5, max=100),
Regexp(
r"^\w+$",
message=lazy_gettext(

View File

@ -752,6 +752,7 @@
$('#{{ prefix }}location-longitude').val(place.geometry.location.lng());
$('#location_search').val('');
$('#location_search').trigger('place_changed');
});
}
google.maps.event.addDomListener(window, 'load', initialize);
@ -765,7 +766,7 @@
<div class="input-group-prepend">
<span class="input-group-text"><span><i class="fab fa-google"></i></span></span>
</div>
<input id="location_search" type="text" class="form-control" placeholder="{{ _('Search location on Google') }}" runat="server" />
<input id="location_search" type="search" class="form-control" placeholder="{{ _('Search location on Google') }}" runat="server" />
</div>
</div>
</div>
@ -1390,3 +1391,53 @@ $('#end-container').on('hidden', function() {
</div>
</div>
{% endmacro %}
{% macro render_admin_unit_form_script(admin_unit_id=None) %}
<script>
$( function() {
jQuery.validator.addMethod("shortName", function(value, element) {
return this.optional(element) || /^\w+$/i.test(value);
}, jQuery.validator.format("{{ _('Short name must contain only letters numbers or underscore') }}"));
var form = $("#main-form");
form.validate({
rules: {
}
});
$("#short_name").rules("add", "shortName");
$("#short_name").rules("add", {
remote: {
url: "{{ url_for('js_check_org_short_name') }}",
type: "post"
{% if admin_unit_id %}
,data: {
admin_unit_id: function() {
return "{{ admin_unit_id }}";
}
}
{% endif %}
}
});
$("#name").blur(function() {
if ($("#short_name").val().length == 0) {
var name = $("#name").val().toLowerCase().replace(/ä/g, 'ae').replace(/ö/g, 'oe').replace(/ü/g, 'ue').replace(/ß/g, 'ss');
var re = /\w/g;
var suggestion = (name.match(re) || []).join('');
$("#short_name").val(suggestion);
$("#short_name").valid();
}
});
$('#location_search').on('place_changed', function() {
$('#location_search').closest('.card-body').find(':input').valid();
$('#location_search').removeClass('is-valid');
});
});
</script>
{% endmacro %}

View File

@ -1,15 +1,17 @@
{% extends "layout.html" %}
{% from "_macros.html" import render_cropper_logo_block, render_crop_image_form_section, render_google_place_autocomplete_header, render_google_place_autocomplete_field, render_field_with_errors, render_field %}
{% from "_macros.html" import render_admin_unit_form_script, render_jquery_steps_header, render_cropper_logo_block, render_crop_image_form_section, render_google_place_autocomplete_header, render_google_place_autocomplete_field, render_field_with_errors, render_field %}
{% block header %}
{{ render_jquery_steps_header() }}
{{ render_google_place_autocomplete_header(True) }}
{{ render_cropper_logo_block() }}
{{ render_admin_unit_form_script() }}
{% endblock %}
{% block content %}
<h1>{{ _('Create organization') }}</h1>
<form action="{{ url_for('admin_unit_create') }}" method="POST" enctype="multipart/form-data">
<form id="main-form" action="{{ url_for('admin_unit_create') }}" method="POST" enctype="multipart/form-data">
{{ form.hidden_tag() }}
<div class="card mb-4">

View File

@ -1,16 +1,18 @@
{% extends "layout_manage.html" %}
{% set active_id = "settings" %}
{% from "_macros.html" import render_cropper_logo_block, render_crop_image_form_section, render_google_place_autocomplete_header, render_google_place_autocomplete_field, render_field_with_errors, render_field %}
{% from "_macros.html" import render_admin_unit_form_script, render_jquery_steps_header, render_cropper_logo_block, render_crop_image_form_section, render_google_place_autocomplete_header, render_google_place_autocomplete_field, render_field_with_errors, render_field %}
{% block header %}
{{ render_jquery_steps_header() }}
{{ render_google_place_autocomplete_header(True) }}
{{ render_cropper_logo_block() }}
{{ render_admin_unit_form_script(admin_unit.id) }}
{% endblock %}
{% block content %}
<h1>{{ _('Settings') }}</h1>
<form action="" method="POST" enctype="multipart/form-data">
<form id="main-form" action="" method="POST" enctype="multipart/form-data">
{{ form.hidden_tag() }}
<div class="card mb-4">

View File

@ -85,6 +85,17 @@
<script src="https://unpkg.com/leaflet.markercluster@1.4.1/dist/leaflet.markercluster.js"></script>
<script src="https://cdn.jsdelivr.net/npm/leaflet.locatecontrol@0.68.0/dist/L.Control.Locate.min.js" charset="utf-8"></script>
<script src="{{ url_for('static', filename='jquery.recurrenceinput.js')}}"></script>
<script type="text/javascript">
var csrf_token = "{{ csrf_token() }}";
$.ajaxSetup({
beforeSend: function(xhr, settings) {
if (!/^(GET|HEAD|OPTIONS|TRACE)$/i.test(settings.type) && !this.crossDomain) {
xhr.setRequestHeader("X-CSRFToken", csrf_token);
}
}
});
</script>
{% block header_before_site_js %}
{%- 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-22 22:41+0200\n"
"POT-Creation-Date: 2021-07-25 22:35+0200\n"
"PO-Revision-Date: 2020-06-07 18:51+0200\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language: de\n"
@ -166,24 +166,24 @@ msgstr "Event_"
msgid "."
msgstr "."
#: project/forms/admin.py:10 project/templates/layout.html:246
#: project/forms/admin.py:10 project/templates/layout.html:257
#: project/views/root.py:42
msgid "Terms of service"
msgstr "Nutzungsbedingungen"
#: project/forms/admin.py:11 project/templates/layout.html:250
#: project/forms/admin.py:11 project/templates/layout.html:261
#: project/views/root.py:50
msgid "Legal notice"
msgstr "Impressum"
#: project/forms/admin.py:12 project/templates/_macros.html:1245
#: project/templates/layout.html:254
#: project/templates/widget/event_suggestion/create.html:170
#: project/forms/admin.py:12 project/templates/_macros.html:1271
#: project/templates/layout.html:265
#: project/templates/widget/event_suggestion/create.html:172
#: project/views/admin_unit.py:36 project/views/root.py:58
msgid "Contact"
msgstr "Kontakt"
#: project/forms/admin.py:13 project/templates/layout.html:258
#: project/forms/admin.py:13 project/templates/layout.html:269
#: project/views/root.py:66
msgid "Privacy"
msgstr "Datenschutz"
@ -219,43 +219,43 @@ msgstr ""
msgid "Update organization"
msgstr "Organisation aktualisieren"
#: project/forms/admin_unit.py:13 project/forms/event.py:33
#: project/forms/admin_unit.py:14 project/forms/event.py:33
#: project/forms/event_place.py:12 project/forms/organizer.py:12
msgid "Street"
msgstr "Straße"
#: project/forms/admin_unit.py:14 project/forms/event.py:34
#: project/forms/admin_unit.py:15 project/forms/event.py:34
#: project/forms/event_place.py:13 project/forms/organizer.py:13
msgid "Postal code"
msgstr "Postleitzahl"
#: project/forms/admin_unit.py:15 project/forms/event.py:35
#: project/forms/admin_unit.py:16 project/forms/event.py:35
#: project/forms/event_place.py:14 project/forms/organizer.py:14
msgid "City"
msgstr "Stadt/Ort"
#: project/forms/admin_unit.py:16 project/forms/event_place.py:15
#: project/forms/admin_unit.py:17 project/forms/event_place.py:15
#: project/forms/organizer.py:15
msgid "State"
msgstr "Bundesland"
#: project/forms/admin_unit.py:18 project/forms/event_place.py:17
#: project/forms/admin_unit.py:19 project/forms/event_place.py:17
#: project/forms/organizer.py:17
msgid "Latitude"
msgstr "Breitengrad"
#: project/forms/admin_unit.py:21 project/forms/event_place.py:20
#: project/forms/admin_unit.py:22 project/forms/event_place.py:20
#: project/forms/organizer.py:20
msgid "Longitude"
msgstr "Längengrad"
#: project/forms/admin_unit.py:26 project/forms/event.py:40
#: project/forms/admin_unit.py:28 project/forms/event.py:40
#: project/forms/event.py:69 project/forms/event.py:363
#: 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:111
#: project/templates/_macros.html:126
#: project/templates/admin/admin_units.html:19
#: project/templates/event_place/list.html:19
#: project/templates/oauth2_client/list.html:25
@ -263,72 +263,72 @@ msgstr "Längengrad"
msgid "Name"
msgstr "Name"
#: project/forms/admin_unit.py:28
#: project/forms/admin_unit.py:31
msgid "Short name"
msgstr "Kurzname"
#: project/forms/admin_unit.py:29
#: project/forms/admin_unit.py:32
msgid "The short name is used to create a unique identifier for your events"
msgstr ""
"Der Kurzname wird verwendet, um die Veranstaltungen der Organisation "
"eindeutig zu identifizieren. Der Kurzname darf nur Buchstaben, Nummern "
"und Unterstriche enthalten."
#: project/forms/admin_unit.py:36
#: project/forms/admin_unit.py:40 project/templates/admin_unit/create.html:13
msgid "Short name must contain only letters numbers or underscore"
msgstr "Der Kurzname darf nur Buchstaben, Nummern und Unterstriche enthalten"
#: project/forms/admin_unit.py:42 project/forms/event.py:61
#: project/forms/admin_unit.py:46 project/forms/event.py:61
#: project/forms/event.py:98 project/forms/event_place.py:26
#: project/forms/organizer.py:26
msgid "Link URL"
msgstr "Link URL"
#: project/forms/admin_unit.py:43 project/forms/admin_unit_member.py:11
#: 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:62 project/forms/event_suggestion.py:38
#: project/forms/organizer.py:27 project/templates/_macros.html:238
#: project/templates/_macros.html:1335 project/templates/admin/users.html:19
#: project/forms/organizer.py:27 project/templates/_macros.html:253
#: project/templates/_macros.html:1361 project/templates/admin/users.html:19
msgid "Email"
msgstr "Email"
#: project/forms/admin_unit.py:44 project/forms/event.py:63
#: project/forms/admin_unit.py:48 project/forms/event.py:63
#: project/forms/event_suggestion.py:31 project/forms/organizer.py:28
#: project/templates/_macros.html:281
#: project/templates/_macros.html:296
msgid "Phone"
msgstr "Telefon"
#: project/forms/admin_unit.py:45 project/forms/event.py:64
#: project/forms/organizer.py:29 project/templates/_macros.html:289
#: project/forms/admin_unit.py:49 project/forms/event.py:64
#: project/forms/organizer.py:29 project/templates/_macros.html:304
msgid "Fax"
msgstr "Fax"
#: project/forms/admin_unit.py:46 project/forms/organizer.py:30
#: project/forms/admin_unit.py:50 project/forms/organizer.py:30
msgid "Logo"
msgstr "Logo"
#: project/forms/admin_unit.py:59 project/templates/admin_unit/create.html:11
#: project/forms/admin_unit.py:63 project/templates/admin_unit/create.html:52
#: project/templates/manage/admin_units.html:18
msgid "Create organization"
msgstr "Organisation erstellen"
#: project/forms/admin_unit.py:63 project/forms/admin_unit.py:86
#: project/forms/admin_unit.py:67 project/forms/admin_unit.py:90
msgid "Update settings"
msgstr "Einstellungen speichern"
#: project/forms/admin_unit.py:67
#: project/forms/admin_unit.py:71
msgid "Font"
msgstr "Schriftart"
#: project/forms/admin_unit.py:69
#: project/forms/admin_unit.py:73
msgid "Background Color"
msgstr "Hintergrundfarbe"
#: project/forms/admin_unit.py:75
#: project/forms/admin_unit.py:79
msgid "Primary Color"
msgstr "Hauptfarbe"
#: project/forms/admin_unit.py:81
#: project/forms/admin_unit.py:85
msgid "Link Color"
msgstr "Linkfarbe"
@ -471,8 +471,8 @@ msgid ""
" If the event takes place regularly, enter when the first date will end."
msgstr ""
"Gib an, wann die Veranstaltung endet. Eine Veranstaltung darf maximal 14 "
"Tage dauern. Wenn die Veranstaltung regelmäßig stattfindet, gib an, wann der"
" erste Termin endet."
"Tage dauern. Wenn die Veranstaltung regelmäßig stattfindet, gib an, wann "
"der erste Termin endet."
#: project/forms/event.py:88
msgid "Recurrence rule"
@ -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:110 project/templates/_macros.html:220
#: project/forms/event.py:110 project/templates/_macros.html:235
msgid "Tags"
msgstr "Stichworte"
@ -559,8 +559,8 @@ 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:144 project/templates/_macros.html:252
#: project/templates/layout.html:144
#: project/forms/event.py:144 project/templates/_macros.html:267
#: project/templates/layout.html:155
msgid "Booked up"
msgstr "Ausgebucht"
@ -620,11 +620,11 @@ msgstr "Teilnahme"
msgid "EventAttendanceMode.offline"
msgstr "Präsenzveranstaltung"
#: project/forms/event.py:191 project/templates/layout.html:132
#: project/forms/event.py:191 project/templates/layout.html:143
msgid "EventAttendanceMode.online"
msgstr "Online"
#: project/forms/event.py:193 project/templates/layout.html:135
#: project/forms/event.py:193 project/templates/layout.html:146
msgid "EventAttendanceMode.mixed"
msgstr "Präsenzveranstaltung und online"
@ -633,7 +633,7 @@ msgid "Choose how people can attend the event."
msgstr "Wähle aus, wie Personen an der Veranstaltung teilnehmen können."
#: project/forms/event.py:199 project/forms/event_place.py:27
#: project/templates/widget/event_suggestion/create.html:217
#: project/templates/widget/event_suggestion/create.html:219
msgid "Photo"
msgstr "Foto"
@ -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:211 project/templates/_macros.html:1172
#: project/forms/event.py:211 project/templates/_macros.html:1184
msgid "The start must be before the end."
msgstr "Der Start muss vor dem Ende sein."
#: project/forms/event.py:217 project/templates/_macros.html:1189
#: project/forms/event.py:217 project/templates/_macros.html:1201
msgid "An event can last a maximum of 14 days."
msgstr "Eine Veranstaltung darf maximal 14 Tage dauern."
#: project/forms/event.py:225 project/templates/_macros.html:399
#: project/templates/_macros.html:558
#: project/forms/event.py:225 project/templates/_macros.html:414
#: project/templates/_macros.html:573
msgid "Previous start date"
msgstr "Vorheriges Startdatum"
@ -674,8 +674,8 @@ msgstr "Wähle Kategorien, die zur Veranstaltung passen."
#: project/forms/event.py:238 project/forms/reference.py:14
#: project/forms/reference.py:27 project/forms/reference_request.py:70
#: project/templates/event/create.html:190
#: project/templates/event/update.html:155
#: project/templates/event/create.html:193
#: project/templates/event/update.html:158
msgid "Rating"
msgstr "Bewertung"
@ -690,9 +690,9 @@ msgstr ""
#: project/forms/event.py:250 project/forms/event.py:259
#: project/forms/event.py:319 project/forms/event_suggestion.py:50
#: project/templates/_macros.html:438 project/templates/_macros.html:594
#: project/templates/event/create.html:121
#: project/templates/event/update.html:105
#: project/templates/_macros.html:453 project/templates/_macros.html:609
#: project/templates/event/create.html:124
#: project/templates/event/update.html:108
#: project/templates/event_place/create.html:21
#: project/templates/event_place/delete.html:13
#: project/templates/event_place/update.html:21
@ -709,9 +709,9 @@ msgstr "Neuen Ort eingeben"
#: project/forms/event.py:266 project/forms/event.py:275
#: project/forms/event.py:327 project/forms/event.py:377
#: project/forms/event_suggestion.py:60 project/templates/_macros.html:476
#: project/templates/_macros.html:631 project/templates/event/create.html:96
#: project/templates/event/update.html:96
#: project/forms/event_suggestion.py:60 project/templates/_macros.html:491
#: project/templates/_macros.html:646 project/templates/event/create.html:99
#: project/templates/event/update.html:99
#: project/templates/organizer/create.html:17
#: project/templates/organizer/delete.html:13
#: project/templates/organizer/update.html:17
@ -727,7 +727,7 @@ msgid "Enter new organizer"
msgstr "Neuen Veranstalter eingeben"
#: project/forms/event.py:281 project/templates/event/create.html:4
#: project/templates/event/create.html:68
#: project/templates/event/create.html:71
#: project/templates/manage/events.html:12
#: project/templates/manage/organizers.html:21
msgid "Create event"
@ -757,7 +757,7 @@ msgstr ""
"Wähle den Veranstalter. Du kannst Veranstalter unter Verwaltung > "
"Veranstalter hinzufügen und ändern."
#: project/forms/event.py:336 project/templates/event/update.html:86
#: project/forms/event.py:336 project/templates/event/update.html:89
#: project/templates/oauth2_token/list.html:21
msgid "Status"
msgstr "Status"
@ -766,23 +766,23 @@ msgstr "Status"
msgid "EventStatus.scheduled"
msgstr "Geplant"
#: project/forms/event.py:340 project/templates/layout.html:98
#: project/templates/layout.html:113
#: project/forms/event.py:340 project/templates/layout.html:109
#: project/templates/layout.html:124
msgid "EventStatus.cancelled"
msgstr "Abgesagt"
#: project/forms/event.py:341 project/templates/layout.html:101
#: project/templates/layout.html:116
#: project/forms/event.py:341 project/templates/layout.html:112
#: project/templates/layout.html:127
msgid "EventStatus.movedOnline"
msgstr "Online verschoben"
#: project/forms/event.py:342 project/templates/layout.html:104
#: project/templates/layout.html:119
#: project/forms/event.py:342 project/templates/layout.html:115
#: project/templates/layout.html:130
msgid "EventStatus.postponed"
msgstr "Verschoben"
#: project/forms/event.py:343 project/templates/layout.html:107
#: project/templates/layout.html:122
#: project/forms/event.py:343 project/templates/layout.html:118
#: project/templates/layout.html:133
msgid "EventStatus.rescheduled"
msgstr "Neu angesetzt"
@ -791,11 +791,11 @@ msgid "Select the status of the event."
msgstr "Wähle den Status der Veranstaltung."
#: project/forms/event.py:348 project/templates/event/update.html:4
#: project/templates/event/update.html:58
#: project/templates/event/update.html:61
msgid "Update event"
msgstr "Veranstaltung aktualisieren"
#: project/forms/event.py:362 project/templates/_macros.html:1140
#: project/forms/event.py:362 project/templates/_macros.html:1156
#: project/templates/event/actions.html:47
#: project/templates/event/delete.html:6
msgid "Delete event"
@ -816,7 +816,7 @@ msgid "Keyword"
msgstr "Stichwort"
#: project/forms/event.py:374 project/forms/event_date.py:19
#: project/forms/planing.py:17 project/templates/_macros.html:362
#: project/forms/planing.py:17 project/templates/_macros.html:377
msgid "Category"
msgstr "Kategorie"
@ -825,8 +825,8 @@ msgid "Find events"
msgstr "Veranstaltungen finden"
#: project/forms/event_date.py:22 project/forms/planing.py:20
#: project/templates/_macros.html:113 project/templates/_macros.html:296
#: project/templates/admin_unit/create.html:27
#: project/templates/_macros.html:128 project/templates/_macros.html:311
#: project/templates/admin_unit/create.html:68
#: project/templates/admin_unit/update.html:28
#: project/templates/event_place/create.html:30
#: project/templates/event_place/update.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:126
#: project/forms/event_suggestion.py:52 project/templates/event/create.html:129
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:100
#: project/forms/event_suggestion.py:62 project/templates/event/create.html:103
msgid ""
"Select the organizer. If the organizer is not yet on the list, just enter"
" it."
@ -897,7 +897,7 @@ msgstr ""
#: project/forms/event_suggestion.py:78
#: project/templates/widget/event_suggestion/create.html:4
#: project/templates/widget/event_suggestion/create.html:123
#: project/templates/widget/event_suggestion/create.html:125
msgid "Create event suggestion"
msgstr "Veranstaltung vorschlagen"
@ -963,8 +963,8 @@ msgid "Weekdays"
msgstr "Wochentage"
#: project/forms/reference.py:11 project/forms/reference_request.py:15
#: project/templates/_macros.html:497 project/templates/_macros.html:657
#: project/templates/admin_unit/create.html:17
#: project/templates/_macros.html:512 project/templates/_macros.html:672
#: project/templates/admin_unit/create.html:58
#: project/templates/admin_unit/update.html:18
msgid "Organization"
msgstr "Organisation"
@ -990,7 +990,7 @@ msgstr "Anfrage speichern"
msgid "Delete request"
msgstr "Anfrage löschen"
#: project/forms/reference_request.py:27 project/templates/_macros.html:1257
#: project/forms/reference_request.py:27 project/templates/_macros.html:1283
#: project/templates/event_suggestion/review_status.html:18
#: project/templates/reference_request/review_status.html:12
msgid "Review status"
@ -1036,208 +1036,208 @@ msgstr "Erlauben"
msgid "Deny"
msgstr "Ablehnen"
#: project/forms/widgets.py:149
#: project/forms/widgets.py:147
msgid "This field is required."
msgstr "Dieses Feld ist erforderlich."
#: project/templates/_macros.html:110 project/templates/_macros.html:385
#: project/templates/_macros.html:392 project/templates/_macros.html:836
#: project/templates/_macros.html:125 project/templates/_macros.html:400
#: project/templates/_macros.html:407 project/templates/_macros.html:852
msgid "Date"
msgstr "Datum"
#: project/templates/_macros.html:112
#: project/templates/_macros.html:127
msgid "Host"
msgstr "Veranstalter"
#: project/templates/_macros.html:134
#: project/templates/_macros.html:149
msgid "Show all events"
msgstr "Alle Veranstaltungen anzeigen"
#: project/templates/_macros.html:150
#: project/templates/_macros.html:165
msgid "Show on Google Maps"
msgstr "Auf Google Maps anzeigen"
#: project/templates/_macros.html:229
#: project/templates/_macros.html:244
msgid "Link"
msgstr "Link"
#: project/templates/_macros.html:339
#: project/templates/_macros.html:354
#, 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:341
#: project/templates/_macros.html:356
#, python-format
msgid "Created at %(created_at)s."
msgstr "Erstellt am %(created_at)s."
#: project/templates/_macros.html:346
#: project/templates/_macros.html:361
#, 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:348
#: project/templates/_macros.html:363
#, python-format
msgid "Last updated at %(updated_at)s."
msgstr "Zuletzt aktualisiert am %(updated_at)s."
#: project/templates/_macros.html:378 project/templates/_macros.html:554
#: project/templates/_macros.html:393 project/templates/_macros.html:569
#: project/templates/event/actions.html:12
#: project/templates/event/create.html:75
#: project/templates/event/create.html:78
#: project/templates/event/delete.html:13
#: project/templates/event/update.html:65
#: project/templates/event/update.html:68
#: project/templates/reference/delete.html:13
#: project/templates/widget/event_suggestion/create.html:195
#: project/templates/widget/event_suggestion/create.html:197
msgid "Event"
msgstr "Veranstaltung"
#: project/templates/_macros.html:388 project/templates/_macros.html:540
#: project/templates/_macros.html:403 project/templates/_macros.html:555
#, python-format
msgid "%(count)d event dates"
msgstr "%(count)d Termine"
#: project/templates/_macros.html:421 project/templates/_macros.html:576
#: project/templates/_macros.html:1320 project/templates/event/actions.html:32
#: project/templates/_macros.html:436 project/templates/_macros.html:591
#: project/templates/_macros.html:1346 project/templates/event/actions.html:32
msgid "Share"
msgstr "Teilen"
#: project/templates/_macros.html:425 project/templates/_macros.html:580
#: project/templates/_macros.html:1350
#: project/templates/_macros.html:440 project/templates/_macros.html:595
#: project/templates/_macros.html:1376
msgid "Add to calendar"
msgstr "Zum Kalender"
#: project/templates/_macros.html:459 project/templates/_macros.html:613
#: project/templates/_macros.html:474 project/templates/_macros.html:628
msgid "Show directions"
msgstr "Anreise planen"
#: project/templates/_macros.html:464 project/templates/_macros.html:618
#: project/templates/_macros.html:479 project/templates/_macros.html:633
msgid "The event takes place online."
msgstr "Die Veranstaltung findet online statt."
#: project/templates/_macros.html:466 project/templates/_macros.html:620
#: project/templates/_macros.html:481 project/templates/_macros.html:635
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:681 project/templates/event_date/list.html:4
#: project/templates/_macros.html:696 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
msgid "Event Dates"
msgstr "Termine"
#: project/templates/_macros.html:753
#: project/templates/_macros.html:769
msgid "Search location on Google"
msgstr "Ort bei Google suchen"
#: project/templates/_macros.html:786 project/templates/_macros.html:788
#: project/templates/_macros.html:802 project/templates/_macros.html:804
#: project/templates/event_date/list.html:279
#: project/templates/widget/event_suggestion/create.html:159
#: project/templates/widget/event_suggestion/create.html:184
#: project/templates/widget/event_suggestion/create.html:206
#: project/templates/widget/event_suggestion/create.html:229
#: project/templates/widget/event_suggestion/create.html:262
#: project/templates/widget/event_suggestion/create.html:291
#: project/templates/widget/event_suggestion/create.html:161
#: project/templates/widget/event_suggestion/create.html:186
#: project/templates/widget/event_suggestion/create.html:208
#: project/templates/widget/event_suggestion/create.html:231
#: project/templates/widget/event_suggestion/create.html:264
#: project/templates/widget/event_suggestion/create.html:293
msgid "Previous"
msgstr "Zurück"
#: project/templates/_macros.html:790
#: project/templates/_macros.html:806
#, 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:792 project/templates/_macros.html:794
#: project/templates/_macros.html:808 project/templates/_macros.html:810
#: project/templates/event_date/list.html:281
#: project/templates/widget/event_suggestion/create.html:160
#: project/templates/widget/event_suggestion/create.html:185
#: project/templates/widget/event_suggestion/create.html:207
#: project/templates/widget/event_suggestion/create.html:230
#: project/templates/widget/event_suggestion/create.html:263
#: project/templates/widget/event_suggestion/create.html:162
#: project/templates/widget/event_suggestion/create.html:187
#: project/templates/widget/event_suggestion/create.html:209
#: project/templates/widget/event_suggestion/create.html:232
#: project/templates/widget/event_suggestion/create.html:265
msgid "Next"
msgstr "Weiter"
#: project/templates/_macros.html:859
#: project/templates/_macros.html:875
msgid "Radius"
msgstr "Umkreis"
#: project/templates/_macros.html:1069
#: project/templates/_macros.html:1085
msgid "Edit image"
msgstr "Bild bearbeiten"
#: project/templates/_macros.html:1090
#: project/templates/_macros.html:1106
msgid "Close"
msgstr "Schließen"
#: project/templates/_macros.html:1091
#: project/templates/_macros.html:1107
msgid "Okay"
msgstr "OK"
#: project/templates/_macros.html:1103
#: project/templates/_macros.html:1119
msgid "Choose image file"
msgstr "Bild-Datei auswählen"
#: project/templates/_macros.html:1139 project/templates/event/actions.html:46
#: project/templates/_macros.html:1155 project/templates/event/actions.html:46
msgid "Edit event"
msgstr "Veranstaltung bearbeiten"
#: project/templates/_macros.html:1142 project/templates/manage/events.html:30
#: project/templates/_macros.html:1158 project/templates/manage/events.html:30
msgid "More"
msgstr "Mehr"
#: project/templates/_macros.html:1217
#: project/templates/_macros.html:1243
msgid "Event suggestion"
msgstr "Veranstaltungsvorschlag"
#: project/templates/_macros.html:1329
#: project/templates/_macros.html:1355
msgid "Link copied"
msgstr "Link kopiert"
#: project/templates/_macros.html:1329
#: project/templates/_macros.html:1355
msgid "Copy link"
msgstr "Link kopieren"
#: project/templates/_macros.html:1358
#: project/templates/_macros.html:1384
msgid "Google calendar"
msgstr "Google Kalender"
#: project/templates/_macros.html:1359
#: project/templates/_macros.html:1385
msgid "Apple calendar"
msgstr "Apple Kalender"
#: project/templates/_macros.html:1360
#: project/templates/_macros.html:1386
msgid "Yahoo calendar"
msgstr "Yahoo Kalender"
#: project/templates/_macros.html:1361
#: project/templates/_macros.html:1387
msgid "Other calendar"
msgstr "Anderer Kalender"
#: project/templates/home.html:27 project/templates/layout.html:192
#: project/templates/home.html:27 project/templates/layout.html:203
msgid "Manage"
msgstr "Verwaltung"
#: project/templates/home.html:29 project/templates/security/login_user.html:23
#: project/views/widget.py:175
#: project/views/widget.py:179
msgid "Register for free"
msgstr "Kostenlos registrieren"
#: project/templates/event_place/read.html:22 project/templates/layout.html:195
#: project/templates/event_place/read.html:22 project/templates/layout.html:206
#: project/templates/layout_manage.html:24
#: project/templates/manage/events.html:5
#: project/templates/manage/events.html:9
msgid "Events"
msgstr "Veranstaltungen"
#: project/templates/layout.html:196
#: project/templates/layout.html:207
msgid "Planing"
msgstr "Planung"
#: project/templates/layout.html:197
#: project/templates/layout.html:208
msgid "Example"
msgstr "Beispiel"
#: project/templates/layout.html:206
#: project/templates/layout.html:217
#: project/templates/oauth2_client/list.html:10
#: project/templates/oauth2_client/read.html:10
#: project/templates/oauth2_token/list.html:10 project/templates/profile.html:4
@ -1247,15 +1247,15 @@ msgstr "Profil"
#: project/templates/admin/admin.html:3 project/templates/admin/admin.html:9
#: project/templates/admin/admin_units.html:10
#: project/templates/admin/users.html:10 project/templates/layout.html:209
#: project/templates/admin/users.html:10 project/templates/layout.html:220
msgid "Admin"
msgstr "Administration"
#: project/templates/layout.html:213
#: project/templates/layout.html:224
msgid "Logout"
msgstr "Ausloggen"
#: project/templates/developer/read.html:4 project/templates/layout.html:268
#: project/templates/developer/read.html:4 project/templates/layout.html:279
#: project/templates/profile.html:29
msgid "Developer"
msgstr "Entwickler"
@ -1370,10 +1370,10 @@ msgstr "Benutzer"
msgid "Edit"
msgstr "Bearbeiten"
#: project/templates/admin_unit/create.html:47
#: project/templates/admin_unit/create.html:88
#: project/templates/admin_unit/update.html:48
#: project/templates/event/create.html:178
#: project/templates/event/update.html:143
#: project/templates/event/create.html:181
#: project/templates/event/update.html:146
#: project/templates/event_place/create.html:47
#: project/templates/event_place/update.html:47
#: project/templates/organizer/create.html:46
@ -1480,18 +1480,18 @@ msgstr "Erstelle eine weitere Veranstaltung für %(admin_unit_name)s"
msgid "List all events of %(admin_unit_name)s"
msgstr "Zeige alle Veranstaltungen von %(admin_unit_name)s"
#: project/templates/event/create.html:85
#: project/templates/event/update.html:75
#: project/templates/event/create.html:88
#: project/templates/event/update.html:78
msgid "Event date"
msgstr "Termin"
#: project/templates/event/create.html:151
#: project/templates/event/update.html:116
#: project/templates/event/create.html:154
#: project/templates/event/update.html:119
msgid "Access"
msgstr "Zugang"
#: project/templates/event/create.html:165
#: project/templates/event/update.html:130
#: project/templates/event/create.html:168
#: project/templates/event/update.html:133
msgid "Target group"
msgstr "Zielgruppe"
@ -1683,15 +1683,15 @@ msgstr "Widget"
msgid "Print"
msgstr "Drucken"
#: project/templates/widget/event_suggestion/create.html:141
#: project/templates/widget/event_suggestion/create.html:143
msgid "Continue as guest"
msgstr "Weiter als Gast"
#: project/templates/widget/event_suggestion/create.html:240
#: project/templates/widget/event_suggestion/create.html:242
msgid "Optional details"
msgstr "Optionale Details"
#: project/templates/widget/event_suggestion/create.html:273
#: project/templates/widget/event_suggestion/create.html:275
msgid "Preview"
msgstr "Vorschau"
@ -1805,6 +1805,10 @@ msgstr "Veranstaltungsvorschlag erfolgreich abgelehnt"
msgid "Event review status updated"
msgstr "Prüfungsstatus aktualisiert"
#: project/views/js.py:20
msgid "Short name is already taken"
msgstr "Der Kurzname ist bereits vergeben"
#: project/views/oauth2_client.py:37
msgid "OAuth2 client successfully created"
msgstr "OAuth2 Client erfolgreich erstellt"
@ -1898,11 +1902,11 @@ msgstr "Anzeigen"
msgid "You do not have permission for this action"
msgstr "Du hast keine Berechtigung für diese Aktion"
#: project/views/widget.py:167
#: project/views/widget.py:171
msgid "Thank you so much! The event is being verified."
msgstr "Vielen Dank! Die Veranstaltung wird geprüft."
#: project/views/widget.py:171
#: project/views/widget.py:175
msgid ""
"For more options and your own calendar of events, you can register for "
"free."
@ -1910,7 +1914,7 @@ msgstr ""
"Für mehr Optionen und einen eigenen Veranstaltungskalender, kannst du "
"dich kostenlos registrieren."
#: project/views/widget.py:234
#: project/views/widget.py:238
msgid "New event review"
msgstr "Neue Veranstaltung zu prüfen"

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-22 22:41+0200\n"
"POT-Creation-Date: 2021-07-25 22:35+0200\n"
"PO-Revision-Date: 2021-04-30 15:04+0200\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language: en\n"
@ -166,24 +166,24 @@ msgstr ""
msgid "."
msgstr ""
#: project/forms/admin.py:10 project/templates/layout.html:246
#: project/forms/admin.py:10 project/templates/layout.html:257
#: project/views/root.py:42
msgid "Terms of service"
msgstr ""
#: project/forms/admin.py:11 project/templates/layout.html:250
#: project/forms/admin.py:11 project/templates/layout.html:261
#: project/views/root.py:50
msgid "Legal notice"
msgstr ""
#: project/forms/admin.py:12 project/templates/_macros.html:1245
#: project/templates/layout.html:254
#: project/templates/widget/event_suggestion/create.html:170
#: project/forms/admin.py:12 project/templates/_macros.html:1271
#: project/templates/layout.html:265
#: project/templates/widget/event_suggestion/create.html:172
#: project/views/admin_unit.py:36 project/views/root.py:58
msgid "Contact"
msgstr ""
#: project/forms/admin.py:13 project/templates/layout.html:258
#: project/forms/admin.py:13 project/templates/layout.html:269
#: project/views/root.py:66
msgid "Privacy"
msgstr ""
@ -217,43 +217,43 @@ msgstr ""
msgid "Update organization"
msgstr ""
#: project/forms/admin_unit.py:13 project/forms/event.py:33
#: project/forms/admin_unit.py:14 project/forms/event.py:33
#: project/forms/event_place.py:12 project/forms/organizer.py:12
msgid "Street"
msgstr ""
#: project/forms/admin_unit.py:14 project/forms/event.py:34
#: project/forms/admin_unit.py:15 project/forms/event.py:34
#: project/forms/event_place.py:13 project/forms/organizer.py:13
msgid "Postal code"
msgstr ""
#: project/forms/admin_unit.py:15 project/forms/event.py:35
#: project/forms/admin_unit.py:16 project/forms/event.py:35
#: project/forms/event_place.py:14 project/forms/organizer.py:14
msgid "City"
msgstr ""
#: project/forms/admin_unit.py:16 project/forms/event_place.py:15
#: project/forms/admin_unit.py:17 project/forms/event_place.py:15
#: project/forms/organizer.py:15
msgid "State"
msgstr ""
#: project/forms/admin_unit.py:18 project/forms/event_place.py:17
#: project/forms/admin_unit.py:19 project/forms/event_place.py:17
#: project/forms/organizer.py:17
msgid "Latitude"
msgstr ""
#: project/forms/admin_unit.py:21 project/forms/event_place.py:20
#: project/forms/admin_unit.py:22 project/forms/event_place.py:20
#: project/forms/organizer.py:20
msgid "Longitude"
msgstr ""
#: project/forms/admin_unit.py:26 project/forms/event.py:40
#: project/forms/admin_unit.py:28 project/forms/event.py:40
#: project/forms/event.py:69 project/forms/event.py:363
#: 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:111
#: project/templates/_macros.html:126
#: project/templates/admin/admin_units.html:19
#: project/templates/event_place/list.html:19
#: project/templates/oauth2_client/list.html:25
@ -261,69 +261,69 @@ msgstr ""
msgid "Name"
msgstr ""
#: project/forms/admin_unit.py:28
#: project/forms/admin_unit.py:31
msgid "Short name"
msgstr ""
#: project/forms/admin_unit.py:29
#: project/forms/admin_unit.py:32
msgid "The short name is used to create a unique identifier for your events"
msgstr ""
#: project/forms/admin_unit.py:36
#: project/forms/admin_unit.py:40 project/templates/admin_unit/create.html:13
msgid "Short name must contain only letters numbers or underscore"
msgstr ""
#: project/forms/admin_unit.py:42 project/forms/event.py:61
#: project/forms/admin_unit.py:46 project/forms/event.py:61
#: project/forms/event.py:98 project/forms/event_place.py:26
#: project/forms/organizer.py:26
msgid "Link URL"
msgstr ""
#: project/forms/admin_unit.py:43 project/forms/admin_unit_member.py:11
#: 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:62 project/forms/event_suggestion.py:38
#: project/forms/organizer.py:27 project/templates/_macros.html:238
#: project/templates/_macros.html:1335 project/templates/admin/users.html:19
#: project/forms/organizer.py:27 project/templates/_macros.html:253
#: project/templates/_macros.html:1361 project/templates/admin/users.html:19
msgid "Email"
msgstr ""
#: project/forms/admin_unit.py:44 project/forms/event.py:63
#: project/forms/admin_unit.py:48 project/forms/event.py:63
#: project/forms/event_suggestion.py:31 project/forms/organizer.py:28
#: project/templates/_macros.html:281
#: project/templates/_macros.html:296
msgid "Phone"
msgstr ""
#: project/forms/admin_unit.py:45 project/forms/event.py:64
#: project/forms/organizer.py:29 project/templates/_macros.html:289
#: project/forms/admin_unit.py:49 project/forms/event.py:64
#: project/forms/organizer.py:29 project/templates/_macros.html:304
msgid "Fax"
msgstr ""
#: project/forms/admin_unit.py:46 project/forms/organizer.py:30
#: project/forms/admin_unit.py:50 project/forms/organizer.py:30
msgid "Logo"
msgstr ""
#: project/forms/admin_unit.py:59 project/templates/admin_unit/create.html:11
#: project/forms/admin_unit.py:63 project/templates/admin_unit/create.html:52
#: project/templates/manage/admin_units.html:18
msgid "Create organization"
msgstr ""
#: project/forms/admin_unit.py:63 project/forms/admin_unit.py:86
#: project/forms/admin_unit.py:67 project/forms/admin_unit.py:90
msgid "Update settings"
msgstr ""
#: project/forms/admin_unit.py:67
#: project/forms/admin_unit.py:71
msgid "Font"
msgstr ""
#: project/forms/admin_unit.py:69
#: project/forms/admin_unit.py:73
msgid "Background Color"
msgstr ""
#: project/forms/admin_unit.py:75
#: project/forms/admin_unit.py:79
msgid "Primary Color"
msgstr ""
#: project/forms/admin_unit.py:81
#: project/forms/admin_unit.py:85
msgid "Link Color"
msgstr ""
@ -491,7 +491,7 @@ msgstr ""
msgid "Enter a link where tickets can be purchased."
msgstr ""
#: project/forms/event.py:110 project/templates/_macros.html:220
#: project/forms/event.py:110 project/templates/_macros.html:235
msgid "Tags"
msgstr ""
@ -541,8 +541,8 @@ msgstr ""
msgid "If the participants needs to register for the event."
msgstr ""
#: project/forms/event.py:144 project/templates/_macros.html:252
#: project/templates/layout.html:144
#: project/forms/event.py:144 project/templates/_macros.html:267
#: project/templates/layout.html:155
msgid "Booked up"
msgstr ""
@ -598,11 +598,11 @@ msgstr ""
msgid "EventAttendanceMode.offline"
msgstr "Normal (Offline)"
#: project/forms/event.py:191 project/templates/layout.html:132
#: project/forms/event.py:191 project/templates/layout.html:143
msgid "EventAttendanceMode.online"
msgstr "Online"
#: project/forms/event.py:193 project/templates/layout.html:135
#: project/forms/event.py:193 project/templates/layout.html:146
msgid "EventAttendanceMode.mixed"
msgstr "Online and offline"
@ -611,7 +611,7 @@ msgid "Choose how people can attend the event."
msgstr ""
#: project/forms/event.py:199 project/forms/event_place.py:27
#: project/templates/widget/event_suggestion/create.html:217
#: project/templates/widget/event_suggestion/create.html:219
msgid "Photo"
msgstr ""
@ -621,16 +621,16 @@ msgid ""
" course it works without it."
msgstr ""
#: project/forms/event.py:211 project/templates/_macros.html:1172
#: project/forms/event.py:211 project/templates/_macros.html:1184
msgid "The start must be before the end."
msgstr ""
#: project/forms/event.py:217 project/templates/_macros.html:1189
#: project/forms/event.py:217 project/templates/_macros.html:1201
msgid "An event can last a maximum of 14 days."
msgstr ""
#: project/forms/event.py:225 project/templates/_macros.html:399
#: project/templates/_macros.html:558
#: project/forms/event.py:225 project/templates/_macros.html:414
#: project/templates/_macros.html:573
msgid "Previous start date"
msgstr ""
@ -648,8 +648,8 @@ msgstr ""
#: project/forms/event.py:238 project/forms/reference.py:14
#: project/forms/reference.py:27 project/forms/reference_request.py:70
#: project/templates/event/create.html:190
#: project/templates/event/update.html:155
#: project/templates/event/create.html:193
#: project/templates/event/update.html:158
msgid "Rating"
msgstr ""
@ -662,9 +662,9 @@ msgstr ""
#: project/forms/event.py:250 project/forms/event.py:259
#: project/forms/event.py:319 project/forms/event_suggestion.py:50
#: project/templates/_macros.html:438 project/templates/_macros.html:594
#: project/templates/event/create.html:121
#: project/templates/event/update.html:105
#: project/templates/_macros.html:453 project/templates/_macros.html:609
#: project/templates/event/create.html:124
#: project/templates/event/update.html:108
#: project/templates/event_place/create.html:21
#: project/templates/event_place/delete.html:13
#: project/templates/event_place/update.html:21
@ -681,9 +681,9 @@ msgstr ""
#: project/forms/event.py:266 project/forms/event.py:275
#: project/forms/event.py:327 project/forms/event.py:377
#: project/forms/event_suggestion.py:60 project/templates/_macros.html:476
#: project/templates/_macros.html:631 project/templates/event/create.html:96
#: project/templates/event/update.html:96
#: project/forms/event_suggestion.py:60 project/templates/_macros.html:491
#: project/templates/_macros.html:646 project/templates/event/create.html:99
#: project/templates/event/update.html:99
#: project/templates/organizer/create.html:17
#: project/templates/organizer/delete.html:13
#: project/templates/organizer/update.html:17
@ -699,7 +699,7 @@ msgid "Enter new organizer"
msgstr ""
#: project/forms/event.py:281 project/templates/event/create.html:4
#: project/templates/event/create.html:68
#: project/templates/event/create.html:71
#: project/templates/manage/events.html:12
#: project/templates/manage/organizers.html:21
msgid "Create event"
@ -725,7 +725,7 @@ msgid ""
"Organizers."
msgstr ""
#: project/forms/event.py:336 project/templates/event/update.html:86
#: project/forms/event.py:336 project/templates/event/update.html:89
#: project/templates/oauth2_token/list.html:21
msgid "Status"
msgstr ""
@ -734,23 +734,23 @@ msgstr ""
msgid "EventStatus.scheduled"
msgstr "Scheduled"
#: project/forms/event.py:340 project/templates/layout.html:98
#: project/templates/layout.html:113
#: project/forms/event.py:340 project/templates/layout.html:109
#: project/templates/layout.html:124
msgid "EventStatus.cancelled"
msgstr "Cancelled"
#: project/forms/event.py:341 project/templates/layout.html:101
#: project/templates/layout.html:116
#: project/forms/event.py:341 project/templates/layout.html:112
#: project/templates/layout.html:127
msgid "EventStatus.movedOnline"
msgstr "Moved online"
#: project/forms/event.py:342 project/templates/layout.html:104
#: project/templates/layout.html:119
#: project/forms/event.py:342 project/templates/layout.html:115
#: project/templates/layout.html:130
msgid "EventStatus.postponed"
msgstr "Postponed"
#: project/forms/event.py:343 project/templates/layout.html:107
#: project/templates/layout.html:122
#: project/forms/event.py:343 project/templates/layout.html:118
#: project/templates/layout.html:133
msgid "EventStatus.rescheduled"
msgstr "Rescheduled"
@ -759,11 +759,11 @@ msgid "Select the status of the event."
msgstr ""
#: project/forms/event.py:348 project/templates/event/update.html:4
#: project/templates/event/update.html:58
#: project/templates/event/update.html:61
msgid "Update event"
msgstr ""
#: project/forms/event.py:362 project/templates/_macros.html:1140
#: project/forms/event.py:362 project/templates/_macros.html:1156
#: project/templates/event/actions.html:47
#: project/templates/event/delete.html:6
msgid "Delete event"
@ -784,7 +784,7 @@ msgid "Keyword"
msgstr ""
#: project/forms/event.py:374 project/forms/event_date.py:19
#: project/forms/planing.py:17 project/templates/_macros.html:362
#: project/forms/planing.py:17 project/templates/_macros.html:377
msgid "Category"
msgstr ""
@ -793,8 +793,8 @@ msgid "Find events"
msgstr ""
#: project/forms/event_date.py:22 project/forms/planing.py:20
#: project/templates/_macros.html:113 project/templates/_macros.html:296
#: project/templates/admin_unit/create.html:27
#: project/templates/_macros.html:128 project/templates/_macros.html:311
#: project/templates/admin_unit/create.html:68
#: project/templates/admin_unit/update.html:28
#: project/templates/event_place/create.html:30
#: project/templates/event_place/update.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:126
#: project/forms/event_suggestion.py:52 project/templates/event/create.html:129
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:100
#: project/forms/event_suggestion.py:62 project/templates/event/create.html:103
msgid ""
"Select the organizer. If the organizer is not yet on the list, just enter"
" it."
@ -861,7 +861,7 @@ msgstr ""
#: project/forms/event_suggestion.py:78
#: project/templates/widget/event_suggestion/create.html:4
#: project/templates/widget/event_suggestion/create.html:123
#: project/templates/widget/event_suggestion/create.html:125
msgid "Create event suggestion"
msgstr ""
@ -927,8 +927,8 @@ msgid "Weekdays"
msgstr ""
#: project/forms/reference.py:11 project/forms/reference_request.py:15
#: project/templates/_macros.html:497 project/templates/_macros.html:657
#: project/templates/admin_unit/create.html:17
#: project/templates/_macros.html:512 project/templates/_macros.html:672
#: project/templates/admin_unit/create.html:58
#: project/templates/admin_unit/update.html:18
msgid "Organization"
msgstr ""
@ -954,7 +954,7 @@ msgstr ""
msgid "Delete request"
msgstr ""
#: project/forms/reference_request.py:27 project/templates/_macros.html:1257
#: project/forms/reference_request.py:27 project/templates/_macros.html:1283
#: project/templates/event_suggestion/review_status.html:18
#: project/templates/reference_request/review_status.html:12
msgid "Review status"
@ -1000,206 +1000,206 @@ msgstr ""
msgid "Deny"
msgstr ""
#: project/forms/widgets.py:149
#: project/forms/widgets.py:147
msgid "This field is required."
msgstr ""
#: project/templates/_macros.html:110 project/templates/_macros.html:385
#: project/templates/_macros.html:392 project/templates/_macros.html:836
#: project/templates/_macros.html:125 project/templates/_macros.html:400
#: project/templates/_macros.html:407 project/templates/_macros.html:852
msgid "Date"
msgstr ""
#: project/templates/_macros.html:112
#: project/templates/_macros.html:127
msgid "Host"
msgstr ""
#: project/templates/_macros.html:134
#: project/templates/_macros.html:149
msgid "Show all events"
msgstr ""
#: project/templates/_macros.html:150
#: project/templates/_macros.html:165
msgid "Show on Google Maps"
msgstr ""
#: project/templates/_macros.html:229
#: project/templates/_macros.html:244
msgid "Link"
msgstr ""
#: project/templates/_macros.html:339
#: project/templates/_macros.html:354
#, python-format
msgid "Created at %(created_at)s by %(created_by)s."
msgstr ""
#: project/templates/_macros.html:341
#: project/templates/_macros.html:356
#, python-format
msgid "Created at %(created_at)s."
msgstr ""
#: project/templates/_macros.html:346
#: project/templates/_macros.html:361
#, python-format
msgid "Last updated at %(updated_at)s by %(updated_by)s."
msgstr ""
#: project/templates/_macros.html:348
#: project/templates/_macros.html:363
#, python-format
msgid "Last updated at %(updated_at)s."
msgstr ""
#: project/templates/_macros.html:378 project/templates/_macros.html:554
#: project/templates/_macros.html:393 project/templates/_macros.html:569
#: project/templates/event/actions.html:12
#: project/templates/event/create.html:75
#: project/templates/event/create.html:78
#: project/templates/event/delete.html:13
#: project/templates/event/update.html:65
#: project/templates/event/update.html:68
#: project/templates/reference/delete.html:13
#: project/templates/widget/event_suggestion/create.html:195
#: project/templates/widget/event_suggestion/create.html:197
msgid "Event"
msgstr ""
#: project/templates/_macros.html:388 project/templates/_macros.html:540
#: project/templates/_macros.html:403 project/templates/_macros.html:555
#, python-format
msgid "%(count)d event dates"
msgstr ""
#: project/templates/_macros.html:421 project/templates/_macros.html:576
#: project/templates/_macros.html:1320 project/templates/event/actions.html:32
#: project/templates/_macros.html:436 project/templates/_macros.html:591
#: project/templates/_macros.html:1346 project/templates/event/actions.html:32
msgid "Share"
msgstr ""
#: project/templates/_macros.html:425 project/templates/_macros.html:580
#: project/templates/_macros.html:1350
#: project/templates/_macros.html:440 project/templates/_macros.html:595
#: project/templates/_macros.html:1376
msgid "Add to calendar"
msgstr ""
#: project/templates/_macros.html:459 project/templates/_macros.html:613
#: project/templates/_macros.html:474 project/templates/_macros.html:628
msgid "Show directions"
msgstr ""
#: project/templates/_macros.html:464 project/templates/_macros.html:618
#: project/templates/_macros.html:479 project/templates/_macros.html:633
msgid "The event takes place online."
msgstr ""
#: project/templates/_macros.html:466 project/templates/_macros.html:620
#: project/templates/_macros.html:481 project/templates/_macros.html:635
msgid "The event takes place both offline and online."
msgstr ""
#: project/templates/_macros.html:681 project/templates/event_date/list.html:4
#: project/templates/_macros.html:696 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
msgid "Event Dates"
msgstr ""
#: project/templates/_macros.html:753
#: project/templates/_macros.html:769
msgid "Search location on Google"
msgstr ""
#: project/templates/_macros.html:786 project/templates/_macros.html:788
#: project/templates/_macros.html:802 project/templates/_macros.html:804
#: project/templates/event_date/list.html:279
#: project/templates/widget/event_suggestion/create.html:159
#: project/templates/widget/event_suggestion/create.html:184
#: project/templates/widget/event_suggestion/create.html:206
#: project/templates/widget/event_suggestion/create.html:229
#: project/templates/widget/event_suggestion/create.html:262
#: project/templates/widget/event_suggestion/create.html:291
#: project/templates/widget/event_suggestion/create.html:161
#: project/templates/widget/event_suggestion/create.html:186
#: project/templates/widget/event_suggestion/create.html:208
#: project/templates/widget/event_suggestion/create.html:231
#: project/templates/widget/event_suggestion/create.html:264
#: project/templates/widget/event_suggestion/create.html:293
msgid "Previous"
msgstr ""
#: project/templates/_macros.html:790
#: project/templates/_macros.html:806
#, python-format
msgid "Page %(page)d of %(pages)d (%(total)d total)"
msgstr ""
#: project/templates/_macros.html:792 project/templates/_macros.html:794
#: project/templates/_macros.html:808 project/templates/_macros.html:810
#: project/templates/event_date/list.html:281
#: project/templates/widget/event_suggestion/create.html:160
#: project/templates/widget/event_suggestion/create.html:185
#: project/templates/widget/event_suggestion/create.html:207
#: project/templates/widget/event_suggestion/create.html:230
#: project/templates/widget/event_suggestion/create.html:263
#: project/templates/widget/event_suggestion/create.html:162
#: project/templates/widget/event_suggestion/create.html:187
#: project/templates/widget/event_suggestion/create.html:209
#: project/templates/widget/event_suggestion/create.html:232
#: project/templates/widget/event_suggestion/create.html:265
msgid "Next"
msgstr ""
#: project/templates/_macros.html:859
#: project/templates/_macros.html:875
msgid "Radius"
msgstr ""
#: project/templates/_macros.html:1069
#: project/templates/_macros.html:1085
msgid "Edit image"
msgstr ""
#: project/templates/_macros.html:1090
#: project/templates/_macros.html:1106
msgid "Close"
msgstr ""
#: project/templates/_macros.html:1091
#: project/templates/_macros.html:1107
msgid "Okay"
msgstr ""
#: project/templates/_macros.html:1103
#: project/templates/_macros.html:1119
msgid "Choose image file"
msgstr ""
#: project/templates/_macros.html:1139 project/templates/event/actions.html:46
#: project/templates/_macros.html:1155 project/templates/event/actions.html:46
msgid "Edit event"
msgstr ""
#: project/templates/_macros.html:1142 project/templates/manage/events.html:30
#: project/templates/_macros.html:1158 project/templates/manage/events.html:30
msgid "More"
msgstr ""
#: project/templates/_macros.html:1217
#: project/templates/_macros.html:1243
msgid "Event suggestion"
msgstr ""
#: project/templates/_macros.html:1329
#: project/templates/_macros.html:1355
msgid "Link copied"
msgstr ""
#: project/templates/_macros.html:1329
#: project/templates/_macros.html:1355
msgid "Copy link"
msgstr ""
#: project/templates/_macros.html:1358
#: project/templates/_macros.html:1384
msgid "Google calendar"
msgstr ""
#: project/templates/_macros.html:1359
#: project/templates/_macros.html:1385
msgid "Apple calendar"
msgstr ""
#: project/templates/_macros.html:1360
#: project/templates/_macros.html:1386
msgid "Yahoo calendar"
msgstr ""
#: project/templates/_macros.html:1361
#: project/templates/_macros.html:1387
msgid "Other calendar"
msgstr ""
#: project/templates/home.html:27 project/templates/layout.html:192
#: project/templates/home.html:27 project/templates/layout.html:203
msgid "Manage"
msgstr ""
#: project/templates/home.html:29 project/templates/security/login_user.html:23
#: project/views/widget.py:175
#: project/views/widget.py:179
msgid "Register for free"
msgstr ""
#: project/templates/event_place/read.html:22 project/templates/layout.html:195
#: project/templates/event_place/read.html:22 project/templates/layout.html:206
#: project/templates/layout_manage.html:24
#: project/templates/manage/events.html:5
#: project/templates/manage/events.html:9
msgid "Events"
msgstr ""
#: project/templates/layout.html:196
#: project/templates/layout.html:207
msgid "Planing"
msgstr ""
#: project/templates/layout.html:197
#: project/templates/layout.html:208
msgid "Example"
msgstr ""
#: project/templates/layout.html:206
#: project/templates/layout.html:217
#: project/templates/oauth2_client/list.html:10
#: project/templates/oauth2_client/read.html:10
#: project/templates/oauth2_token/list.html:10 project/templates/profile.html:4
@ -1209,15 +1209,15 @@ msgstr ""
#: project/templates/admin/admin.html:3 project/templates/admin/admin.html:9
#: project/templates/admin/admin_units.html:10
#: project/templates/admin/users.html:10 project/templates/layout.html:209
#: project/templates/admin/users.html:10 project/templates/layout.html:220
msgid "Admin"
msgstr ""
#: project/templates/layout.html:213
#: project/templates/layout.html:224
msgid "Logout"
msgstr ""
#: project/templates/developer/read.html:4 project/templates/layout.html:268
#: project/templates/developer/read.html:4 project/templates/layout.html:279
#: project/templates/profile.html:29
msgid "Developer"
msgstr ""
@ -1332,10 +1332,10 @@ msgstr ""
msgid "Edit"
msgstr ""
#: project/templates/admin_unit/create.html:47
#: project/templates/admin_unit/create.html:88
#: project/templates/admin_unit/update.html:48
#: project/templates/event/create.html:178
#: project/templates/event/update.html:143
#: project/templates/event/create.html:181
#: project/templates/event/update.html:146
#: project/templates/event_place/create.html:47
#: project/templates/event_place/update.html:47
#: project/templates/organizer/create.html:46
@ -1440,18 +1440,18 @@ msgstr ""
msgid "List all events of %(admin_unit_name)s"
msgstr ""
#: project/templates/event/create.html:85
#: project/templates/event/update.html:75
#: project/templates/event/create.html:88
#: project/templates/event/update.html:78
msgid "Event date"
msgstr ""
#: project/templates/event/create.html:151
#: project/templates/event/update.html:116
#: project/templates/event/create.html:154
#: project/templates/event/update.html:119
msgid "Access"
msgstr ""
#: project/templates/event/create.html:165
#: project/templates/event/update.html:130
#: project/templates/event/create.html:168
#: project/templates/event/update.html:133
msgid "Target group"
msgstr ""
@ -1643,15 +1643,15 @@ msgstr ""
msgid "Print"
msgstr ""
#: project/templates/widget/event_suggestion/create.html:141
#: project/templates/widget/event_suggestion/create.html:143
msgid "Continue as guest"
msgstr ""
#: project/templates/widget/event_suggestion/create.html:240
#: project/templates/widget/event_suggestion/create.html:242
msgid "Optional details"
msgstr ""
#: project/templates/widget/event_suggestion/create.html:273
#: project/templates/widget/event_suggestion/create.html:275
msgid "Preview"
msgstr ""
@ -1762,6 +1762,10 @@ msgstr ""
msgid "Event review status updated"
msgstr ""
#: project/views/js.py:20
msgid "Short name is already taken"
msgstr ""
#: project/views/oauth2_client.py:37
msgid "OAuth2 client successfully created"
msgstr ""
@ -1851,17 +1855,17 @@ msgstr ""
msgid "You do not have permission for this action"
msgstr ""
#: project/views/widget.py:167
#: project/views/widget.py:171
msgid "Thank you so much! The event is being verified."
msgstr ""
#: project/views/widget.py:171
#: project/views/widget.py:175
msgid ""
"For more options and your own calendar of events, you can register for "
"free."
msgstr ""
#: project/views/widget.py:234
#: project/views/widget.py:238
msgid "New event review"
msgstr ""

24
project/views/js.py Normal file
View File

@ -0,0 +1,24 @@
import json
from flask import request
from flask_babelex import gettext
from project import app, csrf
from project.models import AdminUnit
@app.route("/js/check/organization/short_name", methods=["POST"])
def js_check_org_short_name():
csrf.protect()
short_name = request.form["short_name"]
admin_unit_id = (
int(request.form["admin_unit_id"]) if "admin_unit_id" in request.form else -1
)
organization = AdminUnit.query.filter(AdminUnit.short_name == short_name).first()
if not organization or organization.id == admin_unit_id:
return json.dumps(True)
error = gettext("Short name is already taken")
return json.dumps(error)

View File

@ -14,6 +14,7 @@ class UtilActions(object):
self._refresh_token = None
self._client_id = None
self._client_secret = None
self._ajax_csrf = None
def get_access_token(self):
return self._access_token
@ -82,6 +83,15 @@ class UtilActions(object):
re.search(pattern.encode("utf-8"), response.data).group(1).decode("utf-8")
)
def get_ajax_csrf(self, response):
pattern = 'var csrf_token = "(.*)";'
match = re.search(pattern.encode("utf-8"), response.data)
if not match:
return None
return match.group(1).decode("utf-8")
def create_form_data(self, response, values: dict) -> dict:
from tests.form import Form
@ -102,6 +112,9 @@ class UtilActions(object):
if self._access_token:
headers["Authorization"] = f"Bearer {self._access_token}"
if self._ajax_csrf:
headers["X-CSRFToken"] = self._ajax_csrf
return headers
def log_request(self, url):
@ -187,7 +200,12 @@ class UtilActions(object):
return url
def get(self, url):
return self._client.get(url)
response = self._client.get(url)
if response.status_code == 200:
self._ajax_csrf = self.get_ajax_csrf(response)
return response
def get_ok(self, url):
response = self.get(url)

37
tests/views/test_js.py Normal file
View File

@ -0,0 +1,37 @@
def test_js_check_org_short_name(client, seeder, utils):
seeder.create_user(admin=True)
utils.login()
url = utils.get_url("admin_unit_create")
response = utils.get(url)
with client:
url = utils.get_url("js_check_org_short_name")
response = utils.post_form_data(
url,
{
"short_name": "meinecrew",
},
)
utils.assert_response_ok(response)
assert response.data == b"true"
def test_js_check_org_short_name_exists(client, seeder, utils):
seeder.create_user(admin=True)
user_id = utils.login()
seeder.create_admin_unit(user_id, "Meine Crew")
url = utils.get_url("admin_unit_create")
response = utils.get(url)
with client:
url = utils.get_url("js_check_org_short_name")
response = utils.post_form_data(
url,
{
"short_name": "meinecrew",
},
)
utils.assert_response_ok(response)
assert response.data == b'"Der Kurzname ist bereits vergeben"'