Merge pull request #417 from eventcally/issues/416

Organization event filter #416
This commit is contained in:
Daniel Grams 2023-04-06 22:56:57 +02:00 committed by GitHub
commit 1a60a95081
9 changed files with 167 additions and 64 deletions

View File

@ -37,7 +37,7 @@ describe("Manage", () => {
cy.get("#toggle-search-btn").click();
cy.get('.dropdown-toggle.btn-link').click();
cy.get('a:contains(Zu Liste)').click();
cy.get('a:contains(Zu Liste)').click({force: true});
cy.get(".btn:contains(OK)").should("be.visible");
cy.screenshot("lists");

View File

@ -8,7 +8,7 @@ msgid ""
msgstr ""
"Project-Id-Version: PROJECT VERSION\n"
"Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
"POT-Creation-Date: 2023-04-06 14:02+0200\n"
"POT-Creation-Date: 2023-04-06 20:34+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"
@ -571,7 +571,7 @@ msgstr ""
msgid "100 km"
msgstr ""
#: project/forms/event.py:38
#: project/forms/event.py:38 project/templates/manage/events.html:85
msgid "Start"
msgstr ""
@ -819,6 +819,7 @@ msgstr ""
#: project/templates/event_place/create.html:31
#: project/templates/event_place/delete.html:13
#: project/templates/event_place/update.html:31
#: project/templates/manage/events.html:88
msgid "Place"
msgstr ""
@ -835,6 +836,7 @@ msgstr ""
#: project/forms/event_suggestion.py:60 project/templates/_macros.html:475
#: project/templates/_macros.html:638 project/templates/event/create.html:253
#: project/templates/event/update.html:156
#: project/templates/manage/events.html:87
#: project/templates/organizer/create.html:27
#: project/templates/organizer/delete.html:13
#: project/templates/organizer/update.html:27
@ -1249,6 +1251,7 @@ msgstr ""
#: project/templates/event/actions.html:25
#: project/templates/event/create.html:230
#: project/templates/event/update.html:122
#: project/templates/manage/events.html:86
#: project/templates/widget/event_suggestion/create.html:229
msgid "Event"
msgstr ""
@ -1365,7 +1368,7 @@ msgstr ""
msgid "Edit event"
msgstr ""
#: project/templates/_macros.html:1232 project/templates/manage/events.html:66
#: project/templates/_macros.html:1232 project/templates/manage/events.html:114
msgid "More"
msgstr ""
@ -1438,7 +1441,7 @@ msgstr ""
#: project/templates/layout.html:152 project/templates/layout.html:200
#: project/templates/manage/events.html:6
#: project/templates/manage/events.html:42
#: project/templates/manage/events.html:43
#: project/templates/manage/events_vue.html:4
msgid "Events"
msgstr ""
@ -1484,7 +1487,7 @@ msgstr ""
#: project/templates/event/create.html:5
#: project/templates/event/create.html:221 project/templates/layout.html:207
#: project/templates/manage/events.html:45
#: project/templates/manage/events.html:44
#: project/templates/manage/organizers.html:22
msgid "Create event"
msgstr ""
@ -1610,7 +1613,7 @@ msgid "Users"
msgstr ""
#: project/templates/admin/admin_units.html:33
#: project/templates/manage/events.html:59
#: project/templates/manage/events.html:99
#: project/templates/manage/organizers.html:21
#: project/templates/manage/references_incoming.html:19
#: project/templates/manage/references_outgoing.html:19
@ -1619,7 +1622,7 @@ msgstr ""
#: project/templates/admin/admin_units.html:34
#: project/templates/admin/users.html:34
#: project/templates/manage/events.html:60
#: project/templates/manage/events.html:100
#: project/templates/manage/members.html:35
#: project/templates/manage/organizers.html:23
#: project/templates/manage/places.html:27
@ -1631,7 +1634,7 @@ msgstr ""
#: project/templates/admin/admin_units.html:35
#: project/templates/admin/users.html:35
#: project/templates/manage/events.html:61
#: project/templates/manage/events.html:101
#: project/templates/manage/members.html:21
#: project/templates/manage/members.html:36
#: project/templates/manage/organizers.html:24
@ -1791,6 +1794,7 @@ msgid "Actions for event"
msgstr ""
#: project/templates/event/actions.html:32
#: project/templates/manage/events.html:105
msgid "Request reference"
msgstr ""
@ -1800,6 +1804,7 @@ msgid "Ask another organization to reference your event on their calendar."
msgstr ""
#: project/templates/event/actions.html:38
#: project/templates/manage/events.html:107
#: project/templates/manage/references_incoming.html:10
msgid "Reference event"
msgstr ""
@ -1810,7 +1815,7 @@ msgid "Reference this event on your organization's calendar."
msgstr ""
#: project/templates/event/actions.html:44
#: project/templates/manage/events.html:64
#: project/templates/manage/events.html:111
msgid "Add to list"
msgstr ""
@ -1833,7 +1838,7 @@ msgid "List all events of %(admin_unit_name)s"
msgstr ""
#: project/templates/event/actions.html:74
#: project/templates/manage/events.html:79
#: project/templates/manage/events.html:131
msgid "Add event to list"
msgstr ""
@ -1954,7 +1959,19 @@ msgstr ""
msgid "Verify organization"
msgstr ""
#: project/templates/manage/events.html:62
#: project/templates/manage/events.html:76
msgid "More filters"
msgstr ""
#: project/templates/manage/events.html:89
msgid "Number of references"
msgstr ""
#: project/templates/manage/events.html:89
msgid "Number of reference requests."
msgstr ""
#: project/templates/manage/events.html:102
msgid "Duplicate"
msgstr ""

View File

@ -444,5 +444,5 @@ class FindEventForm(FlaskForm):
submit = SubmitField(lazy_gettext("Find events"))
def is_submitted(self):
def is_submitted(self): # pragma: no cover
return "submit" in request.args

View File

@ -1,6 +1,6 @@
{% extends "layout_vue.html" %}
{% set active_id = "events" %}
{% from "_macros.html" import render_event_in_list, render_manage_form_styles, render_manage_form_scripts, render_event_dates_filter_form, render_event_warning_pills, render_pagination, render_event_date, render_field_with_errors, render_event_organizer %}
{% from "_macros.html" import render_field, render_event_dates_date_field, render_event_in_list, render_manage_form_styles, render_manage_form_scripts, render_event_dates_filter_form, render_event_warning_pills, render_pagination, render_event_date, render_field_with_errors, render_event_organizer %}
{%- block title -%}
{{ _('Events') }}
@ -39,38 +39,90 @@ var vue_app_data = { eventId: 0 };
</div>
{% endif %}
<h1>{{ _('Events') }} <button id="toggle-search-btn" type="button" class="btn btn-outline-secondary mx-2" data-toggle="collapse" data-target="#search_form" aria-expanded="{% if form.is_submitted() %}true{% else %}false{% endif %}"><i class="fa fa-search"></i></button></h1>
<h1 class="mb-0">
{{ _('Events') }}
<a class="btn btn-outline-secondary btn-sm m-1" href="{{ url_for('event_create_for_admin_unit_id', id=admin_unit.id) }}" role="button"><i class="fa fa-plus"></i> {{ _('Create event') }}</a>
</h1>
<div class="my-4">
<a class="btn btn-outline-secondary my-1" href="{{ url_for('event_create_for_admin_unit_id', id=admin_unit.id) }}" role="button"><i class="fa fa-plus"></i> {{ _('Create event') }}</a>
</div>
<form action="" id="filter_form" class="form" method="GET" autocomplete="off">
{{ form.hidden_tag() }}
<div class="my-4 {% if form.is_submitted() %}{% else %}collapse{% endif %}" id="search_form">
{{ render_event_dates_filter_form(form) }}
</div>
{{ render_event_dates_date_field(form.date_from, form.date_to) }}
{% if form.keyword %}
{{ render_field_with_errors(form.keyword, formrow="1") }}
{% endif %}
{% set form_collapsed = not form.category_id.data and not form.organizer_id.data and not form.event_place_id.data %}
<div id="extended_search_form" class="{% if form_collapsed %}collapse{% else %}show{% endif %}">
{% if form.category_id %}
{{ render_field_with_errors(form.category_id, formrow="1") }}
{% endif %}
{% if form.organizer_id and form.organizer_id.type != "HiddenField" %}
{{ render_field_with_errors(form.organizer_id, formrow="1") }}
{% endif %}
{% if form.event_place_id and form.event_place_id.type != "HiddenField" %}
{{ render_field_with_errors(form.event_place_id, formrow="1") }}
{% endif %}
<ul class="list-group">
{% for event in events %}
<li class="list-group-item">
{{ render_event_in_list(event) }}
<div class="dropdown d-inline-block">
<button class="btn btn-link dropdown-toggle" type="button" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">{{ event.name }}</button>
<div class="dropdown-menu">
<a class="dropdown-item" href="{{ url_for('event', event_id=event.id) }}">{{ _('View') }}</a>
<a class="dropdown-item" href="{{ url_for('event_update', event_id=event.id) }}">{{ _('Edit') }}</a>
<a class="dropdown-item" href="{{ url_for('event_delete', event_id=event.id) }}">{{ _('Delete') }}&hellip;</a>
<a class="dropdown-item" href="{{ url_for('event_create_for_admin_unit_id', id=event.admin_unit_id, template_id=event.id) }}">{{ _('Duplicate') }}&hellip;</a>
{% if can_add_to_list %}
<a class="dropdown-item" onclick="vue_app_data.eventId = '{{ event.id }}'; app.$bvModal.show('add-event-to-list-modal'); return false;" href="#">{{ _('Add to list') }}&hellip;</a>
{% endif %}
<a class="dropdown-item" href="{{ url_for('event_actions', event_id=event.id) }}">{{ _('More') }}&hellip;</a>
</div>
</div>
{{ render_event_warning_pills(event) }}
<small>{{ event.organizer.name }}</small>
</li>
{% endfor %}
</ul>
<p>
{{ form.submit(class="btn btn-primary")|safe }}
<button id="toggle-search-btn" type="button" class="btn btn-secondary mx-2" data-toggle="collapse" data-target="#extended_search_form" aria-expanded="{% if form_collapsed %}false{% else %}true{% endif %}">{{ _('More filters') }}</button>
</p>
</form>
</div>
<div class="table-responsive">
<table class="table table-sm table-bordered table-hover table-striped">
<thead>
<tr>
<th>{{ _('Start') }}</th>
<th>{{ _('Event') }}</th>
<th>{{ _('Organizer') }}</th>
<th>{{ _('Place') }}</th>
<th><i class="fa fa-info" data-toggle="tooltip" title="{{ _('Number of references') }} / {{ _('Number of reference requests.') }}"></i></th>
</tr>
</thead>
<tbody>
{% for event in events %}
<tr>
<td class="fit">{{ render_event_in_list(event) }}</td>
<td>
<button class="btn btn-link dropdown-toggle p-0 text-wrap text-left" type="button" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">{{ event.name }}</button>
<div class="dropdown-menu dropdown-menu-right">
<a class="dropdown-item" href="{{ url_for('event', event_id=event.id) }}">{{ _('View') }}</a>
<a class="dropdown-item" href="{{ url_for('event_update', event_id=event.id) }}">{{ _('Edit') }}</a>
<a class="dropdown-item" href="{{ url_for('event_delete', event_id=event.id) }}">{{ _('Delete') }}&hellip;</a>
<a class="dropdown-item" href="{{ url_for('event_create_for_admin_unit_id', id=event.admin_unit_id, template_id=event.id) }}">{{ _('Duplicate') }}&hellip;</a>
<div class="dropdown-divider"></div>
{% if event.admin_unit_id == current_admin_unit.id %}
<a class="dropdown-item" href="{{ url_for('event_reference_request_create', event_id=event.id) }}">{{ _('Request reference') }}&hellip;</a>
{% else %}
<a class="dropdown-item" href="{{ url_for('event_reference_create', event_id=event.id) }}">{{ _('Reference event') }}&hellip;</a>
{% endif %}
{% if can_add_to_list %}
<div class="dropdown-divider"></div>
<a class="dropdown-item" onclick="vue_app_data.eventId = '{{ event.id }}'; app.$bvModal.show('add-event-to-list-modal'); return false;" href="#">{{ _('Add to list') }}&hellip;</a>
{% endif %}
<div class="dropdown-divider"></div>
<a class="dropdown-item" href="{{ url_for('event_actions', event_id=event.id) }}">{{ _('More') }}&hellip;</a>
</div>
{{ render_event_warning_pills(event) }}
</td>
<td>{{ event.organizer.name }}</td>
<td>{{ event.event_place.name }}</td>
<td class="fit">{{ event.references|length }}/{{ event.reference_requests|length }}</td>
</tr>
{% endfor %}
</tbody>
</table>
</div>
<div class="my-4">{{ render_pagination(pagination) }}</div>

View File

@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: PROJECT VERSION\n"
"Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
"POT-Creation-Date: 2023-04-06 14:02+0200\n"
"POT-Creation-Date: 2023-04-06 20:34+0200\n"
"PO-Revision-Date: 2020-06-07 18:51+0200\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language: de\n"
@ -594,7 +594,7 @@ msgstr "50 km"
msgid "100 km"
msgstr "100 km"
#: project/forms/event.py:38
#: project/forms/event.py:38 project/templates/manage/events.html:85
msgid "Start"
msgstr "Beginn"
@ -859,6 +859,7 @@ msgstr "Ungültiger Mitveranstalter."
#: project/templates/event_place/create.html:31
#: project/templates/event_place/delete.html:13
#: project/templates/event_place/update.html:31
#: project/templates/manage/events.html:88
msgid "Place"
msgstr "Ort"
@ -875,6 +876,7 @@ msgstr "Neuen Ort eingeben"
#: project/forms/event_suggestion.py:60 project/templates/_macros.html:475
#: project/templates/_macros.html:638 project/templates/event/create.html:253
#: project/templates/event/update.html:156
#: project/templates/manage/events.html:87
#: project/templates/organizer/create.html:27
#: project/templates/organizer/delete.html:13
#: project/templates/organizer/update.html:27
@ -1304,6 +1306,7 @@ msgstr "Zuletzt aktualisiert am %(updated_at)s."
#: project/templates/event/actions.html:25
#: project/templates/event/create.html:230
#: project/templates/event/update.html:122
#: project/templates/manage/events.html:86
#: project/templates/widget/event_suggestion/create.html:229
msgid "Event"
msgstr "Veranstaltung"
@ -1422,7 +1425,7 @@ msgstr "Bild-Datei auswählen"
msgid "Edit event"
msgstr "Veranstaltung bearbeiten"
#: project/templates/_macros.html:1232 project/templates/manage/events.html:66
#: project/templates/_macros.html:1232 project/templates/manage/events.html:114
msgid "More"
msgstr "Mehr"
@ -1495,7 +1498,7 @@ msgstr "Features"
#: project/templates/layout.html:152 project/templates/layout.html:200
#: project/templates/manage/events.html:6
#: project/templates/manage/events.html:42
#: project/templates/manage/events.html:43
#: project/templates/manage/events_vue.html:4
msgid "Events"
msgstr "Veranstaltungen"
@ -1541,7 +1544,7 @@ msgstr "Veranstaltungen anzeigen"
#: project/templates/event/create.html:5
#: project/templates/event/create.html:221 project/templates/layout.html:207
#: project/templates/manage/events.html:45
#: project/templates/manage/events.html:44
#: project/templates/manage/organizers.html:22
msgid "Create event"
msgstr "Veranstaltung erstellen"
@ -1667,7 +1670,7 @@ msgid "Users"
msgstr "Nutzer"
#: project/templates/admin/admin_units.html:33
#: project/templates/manage/events.html:59
#: project/templates/manage/events.html:99
#: project/templates/manage/organizers.html:21
#: project/templates/manage/references_incoming.html:19
#: project/templates/manage/references_outgoing.html:19
@ -1676,7 +1679,7 @@ msgstr "Anzeigen"
#: project/templates/admin/admin_units.html:34
#: project/templates/admin/users.html:34
#: project/templates/manage/events.html:60
#: project/templates/manage/events.html:100
#: project/templates/manage/members.html:35
#: project/templates/manage/organizers.html:23
#: project/templates/manage/places.html:27
@ -1688,7 +1691,7 @@ msgstr "Bearbeiten"
#: project/templates/admin/admin_units.html:35
#: project/templates/admin/users.html:35
#: project/templates/manage/events.html:61
#: project/templates/manage/events.html:101
#: project/templates/manage/members.html:21
#: project/templates/manage/members.html:36
#: project/templates/manage/organizers.html:24
@ -1850,6 +1853,7 @@ msgid "Actions for event"
msgstr "Aktionen für die Veranstaltung"
#: project/templates/event/actions.html:32
#: project/templates/manage/events.html:105
msgid "Request reference"
msgstr "Empfehlung anfragen"
@ -1861,6 +1865,7 @@ msgstr ""
"empfehlen."
#: project/templates/event/actions.html:38
#: project/templates/manage/events.html:107
#: project/templates/manage/references_incoming.html:10
msgid "Reference event"
msgstr "Veranstaltung empfehlen"
@ -1871,7 +1876,7 @@ msgid "Reference this event on your organization's calendar."
msgstr "Empfehle diese Veranstaltung im Kalender deiner Organisation."
#: project/templates/event/actions.html:44
#: project/templates/manage/events.html:64
#: project/templates/manage/events.html:111
msgid "Add to list"
msgstr "Zu Liste hinzufügen"
@ -1894,7 +1899,7 @@ msgid "List all events of %(admin_unit_name)s"
msgstr "Zeige alle Veranstaltungen von %(admin_unit_name)s"
#: project/templates/event/actions.html:74
#: project/templates/manage/events.html:79
#: project/templates/manage/events.html:131
msgid "Add event to list"
msgstr "Veranstaltung zu Liste hinzufügen"
@ -2020,7 +2025,19 @@ msgstr ""
msgid "Verify organization"
msgstr "Organisation verifizieren"
#: project/templates/manage/events.html:62
#: project/templates/manage/events.html:76
msgid "More filters"
msgstr "Mehr Filter"
#: project/templates/manage/events.html:89
msgid "Number of references"
msgstr "Anzahl an Empfehlungen"
#: project/templates/manage/events.html:89
msgid "Number of reference requests."
msgstr "Anzahl an Empfehlungsanfragen"
#: project/templates/manage/events.html:102
msgid "Duplicate"
msgstr "Duplizieren"

View File

@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: PROJECT VERSION\n"
"Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
"POT-Creation-Date: 2023-04-06 14:02+0200\n"
"POT-Creation-Date: 2023-04-06 20:34+0200\n"
"PO-Revision-Date: 2021-04-30 15:04+0200\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language: en\n"
@ -572,7 +572,7 @@ msgstr ""
msgid "100 km"
msgstr ""
#: project/forms/event.py:38
#: project/forms/event.py:38 project/templates/manage/events.html:85
msgid "Start"
msgstr ""
@ -820,6 +820,7 @@ msgstr ""
#: project/templates/event_place/create.html:31
#: project/templates/event_place/delete.html:13
#: project/templates/event_place/update.html:31
#: project/templates/manage/events.html:88
msgid "Place"
msgstr ""
@ -836,6 +837,7 @@ msgstr ""
#: project/forms/event_suggestion.py:60 project/templates/_macros.html:475
#: project/templates/_macros.html:638 project/templates/event/create.html:253
#: project/templates/event/update.html:156
#: project/templates/manage/events.html:87
#: project/templates/organizer/create.html:27
#: project/templates/organizer/delete.html:13
#: project/templates/organizer/update.html:27
@ -1257,6 +1259,7 @@ msgstr ""
#: project/templates/event/actions.html:25
#: project/templates/event/create.html:230
#: project/templates/event/update.html:122
#: project/templates/manage/events.html:86
#: project/templates/widget/event_suggestion/create.html:229
msgid "Event"
msgstr ""
@ -1373,7 +1376,7 @@ msgstr ""
msgid "Edit event"
msgstr ""
#: project/templates/_macros.html:1232 project/templates/manage/events.html:66
#: project/templates/_macros.html:1232 project/templates/manage/events.html:114
msgid "More"
msgstr ""
@ -1446,7 +1449,7 @@ msgstr ""
#: project/templates/layout.html:152 project/templates/layout.html:200
#: project/templates/manage/events.html:6
#: project/templates/manage/events.html:42
#: project/templates/manage/events.html:43
#: project/templates/manage/events_vue.html:4
msgid "Events"
msgstr ""
@ -1492,7 +1495,7 @@ msgstr ""
#: project/templates/event/create.html:5
#: project/templates/event/create.html:221 project/templates/layout.html:207
#: project/templates/manage/events.html:45
#: project/templates/manage/events.html:44
#: project/templates/manage/organizers.html:22
msgid "Create event"
msgstr ""
@ -1618,7 +1621,7 @@ msgid "Users"
msgstr ""
#: project/templates/admin/admin_units.html:33
#: project/templates/manage/events.html:59
#: project/templates/manage/events.html:99
#: project/templates/manage/organizers.html:21
#: project/templates/manage/references_incoming.html:19
#: project/templates/manage/references_outgoing.html:19
@ -1627,7 +1630,7 @@ msgstr ""
#: project/templates/admin/admin_units.html:34
#: project/templates/admin/users.html:34
#: project/templates/manage/events.html:60
#: project/templates/manage/events.html:100
#: project/templates/manage/members.html:35
#: project/templates/manage/organizers.html:23
#: project/templates/manage/places.html:27
@ -1639,7 +1642,7 @@ msgstr ""
#: project/templates/admin/admin_units.html:35
#: project/templates/admin/users.html:35
#: project/templates/manage/events.html:61
#: project/templates/manage/events.html:101
#: project/templates/manage/members.html:21
#: project/templates/manage/members.html:36
#: project/templates/manage/organizers.html:24
@ -1799,6 +1802,7 @@ msgid "Actions for event"
msgstr ""
#: project/templates/event/actions.html:32
#: project/templates/manage/events.html:105
msgid "Request reference"
msgstr ""
@ -1808,6 +1812,7 @@ msgid "Ask another organization to reference your event on their calendar."
msgstr ""
#: project/templates/event/actions.html:38
#: project/templates/manage/events.html:107
#: project/templates/manage/references_incoming.html:10
msgid "Reference event"
msgstr ""
@ -1818,7 +1823,7 @@ msgid "Reference this event on your organization's calendar."
msgstr ""
#: project/templates/event/actions.html:44
#: project/templates/manage/events.html:64
#: project/templates/manage/events.html:111
msgid "Add to list"
msgstr ""
@ -1841,7 +1846,7 @@ msgid "List all events of %(admin_unit_name)s"
msgstr ""
#: project/templates/event/actions.html:74
#: project/templates/manage/events.html:79
#: project/templates/manage/events.html:131
msgid "Add event to list"
msgstr ""
@ -1962,7 +1967,19 @@ msgstr ""
msgid "Verify organization"
msgstr ""
#: project/templates/manage/events.html:62
#: project/templates/manage/events.html:76
msgid "More filters"
msgstr ""
#: project/templates/manage/events.html:89
msgid "Number of references"
msgstr ""
#: project/templates/manage/events.html:89
msgid "Number of reference requests."
msgstr ""
#: project/templates/manage/events.html:102
msgid "Duplicate"
msgstr ""

View File

@ -179,7 +179,7 @@ def manage_admin_unit_events(id):
params.admin_unit_id = admin_unit.id
params.can_read_private_events = True
events = get_events_query(params).paginate()
events = get_events_query(params).paginate(per_page=50)
return render_template(
"manage/events.html",
admin_unit=admin_unit,