Add social features and harden beta release
This commit is contained in:
@@ -17,28 +17,44 @@
|
||||
href="/static/style.css"
|
||||
>
|
||||
|
||||
<style>
|
||||
.detail-topbar { display: flex; justify-content: space-between; align-items: flex-start; gap: 16px; }
|
||||
.event-type-badge { display: inline-block; margin-bottom: 8px; padding: 4px 9px; border: 1px solid #4b5563; border-radius: 999px; color: #c4b5fd; font-size: .8rem; font-weight: 700; text-transform: uppercase; }
|
||||
.parent-event-link { color: #c4b5fd; }
|
||||
.flyer-source { display: block; width: 100%; flex: 0 0 100%; margin: 10px 0 0; color: #a8a29e; font-size: .85rem; text-align: center; }
|
||||
.flyer-source a { color: #f87171; text-decoration: underline; }
|
||||
.flyer-disclaimer { display: block; margin-top: 4px; font-size: .75rem; }
|
||||
</style>
|
||||
|
||||
</head>
|
||||
|
||||
<body>
|
||||
|
||||
<div class="container">
|
||||
|
||||
<a href="/" class="back-link">
|
||||
← Zurück zum Kalender
|
||||
</a>
|
||||
<div class="detail-topbar">
|
||||
<a href="/" class="back-link">← Zurück zum Kalender</a>
|
||||
{% include '_user_menu.html' %}
|
||||
</div>
|
||||
|
||||
<article class="concert-detail">
|
||||
|
||||
{% if concert.flyer_path %}
|
||||
{% if concert.flyer_url or concert.flyer_path %}
|
||||
|
||||
<div class="flyer-container">
|
||||
|
||||
<img
|
||||
src="{{ concert.flyer_path }}"
|
||||
src="{{ concert.flyer_url or concert.flyer_path }}"
|
||||
alt="Flyer {{ concert.artist }}"
|
||||
class="concert-flyer"
|
||||
referrerpolicy="no-referrer"
|
||||
{% if concert.flyer_url and concert.flyer_path %}onerror="this.onerror=null;this.src='{{ concert.flyer_path }}'"{% endif %}
|
||||
>
|
||||
|
||||
{% if concert.flyer_url %}
|
||||
<p class="flyer-source"><a href="{{ concert.flyer_url }}" target="_blank" rel="noopener noreferrer nofollow external">Quelle</a><span class="flyer-disclaimer">Extern eingebundener Flyer. Rechte liegen beim jeweiligen Veranstalter bzw. Rechteinhaber. Hinweise zur Entfernung bitte an die Administration.</span></p>
|
||||
{% endif %}
|
||||
|
||||
</div>
|
||||
|
||||
{% endif %}
|
||||
@@ -46,6 +62,8 @@
|
||||
|
||||
<div class="concert-content">
|
||||
|
||||
<span class="event-type-badge">{{ concert.event_type_label }}</span>
|
||||
|
||||
<h1>
|
||||
{{ concert.artist }}
|
||||
</h1>
|
||||
@@ -69,6 +87,11 @@
|
||||
|
||||
{{ concert.time }} Uhr
|
||||
|
||||
{% if concert.event_type == 'festival' and concert.end_date %}
|
||||
<br>
|
||||
bis {{ concert.end_date }}{% if concert.end_time %}, {{ concert.end_time }} Uhr{% endif %}
|
||||
{% endif %}
|
||||
|
||||
</div>
|
||||
|
||||
</div>
|
||||
@@ -96,12 +119,19 @@
|
||||
|
||||
|
||||
{% if concert.venue.postal_code
|
||||
or concert.venue.city %}
|
||||
or concert.venue.city
|
||||
or (concert.venue.country
|
||||
and concert.venue.country not in ('Deutschland', 'Germany')) %}
|
||||
|
||||
<br>
|
||||
|
||||
{{ concert.venue.postal_code }}
|
||||
{{ concert.venue.city }}
|
||||
{% if concert.venue.country
|
||||
and concert.venue.country not in ('Deutschland', 'Germany') %}
|
||||
{% if concert.venue.postal_code or concert.venue.city %} · {% endif %}
|
||||
{{ concert.venue.country }}
|
||||
{% endif %}
|
||||
|
||||
{% endif %}
|
||||
|
||||
@@ -136,13 +166,22 @@
|
||||
|
||||
</div>
|
||||
|
||||
{% if concert.parent_event %}
|
||||
<p>
|
||||
Gehört zu:
|
||||
<a class="parent-event-link" href="/concerts/{{ concert.parent_event.id }}">
|
||||
{{ concert.parent_event.event_type_label }} · {{ concert.parent_event.title }}
|
||||
</a>
|
||||
</p>
|
||||
{% endif %}
|
||||
|
||||
|
||||
{% if concert.description %}
|
||||
|
||||
<section class="description">
|
||||
|
||||
<h2>
|
||||
Über das Konzert
|
||||
Über die Veranstaltung
|
||||
</h2>
|
||||
|
||||
<p>
|
||||
@@ -173,9 +212,9 @@
|
||||
|
||||
{% if can_edit %}
|
||||
|
||||
<div class="detail-actions" aria-label="Konzert verwalten">
|
||||
<div class="detail-actions" aria-label="Veranstaltung verwalten">
|
||||
<a href="/concerts/{{ concert.id }}/edit" class="concert-action concert-action-edit">
|
||||
✏️ Konzert bearbeiten
|
||||
✏️ Veranstaltung bearbeiten
|
||||
</a>
|
||||
|
||||
{% if user.is_admin and can_delete %}
|
||||
@@ -183,10 +222,10 @@
|
||||
<form
|
||||
method="post"
|
||||
action="/concerts/{{ concert.id }}/delete"
|
||||
onsubmit="return confirm('Dieses Konzert wirklich löschen?');"
|
||||
onsubmit="return confirm('Diese Veranstaltung wirklich löschen?');"
|
||||
>
|
||||
<button type="submit" class="concert-action concert-action-delete">
|
||||
🗑️ Konzert löschen
|
||||
🗑️ Veranstaltung löschen
|
||||
</button>
|
||||
</form>
|
||||
|
||||
@@ -234,7 +273,17 @@
|
||||
type="submit"
|
||||
class="attendance-option {% if current_attendance == 'ticket_search' %}is-selected{% endif %}"
|
||||
>
|
||||
🎟️ Suche Ticket
|
||||
🔎 Suche Ticket
|
||||
</button>
|
||||
</form>
|
||||
|
||||
<form method="post" action="/concerts/{{ concert.id }}/attendance">
|
||||
<input type="hidden" name="status" value="ticket_offer">
|
||||
<button
|
||||
type="submit"
|
||||
class="attendance-option {% if current_attendance == 'ticket_offer' %}is-selected{% endif %}"
|
||||
>
|
||||
🎟️ Biete Ticket
|
||||
</button>
|
||||
</form>
|
||||
|
||||
@@ -245,6 +294,7 @@
|
||||
{{ attending_count }} Zusage{% if attending_count != 1 %}n{% endif %}
|
||||
· {{ maybe_count }} Vielleicht
|
||||
· {{ ticket_seeker_count }} sucht Ticket
|
||||
· {{ ticket_offer_count }} bietet Ticket
|
||||
</summary>
|
||||
|
||||
<div class="attendance-groups">
|
||||
@@ -278,7 +328,7 @@
|
||||
</div>
|
||||
|
||||
<div>
|
||||
<h3>🎟️ Sucht ein Ticket</h3>
|
||||
<h3>🔎 Sucht ein Ticket</h3>
|
||||
|
||||
{% if ticket_seekers %}
|
||||
<ul>
|
||||
@@ -291,6 +341,20 @@
|
||||
{% endif %}
|
||||
</div>
|
||||
|
||||
<div>
|
||||
<h3>🎟️ Bietet ein Ticket</h3>
|
||||
|
||||
{% if ticket_offers %}
|
||||
<ul>
|
||||
{% for offer in ticket_offers %}
|
||||
<li><a href="/users/{{ offer.username }}">{{ offer.name }}</a></li>
|
||||
{% endfor %}
|
||||
</ul>
|
||||
{% else %}
|
||||
<p>Aktuell bietet niemand ein Ticket an.</p>
|
||||
{% endif %}
|
||||
</div>
|
||||
|
||||
</div>
|
||||
</details>
|
||||
|
||||
|
||||
Reference in New Issue
Block a user