diff --git a/app.py b/app.py index da641ce..5e8a24c 100644 --- a/app.py +++ b/app.py @@ -966,9 +966,9 @@ def place(place_id): @app.route("/events") def events(): - dates = EventDate.query.filter(EventDate.start >= today).order_by(EventDate.start).all() + events = Event.query.all() return render_template('events.html', - dates=dates, + events=events, user_can_create_event=can_create_event(), user_can_list_event_suggestion=can_list_event_suggestion()) @@ -987,6 +987,17 @@ def event(event_id): return render_template('event.html', event=event, user_can_verify_event=user_can_verify_event) +@app.route("/eventdates") +def event_dates(): + dates = EventDate.query.filter(EventDate.start >= today).order_by(EventDate.start).all() + return render_template('event_date/list.html', + dates=dates) + +@app.route('/eventdate/', methods=('GET', 'POST')) +def event_date(id): + event_date = EventDate.query.get_or_404(id) + return render_template('event_date/read.html', event_date=event_date) + from forms.event import CreateEventForm from forms.event_suggestion import CreateEventSuggestionForm diff --git a/models.py b/models.py index d101fa3..a13bad9 100644 --- a/models.py +++ b/models.py @@ -246,31 +246,7 @@ class Event(db.Model, TrackableMixin): recurrence_rule = Column(UnicodeText()) dates = relationship('EventDate', backref=backref('event', lazy=False), cascade="all, delete-orphan") - # wiederkehrende Dates sind zeitlich eingeschränkt - # beim event müsste man dann auch nochmal start_time (nullable=False) und end_time machen. - #keywords/tags = Column(String(255)) oder liste? - #kid_friendly: bool - # target_group: - # age_from: int - # age_to: int - # mainly_for_tourists: bool - # - # - # = kärnten = - # eventSchedules: RepeatFrequency (wiederkehrende Beschreibung, keine konkreten Daten) - # allDay: bool - # status: Scheduled (Default), Cancelled, MovedOnline, Postponed, Rescheduled - # previousStartDates: DateTime (see status) - # attendanceMode: Offline, Online, Mixed - # isAccessibleForFree: bool - # typicalAgeRange: string (9-99) -# (Multiple Events möglich, wiederholend oder frei, dann aber mit endzeit) -# Facebook Limitations: -# An event can't last longer than a day -# An event can't span more than 52 weeks -# Each event can have a max of 52 instances -# Once the event has begun, you can't add instances totaling more than 52 weeks after the initial start date class EventDate(db.Model): __tablename__ = 'eventdate' id = Column(Integer(), primary_key=True) diff --git a/templates/_macros.html b/templates/_macros.html index be56fb9..aac3066 100644 --- a/templates/_macros.html +++ b/templates/_macros.html @@ -159,6 +159,37 @@ {% macro render_image(image_id) %} {% if image_id %} - + {% endif %} +{% endmacro %} + +{% macro render_event_props(event, date) %} +
+
+ {{ event.name }} +
+ +
+
{{ date.start | datetimeformat }}
+
{{ render_place(event.place) }}
+ {% if event.verified %} +
{{ _('Verified') }}
+ {% endif %} + + {% if event.photo_id %} +
{{ render_image(event.photo_id) }}
+ {% endif %} + +
{{ event.description }}
+ +
+ {{ render_link_prop(event.external_link) }} + {{ render_link_prop(event.ticket_link) }} + {% if event.category_id %} +
{{ event.category | event_category_name }}
+ {% endif %} +
{{ render_ooa_with_link(event.host) }}
+
+
+
{% endmacro %} \ No newline at end of file diff --git a/templates/event.html b/templates/event.html index 7dafd0a..514a61c 100644 --- a/templates/event.html +++ b/templates/event.html @@ -1,11 +1,16 @@ {% extends "layout.html" %} -{% from "_macros.html" import render_image, render_ooa_with_link, render_place, render_link_prop %} +{% from "_macros.html" import render_event_props, render_image, render_ooa_with_link, render_place, render_link_prop %} {% block title %} {{ event.name }} {% endblock %} {% block content %} -

