517 lines
43 KiB
Plaintext
517 lines
43 KiB
Plaintext
{% import "includes/macros" as macros %}
|
|
{% import "includes/forms/log" as log %}
|
|
{% extends "base" %}
|
|
{% block content %}
|
|
<div class="max-w-screen-xl w-full grid sm:grid-cols-2 lg:grid-cols-3 gap-4">
|
|
{% if "paid" not in loggedin_user.roles and "Donau Linz" in loggedin_user.roles %}
|
|
<div class="grid gap-3 sm:col-span-2 lg:col-span-3">
|
|
<div class="bg-white dark:bg-primary-900 text-black dark:text-white rounded-md block shadow mt-5"
|
|
role="alert">
|
|
<h2 class="h2">Vereinsgebühren</h2>
|
|
<div class="text-sm p-3">
|
|
{% include "includes/qrcode" %}
|
|
<div id="qrcode"
|
|
style="float: left;
|
|
padding-top: 10 pt;
|
|
padding-right: 10pt;
|
|
padding-bottom: 10pt"></div>
|
|
<script type="text/javascript">
|
|
var sepaqr = new sepaQR({
|
|
benefName: 'ASKÖ Ruderverein Donau Linz',
|
|
benefBIC: 'ASPKAT2LXXX',
|
|
benefAccNr: 'AT582032032100729256',
|
|
amountEuro: {{ fee.sum_in_cents/100 }},
|
|
remittanceInf: 'Vereinsgebühren {{ fee.name }}',
|
|
});
|
|
|
|
var code = sepaqr.makeCodeInto("qrcode");
|
|
|
|
</script>
|
|
<b>Dein Vereinsbeitrag ({{ fee.name }}): {{ fee.sum_in_cents / 100 }}€
|
|
{% if fee.parts | length == 1 %}({{ fee.parts[0].0 }}){% endif %}
|
|
</b>
|
|
<br />
|
|
{% if fee.parts | length > 1 %}
|
|
<small>
|
|
Setzt sich zusammen aus:
|
|
<ul style="list-style: circle; padding-left: 1em;">
|
|
{% for p in fee.parts %}
|
|
<li>
|
|
{{ p.0 }} ({{ p.1 / 100 }}€)
|
|
{% if not loop.last %}+{% endif %}
|
|
</li>
|
|
{% endfor %}
|
|
</ul>
|
|
</small>
|
|
{% endif %}
|
|
Bitte auf folgendes Konto überweisen: IBAN AT58 2032 0321 0072 9256. Alternativ kannst du auch mit deiner Bankapp den QR Code scannen, damit sollten alle Daten vorausgefüllt sein.
|
|
<br />
|
|
Falls die Berechnung nicht stimmt (korrekte Preise findest du <a href="https://rudernlinz.at/unser-verein/gebuhren/"
|
|
target="_blank"
|
|
rel="noopener noreferrer">hier</a>) melde dich bitte bei it@rudernlinz.at. @Studenten: Bitte die aktuelle Studienbestätigung an it@rudernlinz.at schicken.
|
|
<br />
|
|
<small><a href="https://rudernlinz.at/unser-verein/vorstand/" target="_blank">Unsere Kassiere</a> aktualisieren den Ruderassistent unregelmäßig mit unserem Bankkonto. Falls du schon bezahlt hast, kannst du diese Nachricht getrost ignorieren. Wenn du schon vor "einigen Wochen" bezahlt hast bitte bei kassier@rudernlinz.at nachfragen :^)</small>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
{% endif %}
|
|
{% if "Vereinsneuling" in loggedin_user.roles %}
|
|
<div class="grid gap-3 sm:col-span-2 lg:col-span-3">
|
|
<div class="bg-white dark:bg-primary-900 text-black dark:text-white rounded-md block shadow mt-5">
|
|
<h2 class="h2">Willkommen im Verein!</h2>
|
|
<div class="text-sm p-3">
|
|
Du siehst aktuell alle Ausfahrten, die für (Vereins-)Neulinge ausgeschrieben sind. Du kannst dich also gerne bei jeder angezeigten Ausfahrt anmelden :-)
|
|
<br /><br />
|
|
Sobald du einige Ausfahrten hinter dir hast und eine Fahrt nach Ottensheim kein Problem mehr ist, werden dir alle Ausfahrten freigeschalten. Du fühlst dich schon bereit dazu? Dann einfach kurz jemanden vom Vorstand ansprechen oder eine kurze Mail an <a href="mailto:info@rudernlinz.at" class="underline">info@rudernlinz.at</a> schreiben.
|
|
</div>
|
|
</div>
|
|
</div>
|
|
{% endif %}
|
|
<h1 class="h1 sm:col-span-2 lg:col-span-3">Ausfahrten</h1>
|
|
{% include "includes/buttons" %}
|
|
{% for day in days %}
|
|
{% set amount_trips = day.events | length + day.trips | length %}
|
|
{% set_global day_cox_needed = false %}
|
|
{% if day.events | length > 0 %}
|
|
{% for event in day.events %}
|
|
{% if event.cox_needed %}
|
|
{% set_global day_cox_needed = true %}
|
|
{% endif %}
|
|
{% endfor %}
|
|
{% endif %}
|
|
<div id="{{ day.day| date(format='%Y-%m-%d') }}"
|
|
class="bg-white dark:bg-primary-900 rounded-md flex justify-between flex-col shadow reset-js"
|
|
style="min-height: 10rem"
|
|
data-trips="{{ amount_trips }}"
|
|
data-month="{{ day.day| date(format='%m') }}"
|
|
data-coxneeded="{{ day_cox_needed }}">
|
|
<div>
|
|
<h2 class="font-bold uppercase tracking-wide text-center rounded-t-md {% if day.is_pinned %} text-white bg-primary-950 {% else %} text-primary-950 dark:text-white bg-gray-200 dark:bg-primary-950 bg-opacity-80 {% endif %} text-lg px-3 py-3 ">
|
|
{{ day.day| date(format="%d.%m.%Y") }}
|
|
<small class="inline-block ml-1 text-xs {% if day.is_pinned %} text-gray-200 {% else %} text-gray-500 dark:text-gray-100 {% endif %}">{{ day.day | date(format="%A", locale="de_AT") }}
|
|
{% if day.max_waterlevel %}
|
|
• <a href="https://hydro.ooe.gv.at/#/overview/Wasserstand/station/16668/Linz/Wasserstand"
|
|
target="_blank"
|
|
title="Prognostizierter maximaler Wasserstand am {{ day.day | date(format="%A", locale="de_AT") }}: {{ day.max_waterlevel.avg }} ± {{ day.max_waterlevel.fluctuation }} cm (ungeprüfte Rohdaten, für Details siehe die Infos dazu im Impressum)">🌊{{ day.max_waterlevel.avg }} ± {{ day.max_waterlevel.fluctuation }} cm</a>
|
|
{% endif %}
|
|
</small>
|
|
{% if day.weather %}
|
|
<small class="inline-block text-xs {% if day.is_pinned %} text-gray-200 {% else %} text-gray-500 dark:text-gray-100 {% endif %}">
|
|
Temp: {{ day.weather.max_temp | round }}° • Windböe: {{ day.weather.wind_gust | round }} km/h • Regen: {{ day.weather.rain_mm | round }} mm
|
|
</small>
|
|
{% endif %}
|
|
</h2>
|
|
{% if day.events | length > 0 or day.trips | length > 0 or day.boat_reservations | length > 0 %}
|
|
<div class="grid grid-cols-1 gap-3 mb-3">
|
|
{# --- START Boatreservations--- #}
|
|
{% for _, reservations_for_event in day.boat_reservations %}
|
|
{% set reservation = reservations_for_event[0] %}
|
|
<div class="pt-2 px-3 border-t border-gray-200">
|
|
<div class="flex justify-between items-center">
|
|
<div class="mr-1">
|
|
<span class="text-primary-900 dark:text-white">
|
|
⏳ {{ reservation.time_desc }} <small class="text-gray-600 dark:text-gray-100">({{ reservation.user_applicant.name }})</small>
|
|
<br />
|
|
<strong>
|
|
{% for reservation in reservations_for_event -%}
|
|
{{ reservation.boat.name }}
|
|
{%- if not loop.last %} +
|
|
{% endif -%}
|
|
{% endfor -%}
|
|
</strong>
|
|
</span>
|
|
<small class="text-gray-600 dark:text-gray-100">(Reservierung - {{ reservation.usage }})</small>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
{% endfor %}
|
|
{# --- END Boatreservations--- #}
|
|
{# --- START Events --- #}
|
|
{% if day.events | length > 0 %}
|
|
{% for event in day.events | sort(attribute="planned_starting_time") %}
|
|
{% set amount_cur_cox = event.cox | length %}
|
|
{% set amount_cox_missing = event.planned_amount_cox - amount_cur_cox %}
|
|
<div class="pt-2 px-3 border-t border-gray-200"
|
|
style="order: {{ event.planned_starting_time | replace(from=":", to="") }}">
|
|
<div class="flex justify-between items-center">
|
|
<div class="mr-1">
|
|
{% if event.always_show and not day.regular_sees_this_day %}
|
|
<span title="Du siehst diese Ausfahrt schon, obwohl sie mehr als {{ amount_days_to_show_trips_ahead }} Tage in der Zukunft liegt. Du Magier!">🔮</span>
|
|
{% endif -%}
|
|
{%- if event.cancelled %}
|
|
<strong class="text-[#f43f5e]">⚠ Absage
|
|
{{ event.planned_starting_time }}
|
|
Uhr
|
|
</strong>
|
|
<small class="text-[#f43f5e]">({{ event.name }}
|
|
{%- if event.trip_type %}
|
|
- {{ event.trip_type.icon | safe }} {{ event.trip_type.name }}
|
|
{%- endif -%}
|
|
)</small>
|
|
{% else %}
|
|
<strong class="text-primary-900 dark:text-white">
|
|
{{ event.planned_starting_time }}
|
|
Uhr
|
|
</strong>
|
|
<small class="text-gray-600 dark:text-gray-100">({{ event.name }}
|
|
{%- if event.trip_type %}
|
|
- {{ event.trip_type.icon | safe }} {{ event.trip_type.name }}
|
|
{%- endif -%}
|
|
)</small>
|
|
{% endif %}
|
|
<br />
|
|
<a href="#" data-sidebar="true" data-trigger="sidebar" data-header="<strong>{{ event.planned_starting_time }} Uhr</strong> ({{ event.name }})
|
|
{% if event.trip_type %}<small class='block'>{{ event.trip_type.desc }}</small>{% endif %}
|
|
{% if event.notes %}<small class='block'>{{ event.notes }}</small>{% endif %}
|
|
" data-body="#event{{ event.trip_details_id }}" class="inline-block link-primary mr-3">
|
|
Details
|
|
</a>
|
|
</div>
|
|
<div class="text-right grid gap-2">
|
|
{# --- START Row Buttons --- #}
|
|
{% set_global cur_user_participates = false %}
|
|
{% for rower in event.rower %}
|
|
{% if rower.name == loggedin_user.name %}
|
|
{% set_global cur_user_participates = true %}
|
|
{% endif %}
|
|
{% endfor %}
|
|
{% if cur_user_participates %}
|
|
<a href="/planned/remove/{{ event.trip_details_id }}"
|
|
class="btn btn-attention btn-fw">Abmelden</a>
|
|
{% endif %}
|
|
{% if event.max_people > event.rower | length and cur_user_participates == false %}
|
|
<a href="/planned/join/{{ event.trip_details_id }}"
|
|
class="btn btn-primary btn-fw"
|
|
{% if event.trip_type %}onclick="return confirm('{{ event.trip_type.question }}');"{% endif %}>Mitrudern</a>
|
|
{% endif %}
|
|
{# --- END Row Buttons --- #}
|
|
{# --- START Cox Buttons --- #}
|
|
{% if loggedin_user.allowed_to_steer %}
|
|
{% set_global cur_user_participates = false %}
|
|
{% for cox in event.cox %}
|
|
{% if cox.name == loggedin_user.name %}
|
|
{% set_global cur_user_participates = true %}
|
|
{% endif %}
|
|
{% endfor %}
|
|
{% if cur_user_participates %}
|
|
<a href="/cox/remove/{{ event.id }}"
|
|
class="block btn btn-attention btn-fw">
|
|
{% include "includes/cox-icon" %}
|
|
Abmelden
|
|
</a>
|
|
{% elif event.planned_amount_cox > 0 %}
|
|
<a href="/cox/join/{{ event.id }}"
|
|
class="block btn {% if amount_cox_missing > 0 %} btn-dark {% else %} btn-gray {% endif %} btn-fw"
|
|
{% if event.trip_type %}onclick="return confirm('{{ event.trip_type.question }}');"{% endif %}>
|
|
{% include "includes/cox-icon" %}
|
|
Steuern
|
|
</a>
|
|
{% endif %}
|
|
{% endif %}
|
|
{# --- END Cox Buttons --- #}
|
|
</div>
|
|
</div>
|
|
{# --- START Sidebar Content --- #}
|
|
<div class="hidden">
|
|
<div id="event{{ event.trip_details_id }}">
|
|
{# --- START List Coxes --- #}
|
|
{% if event.planned_amount_cox > 0 %}
|
|
{% if event.cancelled %}
|
|
{{ macros::box(participants=event.cox, empty_seats="", header='Absage', bg='[#f43f5e]') }}
|
|
{% else %}
|
|
{% if amount_cox_missing > 0 %}
|
|
{{ macros::box(participants=event.cox, empty_seats=event.planned_amount_cox - amount_cur_cox, header='Noch benötigte Steuerleute:', text='Keine Steuerleute angemeldet') }}
|
|
{% else %}
|
|
{{ macros::box(participants=event.cox, empty_seats="", header='Genügend Steuerleute haben sich angemeldet :-)', text='Keine Steuerleute angemeldet') }}
|
|
{% endif %}
|
|
{% endif %}
|
|
{% endif %}
|
|
{# --- END List Coxes --- #}
|
|
{# --- START List Rowers --- #}
|
|
{% set amount_cur_rower = event.rower | length %}
|
|
{% if event.cancelled %}
|
|
{{ macros::box(header='Absage', bg='[#f43f5e]', participants=event.rower, trip_details_id=event.trip_details_id, allow_removing="manage_events" in loggedin_user.roles) }}
|
|
{% elif event.max_people > 0 %}
|
|
{{ macros::box(participants=event.rower, empty_seats=event.max_people - amount_cur_rower, bg='primary-100', color='black', trip_details_id=event.trip_details_id, allow_removing="manage_events" in loggedin_user.roles) }}
|
|
{% endif %}
|
|
{# --- END List Rowers --- #}
|
|
{% if event.allow_guests %}
|
|
<div class="text-primary-900 bg-primary-50 text-center p-1 mb-4">Neulinge willkommen</div>
|
|
{% endif %}
|
|
{% if "manage_events" in loggedin_user.roles %}
|
|
<form action="/planned/join/{{ event.trip_details_id }}" method="get" />
|
|
{{ macros::input(label='Gast', class="input rounded-t", name='user_note', type='text', required=true) }}
|
|
<input value="Gast hinzufügen"
|
|
class="btn btn-primary w-full rounded-t-none-important"
|
|
type="submit" />
|
|
</form>
|
|
{% endif %}
|
|
{% if "manage_events" in loggedin_user.roles %}
|
|
{# --- START Edit Form --- #}
|
|
<div class="bg-gray-100 dark:bg-primary-900 p-3 mt-4 rounded-md">
|
|
<h3 class="text-primary-950 dark:text-white font-bold uppercase tracking-wide mb-2">Ausfahrt bearbeiten</h3>
|
|
<form action="/admin/planned-event" method="post" class="grid gap-3">
|
|
<input type="hidden" name="_method" value="put" />
|
|
<input type="hidden" name="id" value="{{ event.id }}" />
|
|
{{ macros::input(label='Titel', name='name', type='input', value=event.name) }}
|
|
{% if event.cancelled %}
|
|
<input type="hidden" name="max_people" value="-1" />
|
|
{% else %}
|
|
{{ macros::input(label='Anzahl Ruderer', name='max_people', type='number', required=true, value=event.max_people, min='0') }}
|
|
{% endif %}
|
|
{{ macros::input(label='Anzahl Steuerleute', name='planned_amount_cox', type='number', value=event.planned_amount_cox, required=true, min='0') }}
|
|
{{ macros::checkbox(label='Immer anzeigen', name='always_show', id=event.id,checked=event.always_show) }}
|
|
{{ macros::checkbox(label='Gesperrt', name='is_locked', id=event.id,checked=event.is_locked) }}
|
|
{{ macros::checkbox(label='Neulinge willkommen', name='allow_guests', id=event.id,checked=event.allow_guests) }}
|
|
{{ macros::select(label='Typ', name='trip_type', data=trip_types, default='Reguläre Ausfahrt', selected_id=event.trip_type_id) }}
|
|
{{ macros::input(label='Anmerkungen', name='notes', type='input', value=event.notes) }}
|
|
<input value="Speichern" class="btn btn-primary" type="submit" />
|
|
</form>
|
|
</div>
|
|
{# --- END Edit Form --- #}
|
|
{# --- START Delete Btn --- #}
|
|
{% if event.rower | length == 0 and amount_cur_cox == 0 %}
|
|
<div class="text-right mt-6">
|
|
<a href="/admin/planned-event/{{ event.id }}/delete"
|
|
class="inline-block btn btn-alert">
|
|
{% include "includes/delete-icon" %}
|
|
Termin löschen
|
|
</a>
|
|
</div>
|
|
{% else %}
|
|
{% if event.cancelled %}
|
|
Wenn du deine Absage absagen (:^)) willst, einfach entsprechende Anzahl an Ruderer oben eintragen.
|
|
{% else %}
|
|
<div class="bg-gray-100 dark:bg-primary-900 p-3 mt-4 rounded-md">
|
|
<h3 class="text-primary-950 dark:text-white font-bold uppercase tracking-wide mb-2">Event absagen</h3>
|
|
<form action="/admin/planned-event" method="post" class="grid">
|
|
<input type="hidden" name="_method" value="put" />
|
|
<input type="hidden" name="id" value="{{ event.id }}" />
|
|
{{ macros::input(label='Grund der Absage', name='notes', type='input', value='') }}
|
|
{{ macros::input(label='', name='max_people', type='hidden', value=-1) }}
|
|
{{ macros::input(label='', name='name', type='hidden', value=event.name) }}
|
|
{{ macros::input(label='', name='planned_amount_cox', type='hidden', value=event.planned_amount_cox) }}
|
|
{{ macros::input(label='', name='always_show', type='hidden', value=event.always_show) }}
|
|
{{ macros::input(label='', name='is_locked', type='hidden', value=event.is_locked) }}
|
|
{{ macros::input(label='', name='trip_type', type='hidden', value=event.trip_type_id) }}
|
|
{{ macros::input(label='', name='allow_guests', type='hidden', value=event.allow_guests) }}
|
|
<input value="Ausfahrt absagen" class="btn btn-alert" type="submit" />
|
|
</form>
|
|
</div>
|
|
{% endif %}
|
|
{% endif %}
|
|
{% endif %}
|
|
{# --- END Delete Btn --- #}
|
|
</div>
|
|
</div>
|
|
{# --- END Sidebar Content --- #}
|
|
</div>
|
|
{% endfor %}
|
|
{% endif %}
|
|
{# --- END Events --- #}
|
|
{# --- START Trips --- #}
|
|
{% if day.trips | length > 0 %}
|
|
{% for trip in day.trips | sort(attribute="planned_starting_time") %}
|
|
<div class="pt-2 px-3 reset-js border-t border-gray-200"
|
|
style="order: {{ trip.planned_starting_time | replace(from=":", to="") }}"
|
|
data-coxneeded="false">
|
|
<div class="flex justify-between items-center">
|
|
<div class="mr-1">
|
|
{% if trip.always_show and not day.regular_sees_this_day %}
|
|
<span title="Du siehst diese Ausfahrt schon, obwohl sie mehr als {{ amount_days_to_show_trips_ahead }} Tage in der Zukunft liegt. Du Magier!">🔮</span>
|
|
{% endif -%}
|
|
{% if trip.cancelled %}
|
|
<strong class="text-[#f43f5e]">⚠
|
|
{{ trip.planned_starting_time }}
|
|
Uhr</strong>
|
|
<small class="text-[#f43f5e]">(Absage
|
|
{{ trip.cox_name -}}
|
|
{% if trip.trip_type %}
|
|
-
|
|
{{ trip.trip_type.icon | safe }} {{ trip.trip_type.name }}
|
|
{%- endif -%}
|
|
)</small>
|
|
{% else %}
|
|
<strong class="text-primary-900 dark:text-white">{{ trip.planned_starting_time }}
|
|
Uhr</strong>
|
|
<small class="text-gray-600 dark:text-gray-100">({{ trip.cox_name -}}
|
|
{% if trip.trip_type %}
|
|
- {{ trip.trip_type.icon | safe }} {{ trip.trip_type.name }}
|
|
{%- endif -%}
|
|
)</small>
|
|
{% endif %}
|
|
<br />
|
|
<a href="#" data-sidebar="true" data-trigger="sidebar" data-header="<strong>
|
|
{% if trip.cancelled %}⚠{% endif %}
|
|
{{ trip.planned_starting_time }} Uhr</strong> ({{ trip.cox_name }})
|
|
{% if trip.trip_type %}<small class='block'>{{ trip.trip_type.desc }}</small>{% endif %}
|
|
{% if trip.notes %}<small class='block'>{{ trip.notes }}</small>{% endif %}
|
|
" data-body="#trip{{ trip.trip_details_id }}" class="inline-block link-primary mr-3">
|
|
Details
|
|
</a>
|
|
</div>
|
|
<div>
|
|
{% set_global cur_user_participates = false %}
|
|
{% for rower in trip.rower %}
|
|
{% if rower.name == loggedin_user.name %}
|
|
{% set_global cur_user_participates = true %}
|
|
{% endif %}
|
|
{% endfor %}
|
|
{% if cur_user_participates %}
|
|
<a href="/planned/remove/{{ trip.trip_details_id }}"
|
|
class="btn btn-attention btn-fw">Abmelden</a>
|
|
{% endif %}
|
|
{% if trip.max_people > trip.rower | length and trip.cox_id != loggedin_user.id and cur_user_participates == false %}
|
|
<a href="/planned/join/{{ trip.trip_details_id }}"
|
|
class="btn btn-primary btn-fw"
|
|
{% if trip.trip_type %}onclick="return confirm('{{ trip.trip_type.question }}');"{% endif %}>Mitrudern</a>
|
|
{% endif %}
|
|
</div>
|
|
</div>
|
|
{# --- START Sidebar Content --- #}
|
|
<div class="hidden">
|
|
<div id="trip{{ trip.trip_details_id }}">
|
|
{% if trip.cancelled %}
|
|
{# --- border-[#f43f5e] bg-[#f43f5e] --- #}
|
|
{{ macros::box(participants=trip.rower,bg='[#f43f5e]',header='Absage', trip_details_id=trip.trip_details_id, allow_removing=loggedin_user.id == trip.cox_id) }}
|
|
{% else %}
|
|
{% set amount_cur_rower = trip.rower | length %}
|
|
{{ macros::box(participants=trip.rower, empty_seats=trip.max_people - amount_cur_rower, bg='primary-100', color='black', trip_details_id=trip.trip_details_id, allow_removing=loggedin_user.id == trip.cox_id) }}
|
|
{% if trip.allow_guests %}
|
|
<div class="text-primary-900 bg-primary-50 text-center p-1 mb-4">Neulinge willkommen</div>
|
|
{% endif %}
|
|
{% if trip.cox_id == loggedin_user.id %}
|
|
<form action="/planned/join/{{ trip.trip_details_id }}" method="get" />
|
|
{{ macros::input(label='Gast', class="input rounded-t", name='user_note', type='text', required=true) }}
|
|
<input value="Gast hinzufügen"
|
|
class="btn btn-primary w-full rounded-t-none-important"
|
|
type="submit" />
|
|
</form>
|
|
{% endif %}
|
|
{% endif %}
|
|
{# --- START Edit Form --- #}
|
|
{% if trip.cox_id == loggedin_user.id %}
|
|
<div class="bg-gray-100 dark:bg-primary-900 p-3 mt-4 rounded-md">
|
|
<h3 class="text-primary-950 dark:text-white font-bold uppercase tracking-wide mb-2">Ausfahrt bearbeiten</h3>
|
|
<form action="/cox/trip/{{ trip.id }}" method="post" class="grid gap-3">
|
|
{{ macros::input(label='Anzahl Ruderer', name='max_people', type='number', required=true, value=trip.max_people, min=trip.rower | length) }}
|
|
{{ macros::input(label='Anmerkungen', name='notes', type='input', value=trip.notes) }}
|
|
{{ macros::checkbox(label='Gesperrt', name='is_locked', id=trip.id,checked=trip.is_locked) }}
|
|
{{ macros::checkbox(label='Neulinge willkommen', name='allow_guests', id=trip.id,checked=trip.allow_guests) }}
|
|
{% if loggedin_user.allowed_to_steer %}
|
|
{{ macros::select(label='Typ', name='trip_type', data=trip_types, default='Reguläre Ausfahrt', selected_id=trip.trip_type_id, only_ergo=not loggedin_user.allowed_to_steer) }}
|
|
{% else %}
|
|
{{ macros::select(label='Typ', name='trip_type', data=trip_types, selected_id=trip.trip_type_id, only_ergo=not loggedin_user.allowed_to_steer, only_ergos=true) }}
|
|
{% endif %}
|
|
<input value="Speichern" class="btn btn-primary" type="submit" />
|
|
</form>
|
|
</div>
|
|
{% if trip.rower | length == 0 %}
|
|
<div class="text-right mt-6">
|
|
<a href="/cox/remove/trip/{{ trip.id }}"
|
|
class="inline-block btn btn-alert">
|
|
{% include "includes/delete-icon" %}
|
|
Termin löschen
|
|
</a>
|
|
</div>
|
|
{% else %}
|
|
{% if trip.cancelled %}
|
|
Wenn du deine Absage absagen (:^)) willst, einfach entsprechende Anzahl an Ruderer oben eintragen.
|
|
{% else %}
|
|
<div class="bg-gray-100 dark:bg-primary-900 p-3 mt-4 rounded-md">
|
|
<h3 class="text-primary-950 dark:text-white font-bold uppercase tracking-wide mb-2">Ausfahrt absagen</h3>
|
|
<form action="/cox/trip/{{ trip.id }}" method="post" class="grid">
|
|
{{ macros::input(label='', name='max_people', type='hidden', value=-1) }}
|
|
{{ macros::input(label='Grund der Absage', name='notes', type='input', value='') }}
|
|
{{ macros::input(label='', name='is_locked', type='hidden', value=trip.is_locked) }}
|
|
{{ macros::input(label='', name='trip_type', type='hidden', value=trip.trip_type_id) }}
|
|
{{ macros::input(label='', name='allow_guests', type='hidden', value=trip.allow_guests) }}
|
|
<input value="Ausfahrt absagen" class="btn btn-alert" type="submit" />
|
|
</form>
|
|
</div>
|
|
{% endif %}
|
|
{% endif %}
|
|
{% endif %}
|
|
{# --- END Edit Form --- #}
|
|
{# --- START Admin Form --- #}
|
|
{% if allowed_to_update_always_show_trip %}
|
|
<div class="bg-gray-100 dark:bg-primary-900 p-3 mt-4 rounded-md">
|
|
<h3 class="text-primary-950 dark:text-white font-bold uppercase tracking-wide mb-2">Admin-Modus</h3>
|
|
{% if not day.regular_sees_this_day %}
|
|
<form action="/cox/trip/{{ trip.id }}/toggle-always-show"
|
|
method="get"
|
|
class="grid gap-3">
|
|
{% if not trip.always_show %}
|
|
<small>Diese Ausfahrt sehen aktuell nur Steuerleute (und Admins). {{ amount_days_to_show_trips_ahead }} Tage vorher sehen sie dann alle.</small>
|
|
{% else %}
|
|
<small>Diese Ausfahrt sehen alle Mitglieder.</small>
|
|
{% endif %}
|
|
<input value="{% if trip.always_show %}Ausfahrt nur Steuerleute (und Admins) anzeigen{% else %}Ausfahrt allen anzeigen{% endif %}"
|
|
class="btn btn-primary"
|
|
type="submit" />
|
|
</form>
|
|
{% endif %}
|
|
<a href="/cox/remove/trip/{{ trip.id }}"
|
|
class="inline-block btn btn-alert mt-5 w-full">
|
|
{% include "includes/delete-icon" %}
|
|
Termin löschen
|
|
</a>
|
|
</div>
|
|
{% endif %}
|
|
{# --- END Admin Form --- #}
|
|
</div>
|
|
</div>
|
|
{# --- END Sidebar Content --- #}
|
|
</div>
|
|
{% endfor %}
|
|
{% endif %}
|
|
{# --- END Trips --- #}
|
|
</div>
|
|
{% endif %}
|
|
</div>
|
|
{# --- START Add Buttons --- #}
|
|
{% if "manage_events" in loggedin_user.roles or loggedin_user.allowed_to_steer or "ergo" in loggedin_user.roles %}
|
|
<div class="grid {% if "manage_events" in loggedin_user.roles and (loggedin_user.allowed_to_steer or "ergo" in loggedin_user.roles) %}grid-cols-2{% endif %} text-center">
|
|
{% if "manage_events" in loggedin_user.roles %}
|
|
<a href="#" data-sidebar="true" data-trigger="sidebar" data-header="<strong>Event</strong> am {{ day.day| date(format='%d.%m.%Y') }} erstellen" data-day="{{ day.day }}" data-body="#addEventForm" class="relative inline-block w-full bg-primary-900 hover:bg-primary-950 focus:bg-primary-950 dark:bg-primary-950 text-white py-2 text-sm font-semibold
|
|
{% if loggedin_user.allowed_to_steer or "ergo" in loggedin_user.roles %}
|
|
rounded-bl-md
|
|
{% else %}
|
|
rounded-b-md
|
|
{% endif %}
|
|
">
|
|
<span class="absolute inset-y-0 left-0 flex items-center pl-3">{% include "includes/plus-icon" %}</span>
|
|
Event
|
|
</a>
|
|
{% endif %}
|
|
{% if loggedin_user.allowed_to_steer or "ergo" in loggedin_user.roles %}
|
|
<a href="#" data-sidebar="true" data-trigger="sidebar" data-header="<strong>Ausfahrt</strong> am {{ day.day| date(format='%d.%m.%Y') }} erstellen" data-day="{{ day.day }}" data-body="#sidebarForm" class="relative inline-block w-full py-2 text-primary-900 hover:text-primary-950 dark:bg-primary-600 dark:text-white dark:hover:bg-primary-500 dark:hover:text-white focus:text-primary-950 text-sm font-semibold bg-gray-100 hover:bg-gray-200 focus:bg-gray-200
|
|
{% if "manage_events" in loggedin_user.roles %}
|
|
rounded-br-md
|
|
{% else %}
|
|
rounded-b-md
|
|
{% endif %}
|
|
">
|
|
<span class="absolute inset-y-0 left-0 flex items-center pl-3">{% include "includes/plus-icon" %}</span>
|
|
{% if not loggedin_user.allowed_to_steer %}
|
|
Ergo-Session
|
|
{%- else -%}
|
|
Ausfahrt
|
|
{% endif %}
|
|
</a>
|
|
{% endif %}
|
|
</div>
|
|
{% endif %}
|
|
{# --- END Add Buttons --- #}
|
|
</div>
|
|
{% endfor %}
|
|
</div>
|
|
</div>
|
|
{% if loggedin_user.allowed_to_steer or "ergo" in loggedin_user.roles %}
|
|
{% include "forms/trip" %}
|
|
{% endif %}
|
|
{% if "manage_events" in loggedin_user.roles %}
|
|
{% include "forms/event" %}
|
|
{% endif %}
|
|
{% endblock content %}
|