From ce97702bf0f1727ffc79d7a1264bf771976a3f8e Mon Sep 17 00:00:00 2001 From: Daniel Grams Date: Sat, 8 Apr 2023 13:23:48 +0200 Subject: [PATCH 1/4] Organization organizers and places list #420 --- messages.pot | 50 +++++++++----- project/models/event.py | 18 +++-- project/templates/manage/organizers.html | 65 ++++++++++++------ project/templates/manage/places.html | 60 +++++++++------- .../translations/de/LC_MESSAGES/messages.mo | Bin 37477 -> 37590 bytes .../translations/de/LC_MESSAGES/messages.po | 55 ++++++++++----- .../translations/en/LC_MESSAGES/messages.mo | Bin 4077 -> 4077 bytes .../translations/en/LC_MESSAGES/messages.po | 53 +++++++++----- project/views/manage.py | 4 +- 9 files changed, 205 insertions(+), 100 deletions(-) diff --git a/messages.pot b/messages.pot index 52ecef3..032c419 100644 --- a/messages.pot +++ b/messages.pot @@ -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 22:42+0200\n" +"POT-Creation-Date: 2023-04-08 13:20+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -250,6 +250,7 @@ msgstr "" #: project/templates/_macros.html:237 project/templates/_macros.html:1568 #: project/templates/admin/admin.html:27 project/templates/admin/email.html:4 #: project/templates/admin/email.html:66 project/templates/admin/users.html:19 +#: project/templates/manage/organizers.html:21 msgid "Email" msgstr "" @@ -312,6 +313,8 @@ msgstr "" #: project/forms/reference_request.py:23 #: project/templates/admin/admin_units.html:19 #: project/templates/event_place/list.html:19 +#: project/templates/manage/organizers.html:18 +#: project/templates/manage/places.html:18 #: project/templates/oauth2_client/list.html:25 msgid "Name" msgstr "" @@ -384,13 +387,14 @@ msgstr "" #: project/forms/admin_unit.py:47 project/forms/event.py:106 #: project/forms/event.py:124 project/forms/event_place.py:26 -#: project/forms/organizer.py:26 +#: project/forms/organizer.py:26 project/templates/manage/organizers.html:21 msgid "Link URL" msgstr "" #: project/forms/admin_unit.py:49 project/forms/event.py:108 #: project/forms/event_suggestion.py:31 project/forms/organizer.py:28 #: project/templates/_macros.html:290 +#: project/templates/manage/organizers.html:20 msgid "Phone" msgstr "" @@ -400,6 +404,7 @@ msgid "Fax" msgstr "" #: project/forms/admin_unit.py:51 project/forms/organizer.py:30 +#: project/templates/manage/organizers.html:22 msgid "Logo" msgstr "" @@ -756,6 +761,7 @@ msgid "Choose how people can attend the event." msgstr "" #: project/forms/event.py:225 project/forms/event_place.py:27 +#: project/templates/manage/places.html:21 #: project/templates/widget/event_suggestion/create.html:258 msgid "Photo" msgstr "" @@ -968,6 +974,8 @@ msgstr "" #: project/templates/admin_unit/update.html:39 #: project/templates/event_place/create.html:40 #: project/templates/event_place/update.html:40 +#: project/templates/manage/organizers.html:19 +#: project/templates/manage/places.html:19 #: project/templates/organizer/create.html:36 #: project/templates/organizer/update.html:36 msgid "Location" @@ -985,7 +993,7 @@ msgstr "" #: project/forms/event_place.py:41 project/templates/event_place/create.html:5 #: project/templates/event_place/create.html:21 #: project/templates/event_place/list.html:11 -#: project/templates/manage/places.html:18 +#: project/templates/manage/places.html:11 msgid "Create place" msgstr "" @@ -1086,7 +1094,7 @@ msgstr "" msgid "Revoke OAuth2 token" msgstr "" -#: project/forms/organizer.py:43 project/templates/manage/organizers.html:12 +#: project/forms/organizer.py:43 project/templates/manage/organizers.html:11 #: project/templates/organizer/create.html:5 #: project/templates/organizer/create.html:21 msgid "Create organizer" @@ -1298,8 +1306,8 @@ msgstr "" #: project/templates/admin/users.html:34 #: project/templates/manage/events.html:100 #: project/templates/manage/members.html:35 -#: project/templates/manage/organizers.html:23 -#: project/templates/manage/places.html:27 +#: project/templates/manage/organizers.html:33 +#: project/templates/manage/places.html:31 #: project/templates/manage/references_incoming.html:20 #: project/templates/oauth2_client/list.html:34 #: project/templates/oauth2_client/read.html:17 @@ -1534,7 +1542,7 @@ msgstr "" #: project/templates/event/create.html:5 #: project/templates/event/create.html:221 project/templates/layout.html:207 #: project/templates/manage/events.html:44 -#: project/templates/manage/organizers.html:22 +#: project/templates/manage/organizers.html:38 msgid "Create event" msgstr "" @@ -1578,7 +1586,7 @@ msgid "Outgoing reference requests" msgstr "" #: project/templates/layout.html:245 project/templates/manage/organizers.html:5 -#: project/templates/manage/organizers.html:9 +#: project/templates/manage/organizers.html:10 #: project/templates/organizer/main.html:4 msgid "Organizers" msgstr "" @@ -1586,7 +1594,7 @@ msgstr "" #: project/templates/event_place/list.html:3 #: project/templates/event_place/list.html:7 project/templates/layout.html:246 #: project/templates/manage/places.html:5 -#: project/templates/manage/places.html:9 +#: project/templates/manage/places.html:10 msgid "Places" msgstr "" @@ -1660,7 +1668,7 @@ msgstr "" #: project/templates/admin/admin_units.html:33 #: project/templates/manage/events.html:99 -#: project/templates/manage/organizers.html:21 +#: project/templates/manage/organizers.html:32 #: project/templates/manage/references_incoming.html:19 #: project/templates/manage/references_outgoing.html:19 msgid "View" @@ -1671,8 +1679,8 @@ msgstr "" #: project/templates/manage/events.html:101 #: project/templates/manage/members.html:21 #: project/templates/manage/members.html:36 -#: project/templates/manage/organizers.html:24 -#: project/templates/manage/places.html:28 +#: project/templates/manage/organizers.html:34 +#: project/templates/manage/places.html:32 #: project/templates/manage/references_incoming.html:21 #: project/templates/oauth2_client/list.html:35 msgid "Delete" @@ -1990,8 +1998,18 @@ msgstr "" msgid "Duplicate" msgstr "" -#: project/templates/manage/organizers.html:25 -msgid "Assistents" +#: project/templates/manage/organizers.html:23 +#: project/templates/manage/places.html:22 +msgid "Number of events" +msgstr "" + +#: project/templates/manage/organizers.html:36 +#: project/templates/manage/places.html:34 +msgid "View events" +msgstr "" + +#: project/templates/manage/places.html:20 +msgid "Coordinates" msgstr "" #: project/templates/manage/reference_requests_incoming.html:19 @@ -2244,11 +2262,11 @@ msgstr "" msgid "Event successfully deleted" msgstr "" -#: project/views/event.py:408 +#: project/views/event.py:407 msgid "Referenced event changed" msgstr "" -#: project/views/event.py:431 +#: project/views/event.py:430 msgid "New event report" msgstr "" diff --git a/project/models/event.py b/project/models/event.py index adb438c..abec5ec 100644 --- a/project/models/event.py +++ b/project/models/event.py @@ -36,11 +36,21 @@ class Event(db.Model, TrackableMixin, EventMixin): organizer_id = db.Column( db.Integer, db.ForeignKey("eventorganizer.id"), nullable=False ) - organizer = db.relationship("EventOrganizer", uselist=False) - event_place_id = db.Column( - db.Integer, db.ForeignKey("eventplace.id"), nullable=False + organizer = db.relationship( + "EventOrganizer", + uselist=False, + backref=backref("events", lazy=True), + ) + event_place_id = db.Column( + db.Integer, + db.ForeignKey("eventplace.id"), + nullable=False, + ) + event_place = db.relationship( + "EventPlace", + uselist=False, + backref=backref("events", lazy=True), ) - event_place = db.relationship("EventPlace", uselist=False) categories = relationship("EventCategory", secondary="event_eventcategories") co_organizers = relationship( diff --git a/project/templates/manage/organizers.html b/project/templates/manage/organizers.html index 5ecf04b..480bc5b 100644 --- a/project/templates/manage/organizers.html +++ b/project/templates/manage/organizers.html @@ -1,34 +1,57 @@ {% extends "layout.html" %} {% set active_id = "organizers" %} -{% from "_macros.html" import render_pagination, render_event_organizer %} +{% from "_macros.html" import render_pagination, render_location %} {%- block title -%} {{ _('Organizers') }} {%- endblock -%} {% block content %} -