{{ event.name }}

+ {% if user_can_verify_event %}
@@ -21,35 +26,19 @@
{% endif %} -
-
{{ event.dates[0].start | datetimeformat }}
-
{{ render_place(event.place) }}
- {% if event.verified %} -
{{ _('Verified') }}
- {% endif %} -
+ {{ render_event_props(event, event.dates[0]) }} - {% if event.photo_id %} -
{{ render_image(event.photo_id) }}
- {% endif %} - - {% if event.category_id %} -
-
{{ event.category | event_category_name }}
+ {% if event.dates|length > 1 %} +
+
+ {{ _('Event Dates') }} +
+
+ {% for date in event.dates %} + {{ date.start | datetimeformat('short') }} + {% endfor %} +
{% endif %} -
{{ event.description }}
- - {% if event.external_link or event.ticket_link %} -
- {{ render_link_prop(event.external_link) }} - {{ render_link_prop(event.ticket_link) }} -
- {% endif %} - -
-
{{ render_ooa_with_link(event.host) }}
-
- {% endblock %} \ No newline at end of file diff --git a/templates/event_date/list.html b/templates/event_date/list.html new file mode 100644 index 0000000..cd250a5 --- /dev/null +++ b/templates/event_date/list.html @@ -0,0 +1,25 @@ +{% extends "layout.html" %} +{% from "_macros.html" import render_ooa, render_place, render_events_sub_menu %} +{% block title %} +{{ _('Event Dates') }} +{% endblock %} +{% block content %} + +

{{ _('Event Dates') }}

+ + {% for date in dates %} +
+ {% if date.event.photo_id %} + + {% endif %} +
+
{{ date.event.name }}
+
{{ date.start | datetimeformat('short') }}
+

{{ date.event.description | truncate(100) }}

+ {{ date.event.place.name }} + +
+
+ {% endfor %} + +{% endblock %} \ No newline at end of file diff --git a/templates/event_date/read.html b/templates/event_date/read.html new file mode 100644 index 0000000..4eb518a --- /dev/null +++ b/templates/event_date/read.html @@ -0,0 +1,19 @@ +{% extends "layout.html" %} +{% from "_macros.html" import render_event_props, render_image, render_ooa_with_link, render_place, render_link_prop %} +{% set event = event_date.event %} +{% block title %} +{{ event.name }} +{% endblock %} +{% block content %} + + + + {{ render_event_props(event, event_date) }} + +{% endblock %} \ No newline at end of file diff --git a/templates/events.html b/templates/events.html index 17b0b7c..ee6192a 100644 --- a/templates/events.html +++ b/templates/events.html @@ -9,19 +9,32 @@ {{ render_events_sub_menu(user_can_create_event, user_can_list_event_suggestion) }} - {% for date in dates %} -
- {% if date.event.photo_id %} - - {% endif %} -
-
{{ date.event.name }}
-
{{ date.start | datetimeformat('short') }}
-

{{ date.event.description | truncate(100) }}

- {{ date.event.place.name }} - -
-
- {% endfor %} +
+ + + + + + + + + + + {% for event in events %} + + + + + + + {% endfor %} + +
{{ _('Date') }}{{ _('Name') }}{{ _('Host') }}{{ _('Location') }}
{{ event.dates[0].start | datetimeformat('short') }} + {{ event.name }} + {% if event.verified %} + + {% endif %} + {{ render_ooa(event.host) }}{{ render_place(event.place) }}
+ {% endblock %} \ No newline at end of file diff --git a/templates/home.html b/templates/home.html index 2450eb4..8dd91db 100644 --- a/templates/home.html +++ b/templates/home.html @@ -7,8 +7,8 @@ Prototyp

{{ _('Hi there!') }}

diff --git a/templates/layout.html b/templates/layout.html index ae07669..bc82032 100644 --- a/templates/layout.html +++ b/templates/layout.html @@ -57,6 +57,7 @@