mirror of
https://github.com/lucaspalomodevelop/eventcally.git
synced 2026-03-13 00:07:22 +00:00
Merge pull request #242 from DanielGrams/issue/241
Optimize place input #241
This commit is contained in:
commit
6fee2490b6
294
messages.pot
294
messages.pot
@ -8,7 +8,7 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: PROJECT VERSION\n"
|
||||
"Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
|
||||
"POT-Creation-Date: 2021-07-25 23:12+0200\n"
|
||||
"POT-Creation-Date: 2021-07-30 15:18+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:257
|
||||
#: project/forms/admin.py:10 project/templates/layout.html:259
|
||||
#: project/views/root.py:42
|
||||
msgid "Terms of service"
|
||||
msgstr ""
|
||||
|
||||
#: project/forms/admin.py:11 project/templates/layout.html:261
|
||||
#: project/forms/admin.py:11 project/templates/layout.html:263
|
||||
#: project/views/root.py:50
|
||||
msgid "Legal notice"
|
||||
msgstr ""
|
||||
|
||||
#: project/forms/admin.py:12 project/templates/_macros.html:1271
|
||||
#: project/templates/layout.html:265
|
||||
#: project/templates/layout.html:267
|
||||
#: 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:269
|
||||
#: project/forms/admin.py:13 project/templates/layout.html:271
|
||||
#: project/views/root.py:66
|
||||
msgid "Privacy"
|
||||
msgstr ""
|
||||
@ -216,18 +216,18 @@ msgstr ""
|
||||
msgid "Update organization"
|
||||
msgstr ""
|
||||
|
||||
#: project/forms/admin_unit.py:14 project/forms/event.py:33
|
||||
#: project/forms/event_place.py:12 project/forms/organizer.py:12
|
||||
#: project/forms/admin_unit.py:14 project/forms/event_place.py:12
|
||||
#: project/forms/organizer.py:12
|
||||
msgid "Street"
|
||||
msgstr ""
|
||||
|
||||
#: project/forms/admin_unit.py:15 project/forms/event.py:34
|
||||
#: project/forms/event_place.py:13 project/forms/organizer.py:13
|
||||
#: project/forms/admin_unit.py:15 project/forms/event_place.py:13
|
||||
#: project/forms/organizer.py:13
|
||||
msgid "Postal code"
|
||||
msgstr ""
|
||||
|
||||
#: project/forms/admin_unit.py:16 project/forms/event.py:35
|
||||
#: project/forms/event_place.py:14 project/forms/organizer.py:14
|
||||
#: project/forms/admin_unit.py:16 project/forms/event_place.py:14
|
||||
#: project/forms/organizer.py:14
|
||||
msgid "City"
|
||||
msgstr ""
|
||||
|
||||
@ -246,8 +246,8 @@ msgstr ""
|
||||
msgid "Longitude"
|
||||
msgstr ""
|
||||
|
||||
#: project/forms/admin_unit.py:28 project/forms/event.py:40
|
||||
#: project/forms/event.py:69 project/forms/event.py:363
|
||||
#: project/forms/admin_unit.py:28 project/forms/event.py:35
|
||||
#: project/forms/event.py:64 project/forms/event.py:358
|
||||
#: 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
|
||||
@ -272,27 +272,27 @@ msgstr ""
|
||||
msgid "Short name must contain only letters numbers or underscore"
|
||||
msgstr ""
|
||||
|
||||
#: project/forms/admin_unit.py:46 project/forms/event.py:61
|
||||
#: project/forms/event.py:98 project/forms/event_place.py:26
|
||||
#: project/forms/admin_unit.py:46 project/forms/event.py:56
|
||||
#: project/forms/event.py:93 project/forms/event_place.py:26
|
||||
#: project/forms/organizer.py:26
|
||||
msgid "Link URL"
|
||||
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:62 project/forms/event_suggestion.py:38
|
||||
#: 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
|
||||
msgid "Email"
|
||||
msgstr ""
|
||||
|
||||
#: project/forms/admin_unit.py:48 project/forms/event.py:63
|
||||
#: 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
|
||||
msgid "Phone"
|
||||
msgstr ""
|
||||
|
||||
#: project/forms/admin_unit.py:49 project/forms/event.py:64
|
||||
#: project/forms/admin_unit.py:49 project/forms/event.py:59
|
||||
#: project/forms/organizer.py:29 project/templates/_macros.html:304
|
||||
msgid "Fax"
|
||||
msgstr ""
|
||||
@ -432,362 +432,362 @@ msgstr ""
|
||||
msgid "100 km"
|
||||
msgstr ""
|
||||
|
||||
#: project/forms/event.py:58
|
||||
#: project/forms/event.py:53
|
||||
msgid "Organizator"
|
||||
msgstr ""
|
||||
|
||||
#: project/forms/event.py:71
|
||||
#: project/forms/event.py:66
|
||||
msgid "Enter a short, meaningful name for the event."
|
||||
msgstr ""
|
||||
|
||||
#: project/forms/event.py:74
|
||||
#: project/forms/event.py:69
|
||||
msgid "Start"
|
||||
msgstr ""
|
||||
|
||||
#: project/forms/event.py:76
|
||||
#: project/forms/event.py:71
|
||||
msgid ""
|
||||
"Indicate when the event will take place. If the event takes place "
|
||||
"regularly, enter when the first date will begin."
|
||||
msgstr ""
|
||||
|
||||
#: project/forms/event.py:81
|
||||
#: project/forms/event.py:76
|
||||
msgid "End"
|
||||
msgstr ""
|
||||
|
||||
#: project/forms/event.py:83
|
||||
#: project/forms/event.py:78
|
||||
msgid ""
|
||||
"Indicate when the event will end. An event can last a maximum of 14 days."
|
||||
" If the event takes place regularly, enter when the first date will end."
|
||||
msgstr ""
|
||||
|
||||
#: project/forms/event.py:88
|
||||
#: project/forms/event.py:83
|
||||
msgid "Recurrence rule"
|
||||
msgstr ""
|
||||
|
||||
#: project/forms/event.py:90
|
||||
#: project/forms/event.py:85
|
||||
msgid "Enter if the event takes place regularly."
|
||||
msgstr ""
|
||||
|
||||
#: project/forms/event.py:93 project/forms/event_place.py:28
|
||||
#: project/forms/event.py:88 project/forms/event_place.py:28
|
||||
msgid "Description"
|
||||
msgstr ""
|
||||
|
||||
#: project/forms/event.py:95
|
||||
#: project/forms/event.py:90
|
||||
msgid "Add an description of the event."
|
||||
msgstr ""
|
||||
|
||||
#: project/forms/event.py:100
|
||||
#: project/forms/event.py:95
|
||||
msgid ""
|
||||
"Enter a link to an external website containing more information about the"
|
||||
" event."
|
||||
msgstr ""
|
||||
|
||||
#: project/forms/event.py:105
|
||||
#: project/forms/event.py:100
|
||||
msgid "Ticket Link URL"
|
||||
msgstr ""
|
||||
|
||||
#: project/forms/event.py:107
|
||||
#: project/forms/event.py:102
|
||||
msgid "Enter a link where tickets can be purchased."
|
||||
msgstr ""
|
||||
|
||||
#: project/forms/event.py:110 project/templates/_macros.html:235
|
||||
#: project/forms/event.py:105 project/templates/_macros.html:235
|
||||
msgid "Tags"
|
||||
msgstr ""
|
||||
|
||||
#: project/forms/event.py:112
|
||||
#: project/forms/event.py:107
|
||||
msgid ""
|
||||
"Enter keywords with which the event should be found. Words do not need to"
|
||||
" be entered if they are already in the name or description."
|
||||
msgstr ""
|
||||
|
||||
#: project/forms/event.py:117
|
||||
#: project/forms/event.py:112
|
||||
msgid "Kid friendly"
|
||||
msgstr ""
|
||||
|
||||
#: project/forms/event.py:119
|
||||
#: project/forms/event.py:114
|
||||
msgid "If the event is particularly suitable for children."
|
||||
msgstr ""
|
||||
|
||||
#: project/forms/event.py:122
|
||||
#: project/forms/event.py:117
|
||||
msgid "Accessible for free"
|
||||
msgstr ""
|
||||
|
||||
#: project/forms/event.py:124
|
||||
#: project/forms/event.py:119
|
||||
msgid "If the event is accessible for free."
|
||||
msgstr ""
|
||||
|
||||
#: project/forms/event.py:127
|
||||
#: project/forms/event.py:122
|
||||
msgid "Typical Age from"
|
||||
msgstr ""
|
||||
|
||||
#: project/forms/event.py:129
|
||||
#: project/forms/event.py:124
|
||||
msgid "The minimum age that participants should be."
|
||||
msgstr ""
|
||||
|
||||
#: project/forms/event.py:132
|
||||
#: project/forms/event.py:127
|
||||
msgid "Typical Age to"
|
||||
msgstr ""
|
||||
|
||||
#: project/forms/event.py:134
|
||||
#: project/forms/event.py:129
|
||||
msgid "The maximum age that participants should be."
|
||||
msgstr ""
|
||||
|
||||
#: project/forms/event.py:137
|
||||
#: project/forms/event.py:132
|
||||
msgid "Registration required"
|
||||
msgstr ""
|
||||
|
||||
#: project/forms/event.py:139
|
||||
#: project/forms/event.py:134
|
||||
msgid "If the participants needs to register for the event."
|
||||
msgstr ""
|
||||
|
||||
#: project/forms/event.py:144 project/templates/_macros.html:267
|
||||
#: project/templates/layout.html:155
|
||||
#: project/forms/event.py:139 project/templates/_macros.html:267
|
||||
#: project/templates/layout.html:157
|
||||
msgid "Booked up"
|
||||
msgstr ""
|
||||
|
||||
#: project/forms/event.py:146
|
||||
#: project/forms/event.py:141
|
||||
msgid "If the event is booked up or sold out."
|
||||
msgstr ""
|
||||
|
||||
#: project/forms/event.py:149
|
||||
#: project/forms/event.py:144
|
||||
msgid "Expected number of participants"
|
||||
msgstr ""
|
||||
|
||||
#: project/forms/event.py:151
|
||||
#: project/forms/event.py:146
|
||||
msgid "The estimated expected attendance."
|
||||
msgstr ""
|
||||
|
||||
#: project/forms/event.py:154
|
||||
#: project/forms/event.py:149
|
||||
msgid "Price info"
|
||||
msgstr ""
|
||||
|
||||
#: project/forms/event.py:156
|
||||
#: project/forms/event.py:151
|
||||
msgid ""
|
||||
"Enter price information in textual form. E.g., different prices for "
|
||||
"adults and children."
|
||||
msgstr ""
|
||||
|
||||
#: project/forms/event.py:161
|
||||
#: project/forms/event.py:156
|
||||
msgid "Target group origin"
|
||||
msgstr ""
|
||||
|
||||
#: project/forms/event.py:166
|
||||
#: project/forms/event.py:161
|
||||
msgid "EventTargetGroupOrigin.both"
|
||||
msgstr ""
|
||||
|
||||
#: project/forms/event.py:170
|
||||
#: project/forms/event.py:165
|
||||
msgid "EventTargetGroupOrigin.tourist"
|
||||
msgstr ""
|
||||
|
||||
#: project/forms/event.py:174
|
||||
#: project/forms/event.py:169
|
||||
msgid "EventTargetGroupOrigin.resident"
|
||||
msgstr ""
|
||||
|
||||
#: project/forms/event.py:177
|
||||
#: project/forms/event.py:172
|
||||
msgid ""
|
||||
"Choose whether the event is particularly suitable for tourists or "
|
||||
"residents."
|
||||
msgstr ""
|
||||
|
||||
#: project/forms/event.py:182
|
||||
#: project/forms/event.py:177
|
||||
msgid "Attendance mode"
|
||||
msgstr ""
|
||||
|
||||
#: project/forms/event.py:187
|
||||
#: project/forms/event.py:182
|
||||
msgid "EventAttendanceMode.offline"
|
||||
msgstr ""
|
||||
|
||||
#: project/forms/event.py:191 project/templates/layout.html:143
|
||||
#: project/forms/event.py:186 project/templates/layout.html:145
|
||||
msgid "EventAttendanceMode.online"
|
||||
msgstr ""
|
||||
|
||||
#: project/forms/event.py:193 project/templates/layout.html:146
|
||||
#: project/forms/event.py:188 project/templates/layout.html:148
|
||||
msgid "EventAttendanceMode.mixed"
|
||||
msgstr ""
|
||||
|
||||
#: project/forms/event.py:195
|
||||
#: project/forms/event.py:190
|
||||
msgid "Choose how people can attend the event."
|
||||
msgstr ""
|
||||
|
||||
#: project/forms/event.py:199 project/forms/event_place.py:27
|
||||
#: project/forms/event.py:194 project/forms/event_place.py:27
|
||||
#: project/templates/widget/event_suggestion/create.html:219
|
||||
msgid "Photo"
|
||||
msgstr ""
|
||||
|
||||
#: project/forms/event.py:201
|
||||
#: project/forms/event.py:196
|
||||
msgid ""
|
||||
"We recommend uploading a photo for the event. It looks a lot more, but of"
|
||||
" course it works without it."
|
||||
msgstr ""
|
||||
|
||||
#: project/forms/event.py:211 project/templates/_macros.html:1184
|
||||
#: project/forms/event.py:206 project/templates/_macros.html:1184
|
||||
msgid "The start must be before the end."
|
||||
msgstr ""
|
||||
|
||||
#: project/forms/event.py:217 project/templates/_macros.html:1201
|
||||
#: project/forms/event.py:212 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:414
|
||||
#: project/forms/event.py:220 project/templates/_macros.html:414
|
||||
#: project/templates/_macros.html:573
|
||||
msgid "Previous start date"
|
||||
msgstr ""
|
||||
|
||||
#: project/forms/event.py:227
|
||||
#: project/forms/event.py:222
|
||||
msgid "Enter when the event should have taken place before it was postponed."
|
||||
msgstr ""
|
||||
|
||||
#: project/forms/event.py:232 project/forms/event_suggestion.py:71
|
||||
#: project/forms/event.py:227 project/forms/event_suggestion.py:71
|
||||
msgid "Categories"
|
||||
msgstr ""
|
||||
|
||||
#: project/forms/event.py:235 project/forms/event_suggestion.py:74
|
||||
#: project/forms/event.py:230 project/forms/event_suggestion.py:74
|
||||
msgid "Choose categories that fit the event."
|
||||
msgstr ""
|
||||
|
||||
#: project/forms/event.py:238 project/forms/reference.py:14
|
||||
#: 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:193
|
||||
#: project/templates/event/update.html:158
|
||||
#: project/templates/event/create.html:318
|
||||
#: project/templates/event/update.html:183
|
||||
msgid "Rating"
|
||||
msgstr ""
|
||||
|
||||
#: project/forms/event.py:242 project/forms/reference.py:18
|
||||
#: project/forms/event.py:237 project/forms/reference.py:18
|
||||
#: project/forms/reference.py:31 project/forms/reference_request.py:74
|
||||
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:250 project/forms/event.py:259
|
||||
#: project/forms/event.py:319 project/forms/event_suggestion.py:50
|
||||
#: 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:124
|
||||
#: project/templates/event/update.html:108
|
||||
#: project/templates/event/create.html:243
|
||||
#: project/templates/event/update.html:133
|
||||
#: project/templates/event_place/create.html:21
|
||||
#: project/templates/event_place/delete.html:13
|
||||
#: project/templates/event_place/update.html:21
|
||||
msgid "Place"
|
||||
msgstr ""
|
||||
|
||||
#: project/forms/event.py:252
|
||||
#: project/forms/event.py:247
|
||||
msgid "Select existing place"
|
||||
msgstr ""
|
||||
|
||||
#: project/forms/event.py:253
|
||||
#: project/forms/event.py:248
|
||||
msgid "Enter new place"
|
||||
msgstr ""
|
||||
|
||||
#: project/forms/event.py:266 project/forms/event.py:275
|
||||
#: project/forms/event.py:327 project/forms/event.py:377
|
||||
#: 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:99
|
||||
#: project/templates/event/update.html:99
|
||||
#: project/templates/_macros.html:646 project/templates/event/create.html:218
|
||||
#: project/templates/event/update.html:124
|
||||
#: project/templates/organizer/create.html:17
|
||||
#: project/templates/organizer/delete.html:13
|
||||
#: project/templates/organizer/update.html:17
|
||||
msgid "Organizer"
|
||||
msgstr ""
|
||||
|
||||
#: project/forms/event.py:268
|
||||
#: project/forms/event.py:263
|
||||
msgid "Select existing organizer"
|
||||
msgstr ""
|
||||
|
||||
#: project/forms/event.py:269
|
||||
#: project/forms/event.py:264
|
||||
msgid "Enter new organizer"
|
||||
msgstr ""
|
||||
|
||||
#: project/forms/event.py:281 project/templates/event/create.html:4
|
||||
#: project/templates/event/create.html:71
|
||||
#: project/forms/event.py:276 project/templates/event/create.html:4
|
||||
#: project/templates/event/create.html:190
|
||||
#: project/templates/manage/events.html:12
|
||||
#: project/templates/manage/organizers.html:21
|
||||
msgid "Create event"
|
||||
msgstr ""
|
||||
|
||||
#: project/forms/event.py:305
|
||||
#: project/forms/event.py:300
|
||||
msgid "Select existing place or enter new place"
|
||||
msgstr ""
|
||||
|
||||
#: project/forms/event.py:310
|
||||
#: project/forms/event.py:305
|
||||
msgid "Select existing organizer or enter new organizer"
|
||||
msgstr ""
|
||||
|
||||
#: project/forms/event.py:322
|
||||
#: project/forms/event.py:317
|
||||
msgid ""
|
||||
"Choose where the event takes place. You can add and modify places at "
|
||||
"Manage > Places."
|
||||
msgstr ""
|
||||
|
||||
#: project/forms/event.py:330
|
||||
#: project/forms/event.py:325
|
||||
msgid ""
|
||||
"Select the organizer. You can add and modify organizers at Manage > "
|
||||
"Organizers."
|
||||
msgstr ""
|
||||
|
||||
#: project/forms/event.py:336 project/templates/event/update.html:89
|
||||
#: project/forms/event.py:331 project/templates/event/update.html:114
|
||||
#: project/templates/oauth2_token/list.html:21
|
||||
msgid "Status"
|
||||
msgstr ""
|
||||
|
||||
#: project/forms/event.py:339
|
||||
#: project/forms/event.py:334
|
||||
msgid "EventStatus.scheduled"
|
||||
msgstr ""
|
||||
|
||||
#: project/forms/event.py:340 project/templates/layout.html:109
|
||||
#: project/templates/layout.html:124
|
||||
#: project/forms/event.py:335 project/templates/layout.html:111
|
||||
#: project/templates/layout.html:126
|
||||
msgid "EventStatus.cancelled"
|
||||
msgstr ""
|
||||
|
||||
#: project/forms/event.py:341 project/templates/layout.html:112
|
||||
#: project/templates/layout.html:127
|
||||
#: project/forms/event.py:336 project/templates/layout.html:114
|
||||
#: project/templates/layout.html:129
|
||||
msgid "EventStatus.movedOnline"
|
||||
msgstr ""
|
||||
|
||||
#: project/forms/event.py:342 project/templates/layout.html:115
|
||||
#: project/templates/layout.html:130
|
||||
#: project/forms/event.py:337 project/templates/layout.html:117
|
||||
#: project/templates/layout.html:132
|
||||
msgid "EventStatus.postponed"
|
||||
msgstr ""
|
||||
|
||||
#: project/forms/event.py:343 project/templates/layout.html:118
|
||||
#: project/templates/layout.html:133
|
||||
#: project/forms/event.py:338 project/templates/layout.html:120
|
||||
#: project/templates/layout.html:135
|
||||
msgid "EventStatus.rescheduled"
|
||||
msgstr ""
|
||||
|
||||
#: project/forms/event.py:345
|
||||
#: project/forms/event.py:340
|
||||
msgid "Select the status of the event."
|
||||
msgstr ""
|
||||
|
||||
#: project/forms/event.py:348 project/templates/event/update.html:4
|
||||
#: project/templates/event/update.html:61
|
||||
#: project/forms/event.py:343 project/templates/event/update.html:4
|
||||
#: project/templates/event/update.html:86
|
||||
msgid "Update event"
|
||||
msgstr ""
|
||||
|
||||
#: project/forms/event.py:362 project/templates/_macros.html:1156
|
||||
#: project/forms/event.py:357 project/templates/_macros.html:1156
|
||||
#: project/templates/event/actions.html:47
|
||||
#: project/templates/event/delete.html:6
|
||||
msgid "Delete event"
|
||||
msgstr ""
|
||||
|
||||
#: project/forms/event.py:370 project/forms/event_date.py:15
|
||||
#: project/forms/event.py:365 project/forms/event_date.py:15
|
||||
#: project/forms/planing.py:14
|
||||
msgid "From"
|
||||
msgstr ""
|
||||
|
||||
#: project/forms/event.py:371 project/forms/event_date.py:16
|
||||
#: project/forms/event.py:366 project/forms/event_date.py:16
|
||||
#: project/forms/planing.py:15
|
||||
msgid "to"
|
||||
msgstr ""
|
||||
|
||||
#: project/forms/event.py:372 project/forms/event_date.py:17
|
||||
#: project/forms/event.py:367 project/forms/event_date.py:17
|
||||
msgid "Keyword"
|
||||
msgstr ""
|
||||
|
||||
#: project/forms/event.py:374 project/forms/event_date.py:19
|
||||
#: project/forms/event.py:369 project/forms/event_date.py:19
|
||||
#: project/forms/planing.py:17 project/templates/_macros.html:377
|
||||
msgid "Category"
|
||||
msgstr ""
|
||||
|
||||
#: project/forms/event.py:380
|
||||
#: project/forms/event.py:375
|
||||
msgid "Find events"
|
||||
msgstr ""
|
||||
|
||||
@ -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:129
|
||||
#: project/forms/event_suggestion.py:52 project/templates/event/create.html:248
|
||||
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:103
|
||||
#: project/forms/event_suggestion.py:62 project/templates/event/create.html:222
|
||||
msgid ""
|
||||
"Select the organizer. If the organizer is not yet on the list, just enter"
|
||||
" it."
|
||||
@ -1046,9 +1046,9 @@ msgstr ""
|
||||
|
||||
#: project/templates/_macros.html:393 project/templates/_macros.html:569
|
||||
#: project/templates/event/actions.html:12
|
||||
#: project/templates/event/create.html:78
|
||||
#: project/templates/event/create.html:197
|
||||
#: project/templates/event/delete.html:13
|
||||
#: project/templates/event/update.html:68
|
||||
#: project/templates/event/update.html:93
|
||||
#: project/templates/reference/delete.html:13
|
||||
#: project/templates/widget/event_suggestion/create.html:197
|
||||
msgid "Event"
|
||||
@ -1174,7 +1174,7 @@ msgstr ""
|
||||
msgid "Other calendar"
|
||||
msgstr ""
|
||||
|
||||
#: project/templates/home.html:27 project/templates/layout.html:203
|
||||
#: project/templates/home.html:27 project/templates/layout.html:205
|
||||
msgid "Manage"
|
||||
msgstr ""
|
||||
|
||||
@ -1183,22 +1183,22 @@ msgstr ""
|
||||
msgid "Register for free"
|
||||
msgstr ""
|
||||
|
||||
#: project/templates/event_place/read.html:22 project/templates/layout.html:206
|
||||
#: project/templates/event_place/read.html:22 project/templates/layout.html:208
|
||||
#: 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:207
|
||||
#: project/templates/layout.html:209
|
||||
msgid "Planing"
|
||||
msgstr ""
|
||||
|
||||
#: project/templates/layout.html:208
|
||||
#: project/templates/layout.html:210
|
||||
msgid "Example"
|
||||
msgstr ""
|
||||
|
||||
#: project/templates/layout.html:217
|
||||
#: project/templates/layout.html:219
|
||||
#: 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:220
|
||||
#: project/templates/admin/users.html:10 project/templates/layout.html:222
|
||||
msgid "Admin"
|
||||
msgstr ""
|
||||
|
||||
#: project/templates/layout.html:224
|
||||
#: project/templates/layout.html:226
|
||||
msgid "Logout"
|
||||
msgstr ""
|
||||
|
||||
#: project/templates/developer/read.html:4 project/templates/layout.html:279
|
||||
#: project/templates/developer/read.html:4 project/templates/layout.html:281
|
||||
#: project/templates/profile.html:29
|
||||
msgid "Developer"
|
||||
msgstr ""
|
||||
@ -1333,8 +1333,8 @@ msgstr ""
|
||||
|
||||
#: project/templates/admin_unit/create.html:49
|
||||
#: project/templates/admin_unit/update.html:50
|
||||
#: project/templates/event/create.html:181
|
||||
#: project/templates/event/update.html:146
|
||||
#: project/templates/event/create.html:306
|
||||
#: project/templates/event/update.html:171
|
||||
#: project/templates/event_place/create.html:47
|
||||
#: project/templates/event_place/update.html:47
|
||||
#: project/templates/organizer/create.html:46
|
||||
@ -1439,18 +1439,32 @@ msgstr ""
|
||||
msgid "List all events of %(admin_unit_name)s"
|
||||
msgstr ""
|
||||
|
||||
#: project/templates/event/create.html:88
|
||||
#: project/templates/event/update.html:78
|
||||
#: project/templates/event/create.html:87
|
||||
#: project/templates/event/update.html:73
|
||||
msgid "Enter place or address"
|
||||
msgstr ""
|
||||
|
||||
#: project/templates/event/create.html:97
|
||||
#, python-format
|
||||
msgid "Just use %(term)s"
|
||||
msgstr ""
|
||||
|
||||
#: project/templates/event/create.html:207
|
||||
#: project/templates/event/update.html:103
|
||||
msgid "Event date"
|
||||
msgstr ""
|
||||
|
||||
#: project/templates/event/create.html:154
|
||||
#: project/templates/event/update.html:119
|
||||
#: project/templates/event/create.html:268
|
||||
msgid "Switch to place search"
|
||||
msgstr ""
|
||||
|
||||
#: project/templates/event/create.html:279
|
||||
#: project/templates/event/update.html:144
|
||||
msgid "Access"
|
||||
msgstr ""
|
||||
|
||||
#: project/templates/event/create.html:168
|
||||
#: project/templates/event/update.html:133
|
||||
#: project/templates/event/create.html:293
|
||||
#: project/templates/event/update.html:158
|
||||
msgid "Target group"
|
||||
msgstr ""
|
||||
|
||||
@ -1716,23 +1730,23 @@ msgstr ""
|
||||
msgid "Invitation successfully deleted"
|
||||
msgstr ""
|
||||
|
||||
#: project/views/event.py:166
|
||||
#: project/views/event.py:167
|
||||
msgid "Event successfully created"
|
||||
msgstr ""
|
||||
|
||||
#: project/views/event.py:203
|
||||
#: project/views/event.py:207
|
||||
msgid "Event successfully updated"
|
||||
msgstr ""
|
||||
|
||||
#: project/views/event.py:226 project/views/reference.py:162
|
||||
#: project/views/event.py:230 project/views/reference.py:162
|
||||
msgid "Entered name does not match event name"
|
||||
msgstr ""
|
||||
|
||||
#: project/views/event.py:232
|
||||
#: project/views/event.py:236
|
||||
msgid "Event successfully deleted"
|
||||
msgstr ""
|
||||
|
||||
#: project/views/event.py:369
|
||||
#: project/views/event.py:379
|
||||
msgid "Referenced event changed"
|
||||
msgstr ""
|
||||
|
||||
@ -1761,14 +1775,22 @@ msgstr ""
|
||||
msgid "Event review status updated"
|
||||
msgstr ""
|
||||
|
||||
#: project/views/js.py:24
|
||||
#: project/views/js.py:27
|
||||
msgid "Short name is already taken"
|
||||
msgstr ""
|
||||
|
||||
#: project/views/js.py:38
|
||||
#: project/views/js.py:41
|
||||
msgid "An account already exists with this email."
|
||||
msgstr ""
|
||||
|
||||
#: project/views/js.py:66
|
||||
msgid "Places of organization"
|
||||
msgstr ""
|
||||
|
||||
#: project/views/js.py:74
|
||||
msgid "Places of Google Maps"
|
||||
msgstr ""
|
||||
|
||||
#: project/views/oauth2_client.py:37
|
||||
msgid "OAuth2 client successfully created"
|
||||
msgstr ""
|
||||
|
||||
@ -17,6 +17,7 @@ from wtforms.fields.html5 import EmailField, URLField
|
||||
from wtforms.validators import DataRequired, Length, Optional
|
||||
|
||||
from project.forms.common import Base64ImageForm, event_rating_choices
|
||||
from project.forms.event_place import EventPlaceLocationForm
|
||||
from project.forms.widgets import CustomDateField, CustomDateTimeField, HTML5StringField
|
||||
from project.models import (
|
||||
EventAttendanceMode,
|
||||
@ -29,12 +30,6 @@ from project.models import (
|
||||
)
|
||||
|
||||
|
||||
class EventPlaceLocationForm(FlaskForm):
|
||||
street = StringField(lazy_gettext("Street"), validators=[Optional()])
|
||||
postalCode = StringField(lazy_gettext("Postal code"), validators=[Optional()])
|
||||
city = StringField(lazy_gettext("City"), validators=[Optional()])
|
||||
|
||||
|
||||
class EventPlaceForm(FlaskForm):
|
||||
name = StringField(
|
||||
lazy_gettext("Name"),
|
||||
@ -301,12 +296,16 @@ class CreateEventForm(BaseEventForm):
|
||||
def validate(self):
|
||||
if not super(BaseEventForm, self).validate():
|
||||
return False
|
||||
if self.event_place_id.data == 0 and not self.new_event_place.form.name.data:
|
||||
if (
|
||||
not self.event_place_id.data or self.event_place_id.data == 0
|
||||
) and not self.new_event_place.form.name.data:
|
||||
msg = gettext("Select existing place or enter new place")
|
||||
self.event_place_id.errors.append(msg)
|
||||
self.new_event_place.form.name.errors.append(msg)
|
||||
return False
|
||||
if self.organizer_id.data == 0 and not self.new_organizer.form.name.data:
|
||||
if (
|
||||
not self.organizer_id.data or self.organizer_id.data == 0
|
||||
) and not self.new_organizer.form.name.data:
|
||||
msg = gettext("Select existing organizer or enter new organizer")
|
||||
self.organizer_id.errors.append(msg)
|
||||
self.new_organizer.form.name.errors.append(msg)
|
||||
|
||||
42
project/maputils.py
Normal file
42
project/maputils.py
Normal file
@ -0,0 +1,42 @@
|
||||
import logging
|
||||
import os
|
||||
|
||||
import googlemaps
|
||||
|
||||
google_maps_api_key = os.getenv("GOOGLE_MAPS_API_KEY")
|
||||
gmaps = googlemaps.Client(key=google_maps_api_key) if google_maps_api_key else None
|
||||
|
||||
|
||||
def find_gmaps_places(query: str) -> list:
|
||||
result = list()
|
||||
|
||||
if gmaps:
|
||||
try:
|
||||
places = gmaps.places_autocomplete_query(
|
||||
query, location=(51.9059531, 10.4289963), radius=1000000, language="de"
|
||||
)
|
||||
result = list(filter(lambda p: "place_id" in p, places))
|
||||
|
||||
except Exception as e: # pragma: no cover
|
||||
logging.exception(e)
|
||||
|
||||
return result
|
||||
|
||||
|
||||
def get_gmaps_place(gmaps_id) -> dict:
|
||||
result = dict()
|
||||
|
||||
if gmaps:
|
||||
try:
|
||||
place = gmaps.place(
|
||||
gmaps_id,
|
||||
fields=["address_component", "geometry", "name"],
|
||||
language="de",
|
||||
)
|
||||
|
||||
if place["status"] == "OK":
|
||||
result = place["result"]
|
||||
except Exception as e: # pragma: no cover
|
||||
logging.exception(e)
|
||||
|
||||
return result
|
||||
@ -23,9 +23,16 @@ def upsert_event_place(admin_unit_id, name):
|
||||
return result
|
||||
|
||||
|
||||
def get_event_places(admin_unit_id):
|
||||
return (
|
||||
EventPlace.query.filter(EventPlace.admin_unit_id == admin_unit_id)
|
||||
.order_by(func.lower(EventPlace.name))
|
||||
.all()
|
||||
)
|
||||
def get_event_places(admin_unit_id, keyword=None, limit=None):
|
||||
query = EventPlace.query.filter(EventPlace.admin_unit_id == admin_unit_id)
|
||||
|
||||
if keyword:
|
||||
like_keyword = "%" + keyword + "%"
|
||||
query = query.filter(EventPlace.name.ilike(like_keyword))
|
||||
|
||||
query = query.order_by(func.lower(EventPlace.name))
|
||||
|
||||
if limit:
|
||||
query = query.limit(5)
|
||||
|
||||
return query.all()
|
||||
|
||||
@ -243,9 +243,65 @@ function handle_request_success(result_id = '#result_container', spinner_id = '#
|
||||
$(error_id).hide();
|
||||
}
|
||||
|
||||
function reset_place_form(prefix = '') {
|
||||
$('#' + prefix + 'name').val('');
|
||||
$('#' + prefix + 'url').val('');
|
||||
$('#' + prefix + 'location-street').val('');
|
||||
$('#' + prefix + 'location-postalCode').val('');
|
||||
$('#' + prefix + 'location-city').val('');
|
||||
$('#' + prefix + 'location-state').val('');
|
||||
$('#' + prefix + 'location-latitude').val('');
|
||||
$('#' + prefix + 'location-longitude').val('');
|
||||
}
|
||||
|
||||
function fill_place_form_with_gmaps_place(place, prefix = '', location_only = false) {
|
||||
var street_number = "";
|
||||
var route = "";
|
||||
var city = "";
|
||||
|
||||
for (var i = 0; i < place.address_components.length; i++) {
|
||||
var component = place.address_components[i]
|
||||
var addressType = component.types[0];
|
||||
var val = component.long_name
|
||||
|
||||
if (addressType == 'street_number') {
|
||||
street_number = val;
|
||||
} else if (addressType == 'route') {
|
||||
route = val;
|
||||
} else if (addressType == 'locality') {
|
||||
city = val;
|
||||
} else if (addressType == 'administrative_area_level_1') {
|
||||
$('#' + prefix + 'location-state').val(val);
|
||||
} else if (addressType == 'postal_code') {
|
||||
$('#' + prefix + 'location-postalCode').val(val);
|
||||
}
|
||||
}
|
||||
|
||||
if (!location_only) {
|
||||
$('#' + prefix + 'name').val(place.name);
|
||||
|
||||
if (place.website) {
|
||||
$('#' + prefix + 'url').val(place.website);
|
||||
}
|
||||
}
|
||||
|
||||
$('#' + prefix + 'location-street').val([route, street_number].join(' '));
|
||||
$('#' + prefix + 'location-city').val(city);
|
||||
$('#' + prefix + 'location-latitude').val(place.geometry.location.lat);
|
||||
$('#' + prefix + 'location-longitude').val(place.geometry.location.lng);
|
||||
}
|
||||
|
||||
$( function() {
|
||||
$('[data-toggle="tooltip"]').tooltip();
|
||||
$('.autocomplete').select2({width: '100%'});
|
||||
|
||||
$.fn.select2.defaults.set("language", "de");
|
||||
$('.autocomplete').select2({
|
||||
width: '100%',
|
||||
theme: 'bootstrap4'
|
||||
});
|
||||
$('.autocomplete-multi').select2({
|
||||
width: '100%'
|
||||
});
|
||||
|
||||
$('.datepicker').each(function (index, element){
|
||||
start_datepicker($(element));
|
||||
|
||||
@ -6,7 +6,6 @@
|
||||
{% block header_before_site_js %}
|
||||
{{ render_jquery_steps_header() }}
|
||||
{{ render_cropper_header() }}
|
||||
{{ render_google_place_autocomplete_header(False, 'new_event_place-') }}
|
||||
<script>
|
||||
$( function() {
|
||||
|
||||
@ -20,6 +19,38 @@ $( function() {
|
||||
},
|
||||
end: {
|
||||
dateRangeDay: ["#start", "#end"]
|
||||
},
|
||||
event_place_id: {
|
||||
required: {
|
||||
param: true,
|
||||
depends: function(element) {
|
||||
return $('input[type=radio][name=event_place_choice]:checked').val() == "1";
|
||||
}
|
||||
}
|
||||
},
|
||||
"new_event_place-name": {
|
||||
required: {
|
||||
param: true,
|
||||
depends: function(element) {
|
||||
return $('input[type=radio][name=event_place_choice]:checked').val() == "2";
|
||||
}
|
||||
}
|
||||
},
|
||||
organizer_id: {
|
||||
min: {
|
||||
param: 1,
|
||||
depends: function(element) {
|
||||
return $('input[type=radio][name=organizer_choice]:checked').val() == "1";
|
||||
}
|
||||
}
|
||||
},
|
||||
"new_organizer-name": {
|
||||
required: {
|
||||
param: true,
|
||||
depends: function(element) {
|
||||
return $('input[type=radio][name=organizer_choice]:checked').val() == "2";
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
});
|
||||
@ -37,10 +68,99 @@ $( function() {
|
||||
}
|
||||
}
|
||||
|
||||
$('#event_place_id').select2({
|
||||
width: '100%',
|
||||
theme: 'bootstrap4',
|
||||
tags: true,
|
||||
ajax: {
|
||||
url: "{{ url_for('js_autocomplete_place') }}",
|
||||
dataType: 'json',
|
||||
delay: 250,
|
||||
cache: true,
|
||||
data: function (params) {
|
||||
return {
|
||||
keyword: params.term,
|
||||
admin_unit_id: '{{ admin_unit.id }}'
|
||||
};
|
||||
}
|
||||
},
|
||||
placeholder: "{{ _('Enter place or address') }}",
|
||||
createTag: function (params) {
|
||||
var term = $.trim(params.term);
|
||||
|
||||
if (term === '') {
|
||||
return null;
|
||||
}
|
||||
|
||||
return {
|
||||
id: term,
|
||||
text: "{{ _('Just use %(term)s', term='%(term)s') }}".replace("%(term)s", term),
|
||||
term: term,
|
||||
is_new_tag: true
|
||||
}
|
||||
},
|
||||
insertTag: function (data, tag) {
|
||||
data.push(tag);
|
||||
},
|
||||
templateResult: function (state) {
|
||||
if ("is_new_tag" in state) {
|
||||
return $("<strong>" + state.text + "</strong>");
|
||||
}
|
||||
return state.text;
|
||||
}
|
||||
});
|
||||
|
||||
function get_gmaps_place_details(place_id) {
|
||||
$.ajax({
|
||||
url: "{{ url_for('js_autocomplete_gmaps_place') }}",
|
||||
type: "get",
|
||||
dataType: "json",
|
||||
data: "gmaps_id=" + place_id,
|
||||
success: function (data) {
|
||||
fill_place_form_with_gmaps_place(data, 'new_event_place-');
|
||||
$('#new_place_container').find(':input').valid();
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
$('#event_place_id').on('select2:close', function (e) {
|
||||
var dataArray = $(e.target).select2('data');
|
||||
var data = {};
|
||||
|
||||
if (dataArray.length > 0) {
|
||||
data = dataArray[0];
|
||||
}
|
||||
|
||||
if ("is_new_tag" in data || "gmaps_id" in data) {
|
||||
$(this).val(null).trigger('change');
|
||||
$('input[type=radio][name=event_place_choice][value=2]').click();
|
||||
reset_place_form('new_event_place-');
|
||||
|
||||
if ("is_new_tag" in data) {
|
||||
$('#new_event_place-name').val(data.term);
|
||||
} else {
|
||||
$('#new_event_place-name').val(data.main_text);
|
||||
get_gmaps_place_details(data.gmaps_id);
|
||||
}
|
||||
|
||||
$('#new_place_container').find(':input').valid();
|
||||
$(this).removeClass('is-valid');
|
||||
} else {
|
||||
$(this).valid();
|
||||
}
|
||||
});
|
||||
|
||||
$('input[type=radio][name=event_place_choice]').on('change', function() {
|
||||
update_place_container($(this).val());
|
||||
});
|
||||
|
||||
$('#new_place_container_search_link').click(function(e){
|
||||
e.preventDefault();
|
||||
e.stopPropagation();
|
||||
reset_place_form('new_event_place-');
|
||||
$('input[type=radio][name=event_place_choice][value=1]').click();
|
||||
});
|
||||
|
||||
update_place_container($('input[type=radio][name=event_place_choice]:checked').val());
|
||||
|
||||
function update_organizer_container(value) {
|
||||
@ -60,6 +180,10 @@ $( function() {
|
||||
update_organizer_container($(this).val());
|
||||
});
|
||||
|
||||
$('#organizer_id').on('select2:select', function (e) {
|
||||
$(this).valid();
|
||||
});
|
||||
|
||||
update_organizer_container($('input[type=radio][name=organizer_choice]:checked').val());
|
||||
|
||||
{{ render_end_container_handling() }}
|
||||
@ -127,21 +251,27 @@ $( function() {
|
||||
|
||||
<div>
|
||||
<div class="form-text mt-0 text-muted w-100">{{ _("Choose where the event takes place. If the venue is not yet in the list, just enter it.") }}</div>
|
||||
{{ render_radio_buttons(form.event_place_choice) }}
|
||||
<div style="display: none;">{{ render_radio_buttons(form.event_place_choice) }}</div>
|
||||
</div>
|
||||
|
||||
<div class="my-2" id="existing_place_container">
|
||||
{{ render_field_with_errors(form.event_place_id, class="autocomplete w-100", is_required=True) }}
|
||||
{{ render_field_with_errors(form.event_place_id, class="w-100", is_required=True) }}
|
||||
</div>
|
||||
|
||||
<div class="my-2" id="new_place_container">
|
||||
{{ render_google_place_autocomplete_field() }}
|
||||
{{ form.new_event_place.hidden_tag() }}
|
||||
{{ render_field_with_errors(form.new_event_place.form.name, is_required=True) }}
|
||||
{{ form.new_event_place.form.location.hidden_tag() }}
|
||||
{{ render_field_with_errors(form.new_event_place.form.location.street) }}
|
||||
{{ render_field_with_errors(form.new_event_place.form.location.postalCode) }}
|
||||
{{ render_field_with_errors(form.new_event_place.form.location.city) }}
|
||||
{{ render_field_with_errors(form.new_event_place.form.location.state) }}
|
||||
{{ render_field_with_errors(form.new_event_place.form.location.latitude) }}
|
||||
{{ render_field_with_errors(form.new_event_place.form.location.longitude) }}
|
||||
|
||||
<div class="my-4">
|
||||
<a href="#" id="new_place_container_search_link"><i class="fa fa-search"></i> {{ _('Switch to place search') }}</a>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
@ -181,7 +311,7 @@ $( function() {
|
||||
{{ _('Additional information') }}
|
||||
</div>
|
||||
<div class="card-body">
|
||||
{{ render_field_with_errors(form.category_ids, class="autocomplete w-100") }}
|
||||
{{ render_field_with_errors(form.category_ids, class="autocomplete-multi w-100") }}
|
||||
{{ render_field_with_errors(form.tags) }}
|
||||
{{ render_field_with_errors(form.external_link) }}
|
||||
</div>
|
||||
|
||||
@ -20,7 +20,9 @@
|
||||
},
|
||||
end: {
|
||||
dateRangeDay: ["#start", "#end"]
|
||||
}
|
||||
},
|
||||
event_place_id: "required",
|
||||
organizer_id: "required"
|
||||
}
|
||||
});
|
||||
|
||||
@ -52,6 +54,29 @@
|
||||
return false;
|
||||
});
|
||||
|
||||
$('#event_place_id').select2({
|
||||
width: '100%',
|
||||
theme: 'bootstrap4',
|
||||
ajax: {
|
||||
url: "{{ url_for('js_autocomplete_place') }}",
|
||||
dataType: 'json',
|
||||
delay: 250,
|
||||
cache: true,
|
||||
data: function (params) {
|
||||
return {
|
||||
keyword: params.term,
|
||||
admin_unit_id: '{{ event.admin_unit_id }}',
|
||||
exclude_gmaps: 1,
|
||||
};
|
||||
}
|
||||
},
|
||||
placeholder: "{{ _('Enter place or address') }}"
|
||||
});
|
||||
|
||||
$('#organizer_id,#event_place_id').on('select2:select', function (e) {
|
||||
$(this).valid();
|
||||
});
|
||||
|
||||
{{ render_end_container_handling() }}
|
||||
});
|
||||
</script>
|
||||
@ -108,7 +133,7 @@
|
||||
{{ _('Place') }}
|
||||
</div>
|
||||
<div class="card-body pb-0">
|
||||
{{ render_field_with_errors(form.event_place_id, class="autocomplete w-100") }}
|
||||
{{ render_field_with_errors(form.event_place_id, class="w-100") }}
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@ -146,7 +171,7 @@
|
||||
{{ _('Additional information') }}
|
||||
</div>
|
||||
<div class="card-body">
|
||||
{{ render_field_with_errors(form.category_ids, class="autocomplete w-100") }}
|
||||
{{ render_field_with_errors(form.category_ids, class="autocomplete-multi w-100") }}
|
||||
{{ render_field_with_errors(form.tags) }}
|
||||
{{ render_field_with_errors(form.external_link) }}
|
||||
</div>
|
||||
|
||||
@ -48,6 +48,7 @@
|
||||
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/5.13.1/css/all.min.css">
|
||||
<link rel="stylesheet" type="text/css" href="{{ url_for('static', filename='site.css')}}" />
|
||||
<link href="https://cdn.jsdelivr.net/npm/select2@4.1.0-beta.1/dist/css/select2.min.css" rel="stylesheet" />
|
||||
<link href="https://cdn.jsdelivr.net/npm/@ttskch/select2-bootstrap4-theme@1.5.2/dist/select2-bootstrap4.min.css" rel="stylesheet">
|
||||
<link rel="stylesheet" type="text/css" href="{{ url_for('static', filename='jquery.recurrenceinput.css')}}" />
|
||||
<link href="https://fonts.googleapis.com/css?family=Lato:300,400,700,300italic,400italic,700italic" rel="stylesheet" type="text/css">
|
||||
<link rel="stylesheet" href="https://unpkg.com/leaflet@1.5.1/dist/leaflet.css" integrity="sha512-xwE/Az9zrjBIphAcBb3F6JVqxf46+CDLwfLMHloNu6KEQCAWi6HcDUbeOfBIptF7tcCzusKFjFw2yuvEpDL9wQ==" crossorigin=""/>
|
||||
@ -80,6 +81,7 @@
|
||||
<script src="https://cdnjs.cloudflare.com/ajax/libs/jqueryui/1.11.4/i18n/jquery-ui-i18n.js" integrity="sha256-HwXB0HPJCXhungCtZoScc1a53ngQOXua64nb0cI6PHY=" crossorigin="anonymous"></script>
|
||||
<script src="https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.24.0/moment-with-locales.min.js" integrity="sha256-AdQN98MVZs44Eq2yTwtoKufhnU+uZ7v2kXnD5vqzZVo=" crossorigin="anonymous"></script>
|
||||
<script src="https://cdn.jsdelivr.net/npm/select2@4.1.0-beta.1/dist/js/select2.min.js"></script>
|
||||
<script src="https://cdn.jsdelivr.net/npm/select2@4.1.0-beta.1/dist/js/i18n/de.js"></script>
|
||||
<script src="https://cdnjs.cloudflare.com/ajax/libs/jsrender/1.0.6/jsrender.js" integrity="sha512-DtWD/uCp2x1mspIw6vhZGPuJP85aKEL0HFI0jFVxcEiWw1OHJn36LqtkX9G9chzKVYLtTT0G8uJ2miDEL7ucTQ==" crossorigin="anonymous"></script>
|
||||
<script src="https://unpkg.com/leaflet@1.5.1/dist/leaflet.js" integrity="sha512-GffPMF3RvMeYyc1LWMHtK8EbPv0iNZ8/oTtHPx9/cc2ILxQ+u905qIwdpULaqDkyBKgOaB57QTMg7ztg8Jm2Og==" crossorigin=""></script>
|
||||
<script src="https://unpkg.com/leaflet.markercluster@1.4.1/dist/leaflet.markercluster.js"></script>
|
||||
|
||||
@ -86,7 +86,7 @@
|
||||
|
||||
{{ render_cropper_code() }}
|
||||
|
||||
$('#event_place_id').select2({width: '100%', tags: true, selectOnClose: true})
|
||||
$('#event_place_id').select2({width: '100%', language: 'de', tags: true, theme: 'bootstrap4'})
|
||||
.on('select2:select', function (e) {
|
||||
var item = $('#event_place_id').select2('data')[0];
|
||||
var needs_suffix = item.id != '' && item.id == item.text;
|
||||
@ -100,7 +100,7 @@
|
||||
}
|
||||
});
|
||||
|
||||
$('#organizer_id').select2({width: '100%', tags: true, selectOnClose: true})
|
||||
$('#organizer_id').select2({width: '100%', language: 'de', tags: true, theme: 'bootstrap4'})
|
||||
.on('select2:select', function (e) {
|
||||
var item = $('#organizer_id').select2('data')[0];
|
||||
var needs_suffix = item.id != '' && item.id == item.text;
|
||||
@ -257,7 +257,7 @@
|
||||
{{ render_field_with_errors(form.age_to) }}
|
||||
{{ render_field_with_errors(form.expected_participants) }}
|
||||
<hr />
|
||||
{{ render_field_with_errors(form.category_ids, class="autocomplete w-100") }}
|
||||
{{ render_field_with_errors(form.category_ids, class="autocomplete-multi w-100") }}
|
||||
{{ render_field_with_errors(form.tags) }}
|
||||
{{ render_field_with_errors(form.external_link) }}
|
||||
<div class="d-flex justify-content-between">
|
||||
|
||||
Binary file not shown.
@ -7,7 +7,7 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: PROJECT VERSION\n"
|
||||
"Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
|
||||
"POT-Creation-Date: 2021-07-25 23:12+0200\n"
|
||||
"POT-Creation-Date: 2021-07-30 15:18+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:257
|
||||
#: project/forms/admin.py:10 project/templates/layout.html:259
|
||||
#: project/views/root.py:42
|
||||
msgid "Terms of service"
|
||||
msgstr "Nutzungsbedingungen"
|
||||
|
||||
#: project/forms/admin.py:11 project/templates/layout.html:261
|
||||
#: project/forms/admin.py:11 project/templates/layout.html:263
|
||||
#: project/views/root.py:50
|
||||
msgid "Legal notice"
|
||||
msgstr "Impressum"
|
||||
|
||||
#: project/forms/admin.py:12 project/templates/_macros.html:1271
|
||||
#: project/templates/layout.html:265
|
||||
#: project/templates/layout.html:267
|
||||
#: 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:269
|
||||
#: project/forms/admin.py:13 project/templates/layout.html:271
|
||||
#: project/views/root.py:66
|
||||
msgid "Privacy"
|
||||
msgstr "Datenschutz"
|
||||
@ -219,18 +219,18 @@ msgstr ""
|
||||
msgid "Update organization"
|
||||
msgstr "Organisation aktualisieren"
|
||||
|
||||
#: project/forms/admin_unit.py:14 project/forms/event.py:33
|
||||
#: project/forms/event_place.py:12 project/forms/organizer.py:12
|
||||
#: project/forms/admin_unit.py:14 project/forms/event_place.py:12
|
||||
#: project/forms/organizer.py:12
|
||||
msgid "Street"
|
||||
msgstr "Straße"
|
||||
|
||||
#: project/forms/admin_unit.py:15 project/forms/event.py:34
|
||||
#: project/forms/event_place.py:13 project/forms/organizer.py:13
|
||||
#: project/forms/admin_unit.py:15 project/forms/event_place.py:13
|
||||
#: project/forms/organizer.py:13
|
||||
msgid "Postal code"
|
||||
msgstr "Postleitzahl"
|
||||
|
||||
#: project/forms/admin_unit.py:16 project/forms/event.py:35
|
||||
#: project/forms/event_place.py:14 project/forms/organizer.py:14
|
||||
#: project/forms/admin_unit.py:16 project/forms/event_place.py:14
|
||||
#: project/forms/organizer.py:14
|
||||
msgid "City"
|
||||
msgstr "Stadt/Ort"
|
||||
|
||||
@ -249,8 +249,8 @@ msgstr "Breitengrad"
|
||||
msgid "Longitude"
|
||||
msgstr "Längengrad"
|
||||
|
||||
#: project/forms/admin_unit.py:28 project/forms/event.py:40
|
||||
#: project/forms/event.py:69 project/forms/event.py:363
|
||||
#: project/forms/admin_unit.py:28 project/forms/event.py:35
|
||||
#: project/forms/event.py:64 project/forms/event.py:358
|
||||
#: 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
|
||||
@ -278,27 +278,27 @@ msgstr ""
|
||||
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:46 project/forms/event.py:61
|
||||
#: project/forms/event.py:98 project/forms/event_place.py:26
|
||||
#: project/forms/admin_unit.py:46 project/forms/event.py:56
|
||||
#: project/forms/event.py:93 project/forms/event_place.py:26
|
||||
#: project/forms/organizer.py:26
|
||||
msgid "Link URL"
|
||||
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:62 project/forms/event_suggestion.py:38
|
||||
#: 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
|
||||
msgid "Email"
|
||||
msgstr "Email"
|
||||
|
||||
#: project/forms/admin_unit.py:48 project/forms/event.py:63
|
||||
#: 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
|
||||
msgid "Phone"
|
||||
msgstr "Telefon"
|
||||
|
||||
#: project/forms/admin_unit.py:49 project/forms/event.py:64
|
||||
#: project/forms/admin_unit.py:49 project/forms/event.py:59
|
||||
#: project/forms/organizer.py:29 project/templates/_macros.html:304
|
||||
msgid "Fax"
|
||||
msgstr "Fax"
|
||||
@ -365,7 +365,7 @@ msgstr "Copyright Text"
|
||||
|
||||
#: project/forms/common.py:25
|
||||
msgid "Image"
|
||||
msgstr ""
|
||||
msgstr "Bild"
|
||||
|
||||
#: project/forms/common.py:72
|
||||
#, python-format
|
||||
@ -441,19 +441,19 @@ msgstr "50 km"
|
||||
msgid "100 km"
|
||||
msgstr "100 km"
|
||||
|
||||
#: project/forms/event.py:58
|
||||
#: project/forms/event.py:53
|
||||
msgid "Organizator"
|
||||
msgstr "Veranstalter"
|
||||
|
||||
#: project/forms/event.py:71
|
||||
#: project/forms/event.py:66
|
||||
msgid "Enter a short, meaningful name for the event."
|
||||
msgstr "Gib einen kurzen, aussagekräftigen Namen für die Veranstaltung ein."
|
||||
|
||||
#: project/forms/event.py:74
|
||||
#: project/forms/event.py:69
|
||||
msgid "Start"
|
||||
msgstr "Beginn"
|
||||
|
||||
#: project/forms/event.py:76
|
||||
#: project/forms/event.py:71
|
||||
msgid ""
|
||||
"Indicate when the event will take place. If the event takes place "
|
||||
"regularly, enter when the first date will begin."
|
||||
@ -461,11 +461,11 @@ msgstr ""
|
||||
"Gib an, wann die Veranstaltung stattfindet. Wenn die Veranstaltung "
|
||||
"regelmäßig stattfindet, gib an, wann der erste Termin beginnt."
|
||||
|
||||
#: project/forms/event.py:81
|
||||
#: project/forms/event.py:76
|
||||
msgid "End"
|
||||
msgstr "Ende"
|
||||
|
||||
#: project/forms/event.py:83
|
||||
#: project/forms/event.py:78
|
||||
msgid ""
|
||||
"Indicate when the event will end. An event can last a maximum of 14 days."
|
||||
" If the event takes place regularly, enter when the first date will end."
|
||||
@ -474,23 +474,23 @@ msgstr ""
|
||||
"Tage dauern. Wenn die Veranstaltung regelmäßig stattfindet, gib an, wann "
|
||||
"der erste Termin endet."
|
||||
|
||||
#: project/forms/event.py:88
|
||||
#: project/forms/event.py:83
|
||||
msgid "Recurrence rule"
|
||||
msgstr "Wiederholen"
|
||||
|
||||
#: project/forms/event.py:90
|
||||
#: project/forms/event.py:85
|
||||
msgid "Enter if the event takes place regularly."
|
||||
msgstr "Gib an, ob die Veranstaltung regelmäßig stattfindet."
|
||||
|
||||
#: project/forms/event.py:93 project/forms/event_place.py:28
|
||||
#: project/forms/event.py:88 project/forms/event_place.py:28
|
||||
msgid "Description"
|
||||
msgstr "Beschreibung"
|
||||
|
||||
#: project/forms/event.py:95
|
||||
#: project/forms/event.py:90
|
||||
msgid "Add an description of the event."
|
||||
msgstr "Füge der Veranstaltung eine Beschreibung hinzu."
|
||||
|
||||
#: project/forms/event.py:100
|
||||
#: project/forms/event.py:95
|
||||
msgid ""
|
||||
"Enter a link to an external website containing more information about the"
|
||||
" event."
|
||||
@ -498,19 +498,19 @@ msgstr ""
|
||||
"Gib einen Link zu einer externen Website ein, die weitere Informationen "
|
||||
"zur Veranstaltung enthält."
|
||||
|
||||
#: project/forms/event.py:105
|
||||
#: project/forms/event.py:100
|
||||
msgid "Ticket Link URL"
|
||||
msgstr "Ticket Link"
|
||||
|
||||
#: project/forms/event.py:107
|
||||
#: project/forms/event.py:102
|
||||
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:235
|
||||
#: project/forms/event.py:105 project/templates/_macros.html:235
|
||||
msgid "Tags"
|
||||
msgstr "Stichworte"
|
||||
|
||||
#: project/forms/event.py:112
|
||||
#: project/forms/event.py:107
|
||||
msgid ""
|
||||
"Enter keywords with which the event should be found. Words do not need to"
|
||||
" be entered if they are already in the name or description."
|
||||
@ -519,68 +519,68 @@ msgstr ""
|
||||
"Worte müssen nicht eingegeben werden, wenn sie bereits im Namen oder in "
|
||||
"der Beschreibung enthalten sind."
|
||||
|
||||
#: project/forms/event.py:117
|
||||
#: project/forms/event.py:112
|
||||
msgid "Kid friendly"
|
||||
msgstr "Für Kinder geeignet"
|
||||
|
||||
#: project/forms/event.py:119
|
||||
#: project/forms/event.py:114
|
||||
msgid "If the event is particularly suitable for children."
|
||||
msgstr "Wenn die Veranstaltung besonders für Kinder geeignet ist."
|
||||
|
||||
#: project/forms/event.py:122
|
||||
#: project/forms/event.py:117
|
||||
msgid "Accessible for free"
|
||||
msgstr "Kostenlos zugänglich"
|
||||
|
||||
#: project/forms/event.py:124
|
||||
#: project/forms/event.py:119
|
||||
msgid "If the event is accessible for free."
|
||||
msgstr "Wenn die Veranstaltung kostenlos zugänglich ist."
|
||||
|
||||
#: project/forms/event.py:127
|
||||
#: project/forms/event.py:122
|
||||
msgid "Typical Age from"
|
||||
msgstr "Typisches Alter von"
|
||||
|
||||
#: project/forms/event.py:129
|
||||
#: project/forms/event.py:124
|
||||
msgid "The minimum age that participants should be."
|
||||
msgstr "Das Mindestalter, das die Teilnehmer haben sollten."
|
||||
|
||||
#: project/forms/event.py:132
|
||||
#: project/forms/event.py:127
|
||||
msgid "Typical Age to"
|
||||
msgstr "Typisches Alter bis"
|
||||
|
||||
#: project/forms/event.py:134
|
||||
#: project/forms/event.py:129
|
||||
msgid "The maximum age that participants should be."
|
||||
msgstr "Das maximale Alter, das die Teilnehmer haben sollten."
|
||||
|
||||
#: project/forms/event.py:137
|
||||
#: project/forms/event.py:132
|
||||
msgid "Registration required"
|
||||
msgstr "Anmeldung erforderlich"
|
||||
|
||||
#: project/forms/event.py:139
|
||||
#: project/forms/event.py:134
|
||||
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:267
|
||||
#: project/templates/layout.html:155
|
||||
#: project/forms/event.py:139 project/templates/_macros.html:267
|
||||
#: project/templates/layout.html:157
|
||||
msgid "Booked up"
|
||||
msgstr "Ausgebucht"
|
||||
|
||||
#: project/forms/event.py:146
|
||||
#: project/forms/event.py:141
|
||||
msgid "If the event is booked up or sold out."
|
||||
msgstr "Wenn die Veranstaltung ausgebucht oder ausverkauft ist."
|
||||
|
||||
#: project/forms/event.py:149
|
||||
#: project/forms/event.py:144
|
||||
msgid "Expected number of participants"
|
||||
msgstr "Erwartete Teilnehmerzahl"
|
||||
|
||||
#: project/forms/event.py:151
|
||||
#: project/forms/event.py:146
|
||||
msgid "The estimated expected attendance."
|
||||
msgstr "Die geschätzte erwartete Teilnehmerzahl."
|
||||
|
||||
#: project/forms/event.py:154
|
||||
#: project/forms/event.py:149
|
||||
msgid "Price info"
|
||||
msgstr "Preisinformation"
|
||||
|
||||
#: project/forms/event.py:156
|
||||
#: project/forms/event.py:151
|
||||
msgid ""
|
||||
"Enter price information in textual form. E.g., different prices for "
|
||||
"adults and children."
|
||||
@ -588,23 +588,23 @@ msgstr ""
|
||||
"Gib die Preisinformationen in Textform ein. Z.B. unterschiedliche Preise "
|
||||
"für Erwachsene und Kinder."
|
||||
|
||||
#: project/forms/event.py:161
|
||||
#: project/forms/event.py:156
|
||||
msgid "Target group origin"
|
||||
msgstr "Für Touristen/Einwohner geeignet"
|
||||
|
||||
#: project/forms/event.py:166
|
||||
#: project/forms/event.py:161
|
||||
msgid "EventTargetGroupOrigin.both"
|
||||
msgstr "Für Touristen und Einwohner"
|
||||
|
||||
#: project/forms/event.py:170
|
||||
#: project/forms/event.py:165
|
||||
msgid "EventTargetGroupOrigin.tourist"
|
||||
msgstr "Hauptsächlich für Touristen"
|
||||
|
||||
#: project/forms/event.py:174
|
||||
#: project/forms/event.py:169
|
||||
msgid "EventTargetGroupOrigin.resident"
|
||||
msgstr "Hauptsächlich für Einwohner"
|
||||
|
||||
#: project/forms/event.py:177
|
||||
#: project/forms/event.py:172
|
||||
msgid ""
|
||||
"Choose whether the event is particularly suitable for tourists or "
|
||||
"residents."
|
||||
@ -612,32 +612,32 @@ msgstr ""
|
||||
"Wähle, ob die Veranstaltung besonders für Touristen oder Einwohner "
|
||||
"geeignet ist."
|
||||
|
||||
#: project/forms/event.py:182
|
||||
#: project/forms/event.py:177
|
||||
msgid "Attendance mode"
|
||||
msgstr "Teilnahme"
|
||||
|
||||
#: project/forms/event.py:187
|
||||
#: project/forms/event.py:182
|
||||
msgid "EventAttendanceMode.offline"
|
||||
msgstr "Präsenzveranstaltung"
|
||||
|
||||
#: project/forms/event.py:191 project/templates/layout.html:143
|
||||
#: project/forms/event.py:186 project/templates/layout.html:145
|
||||
msgid "EventAttendanceMode.online"
|
||||
msgstr "Online"
|
||||
|
||||
#: project/forms/event.py:193 project/templates/layout.html:146
|
||||
#: project/forms/event.py:188 project/templates/layout.html:148
|
||||
msgid "EventAttendanceMode.mixed"
|
||||
msgstr "Präsenzveranstaltung und online"
|
||||
|
||||
#: project/forms/event.py:195
|
||||
#: project/forms/event.py:190
|
||||
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/forms/event.py:194 project/forms/event_place.py:27
|
||||
#: project/templates/widget/event_suggestion/create.html:219
|
||||
msgid "Photo"
|
||||
msgstr "Foto"
|
||||
|
||||
#: project/forms/event.py:201
|
||||
#: project/forms/event.py:196
|
||||
msgid ""
|
||||
"We recommend uploading a photo for the event. It looks a lot more, but of"
|
||||
" course it works without it."
|
||||
@ -645,41 +645,41 @@ 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:1184
|
||||
#: project/forms/event.py:206 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:1201
|
||||
#: project/forms/event.py:212 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:414
|
||||
#: project/forms/event.py:220 project/templates/_macros.html:414
|
||||
#: project/templates/_macros.html:573
|
||||
msgid "Previous start date"
|
||||
msgstr "Vorheriges Startdatum"
|
||||
|
||||
#: project/forms/event.py:227
|
||||
#: project/forms/event.py:222
|
||||
msgid "Enter when the event should have taken place before it was postponed."
|
||||
msgstr ""
|
||||
"Gib ein, wann die Veranstaltung hätte stattfinden sollen, bevor sie "
|
||||
"verschoben wurde."
|
||||
|
||||
#: project/forms/event.py:232 project/forms/event_suggestion.py:71
|
||||
#: project/forms/event.py:227 project/forms/event_suggestion.py:71
|
||||
msgid "Categories"
|
||||
msgstr "Kategorien"
|
||||
|
||||
#: project/forms/event.py:235 project/forms/event_suggestion.py:74
|
||||
#: project/forms/event.py:230 project/forms/event_suggestion.py:74
|
||||
msgid "Choose categories that fit the event."
|
||||
msgstr "Wähle Kategorien, die zur Veranstaltung passen."
|
||||
|
||||
#: project/forms/event.py:238 project/forms/reference.py:14
|
||||
#: 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:193
|
||||
#: project/templates/event/update.html:158
|
||||
#: project/templates/event/create.html:318
|
||||
#: project/templates/event/update.html:183
|
||||
msgid "Rating"
|
||||
msgstr "Bewertung"
|
||||
|
||||
#: project/forms/event.py:242 project/forms/reference.py:18
|
||||
#: project/forms/event.py:237 project/forms/reference.py:18
|
||||
#: project/forms/reference.py:31 project/forms/reference_request.py:74
|
||||
msgid ""
|
||||
"Choose how relevant the event is to your organization. The value is not "
|
||||
@ -688,60 +688,60 @@ msgstr ""
|
||||
"Wähle aus, wie relevant die Veranstaltung für deine Organisation ist. Der"
|
||||
" Wert ist nicht sichtbar und dient der Sortierung."
|
||||
|
||||
#: project/forms/event.py:250 project/forms/event.py:259
|
||||
#: project/forms/event.py:319 project/forms/event_suggestion.py:50
|
||||
#: 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:124
|
||||
#: project/templates/event/update.html:108
|
||||
#: project/templates/event/create.html:243
|
||||
#: project/templates/event/update.html:133
|
||||
#: project/templates/event_place/create.html:21
|
||||
#: project/templates/event_place/delete.html:13
|
||||
#: project/templates/event_place/update.html:21
|
||||
msgid "Place"
|
||||
msgstr "Ort"
|
||||
|
||||
#: project/forms/event.py:252
|
||||
#: project/forms/event.py:247
|
||||
msgid "Select existing place"
|
||||
msgstr "Vorhandenen Ort auswählen"
|
||||
|
||||
#: project/forms/event.py:253
|
||||
#: project/forms/event.py:248
|
||||
msgid "Enter new place"
|
||||
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.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:99
|
||||
#: project/templates/event/update.html:99
|
||||
#: project/templates/_macros.html:646 project/templates/event/create.html:218
|
||||
#: project/templates/event/update.html:124
|
||||
#: project/templates/organizer/create.html:17
|
||||
#: project/templates/organizer/delete.html:13
|
||||
#: project/templates/organizer/update.html:17
|
||||
msgid "Organizer"
|
||||
msgstr "Veranstalter"
|
||||
|
||||
#: project/forms/event.py:268
|
||||
#: project/forms/event.py:263
|
||||
msgid "Select existing organizer"
|
||||
msgstr "Vorhandenen Veranstalter auswählen"
|
||||
|
||||
#: project/forms/event.py:269
|
||||
#: project/forms/event.py:264
|
||||
msgid "Enter new organizer"
|
||||
msgstr "Neuen Veranstalter eingeben"
|
||||
|
||||
#: project/forms/event.py:281 project/templates/event/create.html:4
|
||||
#: project/templates/event/create.html:71
|
||||
#: project/forms/event.py:276 project/templates/event/create.html:4
|
||||
#: project/templates/event/create.html:190
|
||||
#: project/templates/manage/events.html:12
|
||||
#: project/templates/manage/organizers.html:21
|
||||
msgid "Create event"
|
||||
msgstr "Veranstaltung erstellen"
|
||||
|
||||
#: project/forms/event.py:305
|
||||
#: project/forms/event.py:300
|
||||
msgid "Select existing place or enter new place"
|
||||
msgstr "Existierenden Ort wählen oder neuen Ort eingeben"
|
||||
|
||||
#: project/forms/event.py:310
|
||||
#: project/forms/event.py:305
|
||||
msgid "Select existing organizer or enter new organizer"
|
||||
msgstr "Wähle einen vorhandenen Veranstalter oder gib einen neuen Veranstalter ein"
|
||||
|
||||
#: project/forms/event.py:322
|
||||
#: project/forms/event.py:317
|
||||
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:330
|
||||
#: project/forms/event.py:325
|
||||
msgid ""
|
||||
"Select the organizer. You can add and modify organizers at Manage > "
|
||||
"Organizers."
|
||||
@ -757,70 +757,70 @@ 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:89
|
||||
#: project/forms/event.py:331 project/templates/event/update.html:114
|
||||
#: project/templates/oauth2_token/list.html:21
|
||||
msgid "Status"
|
||||
msgstr "Status"
|
||||
|
||||
#: project/forms/event.py:339
|
||||
#: project/forms/event.py:334
|
||||
msgid "EventStatus.scheduled"
|
||||
msgstr "Geplant"
|
||||
|
||||
#: project/forms/event.py:340 project/templates/layout.html:109
|
||||
#: project/templates/layout.html:124
|
||||
#: project/forms/event.py:335 project/templates/layout.html:111
|
||||
#: project/templates/layout.html:126
|
||||
msgid "EventStatus.cancelled"
|
||||
msgstr "Abgesagt"
|
||||
|
||||
#: project/forms/event.py:341 project/templates/layout.html:112
|
||||
#: project/templates/layout.html:127
|
||||
#: project/forms/event.py:336 project/templates/layout.html:114
|
||||
#: project/templates/layout.html:129
|
||||
msgid "EventStatus.movedOnline"
|
||||
msgstr "Online verschoben"
|
||||
|
||||
#: project/forms/event.py:342 project/templates/layout.html:115
|
||||
#: project/templates/layout.html:130
|
||||
#: project/forms/event.py:337 project/templates/layout.html:117
|
||||
#: project/templates/layout.html:132
|
||||
msgid "EventStatus.postponed"
|
||||
msgstr "Verschoben"
|
||||
|
||||
#: project/forms/event.py:343 project/templates/layout.html:118
|
||||
#: project/templates/layout.html:133
|
||||
#: project/forms/event.py:338 project/templates/layout.html:120
|
||||
#: project/templates/layout.html:135
|
||||
msgid "EventStatus.rescheduled"
|
||||
msgstr "Neu angesetzt"
|
||||
|
||||
#: project/forms/event.py:345
|
||||
#: project/forms/event.py:340
|
||||
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:61
|
||||
#: project/forms/event.py:343 project/templates/event/update.html:4
|
||||
#: project/templates/event/update.html:86
|
||||
msgid "Update event"
|
||||
msgstr "Veranstaltung aktualisieren"
|
||||
|
||||
#: project/forms/event.py:362 project/templates/_macros.html:1156
|
||||
#: project/forms/event.py:357 project/templates/_macros.html:1156
|
||||
#: project/templates/event/actions.html:47
|
||||
#: project/templates/event/delete.html:6
|
||||
msgid "Delete event"
|
||||
msgstr "Veranstaltung löschen"
|
||||
|
||||
#: project/forms/event.py:370 project/forms/event_date.py:15
|
||||
#: project/forms/event.py:365 project/forms/event_date.py:15
|
||||
#: project/forms/planing.py:14
|
||||
msgid "From"
|
||||
msgstr "Von"
|
||||
|
||||
#: project/forms/event.py:371 project/forms/event_date.py:16
|
||||
#: project/forms/event.py:366 project/forms/event_date.py:16
|
||||
#: project/forms/planing.py:15
|
||||
msgid "to"
|
||||
msgstr "bis"
|
||||
|
||||
#: project/forms/event.py:372 project/forms/event_date.py:17
|
||||
#: project/forms/event.py:367 project/forms/event_date.py:17
|
||||
msgid "Keyword"
|
||||
msgstr "Stichwort"
|
||||
|
||||
#: project/forms/event.py:374 project/forms/event_date.py:19
|
||||
#: project/forms/event.py:369 project/forms/event_date.py:19
|
||||
#: project/forms/planing.py:17 project/templates/_macros.html:377
|
||||
msgid "Category"
|
||||
msgstr "Kategorie"
|
||||
|
||||
#: project/forms/event.py:380
|
||||
#: project/forms/event.py:375
|
||||
msgid "Find events"
|
||||
msgstr "Veranstaltungen finden"
|
||||
|
||||
@ -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:129
|
||||
#: project/forms/event_suggestion.py:52 project/templates/event/create.html:248
|
||||
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:103
|
||||
#: project/forms/event_suggestion.py:62 project/templates/event/create.html:222
|
||||
msgid ""
|
||||
"Select the organizer. If the organizer is not yet on the list, just enter"
|
||||
" it."
|
||||
@ -1083,9 +1083,9 @@ msgstr "Zuletzt aktualisiert am %(updated_at)s."
|
||||
|
||||
#: project/templates/_macros.html:393 project/templates/_macros.html:569
|
||||
#: project/templates/event/actions.html:12
|
||||
#: project/templates/event/create.html:78
|
||||
#: project/templates/event/create.html:197
|
||||
#: project/templates/event/delete.html:13
|
||||
#: project/templates/event/update.html:68
|
||||
#: project/templates/event/update.html:93
|
||||
#: project/templates/reference/delete.html:13
|
||||
#: project/templates/widget/event_suggestion/create.html:197
|
||||
msgid "Event"
|
||||
@ -1213,7 +1213,7 @@ msgstr "Yahoo Kalender"
|
||||
msgid "Other calendar"
|
||||
msgstr "Anderer Kalender"
|
||||
|
||||
#: project/templates/home.html:27 project/templates/layout.html:203
|
||||
#: project/templates/home.html:27 project/templates/layout.html:205
|
||||
msgid "Manage"
|
||||
msgstr "Verwaltung"
|
||||
|
||||
@ -1222,22 +1222,22 @@ msgstr "Verwaltung"
|
||||
msgid "Register for free"
|
||||
msgstr "Kostenlos registrieren"
|
||||
|
||||
#: project/templates/event_place/read.html:22 project/templates/layout.html:206
|
||||
#: project/templates/event_place/read.html:22 project/templates/layout.html:208
|
||||
#: 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:207
|
||||
#: project/templates/layout.html:209
|
||||
msgid "Planing"
|
||||
msgstr "Planung"
|
||||
|
||||
#: project/templates/layout.html:208
|
||||
#: project/templates/layout.html:210
|
||||
msgid "Example"
|
||||
msgstr "Beispiel"
|
||||
|
||||
#: project/templates/layout.html:217
|
||||
#: project/templates/layout.html:219
|
||||
#: 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:220
|
||||
#: project/templates/admin/users.html:10 project/templates/layout.html:222
|
||||
msgid "Admin"
|
||||
msgstr "Administration"
|
||||
|
||||
#: project/templates/layout.html:224
|
||||
#: project/templates/layout.html:226
|
||||
msgid "Logout"
|
||||
msgstr "Ausloggen"
|
||||
|
||||
#: project/templates/developer/read.html:4 project/templates/layout.html:279
|
||||
#: project/templates/developer/read.html:4 project/templates/layout.html:281
|
||||
#: project/templates/profile.html:29
|
||||
msgid "Developer"
|
||||
msgstr "Entwickler"
|
||||
@ -1372,8 +1372,8 @@ msgstr "Bearbeiten"
|
||||
|
||||
#: project/templates/admin_unit/create.html:49
|
||||
#: project/templates/admin_unit/update.html:50
|
||||
#: project/templates/event/create.html:181
|
||||
#: project/templates/event/update.html:146
|
||||
#: project/templates/event/create.html:306
|
||||
#: project/templates/event/update.html:171
|
||||
#: project/templates/event_place/create.html:47
|
||||
#: project/templates/event_place/update.html:47
|
||||
#: project/templates/organizer/create.html:46
|
||||
@ -1480,18 +1480,32 @@ 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:88
|
||||
#: project/templates/event/update.html:78
|
||||
#: project/templates/event/create.html:87
|
||||
#: project/templates/event/update.html:73
|
||||
msgid "Enter place or address"
|
||||
msgstr "Orte oder Adresse eingeben"
|
||||
|
||||
#: project/templates/event/create.html:97
|
||||
#, python-format
|
||||
msgid "Just use %(term)s"
|
||||
msgstr "Verwende einfach %(term)s"
|
||||
|
||||
#: project/templates/event/create.html:207
|
||||
#: project/templates/event/update.html:103
|
||||
msgid "Event date"
|
||||
msgstr "Termin"
|
||||
|
||||
#: project/templates/event/create.html:154
|
||||
#: project/templates/event/update.html:119
|
||||
#: project/templates/event/create.html:268
|
||||
msgid "Switch to place search"
|
||||
msgstr "Zur Ortssuche wechseln"
|
||||
|
||||
#: project/templates/event/create.html:279
|
||||
#: project/templates/event/update.html:144
|
||||
msgid "Access"
|
||||
msgstr "Zugang"
|
||||
|
||||
#: project/templates/event/create.html:168
|
||||
#: project/templates/event/update.html:133
|
||||
#: project/templates/event/create.html:293
|
||||
#: project/templates/event/update.html:158
|
||||
msgid "Target group"
|
||||
msgstr "Zielgruppe"
|
||||
|
||||
@ -1760,23 +1774,23 @@ msgstr "Die eingegebene Email passt nicht zur Email der Einladung"
|
||||
msgid "Invitation successfully deleted"
|
||||
msgstr "Einladung erfolgreich gelöscht"
|
||||
|
||||
#: project/views/event.py:166
|
||||
#: project/views/event.py:167
|
||||
msgid "Event successfully created"
|
||||
msgstr "Veranstaltung erfolgreich erstellt"
|
||||
|
||||
#: project/views/event.py:203
|
||||
#: project/views/event.py:207
|
||||
msgid "Event successfully updated"
|
||||
msgstr "Veranstaltung erfolgreich aktualisiert"
|
||||
|
||||
#: project/views/event.py:226 project/views/reference.py:162
|
||||
#: project/views/event.py:230 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:232
|
||||
#: project/views/event.py:236
|
||||
msgid "Event successfully deleted"
|
||||
msgstr "Veranstaltung erfolgreich gelöscht"
|
||||
|
||||
#: project/views/event.py:369
|
||||
#: project/views/event.py:379
|
||||
msgid "Referenced event changed"
|
||||
msgstr "Empfohlene Veranstaltung wurde geändert"
|
||||
|
||||
@ -1805,14 +1819,22 @@ msgstr "Veranstaltungsvorschlag erfolgreich abgelehnt"
|
||||
msgid "Event review status updated"
|
||||
msgstr "Prüfungsstatus aktualisiert"
|
||||
|
||||
#: project/views/js.py:24
|
||||
#: project/views/js.py:27
|
||||
msgid "Short name is already taken"
|
||||
msgstr "Der Kurzname ist bereits vergeben"
|
||||
|
||||
#: project/views/js.py:38
|
||||
#: project/views/js.py:41
|
||||
msgid "An account already exists with this email."
|
||||
msgstr "Mit dieser E-Mail existiert bereits ein Account."
|
||||
|
||||
#: project/views/js.py:66
|
||||
msgid "Places of organization"
|
||||
msgstr "Orte der Organisation"
|
||||
|
||||
#: project/views/js.py:74
|
||||
msgid "Places of Google Maps"
|
||||
msgstr "Orte von Google Maps"
|
||||
|
||||
#: project/views/oauth2_client.py:37
|
||||
msgid "OAuth2 client successfully created"
|
||||
msgstr "OAuth2 Client erfolgreich erstellt"
|
||||
|
||||
Binary file not shown.
@ -7,7 +7,7 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: PROJECT VERSION\n"
|
||||
"Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
|
||||
"POT-Creation-Date: 2021-07-25 23:12+0200\n"
|
||||
"POT-Creation-Date: 2021-07-30 15:18+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:257
|
||||
#: project/forms/admin.py:10 project/templates/layout.html:259
|
||||
#: project/views/root.py:42
|
||||
msgid "Terms of service"
|
||||
msgstr ""
|
||||
|
||||
#: project/forms/admin.py:11 project/templates/layout.html:261
|
||||
#: project/forms/admin.py:11 project/templates/layout.html:263
|
||||
#: project/views/root.py:50
|
||||
msgid "Legal notice"
|
||||
msgstr ""
|
||||
|
||||
#: project/forms/admin.py:12 project/templates/_macros.html:1271
|
||||
#: project/templates/layout.html:265
|
||||
#: project/templates/layout.html:267
|
||||
#: 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:269
|
||||
#: project/forms/admin.py:13 project/templates/layout.html:271
|
||||
#: project/views/root.py:66
|
||||
msgid "Privacy"
|
||||
msgstr ""
|
||||
@ -217,18 +217,18 @@ msgstr ""
|
||||
msgid "Update organization"
|
||||
msgstr ""
|
||||
|
||||
#: project/forms/admin_unit.py:14 project/forms/event.py:33
|
||||
#: project/forms/event_place.py:12 project/forms/organizer.py:12
|
||||
#: project/forms/admin_unit.py:14 project/forms/event_place.py:12
|
||||
#: project/forms/organizer.py:12
|
||||
msgid "Street"
|
||||
msgstr ""
|
||||
|
||||
#: project/forms/admin_unit.py:15 project/forms/event.py:34
|
||||
#: project/forms/event_place.py:13 project/forms/organizer.py:13
|
||||
#: project/forms/admin_unit.py:15 project/forms/event_place.py:13
|
||||
#: project/forms/organizer.py:13
|
||||
msgid "Postal code"
|
||||
msgstr ""
|
||||
|
||||
#: project/forms/admin_unit.py:16 project/forms/event.py:35
|
||||
#: project/forms/event_place.py:14 project/forms/organizer.py:14
|
||||
#: project/forms/admin_unit.py:16 project/forms/event_place.py:14
|
||||
#: project/forms/organizer.py:14
|
||||
msgid "City"
|
||||
msgstr ""
|
||||
|
||||
@ -247,8 +247,8 @@ msgstr ""
|
||||
msgid "Longitude"
|
||||
msgstr ""
|
||||
|
||||
#: project/forms/admin_unit.py:28 project/forms/event.py:40
|
||||
#: project/forms/event.py:69 project/forms/event.py:363
|
||||
#: project/forms/admin_unit.py:28 project/forms/event.py:35
|
||||
#: project/forms/event.py:64 project/forms/event.py:358
|
||||
#: 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
|
||||
@ -273,27 +273,27 @@ msgstr ""
|
||||
msgid "Short name must contain only letters numbers or underscore"
|
||||
msgstr ""
|
||||
|
||||
#: project/forms/admin_unit.py:46 project/forms/event.py:61
|
||||
#: project/forms/event.py:98 project/forms/event_place.py:26
|
||||
#: project/forms/admin_unit.py:46 project/forms/event.py:56
|
||||
#: project/forms/event.py:93 project/forms/event_place.py:26
|
||||
#: project/forms/organizer.py:26
|
||||
msgid "Link URL"
|
||||
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:62 project/forms/event_suggestion.py:38
|
||||
#: 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
|
||||
msgid "Email"
|
||||
msgstr ""
|
||||
|
||||
#: project/forms/admin_unit.py:48 project/forms/event.py:63
|
||||
#: 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
|
||||
msgid "Phone"
|
||||
msgstr ""
|
||||
|
||||
#: project/forms/admin_unit.py:49 project/forms/event.py:64
|
||||
#: project/forms/admin_unit.py:49 project/forms/event.py:59
|
||||
#: project/forms/organizer.py:29 project/templates/_macros.html:304
|
||||
msgid "Fax"
|
||||
msgstr ""
|
||||
@ -433,362 +433,362 @@ msgstr ""
|
||||
msgid "100 km"
|
||||
msgstr ""
|
||||
|
||||
#: project/forms/event.py:58
|
||||
#: project/forms/event.py:53
|
||||
msgid "Organizator"
|
||||
msgstr ""
|
||||
|
||||
#: project/forms/event.py:71
|
||||
#: project/forms/event.py:66
|
||||
msgid "Enter a short, meaningful name for the event."
|
||||
msgstr ""
|
||||
|
||||
#: project/forms/event.py:74
|
||||
#: project/forms/event.py:69
|
||||
msgid "Start"
|
||||
msgstr ""
|
||||
|
||||
#: project/forms/event.py:76
|
||||
#: project/forms/event.py:71
|
||||
msgid ""
|
||||
"Indicate when the event will take place. If the event takes place "
|
||||
"regularly, enter when the first date will begin."
|
||||
msgstr ""
|
||||
|
||||
#: project/forms/event.py:81
|
||||
#: project/forms/event.py:76
|
||||
msgid "End"
|
||||
msgstr ""
|
||||
|
||||
#: project/forms/event.py:83
|
||||
#: project/forms/event.py:78
|
||||
msgid ""
|
||||
"Indicate when the event will end. An event can last a maximum of 14 days."
|
||||
" If the event takes place regularly, enter when the first date will end."
|
||||
msgstr ""
|
||||
|
||||
#: project/forms/event.py:88
|
||||
#: project/forms/event.py:83
|
||||
msgid "Recurrence rule"
|
||||
msgstr ""
|
||||
|
||||
#: project/forms/event.py:90
|
||||
#: project/forms/event.py:85
|
||||
msgid "Enter if the event takes place regularly."
|
||||
msgstr ""
|
||||
|
||||
#: project/forms/event.py:93 project/forms/event_place.py:28
|
||||
#: project/forms/event.py:88 project/forms/event_place.py:28
|
||||
msgid "Description"
|
||||
msgstr ""
|
||||
|
||||
#: project/forms/event.py:95
|
||||
#: project/forms/event.py:90
|
||||
msgid "Add an description of the event."
|
||||
msgstr ""
|
||||
|
||||
#: project/forms/event.py:100
|
||||
#: project/forms/event.py:95
|
||||
msgid ""
|
||||
"Enter a link to an external website containing more information about the"
|
||||
" event."
|
||||
msgstr ""
|
||||
|
||||
#: project/forms/event.py:105
|
||||
#: project/forms/event.py:100
|
||||
msgid "Ticket Link URL"
|
||||
msgstr ""
|
||||
|
||||
#: project/forms/event.py:107
|
||||
#: project/forms/event.py:102
|
||||
msgid "Enter a link where tickets can be purchased."
|
||||
msgstr ""
|
||||
|
||||
#: project/forms/event.py:110 project/templates/_macros.html:235
|
||||
#: project/forms/event.py:105 project/templates/_macros.html:235
|
||||
msgid "Tags"
|
||||
msgstr ""
|
||||
|
||||
#: project/forms/event.py:112
|
||||
#: project/forms/event.py:107
|
||||
msgid ""
|
||||
"Enter keywords with which the event should be found. Words do not need to"
|
||||
" be entered if they are already in the name or description."
|
||||
msgstr ""
|
||||
|
||||
#: project/forms/event.py:117
|
||||
#: project/forms/event.py:112
|
||||
msgid "Kid friendly"
|
||||
msgstr ""
|
||||
|
||||
#: project/forms/event.py:119
|
||||
#: project/forms/event.py:114
|
||||
msgid "If the event is particularly suitable for children."
|
||||
msgstr ""
|
||||
|
||||
#: project/forms/event.py:122
|
||||
#: project/forms/event.py:117
|
||||
msgid "Accessible for free"
|
||||
msgstr ""
|
||||
|
||||
#: project/forms/event.py:124
|
||||
#: project/forms/event.py:119
|
||||
msgid "If the event is accessible for free."
|
||||
msgstr ""
|
||||
|
||||
#: project/forms/event.py:127
|
||||
#: project/forms/event.py:122
|
||||
msgid "Typical Age from"
|
||||
msgstr ""
|
||||
|
||||
#: project/forms/event.py:129
|
||||
#: project/forms/event.py:124
|
||||
msgid "The minimum age that participants should be."
|
||||
msgstr ""
|
||||
|
||||
#: project/forms/event.py:132
|
||||
#: project/forms/event.py:127
|
||||
msgid "Typical Age to"
|
||||
msgstr ""
|
||||
|
||||
#: project/forms/event.py:134
|
||||
#: project/forms/event.py:129
|
||||
msgid "The maximum age that participants should be."
|
||||
msgstr ""
|
||||
|
||||
#: project/forms/event.py:137
|
||||
#: project/forms/event.py:132
|
||||
msgid "Registration required"
|
||||
msgstr ""
|
||||
|
||||
#: project/forms/event.py:139
|
||||
#: project/forms/event.py:134
|
||||
msgid "If the participants needs to register for the event."
|
||||
msgstr ""
|
||||
|
||||
#: project/forms/event.py:144 project/templates/_macros.html:267
|
||||
#: project/templates/layout.html:155
|
||||
#: project/forms/event.py:139 project/templates/_macros.html:267
|
||||
#: project/templates/layout.html:157
|
||||
msgid "Booked up"
|
||||
msgstr ""
|
||||
|
||||
#: project/forms/event.py:146
|
||||
#: project/forms/event.py:141
|
||||
msgid "If the event is booked up or sold out."
|
||||
msgstr ""
|
||||
|
||||
#: project/forms/event.py:149
|
||||
#: project/forms/event.py:144
|
||||
msgid "Expected number of participants"
|
||||
msgstr ""
|
||||
|
||||
#: project/forms/event.py:151
|
||||
#: project/forms/event.py:146
|
||||
msgid "The estimated expected attendance."
|
||||
msgstr ""
|
||||
|
||||
#: project/forms/event.py:154
|
||||
#: project/forms/event.py:149
|
||||
msgid "Price info"
|
||||
msgstr ""
|
||||
|
||||
#: project/forms/event.py:156
|
||||
#: project/forms/event.py:151
|
||||
msgid ""
|
||||
"Enter price information in textual form. E.g., different prices for "
|
||||
"adults and children."
|
||||
msgstr ""
|
||||
|
||||
#: project/forms/event.py:161
|
||||
#: project/forms/event.py:156
|
||||
msgid "Target group origin"
|
||||
msgstr "Suitable for tourists / residents"
|
||||
|
||||
#: project/forms/event.py:166
|
||||
#: project/forms/event.py:161
|
||||
msgid "EventTargetGroupOrigin.both"
|
||||
msgstr "For tourists and residents"
|
||||
|
||||
#: project/forms/event.py:170
|
||||
#: project/forms/event.py:165
|
||||
msgid "EventTargetGroupOrigin.tourist"
|
||||
msgstr "Mainly for tourists"
|
||||
|
||||
#: project/forms/event.py:174
|
||||
#: project/forms/event.py:169
|
||||
msgid "EventTargetGroupOrigin.resident"
|
||||
msgstr "Mainly for residents"
|
||||
|
||||
#: project/forms/event.py:177
|
||||
#: project/forms/event.py:172
|
||||
msgid ""
|
||||
"Choose whether the event is particularly suitable for tourists or "
|
||||
"residents."
|
||||
msgstr ""
|
||||
|
||||
#: project/forms/event.py:182
|
||||
#: project/forms/event.py:177
|
||||
msgid "Attendance mode"
|
||||
msgstr ""
|
||||
|
||||
#: project/forms/event.py:187
|
||||
#: project/forms/event.py:182
|
||||
msgid "EventAttendanceMode.offline"
|
||||
msgstr "Normal (Offline)"
|
||||
|
||||
#: project/forms/event.py:191 project/templates/layout.html:143
|
||||
#: project/forms/event.py:186 project/templates/layout.html:145
|
||||
msgid "EventAttendanceMode.online"
|
||||
msgstr "Online"
|
||||
|
||||
#: project/forms/event.py:193 project/templates/layout.html:146
|
||||
#: project/forms/event.py:188 project/templates/layout.html:148
|
||||
msgid "EventAttendanceMode.mixed"
|
||||
msgstr "Online and offline"
|
||||
|
||||
#: project/forms/event.py:195
|
||||
#: project/forms/event.py:190
|
||||
msgid "Choose how people can attend the event."
|
||||
msgstr ""
|
||||
|
||||
#: project/forms/event.py:199 project/forms/event_place.py:27
|
||||
#: project/forms/event.py:194 project/forms/event_place.py:27
|
||||
#: project/templates/widget/event_suggestion/create.html:219
|
||||
msgid "Photo"
|
||||
msgstr ""
|
||||
|
||||
#: project/forms/event.py:201
|
||||
#: project/forms/event.py:196
|
||||
msgid ""
|
||||
"We recommend uploading a photo for the event. It looks a lot more, but of"
|
||||
" course it works without it."
|
||||
msgstr ""
|
||||
|
||||
#: project/forms/event.py:211 project/templates/_macros.html:1184
|
||||
#: project/forms/event.py:206 project/templates/_macros.html:1184
|
||||
msgid "The start must be before the end."
|
||||
msgstr ""
|
||||
|
||||
#: project/forms/event.py:217 project/templates/_macros.html:1201
|
||||
#: project/forms/event.py:212 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:414
|
||||
#: project/forms/event.py:220 project/templates/_macros.html:414
|
||||
#: project/templates/_macros.html:573
|
||||
msgid "Previous start date"
|
||||
msgstr ""
|
||||
|
||||
#: project/forms/event.py:227
|
||||
#: project/forms/event.py:222
|
||||
msgid "Enter when the event should have taken place before it was postponed."
|
||||
msgstr ""
|
||||
|
||||
#: project/forms/event.py:232 project/forms/event_suggestion.py:71
|
||||
#: project/forms/event.py:227 project/forms/event_suggestion.py:71
|
||||
msgid "Categories"
|
||||
msgstr ""
|
||||
|
||||
#: project/forms/event.py:235 project/forms/event_suggestion.py:74
|
||||
#: project/forms/event.py:230 project/forms/event_suggestion.py:74
|
||||
msgid "Choose categories that fit the event."
|
||||
msgstr ""
|
||||
|
||||
#: project/forms/event.py:238 project/forms/reference.py:14
|
||||
#: 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:193
|
||||
#: project/templates/event/update.html:158
|
||||
#: project/templates/event/create.html:318
|
||||
#: project/templates/event/update.html:183
|
||||
msgid "Rating"
|
||||
msgstr ""
|
||||
|
||||
#: project/forms/event.py:242 project/forms/reference.py:18
|
||||
#: project/forms/event.py:237 project/forms/reference.py:18
|
||||
#: project/forms/reference.py:31 project/forms/reference_request.py:74
|
||||
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:250 project/forms/event.py:259
|
||||
#: project/forms/event.py:319 project/forms/event_suggestion.py:50
|
||||
#: 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:124
|
||||
#: project/templates/event/update.html:108
|
||||
#: project/templates/event/create.html:243
|
||||
#: project/templates/event/update.html:133
|
||||
#: project/templates/event_place/create.html:21
|
||||
#: project/templates/event_place/delete.html:13
|
||||
#: project/templates/event_place/update.html:21
|
||||
msgid "Place"
|
||||
msgstr ""
|
||||
|
||||
#: project/forms/event.py:252
|
||||
#: project/forms/event.py:247
|
||||
msgid "Select existing place"
|
||||
msgstr ""
|
||||
|
||||
#: project/forms/event.py:253
|
||||
#: project/forms/event.py:248
|
||||
msgid "Enter new place"
|
||||
msgstr ""
|
||||
|
||||
#: project/forms/event.py:266 project/forms/event.py:275
|
||||
#: project/forms/event.py:327 project/forms/event.py:377
|
||||
#: 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:99
|
||||
#: project/templates/event/update.html:99
|
||||
#: project/templates/_macros.html:646 project/templates/event/create.html:218
|
||||
#: project/templates/event/update.html:124
|
||||
#: project/templates/organizer/create.html:17
|
||||
#: project/templates/organizer/delete.html:13
|
||||
#: project/templates/organizer/update.html:17
|
||||
msgid "Organizer"
|
||||
msgstr ""
|
||||
|
||||
#: project/forms/event.py:268
|
||||
#: project/forms/event.py:263
|
||||
msgid "Select existing organizer"
|
||||
msgstr ""
|
||||
|
||||
#: project/forms/event.py:269
|
||||
#: project/forms/event.py:264
|
||||
msgid "Enter new organizer"
|
||||
msgstr ""
|
||||
|
||||
#: project/forms/event.py:281 project/templates/event/create.html:4
|
||||
#: project/templates/event/create.html:71
|
||||
#: project/forms/event.py:276 project/templates/event/create.html:4
|
||||
#: project/templates/event/create.html:190
|
||||
#: project/templates/manage/events.html:12
|
||||
#: project/templates/manage/organizers.html:21
|
||||
msgid "Create event"
|
||||
msgstr ""
|
||||
|
||||
#: project/forms/event.py:305
|
||||
#: project/forms/event.py:300
|
||||
msgid "Select existing place or enter new place"
|
||||
msgstr ""
|
||||
|
||||
#: project/forms/event.py:310
|
||||
#: project/forms/event.py:305
|
||||
msgid "Select existing organizer or enter new organizer"
|
||||
msgstr ""
|
||||
|
||||
#: project/forms/event.py:322
|
||||
#: project/forms/event.py:317
|
||||
msgid ""
|
||||
"Choose where the event takes place. You can add and modify places at "
|
||||
"Manage > Places."
|
||||
msgstr ""
|
||||
|
||||
#: project/forms/event.py:330
|
||||
#: project/forms/event.py:325
|
||||
msgid ""
|
||||
"Select the organizer. You can add and modify organizers at Manage > "
|
||||
"Organizers."
|
||||
msgstr ""
|
||||
|
||||
#: project/forms/event.py:336 project/templates/event/update.html:89
|
||||
#: project/forms/event.py:331 project/templates/event/update.html:114
|
||||
#: project/templates/oauth2_token/list.html:21
|
||||
msgid "Status"
|
||||
msgstr ""
|
||||
|
||||
#: project/forms/event.py:339
|
||||
#: project/forms/event.py:334
|
||||
msgid "EventStatus.scheduled"
|
||||
msgstr "Scheduled"
|
||||
|
||||
#: project/forms/event.py:340 project/templates/layout.html:109
|
||||
#: project/templates/layout.html:124
|
||||
#: project/forms/event.py:335 project/templates/layout.html:111
|
||||
#: project/templates/layout.html:126
|
||||
msgid "EventStatus.cancelled"
|
||||
msgstr "Cancelled"
|
||||
|
||||
#: project/forms/event.py:341 project/templates/layout.html:112
|
||||
#: project/templates/layout.html:127
|
||||
#: project/forms/event.py:336 project/templates/layout.html:114
|
||||
#: project/templates/layout.html:129
|
||||
msgid "EventStatus.movedOnline"
|
||||
msgstr "Moved online"
|
||||
|
||||
#: project/forms/event.py:342 project/templates/layout.html:115
|
||||
#: project/templates/layout.html:130
|
||||
#: project/forms/event.py:337 project/templates/layout.html:117
|
||||
#: project/templates/layout.html:132
|
||||
msgid "EventStatus.postponed"
|
||||
msgstr "Postponed"
|
||||
|
||||
#: project/forms/event.py:343 project/templates/layout.html:118
|
||||
#: project/templates/layout.html:133
|
||||
#: project/forms/event.py:338 project/templates/layout.html:120
|
||||
#: project/templates/layout.html:135
|
||||
msgid "EventStatus.rescheduled"
|
||||
msgstr "Rescheduled"
|
||||
|
||||
#: project/forms/event.py:345
|
||||
#: project/forms/event.py:340
|
||||
msgid "Select the status of the event."
|
||||
msgstr ""
|
||||
|
||||
#: project/forms/event.py:348 project/templates/event/update.html:4
|
||||
#: project/templates/event/update.html:61
|
||||
#: project/forms/event.py:343 project/templates/event/update.html:4
|
||||
#: project/templates/event/update.html:86
|
||||
msgid "Update event"
|
||||
msgstr ""
|
||||
|
||||
#: project/forms/event.py:362 project/templates/_macros.html:1156
|
||||
#: project/forms/event.py:357 project/templates/_macros.html:1156
|
||||
#: project/templates/event/actions.html:47
|
||||
#: project/templates/event/delete.html:6
|
||||
msgid "Delete event"
|
||||
msgstr ""
|
||||
|
||||
#: project/forms/event.py:370 project/forms/event_date.py:15
|
||||
#: project/forms/event.py:365 project/forms/event_date.py:15
|
||||
#: project/forms/planing.py:14
|
||||
msgid "From"
|
||||
msgstr ""
|
||||
|
||||
#: project/forms/event.py:371 project/forms/event_date.py:16
|
||||
#: project/forms/event.py:366 project/forms/event_date.py:16
|
||||
#: project/forms/planing.py:15
|
||||
msgid "to"
|
||||
msgstr ""
|
||||
|
||||
#: project/forms/event.py:372 project/forms/event_date.py:17
|
||||
#: project/forms/event.py:367 project/forms/event_date.py:17
|
||||
msgid "Keyword"
|
||||
msgstr ""
|
||||
|
||||
#: project/forms/event.py:374 project/forms/event_date.py:19
|
||||
#: project/forms/event.py:369 project/forms/event_date.py:19
|
||||
#: project/forms/planing.py:17 project/templates/_macros.html:377
|
||||
msgid "Category"
|
||||
msgstr ""
|
||||
|
||||
#: project/forms/event.py:380
|
||||
#: project/forms/event.py:375
|
||||
msgid "Find events"
|
||||
msgstr ""
|
||||
|
||||
@ -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:129
|
||||
#: project/forms/event_suggestion.py:52 project/templates/event/create.html:248
|
||||
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:103
|
||||
#: project/forms/event_suggestion.py:62 project/templates/event/create.html:222
|
||||
msgid ""
|
||||
"Select the organizer. If the organizer is not yet on the list, just enter"
|
||||
" it."
|
||||
@ -1047,9 +1047,9 @@ msgstr ""
|
||||
|
||||
#: project/templates/_macros.html:393 project/templates/_macros.html:569
|
||||
#: project/templates/event/actions.html:12
|
||||
#: project/templates/event/create.html:78
|
||||
#: project/templates/event/create.html:197
|
||||
#: project/templates/event/delete.html:13
|
||||
#: project/templates/event/update.html:68
|
||||
#: project/templates/event/update.html:93
|
||||
#: project/templates/reference/delete.html:13
|
||||
#: project/templates/widget/event_suggestion/create.html:197
|
||||
msgid "Event"
|
||||
@ -1175,7 +1175,7 @@ msgstr ""
|
||||
msgid "Other calendar"
|
||||
msgstr ""
|
||||
|
||||
#: project/templates/home.html:27 project/templates/layout.html:203
|
||||
#: project/templates/home.html:27 project/templates/layout.html:205
|
||||
msgid "Manage"
|
||||
msgstr ""
|
||||
|
||||
@ -1184,22 +1184,22 @@ msgstr ""
|
||||
msgid "Register for free"
|
||||
msgstr ""
|
||||
|
||||
#: project/templates/event_place/read.html:22 project/templates/layout.html:206
|
||||
#: project/templates/event_place/read.html:22 project/templates/layout.html:208
|
||||
#: 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:207
|
||||
#: project/templates/layout.html:209
|
||||
msgid "Planing"
|
||||
msgstr ""
|
||||
|
||||
#: project/templates/layout.html:208
|
||||
#: project/templates/layout.html:210
|
||||
msgid "Example"
|
||||
msgstr ""
|
||||
|
||||
#: project/templates/layout.html:217
|
||||
#: project/templates/layout.html:219
|
||||
#: 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:220
|
||||
#: project/templates/admin/users.html:10 project/templates/layout.html:222
|
||||
msgid "Admin"
|
||||
msgstr ""
|
||||
|
||||
#: project/templates/layout.html:224
|
||||
#: project/templates/layout.html:226
|
||||
msgid "Logout"
|
||||
msgstr ""
|
||||
|
||||
#: project/templates/developer/read.html:4 project/templates/layout.html:279
|
||||
#: project/templates/developer/read.html:4 project/templates/layout.html:281
|
||||
#: project/templates/profile.html:29
|
||||
msgid "Developer"
|
||||
msgstr ""
|
||||
@ -1334,8 +1334,8 @@ msgstr ""
|
||||
|
||||
#: project/templates/admin_unit/create.html:49
|
||||
#: project/templates/admin_unit/update.html:50
|
||||
#: project/templates/event/create.html:181
|
||||
#: project/templates/event/update.html:146
|
||||
#: project/templates/event/create.html:306
|
||||
#: project/templates/event/update.html:171
|
||||
#: project/templates/event_place/create.html:47
|
||||
#: project/templates/event_place/update.html:47
|
||||
#: project/templates/organizer/create.html:46
|
||||
@ -1440,18 +1440,32 @@ msgstr ""
|
||||
msgid "List all events of %(admin_unit_name)s"
|
||||
msgstr ""
|
||||
|
||||
#: project/templates/event/create.html:88
|
||||
#: project/templates/event/update.html:78
|
||||
#: project/templates/event/create.html:87
|
||||
#: project/templates/event/update.html:73
|
||||
msgid "Enter place or address"
|
||||
msgstr ""
|
||||
|
||||
#: project/templates/event/create.html:97
|
||||
#, python-format
|
||||
msgid "Just use %(term)s"
|
||||
msgstr ""
|
||||
|
||||
#: project/templates/event/create.html:207
|
||||
#: project/templates/event/update.html:103
|
||||
msgid "Event date"
|
||||
msgstr ""
|
||||
|
||||
#: project/templates/event/create.html:154
|
||||
#: project/templates/event/update.html:119
|
||||
#: project/templates/event/create.html:268
|
||||
msgid "Switch to place search"
|
||||
msgstr ""
|
||||
|
||||
#: project/templates/event/create.html:279
|
||||
#: project/templates/event/update.html:144
|
||||
msgid "Access"
|
||||
msgstr ""
|
||||
|
||||
#: project/templates/event/create.html:168
|
||||
#: project/templates/event/update.html:133
|
||||
#: project/templates/event/create.html:293
|
||||
#: project/templates/event/update.html:158
|
||||
msgid "Target group"
|
||||
msgstr ""
|
||||
|
||||
@ -1717,23 +1731,23 @@ msgstr ""
|
||||
msgid "Invitation successfully deleted"
|
||||
msgstr ""
|
||||
|
||||
#: project/views/event.py:166
|
||||
#: project/views/event.py:167
|
||||
msgid "Event successfully created"
|
||||
msgstr ""
|
||||
|
||||
#: project/views/event.py:203
|
||||
#: project/views/event.py:207
|
||||
msgid "Event successfully updated"
|
||||
msgstr ""
|
||||
|
||||
#: project/views/event.py:226 project/views/reference.py:162
|
||||
#: project/views/event.py:230 project/views/reference.py:162
|
||||
msgid "Entered name does not match event name"
|
||||
msgstr ""
|
||||
|
||||
#: project/views/event.py:232
|
||||
#: project/views/event.py:236
|
||||
msgid "Event successfully deleted"
|
||||
msgstr ""
|
||||
|
||||
#: project/views/event.py:369
|
||||
#: project/views/event.py:379
|
||||
msgid "Referenced event changed"
|
||||
msgstr ""
|
||||
|
||||
@ -1762,14 +1776,22 @@ msgstr ""
|
||||
msgid "Event review status updated"
|
||||
msgstr ""
|
||||
|
||||
#: project/views/js.py:24
|
||||
#: project/views/js.py:27
|
||||
msgid "Short name is already taken"
|
||||
msgstr ""
|
||||
|
||||
#: project/views/js.py:38
|
||||
#: project/views/js.py:41
|
||||
msgid "An account already exists with this email."
|
||||
msgstr ""
|
||||
|
||||
#: project/views/js.py:66
|
||||
msgid "Places of organization"
|
||||
msgstr ""
|
||||
|
||||
#: project/views/js.py:74
|
||||
msgid "Places of Google Maps"
|
||||
msgstr ""
|
||||
|
||||
#: project/views/oauth2_client.py:37
|
||||
msgid "OAuth2 client successfully created"
|
||||
msgstr ""
|
||||
|
||||
@ -24,6 +24,7 @@ from project.models import (
|
||||
Event,
|
||||
EventCategory,
|
||||
EventOrganizer,
|
||||
EventPlace,
|
||||
EventReference,
|
||||
EventReviewStatus,
|
||||
EventSuggestion,
|
||||
@ -38,8 +39,7 @@ from project.services.event import (
|
||||
update_event,
|
||||
upsert_event_category,
|
||||
)
|
||||
from project.services.place import get_event_places
|
||||
from project.utils import get_event_category_name
|
||||
from project.utils import get_event_category_name, get_place_str
|
||||
from project.views.event_suggestion import send_event_suggestion_review_status_mail
|
||||
from project.views.utils import (
|
||||
flash_errors,
|
||||
@ -103,6 +103,7 @@ def event_create_for_admin_unit_id(id):
|
||||
admin_unit_id=admin_unit.id, category_ids=[upsert_event_category("Other").id]
|
||||
)
|
||||
prepare_event_form(form, admin_unit)
|
||||
form.organizer_id.choices.insert(0, (0, ""))
|
||||
|
||||
# Vorlagen
|
||||
event_suggestion = None
|
||||
@ -115,6 +116,7 @@ def event_create_for_admin_unit_id(id):
|
||||
event_template = Event.query.get_or_404(event_template_id)
|
||||
if not form.is_submitted():
|
||||
form.process(obj=event_template)
|
||||
prepare_event_place(form)
|
||||
|
||||
if not event_template:
|
||||
event_suggestion_id = (
|
||||
@ -173,7 +175,10 @@ def event_create_for_admin_unit_id(id):
|
||||
else:
|
||||
flash_errors(form)
|
||||
return render_template(
|
||||
"event/create.html", form=form, event_suggestion=event_suggestion
|
||||
"event/create.html",
|
||||
admin_unit=admin_unit,
|
||||
form=form,
|
||||
event_suggestion=event_suggestion,
|
||||
)
|
||||
|
||||
|
||||
@ -265,6 +270,14 @@ def get_event_category_choices():
|
||||
)
|
||||
|
||||
|
||||
def prepare_event_place(form):
|
||||
if form.event_place_id.data and form.event_place_id.data > 0:
|
||||
place = EventPlace.query.get(form.event_place_id.data)
|
||||
|
||||
if place:
|
||||
form.event_place_id.choices = [(place.id, get_place_str(place))]
|
||||
|
||||
|
||||
def prepare_event_form(form, admin_unit):
|
||||
form.organizer_id.choices = [
|
||||
(o.id, o.name)
|
||||
@ -274,11 +287,7 @@ def prepare_event_form(form, admin_unit):
|
||||
]
|
||||
form.category_ids.choices = get_event_category_choices()
|
||||
|
||||
places = get_event_places(admin_unit.id)
|
||||
form.event_place_id.choices = [(p.id, p.name) for p in places]
|
||||
|
||||
form.organizer_id.choices.insert(0, (0, ""))
|
||||
form.event_place_id.choices.insert(0, (0, ""))
|
||||
prepare_event_place(form)
|
||||
|
||||
if not form.start.data:
|
||||
form.start.data = get_next_full_hour()
|
||||
@ -323,6 +332,8 @@ def prepare_event_form_for_suggestion(form, event_suggestion):
|
||||
form.organizer_choice.data = 2
|
||||
form.new_organizer.form.name.data = event_suggestion.organizer_text
|
||||
|
||||
prepare_event_place(form)
|
||||
|
||||
|
||||
def update_event_with_form(event, form, event_suggestion=None):
|
||||
with db.session.no_autoflush:
|
||||
|
||||
@ -1,11 +1,13 @@
|
||||
import json
|
||||
|
||||
from flask import request
|
||||
from flask.json import jsonify
|
||||
from flask_babelex import gettext
|
||||
|
||||
from project import app, csrf
|
||||
from project.maputils import find_gmaps_places, get_gmaps_place
|
||||
from project.models import AdminUnit
|
||||
from project.services.place import get_event_places
|
||||
from project.services.user import find_user_by_email
|
||||
from project.utils import get_place_str
|
||||
|
||||
|
||||
@app.route("/js/check/organization/short_name", methods=["POST"])
|
||||
@ -19,10 +21,10 @@ def js_check_org_short_name():
|
||||
organization = AdminUnit.query.filter(AdminUnit.short_name == short_name).first()
|
||||
|
||||
if not organization or organization.id == admin_unit_id:
|
||||
return json.dumps(True)
|
||||
return jsonify(True)
|
||||
|
||||
error = gettext("Short name is already taken")
|
||||
return json.dumps(error)
|
||||
return jsonify(error)
|
||||
|
||||
|
||||
@app.route("/js/check/register/email", methods=["POST"])
|
||||
@ -33,7 +35,62 @@ def js_check_register_email():
|
||||
user = find_user_by_email(email)
|
||||
|
||||
if not user:
|
||||
return json.dumps(True)
|
||||
return jsonify(True)
|
||||
|
||||
error = gettext("An account already exists with this email.")
|
||||
return json.dumps(error)
|
||||
return jsonify(error)
|
||||
|
||||
|
||||
@app.route("/js/autocomplete/place")
|
||||
def js_autocomplete_place():
|
||||
csrf.protect()
|
||||
|
||||
admin_unit_id = int(request.args["admin_unit_id"])
|
||||
keyword = request.args.get("keyword")
|
||||
exclude_gmaps = request.args.get("exclude_gmaps")
|
||||
|
||||
places = get_event_places(admin_unit_id, keyword, 5)
|
||||
places_result = [{"id": p.id, "text": get_place_str(p)} for p in places]
|
||||
|
||||
if exclude_gmaps:
|
||||
results = places_result
|
||||
else:
|
||||
google_places = find_gmaps_places(keyword) if keyword else list()
|
||||
|
||||
results = list()
|
||||
|
||||
if len(places) > 0:
|
||||
results.append(
|
||||
{
|
||||
"text": gettext("Places of organization"),
|
||||
"children": places_result,
|
||||
}
|
||||
)
|
||||
|
||||
if len(google_places) > 0:
|
||||
results.append(
|
||||
{
|
||||
"text": gettext("Places of Google Maps"),
|
||||
"children": [
|
||||
{
|
||||
"id": p["place_id"],
|
||||
"gmaps_id": p["place_id"],
|
||||
"text": p["description"],
|
||||
"main_text": p["structured_formatting"]["main_text"],
|
||||
}
|
||||
for p in google_places
|
||||
],
|
||||
}
|
||||
)
|
||||
|
||||
result = {"results": results}
|
||||
return jsonify(result)
|
||||
|
||||
|
||||
@app.route("/js/autocomplete/gmaps_place")
|
||||
def js_autocomplete_gmaps_place():
|
||||
csrf.protect()
|
||||
|
||||
gmaps_id = request.args["gmaps_id"]
|
||||
place = get_gmaps_place(gmaps_id)
|
||||
return jsonify(place)
|
||||
|
||||
@ -18,7 +18,7 @@ cfgv==3.2.0
|
||||
chardet==3.0.4
|
||||
click==7.1.2
|
||||
colour==0.1.5
|
||||
coverage==5.3
|
||||
coverage==5.5
|
||||
coveralls==2.2.0
|
||||
cryptography==3.3.2
|
||||
distlib==0.3.1
|
||||
@ -46,6 +46,7 @@ Flask-Security-Too==4.0.0
|
||||
Flask-SQLAlchemy==2.4.4
|
||||
Flask-WTF==0.14.3
|
||||
GeoAlchemy2==0.8.4
|
||||
googlemaps==4.4.7
|
||||
gunicorn==20.0.4
|
||||
icalendar==4.0.7
|
||||
identify==1.5.10
|
||||
|
||||
@ -17,6 +17,7 @@ def pytest_generate_tests(metafunc):
|
||||
os.environ[
|
||||
"JWT_PUBLIC_JWKS"
|
||||
] = '{"keys":[{"kid":"default","kty":"RSA","use":"sig","alg":"RS256","n":"vy41pD9VTDVmGVxkeSPUDGuzULf0rfVFypnVnBO12l0V_fXU0Rdqf9qlSCklwSWFT7XcGRS9gDw_HGkbQ2qycmQ0-S2FbU65D3VKR1amqtMgonDFwNinoCEBfh6H52RpvduKmdMZ3PfhqTZP5rStxs7uHuAa-BBzqCl4fTBcwB-sDM-lE5tPuGkoXCZAEllw7G5lHKETZJt2dsvf0aBlPSb-pITQkLLSC1OjbAHmo3h7PP1yQU0qnHsCJv7BhGIFTy3cfvbsa1QdNxI3VHg7ZP2vs-JFm4cDxdk-nft8dDnP8z42kha0iqiLAWDLOyyk-kP7EHvn0jgpZM6N6tzJxw","e":"AQAB"}]}'
|
||||
os.environ["GOOGLE_MAPS_API_KEY"] = "AIzaDummy"
|
||||
|
||||
|
||||
@pytest.fixture
|
||||
@ -49,8 +50,8 @@ def client(app, db):
|
||||
|
||||
|
||||
@pytest.fixture
|
||||
def utils(client, app):
|
||||
return UtilActions(client, app)
|
||||
def utils(client, app, mocker):
|
||||
return UtilActions(client, app, mocker)
|
||||
|
||||
|
||||
@pytest.fixture
|
||||
|
||||
@ -1,21 +1,30 @@
|
||||
import re
|
||||
from urllib.parse import parse_qs, urlsplit
|
||||
|
||||
import googlemaps
|
||||
from bs4 import BeautifulSoup
|
||||
from flask import g, url_for
|
||||
from sqlalchemy.exc import IntegrityError
|
||||
|
||||
|
||||
class UtilActions(object):
|
||||
def __init__(self, client, app):
|
||||
def __init__(self, client, app, mocker):
|
||||
self._client = client
|
||||
self._app = app
|
||||
self._mocker = mocker
|
||||
self._access_token = None
|
||||
self._refresh_token = None
|
||||
self._client_id = None
|
||||
self._client_secret = None
|
||||
self._ajax_csrf = None
|
||||
|
||||
self.gmaps_places_autocomplete_query = self._mocker.patch.object(
|
||||
googlemaps.Client, "places_autocomplete_query", return_value=list()
|
||||
)
|
||||
self.gmaps_place = self._mocker.patch.object(
|
||||
googlemaps.Client, "place", return_value=dict()
|
||||
)
|
||||
|
||||
def get_access_token(self):
|
||||
return self._access_token
|
||||
|
||||
|
||||
@ -1,3 +1,7 @@
|
||||
from tests.seeder import Seeder
|
||||
from tests.utils import UtilActions
|
||||
|
||||
|
||||
def test_js_check_org_short_name(client, seeder, utils):
|
||||
seeder.create_user(admin=True)
|
||||
utils.login()
|
||||
@ -14,7 +18,7 @@ def test_js_check_org_short_name(client, seeder, utils):
|
||||
},
|
||||
)
|
||||
utils.assert_response_ok(response)
|
||||
assert response.data == b"true"
|
||||
assert response.json
|
||||
|
||||
|
||||
def test_js_check_org_short_name_exists(client, seeder, utils):
|
||||
@ -34,7 +38,7 @@ def test_js_check_org_short_name_exists(client, seeder, utils):
|
||||
},
|
||||
)
|
||||
utils.assert_response_ok(response)
|
||||
assert response.data == b'"Der Kurzname ist bereits vergeben"'
|
||||
assert response.json == "Der Kurzname ist bereits vergeben"
|
||||
|
||||
|
||||
def test_js_js_check_register_email(client, seeder, utils):
|
||||
@ -50,7 +54,7 @@ def test_js_js_check_register_email(client, seeder, utils):
|
||||
},
|
||||
)
|
||||
utils.assert_response_ok(response)
|
||||
assert response.data == b"true"
|
||||
assert response.json
|
||||
|
||||
|
||||
def test_js_js_check_register_email_exists(client, seeder, utils):
|
||||
@ -70,4 +74,74 @@ def test_js_js_check_register_email_exists(client, seeder, utils):
|
||||
},
|
||||
)
|
||||
utils.assert_response_ok(response)
|
||||
assert response.data == b'"Mit dieser E-Mail existiert bereits ein Account."'
|
||||
assert response.json == "Mit dieser E-Mail existiert bereits ein Account."
|
||||
|
||||
|
||||
def test_js_autocomplete_place(client, seeder: Seeder, utils: UtilActions):
|
||||
user_id, admin_unit_id = seeder.setup_base()
|
||||
seeder.upsert_default_event_place(admin_unit_id)
|
||||
|
||||
url = utils.get_url("event_create_for_admin_unit_id", id=admin_unit_id)
|
||||
response = utils.get(url)
|
||||
|
||||
utils.gmaps_places_autocomplete_query.return_value = [
|
||||
{
|
||||
"place_id": "123",
|
||||
"description": "Beschreibung",
|
||||
"structured_formatting": {"main_text": "Haupttext"},
|
||||
}
|
||||
]
|
||||
|
||||
with client:
|
||||
url = utils.get_url(
|
||||
"js_autocomplete_place", admin_unit_id=admin_unit_id, keyword="crew"
|
||||
)
|
||||
response = utils.get(url)
|
||||
|
||||
utils.assert_response_ok(response)
|
||||
assert response.json["results"][0]["children"][0]["text"] == "Meine Crew"
|
||||
assert response.json["results"][1]["children"][0]["text"] == "Beschreibung"
|
||||
|
||||
|
||||
def test_js_autocomplete_place_exclude_gmaps(
|
||||
client, seeder: Seeder, utils: UtilActions
|
||||
):
|
||||
user_id, admin_unit_id = seeder.setup_base()
|
||||
seeder.upsert_default_event_place(admin_unit_id)
|
||||
|
||||
url = utils.get_url("event_create_for_admin_unit_id", id=admin_unit_id)
|
||||
response = utils.get(url)
|
||||
|
||||
with client:
|
||||
url = utils.get_url(
|
||||
"js_autocomplete_place",
|
||||
admin_unit_id=admin_unit_id,
|
||||
keyword="crew",
|
||||
exclude_gmaps=1,
|
||||
)
|
||||
response = utils.get(url)
|
||||
|
||||
utils.assert_response_ok(response)
|
||||
assert response.json["results"][0]["text"] == "Meine Crew"
|
||||
|
||||
|
||||
def test_js_autocomplete_gmaps_place(client, seeder: Seeder, utils: UtilActions):
|
||||
user_id, admin_unit_id = seeder.setup_base()
|
||||
seeder.upsert_default_event_place(admin_unit_id)
|
||||
|
||||
url = utils.get_url("event_create_for_admin_unit_id", id=admin_unit_id)
|
||||
response = utils.get(url)
|
||||
|
||||
utils.gmaps_place.return_value = {
|
||||
"status": "OK",
|
||||
"result": {
|
||||
"place_id": "123",
|
||||
},
|
||||
}
|
||||
|
||||
with client:
|
||||
url = utils.get_url("js_autocomplete_gmaps_place", gmaps_id="123")
|
||||
response = utils.get(url)
|
||||
|
||||
utils.assert_response_ok(response)
|
||||
assert response.json["place_id"] == "123"
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user