diff --git a/templates/_macros.html b/templates/_macros.html
index 89b1669..197f7f5 100644
--- a/templates/_macros.html
+++ b/templates/_macros.html
@@ -686,4 +686,29 @@ $( function() {
{{ render_field_with_errors(form_field.copyright_text) }}
-{% endmacro %}
\ No newline at end of file
+{% endmacro %}
+
+{% macro render_event_menu(user_rights, event) %}
+ {% if user_rights['can_update_event'] or user_rights['can_verify_event'] %}
+
diff --git a/templates/event_date/read.html b/templates/event_date/read.html
index 3340851..633108c 100644
--- a/templates/event_date/read.html
+++ b/templates/event_date/read.html
@@ -1,5 +1,5 @@
{% extends "layout.html" %}
-{% from "_macros.html" import render_event_props, render_image_with_link, render_place, render_link_prop %}
+{% from "_macros.html" import render_event_menu, render_event_props, render_image_with_link, render_place, render_link_prop %}
{% set event = event_date.event %}
{% block title %}
{{ event.name }}
@@ -18,6 +18,8 @@
+{{ render_event_menu(user_rights, event_date.event) }}
+
{{ render_event_props(event, event_date.start, event_date.end) }}
diff --git a/templates/manage/reference_requests_incoming.html b/templates/manage/reference_requests_incoming.html
index 4b90dae..fa1093b 100644
--- a/templates/manage/reference_requests_incoming.html
+++ b/templates/manage/reference_requests_incoming.html
@@ -6,7 +6,8 @@
{% endblock %}
{% block content %}
-
{{ _('Incoming reference requests') }}
+
{{ _('Incoming reference requests') }}
+
Hier findest du Anfragen anderer Verwaltungseinheiten, die dich bitten, eine ihrer Veranstaltungen zu empfehlen.
{% for request in requests %}
diff --git a/templates/manage/reference_requests_outgoing.html b/templates/manage/reference_requests_outgoing.html
index 902cf5c..e5fa9ba 100644
--- a/templates/manage/reference_requests_outgoing.html
+++ b/templates/manage/reference_requests_outgoing.html
@@ -6,7 +6,8 @@
{% endblock %}
{% block content %}
-{{ _('Outgoing reference requests') }}
+{{ _('Outgoing reference requests') }}
+Hier findest du deine Empfehlungsanfragen an andere Verwaltungseinheiten. Um eine andere Verwaltungseinheit um eine Empfehlung zu bitten, wähle "{{ _('Empfehlung anfragen') }}" auf einer deiner Veranstaltungsseiten, die du über die Suche finden kannst.
{% for request in requests %}
diff --git a/templates/manage/references_incoming.html b/templates/manage/references_incoming.html
index 11e6118..0d8cd1a 100644
--- a/templates/manage/references_incoming.html
+++ b/templates/manage/references_incoming.html
@@ -6,7 +6,8 @@
{% endblock %}
{% block content %}
-{{ _('Incoming references') }}
+{{ _('Incoming references') }}
+Hier findest du Veranstaltungen anderer Verwaltungseinheiten, die du empfiehlst. Um eine Veranstaltungen zu empfehlen, wähle "{{ _('Reference event') }}" auf einer Veranstaltungsseite, die du über die Suche finden kannst.
{% for reference in references %}
diff --git a/templates/manage/references_outgoing.html b/templates/manage/references_outgoing.html
index 3e0ff7e..82e8a8c 100644
--- a/templates/manage/references_outgoing.html
+++ b/templates/manage/references_outgoing.html
@@ -6,7 +6,8 @@
{% endblock %}
{% block content %}
-{{ _('Outgoing references') }}
+{{ _('Outgoing references') }}
+Hier findest du deine Veranstaltungen, die von anderen Verwaltungseinheiten empfohlen werden. Um eine andere Verwaltungseinheit um eine Empfehlung zu bitten, wähle "{{ _('Empfehlung anfragen') }}" auf einer deiner Veranstaltungsseiten, die du über die Suche finden kannst.
{% for reference in references %}
diff --git a/templates/manage/reviews.html b/templates/manage/reviews.html
index 446e5c8..2d780c5 100644
--- a/templates/manage/reviews.html
+++ b/templates/manage/reviews.html
@@ -6,7 +6,8 @@
{% endblock %}
{% block content %}
-{{ _('Reviews') }}
+{{ _('Reviews') }}
+Hier findest du zu prüfende Veranstaltungen, die von anonymen Nutzern vorgeschlagen wurden. Den Link, mit dem anonymer Nutzer Veranstaltungen vorschlagen können, findest du unter {{ _('Widgets') }}.
{% for event in events %}
diff --git a/translations/de/LC_MESSAGES/messages.mo b/translations/de/LC_MESSAGES/messages.mo
index 7b25902..2797099 100644
Binary files a/translations/de/LC_MESSAGES/messages.mo and b/translations/de/LC_MESSAGES/messages.mo differ
diff --git a/translations/de/LC_MESSAGES/messages.po b/translations/de/LC_MESSAGES/messages.po
index 78f6264..f09ef73 100644
--- a/translations/de/LC_MESSAGES/messages.po
+++ b/translations/de/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: 2020-10-08 19:00+0200\n"
+"POT-Creation-Date: 2020-10-11 16:41+0200\n"
"PO-Revision-Date: 2020-06-07 18:51+0200\n"
"Last-Translator: FULL NAME \n"
"Language: de\n"
@@ -281,6 +281,30 @@ msgstr "Samstag"
msgid "Sunday"
msgstr "Sonntag"
+#: forms/common.py:47
+msgid "500 m"
+msgstr ""
+
+#: forms/common.py:48
+msgid "5 km"
+msgstr ""
+
+#: forms/common.py:49
+msgid "10 km"
+msgstr ""
+
+#: forms/common.py:50
+msgid "20 km"
+msgstr ""
+
+#: forms/common.py:51
+msgid "50 km"
+msgstr ""
+
+#: forms/common.py:52
+msgid "100 km"
+msgstr ""
+
#: forms/event.py:21 forms/event_place.py:36 forms/event_place.py:40
msgid "Other organizers can use this location"
msgstr "Andere Veranstalter können diesen Ort verwenden"
@@ -421,19 +445,19 @@ msgstr "Status"
msgid "EventStatus.scheduled"
msgstr "Geplant"
-#: forms/event.py:112
+#: forms/event.py:112 templates/layout.html:45
msgid "EventStatus.cancelled"
msgstr "Abgesagt"
-#: forms/event.py:113
+#: forms/event.py:113 templates/layout.html:48
msgid "EventStatus.movedOnline"
msgstr "Online verschoben"
-#: forms/event.py:114
+#: forms/event.py:114 templates/layout.html:51
msgid "EventStatus.postponed"
msgstr "Verschoben"
-#: forms/event.py:115
+#: forms/event.py:115 templates/layout.html:54
msgid "EventStatus.rescheduled"
msgstr "Neu angesetzt"
@@ -441,8 +465,7 @@ msgstr "Neu angesetzt"
msgid "Update event"
msgstr "Veranstaltung aktualisieren"
-#: forms/event.py:126 templates/event/delete.html:6
-#: templates/event/read.html:15
+#: forms/event.py:126 templates/_macros.html:703 templates/event/delete.html:6
msgid "Delete event"
msgstr "Veranstaltung löschen"
@@ -606,7 +629,7 @@ msgid "EventReferenceRequestRejectionReason.illegal"
msgstr "Unzulässig"
#: templates/_macros.html:105 templates/_macros.html:304
-#: templates/_macros.html:311 templates/_macros.html:599
+#: templates/_macros.html:311 templates/_macros.html:595
msgid "Date"
msgstr "Datum"
@@ -653,18 +676,43 @@ msgstr "Mit Google anmelden"
msgid "Search location on Google"
msgstr "Ort bei Google suchen"
-#: templates/_macros.html:550 templates/_macros.html:552
+#: templates/_macros.html:546 templates/_macros.html:548
+#: templates/event_date/list.html:270
msgid "Previous"
msgstr "Zurück"
-#: templates/_macros.html:555 templates/_macros.html:557
+#: templates/_macros.html:551 templates/_macros.html:553
+#: templates/event_date/list.html:271
msgid "Next"
msgstr "Weiter"
-#: templates/_macros.html:622
+#: templates/_macros.html:618
msgid "Radius"
msgstr "Umkreis"
+#: templates/_macros.html:695
+msgid "Actions"
+msgstr "Aktionen"
+
+#: templates/_macros.html:699 templates/event/review.html:8
+#: templates/manage/reviews.html:19
+msgid "Review event"
+msgstr "Veranstaltung prüfen"
+
+#: templates/_macros.html:702 templates/event/review.html:22
+msgid "Edit event"
+msgstr "Veranstaltung bearbeiten"
+
+#: templates/_macros.html:706 templates/manage/references_incoming.html:10
+msgid "Reference event"
+msgstr "Veranstaltung empfehlen"
+
+#: templates/_macros.html:709
+#: templates/manage/reference_requests_outgoing.html:10
+#: templates/manage/references_outgoing.html:10
+msgid "Empfehlung anfragen"
+msgstr "Empfehlung anfragen"
+
#: templates/example.html:15
msgid "Widget als iFrame einbetten"
msgstr "Widget als iFrame einbetten"
@@ -674,38 +722,38 @@ msgstr "Widget als iFrame einbetten"
msgid "Register for free"
msgstr "Kostenlos registrieren"
-#: templates/layout.html:52
+#: templates/layout.html:81
msgid "Manage"
msgstr "Verwaltung"
-#: templates/event_place/read.html:22 templates/layout.html:55
+#: templates/event_place/read.html:22 templates/layout.html:84
#: templates/layout_manage.html:20 templates/manage/events.html:5
#: templates/manage/events.html:9
msgid "Events"
msgstr "Veranstaltungen"
-#: templates/layout.html:56
+#: templates/layout.html:85
msgid "Planing"
msgstr "Planung"
-#: templates/layout.html:57
+#: templates/layout.html:86
msgid "Example"
msgstr "Beispiel"
-#: templates/developer/read.html:4 templates/layout.html:58
+#: templates/developer/read.html:4 templates/layout.html:87
msgid "Developer"
msgstr "Entwickler"
-#: templates/layout.html:67 templates/profile.html:4
+#: templates/layout.html:96 templates/profile.html:4
msgid "Profile"
msgstr "Profil"
#: templates/admin/admin.html:3 templates/admin/admin.html:9
-#: templates/admin/admin_units.html:9 templates/layout.html:70
+#: templates/admin/admin_units.html:9 templates/layout.html:99
msgid "Admin"
msgstr "Administration"
-#: templates/layout.html:74
+#: templates/layout.html:103
msgid "Logout"
msgstr "Ausloggen"
@@ -753,8 +801,8 @@ msgstr "Ausgehende Empfehlungsanfragen"
msgid "Members"
msgstr "Mitglieder"
-#: templates/layout_manage.html:36 templates/manage/widgets.html:5
-#: templates/manage/widgets.html:9
+#: templates/layout_manage.html:36 templates/manage/reviews.html:10
+#: templates/manage/widgets.html:5 templates/manage/widgets.html:9
msgid "Widgets"
msgstr "Widgets"
@@ -842,25 +890,8 @@ msgstr "Kontakt"
msgid "Target group"
msgstr "Zielgruppe"
-#: templates/event/read.html:11 templates/event/review.html:8
-#: templates/manage/reviews.html:18
-msgid "Review event"
-msgstr "Veranstaltung prüfen"
-
-#: templates/event/read.html:14 templates/event/review.html:22
-msgid "Edit event"
-msgstr "Veranstaltung bearbeiten"
-
-#: templates/event/read.html:18
-msgid "Reference event"
-msgstr "Veranstaltung empfehlen"
-
-#: templates/event/read.html:21
-msgid "Empfehlung anfragen"
-msgstr "Empfehlung anfragen"
-
-#: templates/event/read.html:33 templates/event/review.html:43
-#: templates/event_date/list.html:4 templates/event_date/list.html:11
+#: templates/event/read.html:17 templates/event/review.html:43
+#: templates/event_date/list.html:4 templates/event_date/list.html:249
#: templates/reference_request/review.html:30
msgid "Event Dates"
msgstr "Termine"
@@ -880,8 +911,8 @@ msgid "You can visit this page again to check the status."
msgstr "Sie können diese Seite erneut besuchen, um den Status zu prüfen."
#: templates/event/review_status.html:21 templates/manage/events.html:26
-#: templates/manage/references_incoming.html:18
-#: templates/manage/references_outgoing.html:18
+#: templates/manage/references_incoming.html:19
+#: templates/manage/references_outgoing.html:19
msgid "View"
msgstr "Anzeigen"
@@ -905,13 +936,13 @@ msgstr "Mitglied"
#: templates/manage/events.html:27 templates/manage/members.html:35
#: templates/manage/organizers.html:22 templates/manage/places.html:34
-#: templates/manage/references_incoming.html:19
+#: templates/manage/references_incoming.html:20
msgid "Edit"
msgstr "Bearbeiten"
#: templates/manage/events.html:28 templates/manage/members.html:21
#: templates/manage/members.html:36 templates/manage/organizers.html:23
-#: templates/manage/places.html:35 templates/manage/references_incoming.html:20
+#: templates/manage/places.html:35 templates/manage/references_incoming.html:21
msgid "Delete"
msgstr "Löschen"
@@ -924,11 +955,11 @@ msgstr "Assistenten"
msgid "Reference requests"
msgstr "Empfehlungsanfragen"
-#: templates/manage/reference_requests_incoming.html:18
+#: templates/manage/reference_requests_incoming.html:19
msgid "Review request"
msgstr "Anfrage prüfen"
-#: templates/manage/reference_requests_outgoing.html:18
+#: templates/manage/reference_requests_outgoing.html:19
msgid "Show review status"
msgstr "Prüfungsstatus anzeigen"
@@ -1013,27 +1044,27 @@ msgstr "Die eingegebene Email passt nicht zur Email der Einladung"
msgid "Invitation successfully deleted"
msgstr "Einladung erfolgreich gelöscht"
-#: views/event.py:60 views/event_review.py:31
+#: views/event.py:56 views/event_review.py:31
msgid "Event successfully updated"
msgstr "Veranstaltung erfolgreich aktualisiert"
-#: views/event.py:81 views/reference.py:99
+#: views/event.py:77 views/reference.py:99
msgid "Entered name does not match event name"
msgstr "Der eingegebene Name entspricht nicht dem Namen der Veranstaltung"
-#: views/event.py:86
+#: views/event.py:82
msgid "Event successfully deleted"
msgstr "Veranstaltung erfolgreich gelöscht"
-#: views/event.py:148
+#: views/event.py:144
msgid "Event successfully created"
msgstr "Veranstaltung erfolgreich erstellt"
-#: views/event.py:152
+#: views/event.py:148
msgid "Thank you so much! The event is being verified."
msgstr "Vielen Dank! Die Veranstaltung wird geprüft."
-#: views/event.py:188
+#: views/event.py:184
msgid "New event review"
msgstr "Neue Veranstaltung zu prüfen"
diff --git a/views/event.py b/views/event.py
index e506320..079716d 100644
--- a/views/event.py
+++ b/views/event.py
@@ -17,10 +17,9 @@ from sqlalchemy.exc import SQLAlchemyError
@app.route('/event/')
def event(event_id):
event = Event.query.get_or_404(event_id)
- user_can_verify_event = has_access(event.admin_unit, 'event:verify')
- user_can_update_event = has_access(event.admin_unit, 'event:update')
+ user_rights = get_user_rights(event)
- if not event.verified and not user_can_verify_event and not user_can_update_event:
+ if not event.verified and not user_rights["can_verify_event"] and not user_rights["can_update_event"]:
abort(401)
dates = EventDate.query.with_parent(event).filter(EventDate.start >= today).order_by(EventDate.start).all()
@@ -28,10 +27,7 @@ def event(event_id):
return render_template('event/read.html',
event=event,
dates=dates,
- user_can_verify_event=user_can_verify_event,
- can_update_event=user_can_update_event,
- user_can_reference_event=can_reference_event(event),
- user_can_create_reference_request=has_access(event.admin_unit, 'reference_request:create'))
+ user_rights=user_rights)
@app.route("//events/create", methods=('GET', 'POST'))
def event_create_for_admin_unit(au_short_name):
@@ -188,3 +184,11 @@ def send_event_inbox_mails(admin_unit, event):
gettext('New event review'),
'review_notice',
event=event)
+
+def get_user_rights(event):
+ return {
+ "can_verify_event": has_access(event.admin_unit, 'event:verify'),
+ "can_update_event": has_access(event.admin_unit, 'event:update'),
+ "can_reference_event": can_reference_event(event),
+ "can_create_reference_request": has_access(event.admin_unit, 'reference_request:create')
+ }
\ No newline at end of file
diff --git a/views/event_date.py b/views/event_date.py
index d9d1dc4..9f06086 100644
--- a/views/event_date.py
+++ b/views/event_date.py
@@ -11,7 +11,7 @@ from jsonld import get_sd_for_event_date, DateTimeEncoder
from services.event_search import EventSearchParams
from services.event import get_event_dates_query
from forms.event_date import FindEventDateForm
-from .event import get_event_category_choices
+from .event import get_event_category_choices, get_user_rights
def prepare_event_date_form(form):
form.category_id.choices = get_event_category_choices()
@@ -45,4 +45,5 @@ def event_date(id):
structured_data = json.dumps(get_sd_for_event_date(event_date), indent=2, cls=DateTimeEncoder)
return render_template('event_date/read.html',
event_date=event_date,
- structured_data=structured_data)
\ No newline at end of file
+ structured_data=structured_data,
+ user_rights = get_user_rights(event_date.event))
\ No newline at end of file