{{ _('Organizers') }}

+

+ {{ _('Organizers') }} + {{ _('Create organizer') }} +

-
- {{ _('Create organizer') }} +
+ + + + + + + + + + + + + {% for organizer in organizers %} + + + + + + + + + {% endfor %} + +
{{ _('Name') }}{{ _('Location') }}{{ _('Phone') }}{{ _('Email') }} / {{ _('Link URL') }}{{ _('Logo') }}
+ + + {{ render_location(organizer.location) }}{{ organizer.phone or '' }} +
{{ organizer.email or '' }}
+
{{ organizer.url or '' }}
+
{% if organizer.logo %}{% endif %}{{ organizer.events|length }}
- -
{{ render_pagination(pagination) }}
{% endblock %} \ No newline at end of file diff --git a/project/templates/manage/places.html b/project/templates/manage/places.html index 43d8eef..fc0b62e 100644 --- a/project/templates/manage/places.html +++ b/project/templates/manage/places.html @@ -1,37 +1,49 @@ {% extends "layout.html" %} {% set active_id = "places" %} -{% from "_macros.html" import render_pagination, render_field_with_errors, render_event_organizer %} +{% from "_macros.html" import render_pagination, render_location %} {%- block title -%} {{ _('Places') }} {%- endblock -%} {% block content %} -

