From dc64f843fac78b2238934292da4a8aa1be08d71f Mon Sep 17 00:00:00 2001 From: Daniel Grams Date: Thu, 17 Sep 2020 15:04:41 +0200 Subject: [PATCH] =?UTF-8?q?Men=C3=BCpunkt=20Alle=20Events=20mit=20Filter?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app.py | 34 +++++++++++++++++++++++++-- templates/event_date/list.html | 32 +++++++++++++++++++++++-- templates/layout.html | 1 + templates/widget/event_date/list.html | 2 +- 4 files changed, 64 insertions(+), 5 deletions(-) diff --git a/app.py b/app.py index adedbdb..cf55588 100644 --- a/app.py +++ b/app.py @@ -1093,9 +1093,39 @@ def event_review(event_id): @app.route("/eventdates") def event_dates(): - dates = EventDate.query.filter(EventDate.start >= today).order_by(EventDate.start).all() + date_from = today + date_to = date_set_end_of_day(today + relativedelta(months=12)) + date_from_str = form_input_from_date(date_from) + date_to_str = form_input_from_date(date_to) + keyword = '' + + if 'date_from' in request.args: + date_from_str = request.args['date_from'] + date_from = form_input_to_date(date_from_str) + + if 'date_to' in request.args: + date_to_str = request.args['date_to'] + date_to = form_input_to_date(date_to_str) + + if 'keyword' in request.args: + keyword = request.args['keyword'] + + date_filter = and_(EventDate.start >= date_from, EventDate.start < date_to) + + if keyword: + like_keyword = '%' + keyword + '%' + event_filter = and_(Event.verified, or_(Event.name.ilike(like_keyword), Event.description.ilike(like_keyword), Event.tags.ilike(like_keyword))) + else: + event_filter = Event.verified + + dates = EventDate.query.join(Event).filter(date_filter).filter(event_filter).order_by(EventDate.start).paginate() + return render_template('event_date/list.html', - dates=dates) + date_from_str=date_from_str, + date_to_str=date_to_str, + keyword=keyword, + dates=dates.items, + pagination=get_pagination_urls(dates)) @app.route('/eventdate/') def event_date(id): diff --git a/templates/event_date/list.html b/templates/event_date/list.html index 84483f8..cdcc492 100644 --- a/templates/event_date/list.html +++ b/templates/event_date/list.html @@ -1,5 +1,5 @@ {% extends "layout.html" %} -{% from "_macros.html" import render_event_status_pill, render_ooa, render_place, render_events_sub_menu %} +{% from "_macros.html" import render_pagination, render_event_status_pill, render_ooa, render_place, render_events_sub_menu %} {% block title %} {{ _('Event Dates') }} {% endblock %} @@ -7,6 +7,32 @@

{{ _('Event Dates') }}

+
+ +
+
+ {{ _('From') }} +
+ +
+ +
+
+ {{ _('to') }} +
+ +
+ +
+
+ {{ _('Keyword') }} +
+ +
+ + +
+ {% for date in dates %}
{% if date.event.photo_id %} @@ -16,10 +42,12 @@
{{ date.event.name }}{{ render_event_status_pill(date.event) }}
{{ date.start | datetimeformat('short') }}

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

- {{ date.event.event_place.name }} + {{ date.event.event_place.name }}
{% endfor %} + {{ render_pagination(pagination) }} + {% endblock %} \ No newline at end of file diff --git a/templates/layout.html b/templates/layout.html index ed9e0b3..c4d14a8 100644 --- a/templates/layout.html +++ b/templates/layout.html @@ -52,6 +52,7 @@ {{ _('Manage') }} {% endif %} + {{ _('Events') }} {{ _('Example') }} {{ _('Developer') }} diff --git a/templates/widget/event_date/list.html b/templates/widget/event_date/list.html index e1486d3..236e6cd 100644 --- a/templates/widget/event_date/list.html +++ b/templates/widget/event_date/list.html @@ -10,7 +10,7 @@ {% endblock %} {% block content %} -
+