forked from Ruderverein-Donau-Linz/rowt
		
	[TASK] improve styling list view
This commit is contained in:
		@@ -3,263 +3,298 @@
 | 
			
		||||
{% extends "base" %}
 | 
			
		||||
 | 
			
		||||
{% block content %}
 | 
			
		||||
  <div class="max-w-screen-xl w-full grid sm:grid-cols-2 lg:grid-cols-3 gap-4">
 | 
			
		||||
    {% if flash %}
 | 
			
		||||
          {% if flash.0 == "success" %}
 | 
			
		||||
          <div class="sm:col-span-2 lg:col-span-3 bg-[#4ade80] text-white px-3 py-1 rounded-md text-center">
 | 
			
		||||
            {{ flash.1 }}
 | 
			
		||||
          </div>
 | 
			
		||||
          {% endif %}
 | 
			
		||||
          {% if flash.0 == "error" %}
 | 
			
		||||
          <div class="sm:col-span-2 lg:col-span-3 bg-[#f43f5e] text-white px-3 py-1 rounded-md text-center">
 | 
			
		||||
            {{ flash.1 }}
 | 
			
		||||
          </div>
 | 
			
		||||
          {% endif %}
 | 
			
		||||
<div class="max-w-screen-xl w-full grid sm:grid-cols-2 lg:grid-cols-3 gap-4">
 | 
			
		||||
  {% if flash %}
 | 
			
		||||
    {% if flash.0 == "success" %}
 | 
			
		||||
      <div class="sm:col-span-2 lg:col-span-3 bg-[#4ade80] text-white px-3 py-1 rounded-md text-center">
 | 
			
		||||
        {{ flash.1 }}
 | 
			
		||||
      </div>
 | 
			
		||||
    {% endif %}
 | 
			
		||||
    {% if flash.0 == "error" %}
 | 
			
		||||
      <div class="sm:col-span-2 lg:col-span-3 bg-[#f43f5e] text-white px-3 py-1 rounded-md text-center">
 | 
			
		||||
        {{ flash.1 }}
 | 
			
		||||
      </div>
 | 
			
		||||
    {% endif %}
 | 
			
		||||
  {% endif %}
 | 
			
		||||
 | 
			
		||||
    <h1 class="text-center text-3xl uppercase tracking-wide font-bold text-primary-900 sm:col-span-2 lg:col-span-3">Ausfahrten</h1>
 | 
			
		||||
  <h1 class="text-center text-3xl uppercase tracking-wide font-bold text-primary-900 sm:col-span-2 lg:col-span-3">
 | 
			
		||||
    Ausfahrten</h1>
 | 
			
		||||
 | 
			
		||||
    {% for day in days %}
 | 
			
		||||
    <div class="bg-white p-3 rounded-md flex justify-between flex-col">
 | 
			
		||||
      <div>
 | 
			
		||||
        <h2 class="text-lg font-bold uppercase tracking-wide">{{ day.day| date(format="%d.%m.%Y") }}</h2>
 | 
			
		||||
  {% for day in days %}
 | 
			
		||||
  <div class="bg-white p-3 rounded-md flex justify-between flex-col">
 | 
			
		||||
    <div>
 | 
			
		||||
      <h2 class="text-lg font-bold uppercase tracking-wide">{{ day.day| date(format="%d.%m.%Y") }}</h2>
 | 
			
		||||
 | 
			
		||||
        {% if day.planned_events | length > 0 %}
 | 
			
		||||
          <div class="grid grid-cols-1 gap-3 divide-y mb-3">
 | 
			
		||||
            {% for planned_event in day.planned_events %}
 | 
			
		||||
            <div class="pt-2">
 | 
			
		||||
              <div class="flex justify-between items-center">
 | 
			
		||||
                <div>
 | 
			
		||||
		{% if planned_event.cox_needed %}
 | 
			
		||||
		zusätzliche steuerperson notwendig!!!!!!elf!!
 | 
			
		||||
		{% else %}
 | 
			
		||||
		keine zusätzliche unbedingt notwendig
 | 
			
		||||
		{% endif %}
 | 
			
		||||
                  <strong class="text-primary-900">{{ planned_event.planned_starting_time }} Uhr</strong> <small class="text-gray-600">({{ planned_event.name }})</small><br/>
 | 
			
		||||
                  <a href="#" data-sidebar="true" data-trigger="detailEvent{{ planned_event.id }}" class="inline-block text-primary-600 hover:text-primary-900 underline mr-3">Details</a>                  
 | 
			
		||||
                </div>
 | 
			
		||||
                <div>
 | 
			
		||||
	      	  {% set_global cur_user_participates = false %}
 | 
			
		||||
                  {% for rower in planned_event.rower%}
 | 
			
		||||
                    {% if rower.name == loggedin_user.name %}
 | 
			
		||||
			{% set_global cur_user_participates = true %}
 | 
			
		||||
                    {% endif %}
 | 
			
		||||
                  {% endfor %}  
 | 
			
		||||
		  {% if cur_user_participates %}
 | 
			
		||||
                  	<a href="/remove/{{ planned_event.trip_details_id }}" class="rounded-md bg-[#f43f5e] px-3 py-2 text-sm font-semibold text-white hover:bg-[#ff0000] focus-visible:outline focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-[#ff0000] cursor-pointer">Abmelden</a>
 | 
			
		||||
		  {% endif %}
 | 
			
		||||
                  {% if planned_event.max_people > planned_event.rower | length %}
 | 
			
		||||
			{% if cur_user_participates == false %}
 | 
			
		||||
        	            <a href="/join/{{ planned_event.trip_details_id }}" class="rounded-md bg-primary-600 px-3 py-2 text-sm font-semibold text-white hover:bg-primary-500 focus-visible:outline focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-primary-600 cursor-pointer">Mitrudern</a>
 | 
			
		||||
                	{% endif %}
 | 
			
		||||
                {% endif %}
 | 
			
		||||
                </div>
 | 
			
		||||
              </div>
 | 
			
		||||
      {% if day.planned_events | length > 0 %}
 | 
			
		||||
      <div class="grid grid-cols-1 gap-3 divide-y mb-3">
 | 
			
		||||
        {% for planned_event in day.planned_events %}
 | 
			
		||||
        <div class="pt-2" data-coxneeded="{{ planned_event.cox_needed }}">
 | 
			
		||||
          <div class="flex justify-between items-center">
 | 
			
		||||
            <div>
 | 
			
		||||
              <strong class="text-primary-900">{{ planned_event.planned_starting_time }} Uhr</strong> <small
 | 
			
		||||
                class="text-gray-600">({{ planned_event.name }})</small><br />
 | 
			
		||||
              <a href="#" data-sidebar="true" data-trigger="detailEvent{{ planned_event.id }}"
 | 
			
		||||
                class="inline-block text-primary-600 hover:text-primary-900 underline mr-3">Details</a>
 | 
			
		||||
            </div>
 | 
			
		||||
            {% if loggedin_user.is_cox %}
 | 
			
		||||
	      {% set_global cur_user_participates = false %}
 | 
			
		||||
              {% for cox in planned_event.cox %}
 | 
			
		||||
                {% if cox.name == loggedin_user.name %}
 | 
			
		||||
			{% set_global cur_user_participates = true %}
 | 
			
		||||
            <div class="text-right grid gap-2">
 | 
			
		||||
              {% set_global cur_user_participates = false %}
 | 
			
		||||
              {% for rower in planned_event.rower%}
 | 
			
		||||
                {% if rower.name == loggedin_user.name %}
 | 
			
		||||
                  {% set_global cur_user_participates = true %}
 | 
			
		||||
                {% endif %}
 | 
			
		||||
              {% endfor %}
 | 
			
		||||
	      {% if cur_user_participates %}
 | 
			
		||||
                  <a href="/cox/remove/{{ planned_event.id }}" class="rounded-md bg-[#f43f5e] px-3 py-2 text-sm font-semibold text-white hover:bg-[#ff0000] focus-visible:outline focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-[#ff0000] cursor-pointer">
 | 
			
		||||
                    <svg width="16" height="16" fill="currentColor" class="inline-block mr-1 h-3 w-3" viewBox="0 0 16 16"> <path d="M2 2a2 2 0 0 1 2-2h8a2 2 0 0 1 2 2v13.5a.5.5 0 0 1-.777.416L8 13.101l-5.223 2.815A.5.5 0 0 1 2 15.5V2zm2-1a1 1 0 0 0-1 1v12.566l4.723-2.482a.5.5 0 0 1 .554 0L13 14.566V2a1 1 0 0 0-1-1H4z"/> </svg>
 | 
			
		||||
                    Abmelden
 | 
			
		||||
                  </a>
 | 
			
		||||
		{% else %}
 | 
			
		||||
		      <a href="/cox/join/{{ planned_event.id }}" class="rounded-md bg-primary-900 px-3 py-2 text-sm font-semibold text-white hover:bg-primary-950 focus-visible:outline focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-primary-950 cursor-pointer">
 | 
			
		||||
			<svg width="16" height="16" fill="currentColor" class="inline-block mr-1 h-3 w-3" viewBox="0 0 16 16"> <path d="M2 2a2 2 0 0 1 2-2h8a2 2 0 0 1 2 2v13.5a.5.5 0 0 1-.777.416L8 13.101l-5.223 2.815A.5.5 0 0 1 2 15.5V2zm2-1a1 1 0 0 0-1 1v12.566l4.723-2.482a.5.5 0 0 1 .554 0L13 14.566V2a1 1 0 0 0-1-1H4z"/> </svg>
 | 
			
		||||
			Steuern
 | 
			
		||||
		      </a>
 | 
			
		||||
	      {% endif %}
 | 
			
		||||
            {% endif %}
 | 
			
		||||
    
 | 
			
		||||
            <div class="sidebar slide-in from-right" id="detailEvent{{ planned_event.id }}" aria-modal="false">
 | 
			
		||||
              <div class="bg-primary-900 text-white px-2 py-3 flex justify-between sidebar-header">
 | 
			
		||||
                  <div class="ps-1">
 | 
			
		||||
                      <strong>{{ planned_event.planned_starting_time }} Uhr</strong> ({{ planned_event.name }})
 | 
			
		||||
                      {% if planned_event.notes %}
 | 
			
		||||
                        <small class="block">{{ planned_event.notes }}</small>
 | 
			
		||||
                      {% endif %}
 | 
			
		||||
                  </div>
 | 
			
		||||
                  <div>
 | 
			
		||||
                    <button type="button" title="Details schließen" class="sidebar-close border-0 bg-primary-600 text-black" data-trigger="detailEvent{{ planned_event.id }}">
 | 
			
		||||
                        x
 | 
			
		||||
                    </button>
 | 
			
		||||
                  </div>
 | 
			
		||||
              </div>
 | 
			
		||||
              <div class="px-2 pt-2" style="margin-top: 63px; margin-bottom: 157px">
 | 
			
		||||
               
 | 
			
		||||
                {% if planned_event.planned_amount_cox > 0 %}
 | 
			
		||||
		  {% set amount_cur_cox = planned_event.cox | length %}
 | 
			
		||||
                  <div class="bg-primary-600 text-white text-center p-1 mt-1 rounded-t-md">{{ planned_event.planned_amount_cox - amount_cur_cox }} Steuerleute werden benötigt ({{ planned_event.planned_amount_cox }})</div>
 | 
			
		||||
                  <div class="p-2 border border-t-0 border-primary-600 mb-4 rounded-b-md">
 | 
			
		||||
                    {% if planned_event.cox | length > 0 %}
 | 
			
		||||
                        {% for cox in planned_event.cox %}
 | 
			
		||||
                          {{ cox.name }} <span class="hidden">(angemeldet seit {{ cox.registered_at }})</span><br/>
 | 
			
		||||
                        {% endfor %}
 | 
			
		||||
                    {% else %}
 | 
			
		||||
                        Keine Steuerleute angemeldet
 | 
			
		||||
                    {% endif %}
 | 
			
		||||
                  </div>
 | 
			
		||||
              {% if cur_user_participates %}
 | 
			
		||||
                <a href="/remove/{{ planned_event.trip_details_id }}"
 | 
			
		||||
                  class="w-28 rounded-md bg-[#f43f5e] px-3 py-2 text-sm font-semibold text-white hover:bg-[#ff0000] focus-visible:outline focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-[#ff0000] cursor-pointer text-center">Abmelden</a>
 | 
			
		||||
              {% endif %}
 | 
			
		||||
              {% if planned_event.max_people > planned_event.rower | length %}
 | 
			
		||||
                {% if cur_user_participates == false %}
 | 
			
		||||
                  <a href="/join/{{ planned_event.trip_details_id }}"
 | 
			
		||||
                    class="w-28 rounded-md bg-primary-600 px-3 py-2 text-sm font-semibold text-white hover:bg-primary-500 focus-visible:outline focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-primary-600 cursor-pointer text-center">Mitrudern</a>
 | 
			
		||||
                {% endif %}
 | 
			
		||||
  
 | 
			
		||||
                {% if planned_event.max_people > 0 %}
 | 
			
		||||
                  <div class="text-primay-900 bg-primary-100 text-center p-1 mt-1 rounded-t-md">{{ planned_event.max_people }} - {{ planned_event.rower | length }} Ruderer können teilnehmen ({{ planned_event.max_people }})</div>
 | 
			
		||||
                  <div class="p-2 border border-t-0 border-primary-100 mb-4 rounded-b-md">
 | 
			
		||||
                    {% if planned_event.rower | length > 0 %}
 | 
			
		||||
                      {% for rower in planned_event.rower %}
 | 
			
		||||
                        {{ rower.name }} <span class="hidden">(angemeldet seit {{ rower.registered_at }})</span><br/>
 | 
			
		||||
                      {% endfor %}
 | 
			
		||||
                    {% else %}
 | 
			
		||||
                        Keine Ruderer angemeldet
 | 
			
		||||
                    {% endif %}
 | 
			
		||||
                  </div>  
 | 
			
		||||
                {% endif %}
 | 
			
		||||
                
 | 
			
		||||
                {% if planned_event.allow_guests %}
 | 
			
		||||
                  <div class="text-primary-900 bg-primary-50 text-center p-1 mb-4">Gäste sind erlaubt</div>
 | 
			
		||||
                {% endif %}
 | 
			
		||||
                
 | 
			
		||||
                {% if loggedin_user.is_admin %}
 | 
			
		||||
                  <a href="/admin/planned-event/{{ planned_event.id }}/delete" class="inline-block rounded-md bg-[#ff0000] px-3 py-2 text-sm font-semibold text-white hover:bg-[#ff0000] focus-visible:outline focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-[#ff0000] cursor-pointer">
 | 
			
		||||
                    <svg width="16" height="16" fill="currentColor" class="inline h-4 w-4" viewBox="0 0 16 16"> <path d="M5.5 5.5A.5.5 0 0 1 6 6v6a.5.5 0 0 1-1 0V6a.5.5 0 0 1 .5-.5zm2.5 0a.5.5 0 0 1 .5.5v6a.5.5 0 0 1-1 0V6a.5.5 0 0 1 .5-.5zm3 .5a.5.5 0 0 0-1 0v6a.5.5 0 0 0 1 0V6z"/> <path fill-rule="evenodd" d="M14.5 3a1 1 0 0 1-1 1H13v9a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V4h-.5a1 1 0 0 1-1-1V2a1 1 0 0 1 1-1H6a1 1 0 0 1 1-1h2a1 1 0 0 1 1 1h3.5a1 1 0 0 1 1 1v1zM4.118 4 4 4.059V13a1 1 0 0 0 1 1h6a1 1 0 0 0 1-1V4.059L11.882 4H4.118zM2.5 3V2h11v1h-11z"/> </svg>
 | 
			
		||||
                    Termin löschen
 | 
			
		||||
                  </a>
 | 
			
		||||
                {% endif %}
 | 
			
		||||
              </div>
 | 
			
		||||
            </div>
 | 
			
		||||
            <div class="sidebar-overlay"  data-trigger="detailEvent{{ planned_event.id }}"></div>
 | 
			
		||||
          {% endfor %}
 | 
			
		||||
          </div>
 | 
			
		||||
        {% endif %}
 | 
			
		||||
  
 | 
			
		||||
  
 | 
			
		||||
        {% if day.trips | length > 0 %}
 | 
			
		||||
          <div class="grid grid-cols-1 gap-3 divide-y mb-3">
 | 
			
		||||
            {% for trip in day.trips %}
 | 
			
		||||
            <div class="pt-2">
 | 
			
		||||
                <div class="flex justify-between items-center">
 | 
			
		||||
                  <div>
 | 
			
		||||
                    <strong class="text-primary-900">{{ trip.planned_starting_time }} Uhr</strong> <small class="text-gray-600">({{ trip.cox_name }})</small><br/>
 | 
			
		||||
                    <a href="#" data-sidebar="true" data-trigger="detailTrip{{ trip.trip_details_id }}" class="inline-block text-primary-600 hover:text-primary-900 underline 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="/remove/{{ trip.trip_details_id }}" class="inline-block rounded-md bg-[#f43f5e] px-3 py-2 text-sm font-semibold text-white hover:bg-[#ff0000] focus-visible:outline focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-[#ff0000] cursor-pointer">Abmelden</a>
 | 
			
		||||
		    {% endif %}
 | 
			
		||||
                    {% if trip.max_people > trip.rower | length  and trip.cox_id != loggedin_user.id and cur_user_participates == false%}
 | 
			
		||||
                      <a href="/join/{{ trip.trip_details_id }}" class="inline-block rounded-md bg-primary-600 px-3 py-2 text-sm font-semibold text-white hover:bg-primary-500 focus-visible:outline focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-primary-600 cursor-pointer">Mitrudern</a>
 | 
			
		||||
                    {% endif %}
 | 
			
		||||
                  </div>
 | 
			
		||||
                </div>
 | 
			
		||||
            </div>
 | 
			
		||||
            <div class="sidebar slide-in from-right" id="detailTrip{{ trip.trip_details_id }}" aria-modal="false">
 | 
			
		||||
              <div class="bg-primary-900 text-white px-2 py-3 flex justify-between sidebar-header">
 | 
			
		||||
                  <div class="ps-1">
 | 
			
		||||
                      <strong>{{ trip.planned_starting_time }} Uhr</strong> ({{ trip.cox_name }})
 | 
			
		||||
                      {% if trip.notes %}
 | 
			
		||||
                        <small class="block">{{ trip.notes }}</small>
 | 
			
		||||
                      {% endif %}
 | 
			
		||||
                  </div>
 | 
			
		||||
                  <div>
 | 
			
		||||
                    <button type="button" title="Details schließen" class="sidebar-close border-0 bg-primary-600 text-black" data-trigger="detailTrip{{ trip.trip_details_id }}">
 | 
			
		||||
                        x
 | 
			
		||||
                    </button>
 | 
			
		||||
                  </div>
 | 
			
		||||
              </div>
 | 
			
		||||
              <div class="px-2 pt-2" style="margin-top: 63px; margin-bottom: 157px">
 | 
			
		||||
                {% if trip.max_people > 0 %}
 | 
			
		||||
                  <div class="text-primay-900 bg-primary-100 text-center p-1 mt-1 rounded-t-md">{{ trip.max_people }} - {{ trip.rower | length }} Ruderer können teilnehmen ({{ trip.max_people }})</div>
 | 
			
		||||
                  <div class="p-2 border border-t-0 border-primary-100 mb-4 rounded-b-md">
 | 
			
		||||
                    {% if trip.rower | length > 0 %}
 | 
			
		||||
                      {% for rower in trip.rower %}
 | 
			
		||||
                        {{ rower.name }} <span class="hidden">(angemeldet seit {{ rower.registered_at }})</span><br/>
 | 
			
		||||
                      {% endfor %}
 | 
			
		||||
                    {% else %}
 | 
			
		||||
                        Keine Ruderer angemeldet
 | 
			
		||||
                    {% endif %}
 | 
			
		||||
                  </div>
 | 
			
		||||
                {% endif %}
 | 
			
		||||
              </div>
 | 
			
		||||
            </div>
 | 
			
		||||
            <div class="sidebar-overlay"  data-trigger="detailTrip{{ trip.trip_details_id }}"></div>
 | 
			
		||||
          {% endfor %}
 | 
			
		||||
          </div>
 | 
			
		||||
        {% endif %}
 | 
			
		||||
      </div>
 | 
			
		||||
              {% endif %}
 | 
			
		||||
 | 
			
		||||
      <div>
 | 
			
		||||
        {% if loggedin_user.is_admin %}
 | 
			
		||||
        <a href="#" data-sidebar="true" data-trigger="plannedTrip{{ loop.index }}" class="inline-block text-primary-900 hover:text-primary-950 underline mr-3">Event hinzufügen</a>
 | 
			
		||||
 | 
			
		||||
        <!-- START Sidebar plannedTrip -->
 | 
			
		||||
        <div class="sidebar slide-in from-right" id="plannedTrip{{ loop.index }}" aria-modal="false">
 | 
			
		||||
          <div class="bg-primary-900 text-white px-2 py-3 flex justify-between sidebar-header">
 | 
			
		||||
              {% if loggedin_user.is_cox %}
 | 
			
		||||
          
 | 
			
		||||
              {% set_global cur_user_participates = false %}
 | 
			
		||||
              {% for cox in planned_event.cox %}
 | 
			
		||||
              {% if cox.name == loggedin_user.name %}
 | 
			
		||||
              {% set_global cur_user_participates = true %}
 | 
			
		||||
              {% endif %}
 | 
			
		||||
              {% endfor %}
 | 
			
		||||
              {% if cur_user_participates %}
 | 
			
		||||
              <a href="/cox/remove/{{ planned_event.id }}"
 | 
			
		||||
                class="w-28 block rounded-md bg-[#f43f5e] px-3 py-2 text-sm font-semibold text-white hover:bg-[#ff0000] focus-visible:outline focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-[#ff0000] cursor-pointer text-center">
 | 
			
		||||
                <svg width="16" height="16" fill="currentColor" class="inline-block mr-1 h-3 w-3" viewBox="0 0 16 16">
 | 
			
		||||
                  <path
 | 
			
		||||
                    d="M2 2a2 2 0 0 1 2-2h8a2 2 0 0 1 2 2v13.5a.5.5 0 0 1-.777.416L8 13.101l-5.223 2.815A.5.5 0 0 1 2 15.5V2zm2-1a1 1 0 0 0-1 1v12.566l4.723-2.482a.5.5 0 0 1 .554 0L13 14.566V2a1 1 0 0 0-1-1H4z" />
 | 
			
		||||
                </svg>
 | 
			
		||||
                Abmelden
 | 
			
		||||
              </a>
 | 
			
		||||
              {% else %}
 | 
			
		||||
              <a href="/cox/join/{{ planned_event.id }}"
 | 
			
		||||
                class="w-28 block rounded-md bg-primary-900 px-3 py-2 text-sm font-semibold text-white hover:bg-primary-950 focus-visible:outline focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-primary-950 cursor-pointer text-center">
 | 
			
		||||
                <svg width="16" height="16" fill="currentColor" class="inline-block mr-1 h-3 w-3" viewBox="0 0 16 16">
 | 
			
		||||
                  <path
 | 
			
		||||
                    d="M2 2a2 2 0 0 1 2-2h8a2 2 0 0 1 2 2v13.5a.5.5 0 0 1-.777.416L8 13.101l-5.223 2.815A.5.5 0 0 1 2 15.5V2zm2-1a1 1 0 0 0-1 1v12.566l4.723-2.482a.5.5 0 0 1 .554 0L13 14.566V2a1 1 0 0 0-1-1H4z" />
 | 
			
		||||
                </svg>
 | 
			
		||||
                Steuern
 | 
			
		||||
              </a>
 | 
			
		||||
              {% endif %}
 | 
			
		||||
              {% endif %}
 | 
			
		||||
  
 | 
			
		||||
            </div>
 | 
			
		||||
          </div>
 | 
			
		||||
          
 | 
			
		||||
          <div class="sidebar slide-in from-right" id="detailEvent{{ planned_event.id }}" aria-modal="false">
 | 
			
		||||
            <div class="bg-primary-900 text-white px-2 py-3 flex justify-between sidebar-header">
 | 
			
		||||
              <div class="ps-1">
 | 
			
		||||
                <strong>{{ planned_event.planned_starting_time }} Uhr</strong> ({{ planned_event.name }})
 | 
			
		||||
                {% if planned_event.notes %}
 | 
			
		||||
                <small class="block">{{ planned_event.notes }}</small>
 | 
			
		||||
                {% endif %}
 | 
			
		||||
              </div>
 | 
			
		||||
              <div>
 | 
			
		||||
                  <span class="ps-1">
 | 
			
		||||
                    <strong>Event</strong> am {{ day.day| date(format="%d.%m.%Y") }} erstellen
 | 
			
		||||
                  </span>
 | 
			
		||||
              </div>
 | 
			
		||||
              <button type="button" title="Add planned event schließen" class="sidebar-close border-0 bg-primary-600 text-black" data-trigger="plannedTrip{{ loop.index }}">
 | 
			
		||||
                <button type="button" title="Details schließen" class="sidebar-close border-0 bg-primary-600 text-black"
 | 
			
		||||
                  data-trigger="detailEvent{{ planned_event.id }}">
 | 
			
		||||
                  x
 | 
			
		||||
                </button>
 | 
			
		||||
              </div>
 | 
			
		||||
            </div>
 | 
			
		||||
            <div class="px-2 pt-2" style="margin-top: 63px; margin-bottom: 157px">
 | 
			
		||||
  
 | 
			
		||||
              {% if planned_event.planned_amount_cox > 0 %}
 | 
			
		||||
              {% set amount_cur_cox = planned_event.cox | length %}
 | 
			
		||||
              <div class="bg-primary-600 text-white text-center p-1 mt-1 rounded-t-md">{{ planned_event.planned_amount_cox
 | 
			
		||||
                - amount_cur_cox }} Steuerleute werden benötigt ({{ planned_event.planned_amount_cox }})</div>
 | 
			
		||||
              <div class="p-2 border border-t-0 border-primary-600 mb-4 rounded-b-md">
 | 
			
		||||
                {% if planned_event.cox | length > 0 %}
 | 
			
		||||
                {% for cox in planned_event.cox %}
 | 
			
		||||
                {{ cox.name }} <span class="hidden">(angemeldet seit {{ cox.registered_at }})</span><br />
 | 
			
		||||
                {% endfor %}
 | 
			
		||||
                {% else %}
 | 
			
		||||
                Keine Steuerleute angemeldet
 | 
			
		||||
                {% endif %}
 | 
			
		||||
              </div>
 | 
			
		||||
              {% endif %}
 | 
			
		||||
  
 | 
			
		||||
              {% if planned_event.max_people > 0 %}
 | 
			
		||||
              <div class="text-primay-900 bg-primary-100 text-center p-1 mt-1 rounded-t-md">{{ planned_event.max_people }}
 | 
			
		||||
                - {{ planned_event.rower | length }} Ruderer können teilnehmen ({{ planned_event.max_people }})</div>
 | 
			
		||||
              <div class="p-2 border border-t-0 border-primary-100 mb-4 rounded-b-md">
 | 
			
		||||
                {% if planned_event.rower | length > 0 %}
 | 
			
		||||
                {% for rower in planned_event.rower %}
 | 
			
		||||
                {{ rower.name }} <span class="hidden">(angemeldet seit {{ rower.registered_at }})</span><br />
 | 
			
		||||
                {% endfor %}
 | 
			
		||||
                {% else %}
 | 
			
		||||
                Keine Ruderer angemeldet
 | 
			
		||||
                {% endif %}
 | 
			
		||||
              </div>
 | 
			
		||||
              {% endif %}
 | 
			
		||||
  
 | 
			
		||||
              {% if planned_event.allow_guests %}
 | 
			
		||||
              <div class="text-primary-900 bg-primary-50 text-center p-1 mb-4">Gäste sind erlaubt</div>
 | 
			
		||||
              {% endif %}
 | 
			
		||||
  
 | 
			
		||||
              {% if loggedin_user.is_admin %}
 | 
			
		||||
              <a href="/admin/planned-event/{{ planned_event.id }}/delete"
 | 
			
		||||
                class="inline-block rounded-md bg-[#ff0000] px-3 py-2 text-sm font-semibold text-white hover:bg-[#ff0000] focus-visible:outline focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-[#ff0000] cursor-pointer">
 | 
			
		||||
                <svg width="16" height="16" fill="currentColor" class="inline h-4 w-4" viewBox="0 0 16 16">
 | 
			
		||||
                  <path
 | 
			
		||||
                    d="M5.5 5.5A.5.5 0 0 1 6 6v6a.5.5 0 0 1-1 0V6a.5.5 0 0 1 .5-.5zm2.5 0a.5.5 0 0 1 .5.5v6a.5.5 0 0 1-1 0V6a.5.5 0 0 1 .5-.5zm3 .5a.5.5 0 0 0-1 0v6a.5.5 0 0 0 1 0V6z" />
 | 
			
		||||
                  <path fill-rule="evenodd"
 | 
			
		||||
                    d="M14.5 3a1 1 0 0 1-1 1H13v9a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V4h-.5a1 1 0 0 1-1-1V2a1 1 0 0 1 1-1H6a1 1 0 0 1 1-1h2a1 1 0 0 1 1 1h3.5a1 1 0 0 1 1 1v1zM4.118 4 4 4.059V13a1 1 0 0 0 1 1h6a1 1 0 0 0 1-1V4.059L11.882 4H4.118zM2.5 3V2h11v1h-11z" />
 | 
			
		||||
                </svg>
 | 
			
		||||
                Termin löschen
 | 
			
		||||
              </a>
 | 
			
		||||
              {% endif %}
 | 
			
		||||
            </div>
 | 
			
		||||
          </div>
 | 
			
		||||
          <div class="sidebar-overlay" data-trigger="detailEvent{{ planned_event.id }}"></div>
 | 
			
		||||
        </div>
 | 
			
		||||
        {% endfor %}
 | 
			
		||||
      </div>
 | 
			
		||||
      {% endif %}
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
      {% if day.trips | length > 0 %}
 | 
			
		||||
      <div class="grid grid-cols-1 gap-3 divide-y mb-3">
 | 
			
		||||
        {% for trip in day.trips %}
 | 
			
		||||
        <div class="pt-2">
 | 
			
		||||
          <div class="flex justify-between items-center">
 | 
			
		||||
            <div>
 | 
			
		||||
              <strong class="text-primary-900">{{ trip.planned_starting_time }} Uhr</strong> <small
 | 
			
		||||
                class="text-gray-600">({{ trip.cox_name }})</small><br />
 | 
			
		||||
              <a href="#" data-sidebar="true" data-trigger="detailTrip{{ trip.trip_details_id }}"
 | 
			
		||||
                class="inline-block text-primary-600 hover:text-primary-900 underline 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="/remove/{{ trip.trip_details_id }}"
 | 
			
		||||
                class="inline-block rounded-md bg-[#f43f5e] px-3 py-2 text-sm font-semibold text-white hover:bg-[#ff0000] focus-visible:outline focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-[#ff0000] cursor-pointer">Abmelden</a>
 | 
			
		||||
              {% endif %}
 | 
			
		||||
              {% if trip.max_people > trip.rower | length and trip.cox_id != loggedin_user.id and cur_user_participates
 | 
			
		||||
              == false%}
 | 
			
		||||
              <a href="/join/{{ trip.trip_details_id }}"
 | 
			
		||||
                class="inline-block rounded-md bg-primary-600 px-3 py-2 text-sm font-semibold text-white hover:bg-primary-500 focus-visible:outline focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-primary-600 cursor-pointer">Mitrudern</a>
 | 
			
		||||
              {% endif %}
 | 
			
		||||
            </div>
 | 
			
		||||
          </div>
 | 
			
		||||
        </div>
 | 
			
		||||
        <div class="sidebar slide-in from-right" id="detailTrip{{ trip.trip_details_id }}" aria-modal="false">
 | 
			
		||||
          <div class="bg-primary-900 text-white px-2 py-3 flex justify-between sidebar-header">
 | 
			
		||||
            <div class="ps-1">
 | 
			
		||||
              <strong>{{ trip.planned_starting_time }} Uhr</strong> ({{ trip.cox_name }})
 | 
			
		||||
              {% if trip.notes %}
 | 
			
		||||
              <small class="block">{{ trip.notes }}</small>
 | 
			
		||||
              {% endif %}
 | 
			
		||||
            </div>
 | 
			
		||||
            <div>
 | 
			
		||||
              <button type="button" title="Details schließen" class="sidebar-close border-0 bg-primary-600 text-black"
 | 
			
		||||
                data-trigger="detailTrip{{ trip.trip_details_id }}">
 | 
			
		||||
                x
 | 
			
		||||
              </button>
 | 
			
		||||
            </div>
 | 
			
		||||
          </div>
 | 
			
		||||
          <div class="px-2 pt-2" style="margin-top: 63px; margin-bottom: 157px">
 | 
			
		||||
            <form action="/admin/planned-event" method="post" class="grid gap-3">
 | 
			
		||||
              <input type="hidden" name="day" value="{{ day.day }}" />
 | 
			
		||||
              {{ macros::input(label='Titel (z.B. Firmenrudern)', name='name', type='text', required=true) }}
 | 
			
		||||
              {{ macros::input(label='Startzeit', name='planned_starting_time', type='text', required=true) }}
 | 
			
		||||
              {{ macros::input(label='Anzahl Steuerleute', name='planned_amount_cox', type='number', required=true) }}
 | 
			
		||||
              {{ macros::input(label='Anzahl Ruderer', name='max_people', type='number', required=true) }}
 | 
			
		||||
              {{ macros::checkbox(label='Gäste erlauben', name='max_allow_guestspeople') }}
 | 
			
		||||
              {{ macros::input(label='Anmerkungen', name='notes', type='text') }}
 | 
			
		||||
              <input value="Erstellen" class="w-full rounded-md bg-primary-600 px-3 py-2 text-sm font-semibold text-white hover:bg-primary-500 focus-visible:outline focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-primary-600 cursor-pointer" type="submit" />
 | 
			
		||||
            </form>
 | 
			
		||||
            {% if trip.max_people > 0 %}
 | 
			
		||||
            <div class="text-primay-900 bg-primary-100 text-center p-1 mt-1 rounded-t-md">{{ trip.max_people }} - {{
 | 
			
		||||
              trip.rower | length }} Ruderer können teilnehmen ({{ trip.max_people }})</div>
 | 
			
		||||
            <div class="p-2 border border-t-0 border-primary-100 mb-4 rounded-b-md">
 | 
			
		||||
              {% if trip.rower | length > 0 %}
 | 
			
		||||
              {% for rower in trip.rower %}
 | 
			
		||||
              {{ rower.name }} <span class="hidden">(angemeldet seit {{ rower.registered_at }})</span><br />
 | 
			
		||||
              {% endfor %}
 | 
			
		||||
              {% else %}
 | 
			
		||||
              Keine Ruderer angemeldet
 | 
			
		||||
              {% endif %}
 | 
			
		||||
            </div>
 | 
			
		||||
            {% endif %}
 | 
			
		||||
          </div>
 | 
			
		||||
        </div>
 | 
			
		||||
        <div class="sidebar-overlay" data-trigger="detailTrip{{ trip.trip_details_id }}"></div>
 | 
			
		||||
        {% endfor %}
 | 
			
		||||
      </div>
 | 
			
		||||
      <div class="sidebar-overlay"  data-trigger="plannedTrip{{ loop.index }}"></div>
 | 
			
		||||
      {% endif %}
 | 
			
		||||
    </div>
 | 
			
		||||
 | 
			
		||||
    <div>
 | 
			
		||||
      {% if loggedin_user.is_admin %}
 | 
			
		||||
      <a href="#" data-sidebar="true" data-trigger="plannedTrip{{ loop.index }}"
 | 
			
		||||
        class="inline-block text-primary-900 hover:text-primary-950 underline mr-3">Event hinzufügen</a>
 | 
			
		||||
 | 
			
		||||
      <!-- START Sidebar plannedTrip -->
 | 
			
		||||
      <div class="sidebar slide-in from-right" id="plannedTrip{{ loop.index }}" aria-modal="false">
 | 
			
		||||
        <div class="bg-primary-900 text-white px-2 py-3 flex justify-between sidebar-header">
 | 
			
		||||
          <div>
 | 
			
		||||
            <span class="ps-1">
 | 
			
		||||
              <strong>Event</strong> am {{ day.day| date(format="%d.%m.%Y") }} erstellen
 | 
			
		||||
            </span>
 | 
			
		||||
          </div>
 | 
			
		||||
          <button type="button" title="Add planned event schließen"
 | 
			
		||||
            class="sidebar-close border-0 bg-primary-600 text-black" data-trigger="plannedTrip{{ loop.index }}">
 | 
			
		||||
            x
 | 
			
		||||
          </button>
 | 
			
		||||
        </div>
 | 
			
		||||
        <div class="px-2 pt-2" style="margin-top: 63px; margin-bottom: 157px">
 | 
			
		||||
          <form action="/admin/planned-event" method="post" class="grid gap-3">
 | 
			
		||||
            <input type="hidden" name="day" value="{{ day.day }}" />
 | 
			
		||||
            {{ macros::input(label='Titel (z.B. Firmenrudern)', name='name', type='text', required=true) }}
 | 
			
		||||
            {{ macros::input(label='Startzeit', name='planned_starting_time', type='text', required=true) }}
 | 
			
		||||
            {{ macros::input(label='Anzahl Steuerleute', name='planned_amount_cox', type='number', required=true) }}
 | 
			
		||||
            {{ macros::input(label='Anzahl Ruderer', name='max_people', type='number', required=true) }}
 | 
			
		||||
            {{ macros::checkbox(label='Gäste erlauben', name='max_allow_guestspeople') }}
 | 
			
		||||
            {{ macros::input(label='Anmerkungen', name='notes', type='text') }}
 | 
			
		||||
            <input value="Erstellen"
 | 
			
		||||
              class="w-full rounded-md bg-primary-600 px-3 py-2 text-sm font-semibold text-white hover:bg-primary-500 focus-visible:outline focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-primary-600 cursor-pointer"
 | 
			
		||||
              type="submit" />
 | 
			
		||||
          </form>
 | 
			
		||||
        </div>
 | 
			
		||||
      </div>
 | 
			
		||||
      <div class="sidebar-overlay" data-trigger="plannedTrip{{ loop.index }}"></div>
 | 
			
		||||
      <!-- END Sidebar plannedTrip -->
 | 
			
		||||
      {% endif %}
 | 
			
		||||
 | 
			
		||||
      {% if loggedin_user.is_cox%}
 | 
			
		||||
        <a href="#" data-sidebar="true" data-trigger="trip{{ loop.index }}" class="inline-block text-primary-600 hover:text-primary-900 underline">Ausfahrt hinzufügen</a>
 | 
			
		||||
      <a href="#" data-sidebar="true" data-trigger="trip{{ loop.index }}"
 | 
			
		||||
        class="inline-block text-primary-600 hover:text-primary-900 underline">Ausfahrt hinzufügen</a>
 | 
			
		||||
 | 
			
		||||
        <div class="sidebar slide-in from-right" id="trip{{ loop.index }}" aria-modal="false">
 | 
			
		||||
          <div class="bg-primary-900 text-white px-2 py-3 flex justify-between sidebar-header">
 | 
			
		||||
              <div>
 | 
			
		||||
                  <span class="ps-1">
 | 
			
		||||
                    <strong>Ausfahrt</strong> am {{ day.day| date(format="%d.%m.%Y") }} erstellen
 | 
			
		||||
                  </span>
 | 
			
		||||
              </div>
 | 
			
		||||
              <button type="button" title="Add trip schließen" class="sidebar-close border-0 bg-primary-600 text-black" data-trigger="trip{{ loop.index }}">
 | 
			
		||||
                  x
 | 
			
		||||
              </button>
 | 
			
		||||
          </div>
 | 
			
		||||
          <div class="px-2 pt-2" style="margin-top: 63px; margin-bottom: 157px">
 | 
			
		||||
            <form action="/cox/trip" method="post" class="grid gap-3">
 | 
			
		||||
              <input type="hidden" name="day" value="{{ day.day }}" />
 | 
			
		||||
              {{ macros::input(label='Startzeit', name='planned_starting_time', type='text', required=true) }}
 | 
			
		||||
              {{ macros::input(label='Anzahl Ruderer', name='max_people', type='number', required=true) }}
 | 
			
		||||
              {{ macros::input(label='Anmerkungen', name='notes', type='text') }}
 | 
			
		||||
    
 | 
			
		||||
              <input value="Erstellen" class="w-full rounded-md bg-primary-600 px-3 py-2 text-sm font-semibold text-white hover:bg-primary-500 focus-visible:outline focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-primary-600 cursor-pointer" type="submit" />
 | 
			
		||||
            </form>
 | 
			
		||||
      <div class="sidebar slide-in from-right" id="trip{{ loop.index }}" aria-modal="false">
 | 
			
		||||
        <div class="bg-primary-900 text-white px-2 py-3 flex justify-between sidebar-header">
 | 
			
		||||
          <div>
 | 
			
		||||
            <span class="ps-1">
 | 
			
		||||
              <strong>Ausfahrt</strong> am {{ day.day| date(format="%d.%m.%Y") }} erstellen
 | 
			
		||||
            </span>
 | 
			
		||||
          </div>
 | 
			
		||||
          <button type="button" title="Add trip schließen" class="sidebar-close border-0 bg-primary-600 text-black"
 | 
			
		||||
            data-trigger="trip{{ loop.index }}">
 | 
			
		||||
            x
 | 
			
		||||
          </button>
 | 
			
		||||
        </div>
 | 
			
		||||
        <div class="px-2 pt-2" style="margin-top: 63px; margin-bottom: 157px">
 | 
			
		||||
          <form action="/cox/trip" method="post" class="grid gap-3">
 | 
			
		||||
            <input type="hidden" name="day" value="{{ day.day }}" />
 | 
			
		||||
            {{ macros::input(label='Startzeit', name='planned_starting_time', type='text', required=true) }}
 | 
			
		||||
            {{ macros::input(label='Anzahl Ruderer', name='max_people', type='number', required=true) }}
 | 
			
		||||
            {{ macros::input(label='Anmerkungen', name='notes', type='text') }}
 | 
			
		||||
 | 
			
		||||
            <input value="Erstellen"
 | 
			
		||||
              class="w-full rounded-md bg-primary-600 px-3 py-2 text-sm font-semibold text-white hover:bg-primary-500 focus-visible:outline focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-primary-600 cursor-pointer"
 | 
			
		||||
              type="submit" />
 | 
			
		||||
          </form>
 | 
			
		||||
        </div>
 | 
			
		||||
      </div>
 | 
			
		||||
      <div class="sidebar-overlay"  data-trigger="trip{{ loop.index }}"></div>
 | 
			
		||||
      <div class="sidebar-overlay" data-trigger="trip{{ loop.index }}"></div>
 | 
			
		||||
      {% endif %}
 | 
			
		||||
      </div>
 | 
			
		||||
    </div>
 | 
			
		||||
    {% endfor %}
 | 
			
		||||
    </div>
 | 
			
		||||
  </div>
 | 
			
		||||
  {% endfor %}
 | 
			
		||||
</div>
 | 
			
		||||
{% endblock content %}
 | 
			
		||||
</div>
 | 
			
		||||
{% endblock content %}
 | 
			
		||||
		Reference in New Issue
	
	Block a user