mirror of
https://github.com/lucaspalomodevelop/eventcally.git
synced 2026-03-13 00:07:22 +00:00
- [ ] place wählen (gefiltert nach organizer und freigegebene)
This commit is contained in:
parent
870c393d6b
commit
4561ac0efc
37
app.py
37
app.py
@ -705,7 +705,12 @@ def assign_location_values(target, origin):
|
||||
|
||||
@app.before_first_request
|
||||
def create_initial_data():
|
||||
pass
|
||||
events = Event.query.all()
|
||||
for event in events:
|
||||
if event.external_link and event.external_link.startswith('https://goslar.feripro.de/programm/40/anmeldung/veranstaltungen'):
|
||||
event.event_place.public = False
|
||||
|
||||
db.session.commit()
|
||||
|
||||
def flash_errors(form):
|
||||
for field, errors in form.errors.items():
|
||||
@ -988,6 +993,19 @@ def api_events():
|
||||
result['event'] = structured_events
|
||||
return jsonify(result)
|
||||
|
||||
@app.route("/api/organizer/<int:id>/event_places")
|
||||
def api_event_places(id):
|
||||
places = get_event_places(id)
|
||||
result = list()
|
||||
|
||||
for place in places:
|
||||
item = {}
|
||||
item["id"] = place.id
|
||||
item["name"] = place.name
|
||||
result.append(item)
|
||||
|
||||
return jsonify(result)
|
||||
|
||||
from forms.event import CreateEventForm, UpdateEventForm, DeleteEventForm
|
||||
from forms.place import CreatePlaceForm, UpdatePlaceForm
|
||||
from forms.organization import CreateOrganizationForm, UpdateOrganizationForm
|
||||
@ -1009,14 +1027,23 @@ def update_event_with_form(event, form):
|
||||
fs = form.photo_file.data
|
||||
event.photo = upsert_image_with_data(event.photo, fs.read(), fs.content_type)
|
||||
|
||||
def get_event_places(organizer_id):
|
||||
organizer = EventOrganizer.query.get(organizer_id)
|
||||
return EventPlace.query.filter(or_(EventPlace.organizer_id == organizer_id, and_(EventPlace.public, EventPlace.admin_unit_id==organizer.admin_unit_id))).order_by(func.lower(EventPlace.name)).all()
|
||||
|
||||
def prepare_event_form(form):
|
||||
form.organizer_id.choices = [(o.id, o.name) for o in EventOrganizer.query.filter(EventOrganizer.admin_unit_id == form.admin_unit_id.data).order_by(func.lower(EventOrganizer.name))]
|
||||
form.place_id.choices = [(p.id, p.name) for p in Place.query.order_by('name')]
|
||||
form.category_id.choices = sorted([(c.id, get_event_category_name(c)) for c in EventCategory.query.all()], key=lambda ooa: ooa[1])
|
||||
form.admin_unit_id.choices = sorted([(admin_unit.id, admin_unit.name) for admin_unit in get_admin_units_for_event()], key=lambda admin_unit: admin_unit[1])
|
||||
|
||||
if form.organizer_id.data:
|
||||
places = get_event_places(form.organizer_id.data)
|
||||
form.event_place_id.choices = [(p.id, p.name) for p in places]
|
||||
else:
|
||||
form.event_place_id.choices = list()
|
||||
|
||||
form.organizer_id.choices.insert(0, (0, ''))
|
||||
form.place_id.choices.insert(0, (0, ''))
|
||||
form.event_place_id.choices.insert(0, (0, ''))
|
||||
|
||||
def event_create_base(admin_unit, organizer_id=0):
|
||||
form = CreateEventForm(admin_unit_id=admin_unit.id, organizer_id=organizer_id, category_id=upsert_event_category('Other').id)
|
||||
@ -1026,6 +1053,10 @@ def event_create_base(admin_unit, organizer_id=0):
|
||||
event = Event()
|
||||
update_event_with_form(event, form)
|
||||
|
||||
if form.event_place_choice.data == 2:
|
||||
event.event_place.organizer_id = event.organizer_id
|
||||
event.event_place.admin_unit_id = event.admin_unit_id
|
||||
|
||||
try:
|
||||
db.session.add(event)
|
||||
db.session.commit()
|
||||
|
||||
@ -14,8 +14,9 @@ class EventPlaceLocationForm(FlaskForm):
|
||||
city = StringField(lazy_gettext('City'), validators=[Optional()])
|
||||
|
||||
class EventPlaceForm(FlaskForm):
|
||||
name = StringField(lazy_gettext('New place'), validators=[Optional()])
|
||||
name = StringField(lazy_gettext('Name'), validators=[Optional()])
|
||||
location = FormField(EventPlaceLocationForm, default=lambda: Location())
|
||||
public = BooleanField(lazy_gettext('Other organizers can use this location'), default="checked", render_kw ={'checked':''}, validators=[Optional()])
|
||||
|
||||
def populate_obj(self, obj):
|
||||
for name, field in self._fields.items():
|
||||
@ -30,8 +31,7 @@ class EventOrganizerForm(FlaskForm):
|
||||
phone = StringField(lazy_gettext('Phone'), validators=[Optional()])
|
||||
fax = StringField(lazy_gettext('Fax'), validators=[Optional()])
|
||||
|
||||
class CreateEventForm(FlaskForm):
|
||||
submit = SubmitField(lazy_gettext("Create event"))
|
||||
class BaseEventForm(FlaskForm):
|
||||
name = StringField(lazy_gettext('Name'), validators=[DataRequired()])
|
||||
external_link = StringField(lazy_gettext('Link URL'), validators=[Optional()])
|
||||
ticket_link = StringField(lazy_gettext('Ticket Link URL'), validators=[Optional()])
|
||||
@ -42,10 +42,7 @@ class CreateEventForm(FlaskForm):
|
||||
previous_start_date = CustomDateTimeField(lazy_gettext('Previous start date'), validators=[Optional()])
|
||||
tags = StringField(lazy_gettext('Tags'), validators=[Optional()])
|
||||
|
||||
event_place = FormField(EventPlaceForm, default=lambda: EventPlace())
|
||||
|
||||
organizer_id = SelectField(lazy_gettext('Organizer'), validators=[DataRequired()], coerce=int)
|
||||
place_id = SelectField(lazy_gettext('Existing place'), validators=[Optional()], coerce=int)
|
||||
category_id = SelectField(lazy_gettext('Category'), validators=[DataRequired()], coerce=int)
|
||||
admin_unit_id = SelectField(lazy_gettext('Admin unit'), validators=[DataRequired()], coerce=int)
|
||||
|
||||
@ -66,23 +63,36 @@ class CreateEventForm(FlaskForm):
|
||||
|
||||
photo_file = FileField(lazy_gettext('Photo'), validators=[FileAllowed(['jpg', 'jpeg', 'png'], lazy_gettext('Images only!'))])
|
||||
|
||||
class CreateEventForm(BaseEventForm):
|
||||
event_place_choice = RadioField(lazy_gettext('Place'), choices=[(1,lazy_gettext('Select existing place')), (2,lazy_gettext('Enter new place'))], default=1, coerce=int)
|
||||
event_place_id = SelectField(lazy_gettext('Place'), validators=[Optional()], coerce=int)
|
||||
new_event_place = FormField(EventPlaceForm, default=lambda: EventPlace())
|
||||
|
||||
submit = SubmitField(lazy_gettext("Create event"))
|
||||
|
||||
def populate_obj(self, obj):
|
||||
for name, field in self._fields.items():
|
||||
if name == 'event_place' and not obj.event_place:
|
||||
obj.event_place = EventPlace()
|
||||
if name == 'new_event_place':
|
||||
if self.event_place_choice.data != 2:
|
||||
continue
|
||||
if not obj.event_place:
|
||||
obj.event_place = EventPlace()
|
||||
field.populate_obj(obj, 'event_place')
|
||||
field.populate_obj(obj, name)
|
||||
|
||||
def validate(self):
|
||||
if not super(CreateEventForm, self).validate():
|
||||
if not super(BaseEventForm, self).validate():
|
||||
return False
|
||||
if self.place_id.data == 0 and not self.event_place.form.name.data:
|
||||
if 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.place_id.errors.append(msg)
|
||||
self.event_place.form.name.errors.append(msg)
|
||||
self.event_place_id.errors.append(msg)
|
||||
self.new_event_place.form.name.errors.append(msg)
|
||||
return False
|
||||
return True
|
||||
|
||||
class UpdateEventForm(CreateEventForm):
|
||||
class UpdateEventForm(BaseEventForm):
|
||||
event_place_id = SelectField(lazy_gettext('Place'), validators=[DataRequired()], coerce=int)
|
||||
|
||||
status = SelectField(lazy_gettext('Status'), coerce=int, choices=[
|
||||
(int(EventStatus.scheduled), lazy_gettext('EventStatus.scheduled')),
|
||||
(int(EventStatus.cancelled), lazy_gettext('EventStatus.cancelled')),
|
||||
|
||||
@ -23,7 +23,7 @@ class CreateEventPlaceForm(FlaskForm):
|
||||
photo_file = FileField(lazy_gettext('Photo'), validators=[FileAllowed(['jpg', 'jpeg', 'png'], lazy_gettext('Images only!'))])
|
||||
description = TextAreaField(lazy_gettext('Description'), validators=[Optional()])
|
||||
location = FormField(EventPlaceLocationForm)
|
||||
public = BooleanField(lazy_gettext('Other organizers can use this location'), validators=[Optional()])
|
||||
public = BooleanField(lazy_gettext('Other organizers can use this location'), default="checked", render_kw ={'checked':''}, validators=[Optional()])
|
||||
|
||||
class UpdateEventPlaceForm(CreateEventPlaceForm):
|
||||
submit = SubmitField(lazy_gettext("Update place"))
|
||||
|
||||
@ -476,4 +476,35 @@
|
||||
{{ render_tab('organizers', _('Organizers'), url_for('manage_admin_unit_organizers', id=admin_unit.id), active_id) }}
|
||||
{{ render_tab('places', _('Places'), url_for('manage_admin_unit_event_places', id=admin_unit.id), active_id) }}
|
||||
</ul>
|
||||
{% endmacro %}
|
||||
|
||||
{% macro render_event_organizer_places_header() %}
|
||||
<script>
|
||||
$( function() {
|
||||
|
||||
$("#organizer_id").change(function(){
|
||||
var organizer_id = $(this).val();
|
||||
|
||||
$.ajax({
|
||||
url: '/api/organizer/' + organizer_id + '/event_places',
|
||||
type: 'get',
|
||||
dataType: 'json',
|
||||
success:function(response){
|
||||
|
||||
var len = response.length;
|
||||
|
||||
$("#event_place_id").empty();
|
||||
$("#event_place_id").append("<option value='"+0+"'></option>");
|
||||
for( var i = 0; i<len; i++){
|
||||
var id = response[i]['id'];
|
||||
var name = response[i]['name'];
|
||||
|
||||
$("#event_place_id").append("<option value='"+id+"'>"+name+"</option>");
|
||||
|
||||
}
|
||||
}
|
||||
});
|
||||
});
|
||||
});
|
||||
</script>
|
||||
{% endmacro %}
|
||||
@ -1,6 +1,31 @@
|
||||
{% extends "layout.html" %}
|
||||
{% from "_macros.html" import render_datepicker_js, render_field_with_errors, render_field %}
|
||||
{% from "_macros.html" import render_event_organizer_places_header, render_datepicker_js, render_field_with_errors, render_field %}
|
||||
{% block header %}
|
||||
<script>
|
||||
$( function() {
|
||||
|
||||
function update_place_container(value) {
|
||||
switch (value) {
|
||||
case '1':
|
||||
$('#existing_place_container').show();
|
||||
$('#new_place_container').hide();
|
||||
break;
|
||||
case '2':
|
||||
$('#existing_place_container').hide();
|
||||
$('#new_place_container').show();
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
$('input[type=radio][name=event_place_choice]').on('change', function() {
|
||||
update_place_container($(this).val());
|
||||
});
|
||||
|
||||
update_place_container($('input[type=radio][name=event_place_choice]:checked').val());
|
||||
});
|
||||
</script>
|
||||
{{ render_event_organizer_places_header() }}
|
||||
{% endblock %}
|
||||
{% block content %}
|
||||
|
||||
<h1>{{ _('Create event') }}</h1>
|
||||
@ -43,16 +68,28 @@
|
||||
{{ _('Place') }} *
|
||||
</div>
|
||||
<div class="card-body">
|
||||
{{ render_field_with_errors(form.place_id, class="autocomplete w-100") }}
|
||||
|
||||
<div class="my-4">
|
||||
{{ form.event_place.hidden_tag() }}
|
||||
{{ render_field_with_errors(form.event_place.form.name) }}
|
||||
<div>
|
||||
{% for subfield in form.event_place_choice %}
|
||||
<div class="form-check form-check-inline">
|
||||
<td>{{ subfield(class="form-check-input") }}</td>
|
||||
<td>{{ subfield.label(class="form-check-label") }}</td>
|
||||
</div>
|
||||
{% endfor %}
|
||||
</div>
|
||||
|
||||
{{ form.event_place.form.location.hidden_tag() }}
|
||||
{{ render_field_with_errors(form.event_place.form.location.street) }}
|
||||
{{ render_field_with_errors(form.event_place.form.location.postalCode) }}
|
||||
{{ render_field_with_errors(form.event_place.form.location.city) }}
|
||||
<div class="my-4" id="existing_place_container">
|
||||
{{ render_field_with_errors(form.event_place_id, class="autocomplete w-100") }}
|
||||
</div>
|
||||
|
||||
<div class="my-4" id="new_place_container">
|
||||
{{ form.new_event_place.hidden_tag() }}
|
||||
{{ render_field_with_errors(form.new_event_place.form.name) }}
|
||||
{{ 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.public, style="width: fit-content; flex: initial;") }}
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
@ -1,6 +1,8 @@
|
||||
{% extends "layout.html" %}
|
||||
{% from "_macros.html" import render_datepicker_js, render_field_with_errors, render_field %}
|
||||
|
||||
{% from "_macros.html" import render_event_organizer_places_header, render_datepicker_js, render_field_with_errors, render_field %}
|
||||
{% block header %}
|
||||
{{ render_event_organizer_places_header() }}
|
||||
{% endblock %}
|
||||
{% block content %}
|
||||
|
||||
<h1>{{ _('Update event') }}</h1>
|
||||
@ -53,17 +55,7 @@
|
||||
{{ _('Place') }}
|
||||
</div>
|
||||
<div class="card-body">
|
||||
{{ render_field_with_errors(form.place_id, class="autocomplete w-100") }}
|
||||
|
||||
<div class="my-4">
|
||||
{{ form.event_place.hidden_tag() }}
|
||||
{{ render_field_with_errors(form.event_place.form.name) }}
|
||||
|
||||
{{ form.event_place.form.location.hidden_tag() }}
|
||||
{{ render_field_with_errors(form.event_place.form.location.street) }}
|
||||
{{ render_field_with_errors(form.event_place.form.location.postalCode) }}
|
||||
{{ render_field_with_errors(form.event_place.form.location.city) }}
|
||||
</div>
|
||||
{{ render_field_with_errors(form.event_place_id, class="autocomplete w-100") }}
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
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: 2020-07-30 17:45+0200\n"
|
||||
"POT-Creation-Date: 2020-07-31 08:33+0200\n"
|
||||
"PO-Revision-Date: 2020-06-07 18:51+0200\n"
|
||||
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"Language: de\n"
|
||||
@ -102,60 +102,60 @@ msgstr "Sonstiges"
|
||||
msgid "Typical Age range"
|
||||
msgstr "Typische Altersspanne"
|
||||
|
||||
#: app.py:713
|
||||
#: app.py:718
|
||||
#, python-format
|
||||
msgid "Error in the %s field - %s"
|
||||
msgstr "Fehler im Feld %s: %s"
|
||||
|
||||
#: app.py:765
|
||||
#: app.py:770
|
||||
msgid "Admin unit successfully updated"
|
||||
msgstr "Verwaltungseinheit erfolgreich aktualisiert"
|
||||
|
||||
#: app.py:823
|
||||
#: app.py:828
|
||||
msgid "Organization successfully created"
|
||||
msgstr "Organisation erfolgreich erstellt"
|
||||
|
||||
#: app.py:844
|
||||
#: app.py:849
|
||||
msgid "Organization successfully updated"
|
||||
msgstr "Organisation erfolgreich aktualisiert"
|
||||
|
||||
#: app.py:904 app.py:1349
|
||||
#: app.py:909 app.py:1380
|
||||
msgid "Place successfully updated"
|
||||
msgstr "Ort erfolgreich aktualisiert"
|
||||
|
||||
#: app.py:928 app.py:1378
|
||||
#: app.py:933 app.py:1409
|
||||
msgid "Place successfully created"
|
||||
msgstr "Ort erfolgreich erstellt"
|
||||
|
||||
#: app.py:1032
|
||||
#: app.py:1063
|
||||
msgid "Event successfully created"
|
||||
msgstr "Veranstaltung erfolgreich erstellt"
|
||||
|
||||
#: app.py:1067
|
||||
#: app.py:1098
|
||||
msgid "Event successfully updated"
|
||||
msgstr "Veranstaltung erfolgreich aktualisiert"
|
||||
|
||||
#: app.py:1090
|
||||
#: app.py:1121
|
||||
msgid "Entered name does not match event name"
|
||||
msgstr "Der eingegebene Name entspricht nicht dem Namen der Veranstaltung"
|
||||
|
||||
#: app.py:1095
|
||||
#: app.py:1126
|
||||
msgid "Event successfully deleted"
|
||||
msgstr "Veranstaltung erfolgreich gelöscht"
|
||||
|
||||
#: app.py:1265
|
||||
#: app.py:1296
|
||||
msgid "Organizer successfully created"
|
||||
msgstr "Veranstalter erfolgreich erstellt"
|
||||
|
||||
#: app.py:1287
|
||||
#: app.py:1318
|
||||
msgid "Organizer successfully updated"
|
||||
msgstr "Veranstalter erfolgreich aktualisiert"
|
||||
|
||||
#: app.py:1309
|
||||
#: app.py:1340
|
||||
msgid "Entered name does not match organizer name"
|
||||
msgstr "Der eingegebene Name entspricht nicht dem Namen des Veranstalters"
|
||||
|
||||
#: app.py:1314
|
||||
#: app.py:1345
|
||||
msgid "Organizer successfully deleted"
|
||||
msgstr "Veranstalter erfolgreich gelöscht"
|
||||
|
||||
@ -193,15 +193,15 @@ msgstr "Breitengrad"
|
||||
msgid "Longitude"
|
||||
msgstr "Längengrad"
|
||||
|
||||
#: forms/admin_unit.py:19 forms/event.py:35 forms/event.py:97
|
||||
#: forms/event_place.py:21 forms/organization.py:19 forms/organizer.py:19
|
||||
#: forms/organizer.py:41 forms/place.py:19 templates/_macros.html:98
|
||||
#: templates/admin/admin_units.html:18 templates/admin_unit/list.html:13
|
||||
#: templates/admin_unit/read.html:66 templates/admin_unit/read.html:88
|
||||
#: templates/event/list.html:17 templates/event_place/list.html:19
|
||||
#: templates/organization/list.html:19 templates/organization/read.html:64
|
||||
#: templates/place/list.html:19 templates/profile.html:15
|
||||
#: templates/profile.html:37
|
||||
#: forms/admin_unit.py:19 forms/event.py:17 forms/event.py:35
|
||||
#: forms/event.py:107 forms/event_place.py:21 forms/organization.py:19
|
||||
#: forms/organizer.py:19 forms/organizer.py:41 forms/place.py:19
|
||||
#: templates/_macros.html:98 templates/admin/admin_units.html:18
|
||||
#: templates/admin_unit/list.html:13 templates/admin_unit/read.html:66
|
||||
#: templates/admin_unit/read.html:88 templates/event/list.html:17
|
||||
#: templates/event_place/list.html:19 templates/organization/list.html:19
|
||||
#: templates/organization/read.html:64 templates/place/list.html:19
|
||||
#: templates/profile.html:15 templates/profile.html:37
|
||||
msgid "Name"
|
||||
msgstr "Name"
|
||||
|
||||
@ -213,23 +213,23 @@ msgstr "Kurzname"
|
||||
msgid "Short name must contain only letters numbers or underscore"
|
||||
msgstr "Der Kurzname darf nur Buchstaben, Nummern und Unterstriche enthalten"
|
||||
|
||||
#: forms/admin_unit.py:21 forms/event.py:28 forms/event.py:36
|
||||
#: forms/admin_unit.py:21 forms/event.py:29 forms/event.py:36
|
||||
#: forms/event_place.py:22 forms/organization.py:20 forms/organizer.py:20
|
||||
#: forms/place.py:20
|
||||
msgid "Link URL"
|
||||
msgstr "Link URL"
|
||||
|
||||
#: forms/admin_unit.py:22 forms/event.py:29 forms/organization.py:21
|
||||
#: forms/admin_unit.py:22 forms/event.py:30 forms/organization.py:21
|
||||
#: forms/organizer.py:21 templates/_macros.html:204
|
||||
msgid "Email"
|
||||
msgstr "Email"
|
||||
|
||||
#: forms/admin_unit.py:23 forms/event.py:30 forms/organization.py:22
|
||||
#: forms/admin_unit.py:23 forms/event.py:31 forms/organization.py:22
|
||||
#: forms/organizer.py:22 templates/_macros.html:219
|
||||
msgid "Phone"
|
||||
msgstr "Telefon"
|
||||
|
||||
#: forms/admin_unit.py:24 forms/event.py:31 forms/organization.py:23
|
||||
#: forms/admin_unit.py:24 forms/event.py:32 forms/organization.py:23
|
||||
#: forms/organizer.py:23 templates/_macros.html:227
|
||||
msgid "Fax"
|
||||
msgstr "Fax"
|
||||
@ -238,7 +238,7 @@ msgstr "Fax"
|
||||
msgid "Logo"
|
||||
msgstr "Logo"
|
||||
|
||||
#: forms/admin_unit.py:25 forms/event.py:67 forms/event_place.py:23
|
||||
#: forms/admin_unit.py:25 forms/event.py:64 forms/event_place.py:23
|
||||
#: forms/organization.py:24 forms/organizer.py:24 forms/place.py:21
|
||||
msgid "Images only!"
|
||||
msgstr "Nur Fotos!"
|
||||
@ -252,19 +252,14 @@ msgstr "Verwaltungseinheit erstellen"
|
||||
msgid "Update admin unit"
|
||||
msgstr "Verwaltungseinheit aktualisieren"
|
||||
|
||||
#: forms/event.py:17
|
||||
msgid "New place"
|
||||
msgstr "Neuer Ort"
|
||||
#: forms/event.py:19 forms/event_place.py:26
|
||||
msgid "Other organizers can use this location"
|
||||
msgstr "Andere Veranstalter können diesen Ort verwenden"
|
||||
|
||||
#: forms/event.py:27
|
||||
#: forms/event.py:28
|
||||
msgid "Organizator"
|
||||
msgstr "Organisator"
|
||||
|
||||
#: forms/event.py:34 templates/event/create.html:6 templates/home.html:11
|
||||
#: templates/manage/events.html:36 templates/manage/organizers.html:22
|
||||
msgid "Create event"
|
||||
msgstr "Veranstaltung erstellen"
|
||||
|
||||
#: forms/event.py:37
|
||||
msgid "Ticket Link URL"
|
||||
msgstr "Ticket Link"
|
||||
@ -293,121 +288,140 @@ msgstr "Vorheriges Startdatum"
|
||||
msgid "Tags"
|
||||
msgstr "Stichworte"
|
||||
|
||||
#: forms/event.py:47 forms/event.py:102 forms/event_place.py:33
|
||||
#: templates/_macros.html:356 templates/event/create.html:34
|
||||
#: templates/event/update.html:44 templates/manage/events.html:18
|
||||
#: forms/event.py:45 forms/event.py:112 forms/event_place.py:33
|
||||
#: templates/_macros.html:356 templates/event/create.html:59
|
||||
#: templates/event/update.html:46 templates/manage/events.html:18
|
||||
#: templates/manage/places.html:18 templates/organizer/create.html:16
|
||||
#: templates/organizer/delete.html:13 templates/organizer/update.html:16
|
||||
msgid "Organizer"
|
||||
msgstr "Veranstalter"
|
||||
|
||||
#: forms/event.py:48
|
||||
msgid "Existing place"
|
||||
msgstr "Existierender Ort"
|
||||
|
||||
#: forms/event.py:49 templates/_macros.html:292
|
||||
#: forms/event.py:46 templates/_macros.html:292
|
||||
msgid "Category"
|
||||
msgstr "Kategorie"
|
||||
|
||||
#: forms/event.py:50 forms/organization.py:37 templates/_macros.html:371
|
||||
#: templates/admin_unit/update.html:16 templates/event/update.html:99
|
||||
#: forms/event.py:47 forms/organization.py:37 templates/_macros.html:371
|
||||
#: templates/admin_unit/update.html:16 templates/event/update.html:91
|
||||
#: templates/organization/create.html:58
|
||||
msgid "Admin unit"
|
||||
msgstr "Verwaltungseinheit"
|
||||
|
||||
#: forms/event.py:52
|
||||
#: forms/event.py:49
|
||||
msgid "Kid friendly"
|
||||
msgstr "Für Kinder geeignet"
|
||||
|
||||
#: forms/event.py:53
|
||||
#: forms/event.py:50
|
||||
msgid "Accessible for free"
|
||||
msgstr "Kostenlos zugänglich"
|
||||
|
||||
#: forms/event.py:54
|
||||
#: forms/event.py:51
|
||||
msgid "Typical Age from"
|
||||
msgstr "Typisches Alter von"
|
||||
|
||||
#: forms/event.py:55
|
||||
#: forms/event.py:52
|
||||
msgid "Typical Age to"
|
||||
msgstr "Typisches Alter bis"
|
||||
|
||||
#: forms/event.py:57
|
||||
#: forms/event.py:54
|
||||
msgid "Target group origin"
|
||||
msgstr "Für Touristen/Einwohner geeignet"
|
||||
|
||||
#: forms/event.py:58
|
||||
#: forms/event.py:55
|
||||
msgid "EventTargetGroupOrigin.both"
|
||||
msgstr "Für Touristen und Einwohner"
|
||||
|
||||
#: forms/event.py:59
|
||||
#: forms/event.py:56
|
||||
msgid "EventTargetGroupOrigin.tourist"
|
||||
msgstr "Hauptsächlich für Touristen"
|
||||
|
||||
#: forms/event.py:60
|
||||
#: forms/event.py:57
|
||||
msgid "EventTargetGroupOrigin.resident"
|
||||
msgstr "Hauptsächlich für Einwohner"
|
||||
|
||||
#: forms/event.py:62
|
||||
#: forms/event.py:59
|
||||
msgid "Attendance mode"
|
||||
msgstr "Teilnahme"
|
||||
|
||||
#: forms/event.py:63
|
||||
#: forms/event.py:60
|
||||
msgid "EventAttendanceMode.offline"
|
||||
msgstr "Offline"
|
||||
|
||||
#: forms/event.py:64
|
||||
#: forms/event.py:61
|
||||
msgid "EventAttendanceMode.online"
|
||||
msgstr "Online"
|
||||
|
||||
#: forms/event.py:65
|
||||
#: forms/event.py:62
|
||||
msgid "EventAttendanceMode.mixed"
|
||||
msgstr "Online und offline"
|
||||
|
||||
#: forms/event.py:67 forms/event_place.py:23 forms/place.py:21
|
||||
#: forms/event.py:64 forms/event_place.py:23 forms/place.py:21
|
||||
msgid "Photo"
|
||||
msgstr "Foto"
|
||||
|
||||
#: forms/event.py:79
|
||||
#: forms/event.py:67 forms/event.py:68 forms/event.py:94
|
||||
#: templates/_macros.html:306 templates/event/create.html:68
|
||||
#: templates/event/update.html:55 templates/event_place/create.html:20
|
||||
#: templates/event_place/update.html:20 templates/place/create.html:20
|
||||
#: templates/place/update.html:20
|
||||
msgid "Place"
|
||||
msgstr "Ort"
|
||||
|
||||
#: forms/event.py:67
|
||||
msgid "Select existing place"
|
||||
msgstr "Vorhandenen Ort auswählen"
|
||||
|
||||
#: forms/event.py:67
|
||||
msgid "Enter new place"
|
||||
msgstr "Neuen Ort eingeben"
|
||||
|
||||
#: forms/event.py:71 templates/event/create.html:31 templates/home.html:11
|
||||
#: templates/manage/events.html:36 templates/manage/organizers.html:22
|
||||
msgid "Create event"
|
||||
msgstr "Veranstaltung erstellen"
|
||||
|
||||
#: forms/event.py:87
|
||||
msgid "Select existing place or enter new place"
|
||||
msgstr "Existierenden Ort wählen oder neuen Ort eingeben"
|
||||
|
||||
#: forms/event.py:86 templates/event/update.html:34
|
||||
#: forms/event.py:96 templates/event/update.html:36
|
||||
msgid "Status"
|
||||
msgstr "Status"
|
||||
|
||||
#: forms/event.py:87
|
||||
#: forms/event.py:97
|
||||
msgid "EventStatus.scheduled"
|
||||
msgstr "Geplant"
|
||||
|
||||
#: forms/event.py:88
|
||||
#: forms/event.py:98
|
||||
msgid "EventStatus.cancelled"
|
||||
msgstr "Abgesagt"
|
||||
|
||||
#: forms/event.py:89
|
||||
#: forms/event.py:99
|
||||
msgid "EventStatus.movedOnline"
|
||||
msgstr "Online verschoben"
|
||||
|
||||
#: forms/event.py:90
|
||||
#: forms/event.py:100
|
||||
msgid "EventStatus.postponed"
|
||||
msgstr "Verschoben"
|
||||
|
||||
#: forms/event.py:91
|
||||
#: forms/event.py:101
|
||||
msgid "EventStatus.rescheduled"
|
||||
msgstr "Neu angesetzt"
|
||||
|
||||
#: forms/event.py:93 templates/event/read.html:24 templates/event/update.html:6
|
||||
#: forms/event.py:103 templates/event/read.html:24
|
||||
#: templates/event/update.html:8
|
||||
msgid "Update event"
|
||||
msgstr "Veranstaltung aktualisieren"
|
||||
|
||||
#: forms/event.py:96 templates/event/delete.html:6 templates/event/read.html:25
|
||||
#: forms/event.py:106 templates/event/delete.html:6
|
||||
#: templates/event/read.html:25
|
||||
msgid "Delete event"
|
||||
msgstr "Veranstaltung löschen"
|
||||
|
||||
#: forms/event.py:100
|
||||
#: forms/event.py:110
|
||||
msgid "Find events"
|
||||
msgstr "Veranstaltungen finden"
|
||||
|
||||
#: forms/event.py:101 templates/manage/events.html:25
|
||||
#: forms/event.py:111 templates/manage/events.html:25
|
||||
#: templates/widget/event_date/list.html:31
|
||||
msgid "Keyword"
|
||||
msgstr "Stichwort"
|
||||
@ -419,10 +433,6 @@ msgstr "Stichwort"
|
||||
msgid "Create place"
|
||||
msgstr "Ort hinzufügen"
|
||||
|
||||
#: forms/event_place.py:26
|
||||
msgid "Other organizers can use this location"
|
||||
msgstr "Andere Veranstalter können diesen Ort verwenden"
|
||||
|
||||
#: forms/event_place.py:29 forms/place.py:26 templates/event_place/read.html:12
|
||||
#: templates/event_place/update.html:10 templates/place/read.html:12
|
||||
#: templates/place/update.html:10
|
||||
@ -496,8 +506,8 @@ msgstr "Auf Google Maps anzeigen"
|
||||
msgid "Link"
|
||||
msgstr "Link"
|
||||
|
||||
#: templates/_macros.html:255 templates/event/create.html:13
|
||||
#: templates/event/delete.html:13 templates/event/update.html:13
|
||||
#: templates/_macros.html:255 templates/event/create.html:38
|
||||
#: templates/event/delete.html:13 templates/event/update.html:15
|
||||
msgid "Event"
|
||||
msgstr "Veranstaltung"
|
||||
|
||||
@ -506,13 +516,6 @@ msgstr "Veranstaltung"
|
||||
msgid "%(count)d event dates"
|
||||
msgstr "%(count)d Termine"
|
||||
|
||||
#: templates/_macros.html:306 templates/event/create.html:43
|
||||
#: templates/event/update.html:53 templates/event_place/create.html:20
|
||||
#: templates/event_place/update.html:20 templates/place/create.html:20
|
||||
#: templates/place/update.html:20
|
||||
msgid "Place"
|
||||
msgstr "Ort"
|
||||
|
||||
#: templates/_macros.html:326 templates/_macros.html:346
|
||||
msgid "Show directions"
|
||||
msgstr "Anreise planen"
|
||||
@ -599,8 +602,8 @@ msgstr "Mitglieder"
|
||||
msgid "You are a member of this admin unit."
|
||||
msgstr "Du bist Mitglied dieser Verwaltungseinheit"
|
||||
|
||||
#: templates/admin_unit/update.html:44 templates/event/create.html:75
|
||||
#: templates/event/update.html:84 templates/event_place/create.html:44
|
||||
#: templates/admin_unit/update.html:44 templates/event/create.html:112
|
||||
#: templates/event/update.html:76 templates/event_place/create.html:44
|
||||
#: templates/event_place/update.html:44 templates/organization/create.html:45
|
||||
#: templates/organization/update.html:45 templates/organizer/create.html:43
|
||||
#: templates/organizer/update.html:43 templates/place/create.html:44
|
||||
@ -608,11 +611,11 @@ msgstr "Du bist Mitglied dieser Verwaltungseinheit"
|
||||
msgid "Additional information"
|
||||
msgstr "Zusätzliche Informationen"
|
||||
|
||||
#: templates/event/create.html:23 templates/event/update.html:23
|
||||
#: templates/event/create.html:48 templates/event/update.html:25
|
||||
msgid "Event date"
|
||||
msgstr "Termin"
|
||||
|
||||
#: templates/event/create.html:63 templates/event/update.html:72
|
||||
#: templates/event/create.html:100 templates/event/update.html:64
|
||||
msgid "Target group"
|
||||
msgstr "Zielgruppe"
|
||||
|
||||
@ -718,3 +721,9 @@ msgstr "bis"
|
||||
#~ msgid "Contact"
|
||||
#~ msgstr "Kontakt"
|
||||
|
||||
#~ msgid "New place"
|
||||
#~ msgstr "Neuer Ort"
|
||||
|
||||
#~ msgid "Existing place"
|
||||
#~ msgstr "Existierender Ort"
|
||||
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user