{{ _('Places') }}

+

+ {{ _('Places') }} + {{ _('Create place') }} +

-
-
- {{ form.hidden_tag() }} -
+
+ + + + + + + + + + + + {% for place in places %} + + + + + + + + {% endfor %} + +
{{ _('Name') }}{{ _('Location') }}{{ _('Photo') }}
+ + + {{ render_location(place.location) }}{% if place.location and place.location.coordinate %}{% endif %}{% if place.photo %}{% endif %}{{ place.events|length }}
- - - -
{{ render_pagination(pagination) }}
{% endblock %} \ No newline at end of file diff --git a/project/translations/de/LC_MESSAGES/messages.mo b/project/translations/de/LC_MESSAGES/messages.mo index 51e7277d84f8e22c22dc1dcb474b0509937989bf..eccad08a5f783371e3ef17ed042a52b54cafb5ea 100644 GIT binary patch delta 8478 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\n" "Language: de\n" @@ -251,6 +251,7 @@ msgstr "Nutzer löschen" #: project/templates/_macros.html:237 project/templates/_macros.html:1568 #: project/templates/admin/admin.html:27 project/templates/admin/email.html:4 #: project/templates/admin/email.html:66 project/templates/admin/users.html:19 +#: project/templates/manage/organizers.html:21 msgid "Email" msgstr "Email" @@ -321,6 +322,8 @@ msgstr "Organisation löschen" #: project/forms/reference_request.py:23 #: project/templates/admin/admin_units.html:19 #: project/templates/event_place/list.html:19 +#: project/templates/manage/organizers.html:18 +#: project/templates/manage/places.html:18 #: project/templates/oauth2_client/list.html:25 msgid "Name" msgstr "Name" @@ -396,13 +399,14 @@ msgstr "Der Kurzname darf nur Buchstaben, Nummern und Unterstriche enthalten" #: project/forms/admin_unit.py:47 project/forms/event.py:106 #: project/forms/event.py:124 project/forms/event_place.py:26 -#: project/forms/organizer.py:26 +#: project/forms/organizer.py:26 project/templates/manage/organizers.html:21 msgid "Link URL" msgstr "Link URL" #: project/forms/admin_unit.py:49 project/forms/event.py:108 #: project/forms/event_suggestion.py:31 project/forms/organizer.py:28 #: project/templates/_macros.html:290 +#: project/templates/manage/organizers.html:20 msgid "Phone" msgstr "Telefon" @@ -412,6 +416,7 @@ msgid "Fax" msgstr "Fax" #: project/forms/admin_unit.py:51 project/forms/organizer.py:30 +#: project/templates/manage/organizers.html:22 msgid "Logo" msgstr "Logo" @@ -788,6 +793,7 @@ msgid "Choose how people can attend the event." msgstr "Wähle aus, wie Personen an der Veranstaltung teilnehmen können." #: project/forms/event.py:225 project/forms/event_place.py:27 +#: project/templates/manage/places.html:21 #: project/templates/widget/event_suggestion/create.html:258 msgid "Photo" msgstr "Foto" @@ -1012,6 +1018,8 @@ msgstr "Veranstaltungen finden" #: project/templates/admin_unit/update.html:39 #: project/templates/event_place/create.html:40 #: project/templates/event_place/update.html:40 +#: project/templates/manage/organizers.html:19 +#: project/templates/manage/places.html:19 #: project/templates/organizer/create.html:36 #: project/templates/organizer/update.html:36 msgid "Location" @@ -1029,7 +1037,7 @@ msgstr "Finden" #: project/forms/event_place.py:41 project/templates/event_place/create.html:5 #: project/templates/event_place/create.html:21 #: project/templates/event_place/list.html:11 -#: project/templates/manage/places.html:18 +#: project/templates/manage/places.html:11 msgid "Create place" msgstr "Ort hinzufügen" @@ -1134,7 +1142,7 @@ msgstr "OAuth2 Client löschen" msgid "Revoke OAuth2 token" msgstr "OAuth2 Token widerrufen" -#: project/forms/organizer.py:43 project/templates/manage/organizers.html:12 +#: project/forms/organizer.py:43 project/templates/manage/organizers.html:11 #: project/templates/organizer/create.html:5 #: project/templates/organizer/create.html:21 msgid "Create organizer" @@ -1355,8 +1363,8 @@ msgstr "Merkzettel" #: project/templates/admin/users.html:34 #: project/templates/manage/events.html:100 #: project/templates/manage/members.html:35 -#: project/templates/manage/organizers.html:23 -#: project/templates/manage/places.html:27 +#: project/templates/manage/organizers.html:33 +#: project/templates/manage/places.html:31 #: project/templates/manage/references_incoming.html:20 #: project/templates/oauth2_client/list.html:34 #: project/templates/oauth2_client/read.html:17 @@ -1591,7 +1599,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:44 -#: project/templates/manage/organizers.html:22 +#: project/templates/manage/organizers.html:38 msgid "Create event" msgstr "Veranstaltung erstellen" @@ -1635,7 +1643,7 @@ msgid "Outgoing reference requests" msgstr "Ausgehende Empfehlungsanfragen" #: project/templates/layout.html:245 project/templates/manage/organizers.html:5 -#: project/templates/manage/organizers.html:9 +#: project/templates/manage/organizers.html:10 #: project/templates/organizer/main.html:4 msgid "Organizers" msgstr "Veranstalter" @@ -1643,7 +1651,7 @@ msgstr "Veranstalter" #: project/templates/event_place/list.html:3 #: project/templates/event_place/list.html:7 project/templates/layout.html:246 #: project/templates/manage/places.html:5 -#: project/templates/manage/places.html:9 +#: project/templates/manage/places.html:10 msgid "Places" msgstr "Orte" @@ -1717,7 +1725,7 @@ msgstr "Nutzer" #: project/templates/admin/admin_units.html:33 #: project/templates/manage/events.html:99 -#: project/templates/manage/organizers.html:21 +#: project/templates/manage/organizers.html:32 #: project/templates/manage/references_incoming.html:19 #: project/templates/manage/references_outgoing.html:19 msgid "View" @@ -1728,8 +1736,8 @@ msgstr "Anzeigen" #: project/templates/manage/events.html:101 #: project/templates/manage/members.html:21 #: project/templates/manage/members.html:36 -#: project/templates/manage/organizers.html:24 -#: project/templates/manage/places.html:28 +#: project/templates/manage/organizers.html:34 +#: project/templates/manage/places.html:32 #: project/templates/manage/references_incoming.html:21 #: project/templates/oauth2_client/list.html:35 msgid "Delete" @@ -2056,9 +2064,19 @@ msgstr "Anzahl an Empfehlungsanfragen" msgid "Duplicate" msgstr "Duplizieren" -#: project/templates/manage/organizers.html:25 -msgid "Assistents" -msgstr "Assistenten" +#: project/templates/manage/organizers.html:23 +#: project/templates/manage/places.html:22 +msgid "Number of events" +msgstr "Anzahl an Veranstaltungen" + +#: project/templates/manage/organizers.html:36 +#: project/templates/manage/places.html:34 +msgid "View events" +msgstr "Veranstaltungen anzeigen" + +#: project/templates/manage/places.html:20 +msgid "Coordinates" +msgstr "Koordinaten" #: project/templates/manage/reference_requests_incoming.html:19 msgid "Review request" @@ -2315,11 +2333,11 @@ msgstr "Veranstaltung erfolgreich aktualisiert" msgid "Event successfully deleted" msgstr "Veranstaltung erfolgreich gelöscht" -#: project/views/event.py:408 +#: project/views/event.py:407 msgid "Referenced event changed" msgstr "Empfohlene Veranstaltung wurde geändert" -#: project/views/event.py:431 +#: project/views/event.py:430 msgid "New event report" msgstr "Neue Meldung zu einer Veranstaltung" @@ -2566,3 +2584,6 @@ msgstr "Neue Veranstaltung zu prüfen" #~ msgid "Veranstaltungen als iFrame einbetten" #~ msgstr "Veranstaltungen als iFrame einbetten" +#~ msgid "Assistents" +#~ msgstr "Assistenten" + diff --git a/project/translations/en/LC_MESSAGES/messages.mo b/project/translations/en/LC_MESSAGES/messages.mo index c0a285631e9d61b628c617b39961ea83f57de972..118997d2a4e92028f9fc48c71af7f41123aca2d5 100644 GIT binary patch delta 20 ccmaDW|5kp(Yfg3x1w&&iBZJMKIDfMO09Kp_$^ZZW delta 20 ccmaDW|5kp(Yfg4E1tTLX6Qj+aIDfMO09Ky|%m4rY diff --git a/project/translations/en/LC_MESSAGES/messages.po b/project/translations/en/LC_MESSAGES/messages.po index 2ad0859..fec493f 100644 --- a/project/translations/en/LC_MESSAGES/messages.po +++ b/project/translations/en/LC_MESSAGES/messages.po @@ -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 22:42+0200\n" +"POT-Creation-Date: 2023-04-08 13:20+0200\n" "PO-Revision-Date: 2021-04-30 15:04+0200\n" "Last-Translator: FULL NAME \n" "Language: en\n" @@ -251,6 +251,7 @@ msgstr "" #: project/templates/_macros.html:237 project/templates/_macros.html:1568 #: project/templates/admin/admin.html:27 project/templates/admin/email.html:4 #: project/templates/admin/email.html:66 project/templates/admin/users.html:19 +#: project/templates/manage/organizers.html:21 msgid "Email" msgstr "" @@ -313,6 +314,8 @@ msgstr "" #: project/forms/reference_request.py:23 #: project/templates/admin/admin_units.html:19 #: project/templates/event_place/list.html:19 +#: project/templates/manage/organizers.html:18 +#: project/templates/manage/places.html:18 #: project/templates/oauth2_client/list.html:25 msgid "Name" msgstr "" @@ -385,13 +388,14 @@ msgstr "" #: project/forms/admin_unit.py:47 project/forms/event.py:106 #: project/forms/event.py:124 project/forms/event_place.py:26 -#: project/forms/organizer.py:26 +#: project/forms/organizer.py:26 project/templates/manage/organizers.html:21 msgid "Link URL" msgstr "" #: project/forms/admin_unit.py:49 project/forms/event.py:108 #: project/forms/event_suggestion.py:31 project/forms/organizer.py:28 #: project/templates/_macros.html:290 +#: project/templates/manage/organizers.html:20 msgid "Phone" msgstr "" @@ -401,6 +405,7 @@ msgid "Fax" msgstr "" #: project/forms/admin_unit.py:51 project/forms/organizer.py:30 +#: project/templates/manage/organizers.html:22 msgid "Logo" msgstr "" @@ -757,6 +762,7 @@ msgid "Choose how people can attend the event." msgstr "" #: project/forms/event.py:225 project/forms/event_place.py:27 +#: project/templates/manage/places.html:21 #: project/templates/widget/event_suggestion/create.html:258 msgid "Photo" msgstr "" @@ -969,6 +975,8 @@ msgstr "" #: project/templates/admin_unit/update.html:39 #: project/templates/event_place/create.html:40 #: project/templates/event_place/update.html:40 +#: project/templates/manage/organizers.html:19 +#: project/templates/manage/places.html:19 #: project/templates/organizer/create.html:36 #: project/templates/organizer/update.html:36 msgid "Location" @@ -986,7 +994,7 @@ msgstr "" #: project/forms/event_place.py:41 project/templates/event_place/create.html:5 #: project/templates/event_place/create.html:21 #: project/templates/event_place/list.html:11 -#: project/templates/manage/places.html:18 +#: project/templates/manage/places.html:11 msgid "Create place" msgstr "" @@ -1087,7 +1095,7 @@ msgstr "" msgid "Revoke OAuth2 token" msgstr "" -#: project/forms/organizer.py:43 project/templates/manage/organizers.html:12 +#: project/forms/organizer.py:43 project/templates/manage/organizers.html:11 #: project/templates/organizer/create.html:5 #: project/templates/organizer/create.html:21 msgid "Create organizer" @@ -1306,8 +1314,8 @@ msgstr "" #: project/templates/admin/users.html:34 #: project/templates/manage/events.html:100 #: project/templates/manage/members.html:35 -#: project/templates/manage/organizers.html:23 -#: project/templates/manage/places.html:27 +#: project/templates/manage/organizers.html:33 +#: project/templates/manage/places.html:31 #: project/templates/manage/references_incoming.html:20 #: project/templates/oauth2_client/list.html:34 #: project/templates/oauth2_client/read.html:17 @@ -1542,7 +1550,7 @@ msgstr "" #: project/templates/event/create.html:5 #: project/templates/event/create.html:221 project/templates/layout.html:207 #: project/templates/manage/events.html:44 -#: project/templates/manage/organizers.html:22 +#: project/templates/manage/organizers.html:38 msgid "Create event" msgstr "" @@ -1586,7 +1594,7 @@ msgid "Outgoing reference requests" msgstr "" #: project/templates/layout.html:245 project/templates/manage/organizers.html:5 -#: project/templates/manage/organizers.html:9 +#: project/templates/manage/organizers.html:10 #: project/templates/organizer/main.html:4 msgid "Organizers" msgstr "" @@ -1594,7 +1602,7 @@ msgstr "" #: project/templates/event_place/list.html:3 #: project/templates/event_place/list.html:7 project/templates/layout.html:246 #: project/templates/manage/places.html:5 -#: project/templates/manage/places.html:9 +#: project/templates/manage/places.html:10 msgid "Places" msgstr "" @@ -1668,7 +1676,7 @@ msgstr "" #: project/templates/admin/admin_units.html:33 #: project/templates/manage/events.html:99 -#: project/templates/manage/organizers.html:21 +#: project/templates/manage/organizers.html:32 #: project/templates/manage/references_incoming.html:19 #: project/templates/manage/references_outgoing.html:19 msgid "View" @@ -1679,8 +1687,8 @@ msgstr "" #: project/templates/manage/events.html:101 #: project/templates/manage/members.html:21 #: project/templates/manage/members.html:36 -#: project/templates/manage/organizers.html:24 -#: project/templates/manage/places.html:28 +#: project/templates/manage/organizers.html:34 +#: project/templates/manage/places.html:32 #: project/templates/manage/references_incoming.html:21 #: project/templates/oauth2_client/list.html:35 msgid "Delete" @@ -1998,8 +2006,18 @@ msgstr "" msgid "Duplicate" msgstr "" -#: project/templates/manage/organizers.html:25 -msgid "Assistents" +#: project/templates/manage/organizers.html:23 +#: project/templates/manage/places.html:22 +msgid "Number of events" +msgstr "" + +#: project/templates/manage/organizers.html:36 +#: project/templates/manage/places.html:34 +msgid "View events" +msgstr "" + +#: project/templates/manage/places.html:20 +msgid "Coordinates" msgstr "" #: project/templates/manage/reference_requests_incoming.html:19 @@ -2252,11 +2270,11 @@ msgstr "" msgid "Event successfully deleted" msgstr "" -#: project/views/event.py:408 +#: project/views/event.py:407 msgid "Referenced event changed" msgstr "" -#: project/views/event.py:431 +#: project/views/event.py:430 msgid "New event report" msgstr "" @@ -2488,3 +2506,6 @@ msgstr "" #~ msgid "Veranstaltungen als iFrame einbetten" #~ msgstr "" +#~ msgid "Assistents" +#~ msgstr "" + diff --git a/project/views/manage.py b/project/views/manage.py index c647544..b832046 100644 --- a/project/views/manage.py +++ b/project/views/manage.py @@ -198,7 +198,7 @@ def manage_admin_unit_organizers(id): organizers = ( EventOrganizer.query.filter(EventOrganizer.admin_unit_id == admin_unit.id) .order_by(func.lower(EventOrganizer.name)) - .paginate() + .paginate(per_page=50) ) return render_template( @@ -220,7 +220,7 @@ def manage_admin_unit_event_places(id): places = ( EventPlace.query.filter(EventPlace.admin_unit_id == admin_unit.id) .order_by(func.lower(EventPlace.name)) - .paginate() + .paginate(per_page=50) ) return render_template( "manage/places.html", From 8062264b60a0ec5026dfb4b0d82e392320a70251 Mon Sep 17 00:00:00 2001 From: Daniel Grams Date: Sat, 8 Apr 2023 13:44:25 +0200 Subject: [PATCH 2/4] Organization organizers and places list #420 --- project/api/organization/resources.py | 4 +++- tests/services/importer/test_event_importer.py | 10 ++++++---- 2 files changed, 9 insertions(+), 5 deletions(-) diff --git a/project/api/organization/resources.py b/project/api/organization/resources.py index 9e6c78a..e8d8467 100644 --- a/project/api/organization/resources.py +++ b/project/api/organization/resources.py @@ -196,7 +196,9 @@ class OrganizationEventImportResource(BaseResource): try: importer = EventImporter(admin_unit.id) - event = importer.load_event_from_url(import_request["url"]) + + with db.session.no_autoflush: + event = importer.load_event_from_url(import_request["url"]) except Exception: abort(422) diff --git a/tests/services/importer/test_event_importer.py b/tests/services/importer/test_event_importer.py index 7800292..a4a2c41 100644 --- a/tests/services/importer/test_event_importer.py +++ b/tests/services/importer/test_event_importer.py @@ -3,12 +3,12 @@ import pytest # Load more urls: # curl -o tests/services/importer/data/.html -def test_import(client, seeder, utils, app, shared_datadir, requests_mock): +def test_import(client, seeder, utils, app, db, shared_datadir, requests_mock): _, admin_unit_id = seeder.setup_base() seeder.upsert_event_place(admin_unit_id, "MINER'S ROCK") seeder.upsert_event_organizer(admin_unit_id, "MINER'S ROCK") - params = (utils, admin_unit_id, shared_datadir) + params = (utils, admin_unit_id, shared_datadir, db) with app.app_context(): _assert_import_event( @@ -76,12 +76,14 @@ def test_import(client, seeder, utils, app, shared_datadir, requests_mock): def _assert_import_event(params, filename, url, sanitized_url=None): from project.services.importer.event_importer import EventImporter - utils, admin_unit_id, datadir = params + utils, admin_unit_id, datadir, db = params mock_url = sanitized_url if sanitized_url else url utils.mock_get_request_with_file(mock_url, datadir, filename) importer = EventImporter(admin_unit_id) - event = importer.load_event_from_url(url) + + with db.session.no_autoflush: + event = importer.load_event_from_url(url) assert event is not None return event From c7d68a31219303a3a268ac59c60a10a644568b24 Mon Sep 17 00:00:00 2001 From: Daniel Grams Date: Sat, 8 Apr 2023 23:10:28 +0200 Subject: [PATCH 3/4] Organization organizers and places list #420 --- tests/views/test_utils.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests/views/test_utils.py b/tests/views/test_utils.py index b298535..b7d1ced 100644 --- a/tests/views/test_utils.py +++ b/tests/views/test_utils.py @@ -23,7 +23,7 @@ def test_send_mails(client, seeder, app, utils): def test_get_pagination_urls(client, seeder, app, utils): user_id, admin_unit_id = seeder.setup_base() - for i in range(31): + for i in range(51): seeder.upsert_event_organizer(admin_unit_id, "Organizer %d" % i) utils.get_endpoint_ok( From e9e36939880a959a1989502168dea32f9b744e85 Mon Sep 17 00:00:00 2001 From: Daniel Grams Date: Sat, 8 Apr 2023 23:21:08 +0200 Subject: [PATCH 4/4] Organization organizers and places list #420 --- tests/views/test_utils.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests/views/test_utils.py b/tests/views/test_utils.py index b7d1ced..7b3b02b 100644 --- a/tests/views/test_utils.py +++ b/tests/views/test_utils.py @@ -23,7 +23,7 @@ def test_send_mails(client, seeder, app, utils): def test_get_pagination_urls(client, seeder, app, utils): user_id, admin_unit_id = seeder.setup_base() - for i in range(51): + for i in range(101): seeder.upsert_event_organizer(admin_unit_id, "Organizer %d" % i) utils.get_endpoint_ok(