in preparation to moving userdata into app, we switched to arbitrary groups
This commit is contained in:
		@@ -18,10 +18,6 @@
 | 
			
		||||
						<label for="name" class="sr-only">Name</label>
 | 
			
		||||
						<input type="text" name="name" class="relative block rounded-md border-0 py-1.5 px-2 text-gray-900 ring-1 ring-inset ring-gray-300 placeholder:text-gray-400 focus:ring-2 focus:ring-inset focus:ring-primary-600 sm:text-sm sm:leading-6 mb-2 md:mb-0" placeholder="Name"/>
 | 
			
		||||
					</div>
 | 
			
		||||
					<div class="flex items-center">
 | 
			
		||||
						<label for="is_guest" class="flex items-center cursor-pointer hover:text-gray-100"><input type="checkbox" id="is_guest" name="is_guest" class="h-4 w-4 accent-gray-200 mr-2" checked="true"/>
 | 
			
		||||
							Scheckbuch</label>
 | 
			
		||||
					</div>
 | 
			
		||||
				</div>
 | 
			
		||||
			</div>
 | 
			
		||||
			<div class="text-right">
 | 
			
		||||
@@ -53,10 +49,9 @@
 | 
			
		||||
                {% endif %}
 | 
			
		||||
              </div>
 | 
			
		||||
              <div class="grid sm:grid-cols-2 lg:grid-cols-4 gap-3">
 | 
			
		||||
                {{ macros::checkbox(label='Scheckbuch', name='is_guest', id=loop.index , checked=user.is_guest) }}
 | 
			
		||||
                {{ macros::checkbox(label='Steuerberechtigter', name='is_cox', id=loop.index , checked=user.is_cox) }}
 | 
			
		||||
                {{ macros::checkbox(label='Technical', name='is_tech', id=loop.index , checked=user.is_tech) }}
 | 
			
		||||
                {{ macros::checkbox(label='Admin', name='is_admin', id=loop.index , checked=user.is_admin) }}
 | 
			
		||||
	      	{% for role in roles %}
 | 
			
		||||
                	{{ macros::checkbox(label=role.name, name="roles[" ~ role.id ~ "]", id=loop.index , checked=role.name in user.roles) }}
 | 
			
		||||
		{% endfor%}
 | 
			
		||||
                {{ macros::input(label='DOB', name='dob', id=loop.index, type="text", value=user.dob) }}
 | 
			
		||||
                {{ macros::input(label='Weight (kg)', name='weight', id=loop.index, type="text", value=user.weight) }}
 | 
			
		||||
                {{ macros::input(label='Sex', name='sex', id=loop.index, type="text", value=user.sex) }}
 | 
			
		||||
 
 | 
			
		||||
@@ -57,10 +57,10 @@
 | 
			
		||||
        {% if boatdamage.fixed_at %}
 | 
			
		||||
          <small class="block text-gray-600 dark:text-gray-100">Repariert von {{ boatdamage.user_fixed.name }} am/um {{ boatdamage.fixed_at | date(format='%d.%m.%Y (%H:%M)') }}</small>
 | 
			
		||||
        {% else %}
 | 
			
		||||
          {% if loggedin_user.is_cox %}
 | 
			
		||||
          {% if "cox" in loggedin_user.roles %}
 | 
			
		||||
            <form action="/boatdamage/{{ boatdamage.id }}/fixed" method="post" class="flex justify-between mt-3">
 | 
			
		||||
              <input type="text" name="desc" value="{{ boatdamage.desc }}" class="grow input rounded-s" />
 | 
			
		||||
              {% if loggedin_user.is_tech %}
 | 
			
		||||
              {% if "tech" in loggedin_user.roles %}
 | 
			
		||||
                <input type="submit" class="btn btn-primary" style="border-top-left-radius: 0; border-bottom-left-radius: 0;" value="Repariert und verifiziert" />
 | 
			
		||||
              {% else %}
 | 
			
		||||
                <input type="submit" class="btn btn-primary" style="border-top-left-radius: 0; border-bottom-left-radius: 0;" value="Repariert" />
 | 
			
		||||
@@ -72,7 +72,7 @@
 | 
			
		||||
        {% if boatdamage.verified_at %}
 | 
			
		||||
          <small class="block text-gray-600 dark:text-gray-100">Verifziert von {{ boatdamage.user_verified.name }} am/um {{ boatdamage.verified_at | date(format='%d.%m.%Y (%H:%M)') }}</small>
 | 
			
		||||
        {% else %}
 | 
			
		||||
          {% if loggedin_user.is_tech and boatdamage.fixed_at  %}
 | 
			
		||||
          {% if "tech" in loggedin_user.roles and boatdamage.fixed_at  %}
 | 
			
		||||
            <form action="/boatdamage/{{ boatdamage.id }}/verified" method="post" class="flex justify-between mt-3">
 | 
			
		||||
              <input type="text" name="desc" value="{{ boatdamage.desc }}" class="grow input rounded-s"/>
 | 
			
		||||
              <input type="submit" class="btn btn-dark" style="border-top-left-radius: 0; border-bottom-left-radius: 0;"  value="Verifiziert" />
 | 
			
		||||
 
 | 
			
		||||
@@ -132,7 +132,7 @@
 | 
			
		||||
      </details>
 | 
			
		||||
      </div>
 | 
			
		||||
 | 
			
		||||
      {% if loggedin_user.is_admin %}
 | 
			
		||||
      {% if "admin" in loggedin_user.roles %}
 | 
			
		||||
          <div class="bg-white dark:bg-primary-900 text-black dark:text-white rounded-md block shadow grid gap-3">
 | 
			
		||||
            <h2 class="h2">Update</h2>
 | 
			
		||||
            
 | 
			
		||||
 
 | 
			
		||||
@@ -1,4 +1,4 @@
 | 
			
		||||
{% if loggedin_user.is_cox %}
 | 
			
		||||
{% if "cox" in loggedin_user.roles %}
 | 
			
		||||
	<div class="sm:col-span-2 lg:col-span-3 grid md:grid-cols-3 lg:grid-cols-4 xl:grid-cols-5 gap-3">
 | 
			
		||||
		<button type="button" title="Toggle View" class="group btn btn-primary filter-trips-js" data-action="filter-days" id="filterdays-js" aria-pressed="false">
 | 
			
		||||
			{% include "includes/funnel-icon" %}
 | 
			
		||||
 
 | 
			
		||||
@@ -85,7 +85,7 @@
 | 
			
		||||
						{% set_global sel = true %}
 | 
			
		||||
					{% endif %}
 | 
			
		||||
				{% endfor %}
 | 
			
		||||
				<option value="{{ user.id }}" {% if sel %} selected {% endif %} {% if user.on_water %} disabled="disabled" {% endif %} data-custom-properties='{"is_cox": {{ user.is_cox }}, "steers": {{ user.id == steering_person_id }}, "cox_on_boat": {{ user.id == cox_on_boat}}}'>
 | 
			
		||||
				<option value="{{ user.id }}" {% if sel %} selected {% endif %} {% if user.on_water %} disabled="disabled" {% endif %} data-custom-properties='{"is_cox": {{ "cox" in user.roles }}, "steers": {{ user.id == steering_person_id }}, "cox_on_boat": {{ user.id == cox_on_boat}}}'>
 | 
			
		||||
					{{user.name}}
 | 
			
		||||
					{% if user.on_water %}
 | 
			
		||||
						(am Wasser)
 | 
			
		||||
 
 | 
			
		||||
@@ -19,7 +19,7 @@
 | 
			
		||||
          {% include "includes/question-icon" %}
 | 
			
		||||
          <span class="sr-only">FAQs</span>
 | 
			
		||||
        </a>
 | 
			
		||||
        {% if loggedin_user.is_guest and loggedin_user.weight and loggedin_user.sex and loggedin_user.dob %}
 | 
			
		||||
        {% if "scheckbuch" in loggedin_user.roles and loggedin_user.weight and loggedin_user.sex and loggedin_user.dob %}
 | 
			
		||||
          <a
 | 
			
		||||
            href="#"
 | 
			
		||||
            class="inline-flex justify-center rounded-md bg-primary-600 mx-1 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"
 | 
			
		||||
@@ -42,7 +42,7 @@
 | 
			
		||||
            </div>
 | 
			
		||||
          </div>
 | 
			
		||||
	      {% endif %}
 | 
			
		||||
        {% if not loggedin_user.is_guest %}
 | 
			
		||||
        {% if "scheckbuch" not in loggedin_user.roles %}
 | 
			
		||||
        <a
 | 
			
		||||
          href="#"
 | 
			
		||||
          class="inline-flex justify-center rounded-md bg-primary-600 mx-1 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"
 | 
			
		||||
@@ -85,7 +85,7 @@
 | 
			
		||||
            >
 | 
			
		||||
              Bootsauswertung
 | 
			
		||||
            </a>
 | 
			
		||||
            {% if loggedin_user.is_admin %}
 | 
			
		||||
            {% if "admin" in loggedin_user.roles %}
 | 
			
		||||
            <a
 | 
			
		||||
              href="/admin/boat"
 | 
			
		||||
              class="block w-100 py-2 hover:text-primary-600 border-t"
 | 
			
		||||
@@ -102,7 +102,7 @@
 | 
			
		||||
          </div>
 | 
			
		||||
        </div>
 | 
			
		||||
        {% endif %}
 | 
			
		||||
	      {% if loggedin_user.is_admin %}
 | 
			
		||||
	      {% if "admin" in loggedin_user.roles %}
 | 
			
		||||
        <a
 | 
			
		||||
          href="/admin/user"
 | 
			
		||||
          class="inline-flex justify-center rounded-md bg-primary-600 mx-1 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"
 | 
			
		||||
 
 | 
			
		||||
@@ -71,7 +71,7 @@
 | 
			
		||||
												{# --- END Row Buttons --- #}
 | 
			
		||||
 | 
			
		||||
												{# --- START Cox Buttons --- #}
 | 
			
		||||
												{% if loggedin_user.is_cox %}
 | 
			
		||||
												{% if "cox" in loggedin_user.roles %}
 | 
			
		||||
													{% set_global cur_user_participates = false %}
 | 
			
		||||
													{% for cox in planned_event.cox %}
 | 
			
		||||
														{% if cox.name == loggedin_user.name %}
 | 
			
		||||
@@ -111,11 +111,11 @@
 | 
			
		||||
												{# --- START List Rowers --- #}
 | 
			
		||||
												{% if planned_event.max_people > 0 %}
 | 
			
		||||
													{% set amount_cur_rower = planned_event.rower | length %}
 | 
			
		||||
													{{ macros::box(participants=planned_event.rower, empty_seats=planned_event.max_people - amount_cur_rower, bg='primary-100', color='black', trip_details_id=planned_event.trip_details_id, allow_removing=loggedin_user.is_admin) }}
 | 
			
		||||
													{{ macros::box(participants=planned_event.rower, empty_seats=planned_event.max_people - amount_cur_rower, bg='primary-100', color='black', trip_details_id=planned_event.trip_details_id, allow_removing="admin" in loggedin_user.roles) }}
 | 
			
		||||
												{% endif %}
 | 
			
		||||
												{# --- END List Rowers --- #}
 | 
			
		||||
 | 
			
		||||
													{% if loggedin_user.is_admin %}
 | 
			
		||||
													{% if "admin" in loggedin_user.roles %}
 | 
			
		||||
														<form action="/join/{{ planned_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"/>
 | 
			
		||||
@@ -127,7 +127,7 @@
 | 
			
		||||
													<div class="text-primary-900 bg-primary-50 text-center p-1 mb-4">Gäste willkommen!</div>
 | 
			
		||||
												{% endif %}
 | 
			
		||||
 | 
			
		||||
												{% if loggedin_user.is_admin %}
 | 
			
		||||
												{% if "admin" in loggedin_user.roles %}
 | 
			
		||||
 | 
			
		||||
													{# --- START Edit Form --- #}
 | 
			
		||||
													<div class="bg-gray-100 dark:bg-primary-900 p-3 mt-4 rounded-md">
 | 
			
		||||
@@ -258,9 +258,9 @@
 | 
			
		||||
				</div>
 | 
			
		||||
 | 
			
		||||
				{# --- START Add Buttons --- #}
 | 
			
		||||
				{% if loggedin_user.is_admin or loggedin_user.is_cox %}
 | 
			
		||||
					<div class="grid {% if loggedin_user.is_admin %} grid-cols-2 {% endif %} text-center">
 | 
			
		||||
						{% if loggedin_user.is_admin %}
 | 
			
		||||
				{% if "admin" in loggedin_user.roles or "cox" in loggedin_user.roles %}
 | 
			
		||||
					<div class="grid {% if "admin" in loggedin_user.roles %} grid-cols-2 {% endif %} text-center">
 | 
			
		||||
						{% if "admin" 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 rounded-bl-md text-sm font-semibold">
 | 
			
		||||
								<span class="absolute inset-y-0 left-0 flex items-center pl-3">
 | 
			
		||||
									{% include "includes/plus-icon" %}
 | 
			
		||||
@@ -269,8 +269,8 @@
 | 
			
		||||
							</a>
 | 
			
		||||
						{% endif %}
 | 
			
		||||
 | 
			
		||||
						{% if loggedin_user.is_cox%}
 | 
			
		||||
							<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 loggedin_user.is_admin %} rounded-br-md {% else %} rounded-b-md {% endif %}">
 | 
			
		||||
						{% if "cox" 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 "admin" 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>
 | 
			
		||||
@@ -285,10 +285,10 @@
 | 
			
		||||
	</div>
 | 
			
		||||
</div>
 | 
			
		||||
 | 
			
		||||
{% if loggedin_user.is_cox %}
 | 
			
		||||
{% if "cox" in loggedin_user.roles %}
 | 
			
		||||
	{% include "forms/trip" %}
 | 
			
		||||
{% endif %}
 | 
			
		||||
 | 
			
		||||
{% if loggedin_user.is_admin %}
 | 
			
		||||
{% if "admin" in loggedin_user.roles %}
 | 
			
		||||
	{% include "forms/event" %}
 | 
			
		||||
{% endif %}{% endblock content %}
 | 
			
		||||
 
 | 
			
		||||
@@ -24,7 +24,7 @@
 | 
			
		||||
			<div class="md:col-span-3 bg-white dark:bg-primary-900 rounded-md shadow">
 | 
			
		||||
				<h2 class="h2">Neue Ausfahrt</h2>
 | 
			
		||||
				<div class="p-3">
 | 
			
		||||
					{{ log::new(only_ones=loggedin_user.is_cox==false, shipmaster=loggedin_user.id) }}
 | 
			
		||||
					{{ log::new(only_ones="cox" not in loggedin_user.roles, shipmaster=loggedin_user.id) }}
 | 
			
		||||
				</div>
 | 
			
		||||
			</div>
 | 
			
		||||
			<div class="bg-white dark:bg-primary-900 rounded-md shadow">
 | 
			
		||||
@@ -33,7 +33,7 @@
 | 
			
		||||
				{% if on_water | length > 0 %}
 | 
			
		||||
					{% for log in on_water %}
 | 
			
		||||
						{% if log.shipmaster == loggedin_user.id %}
 | 
			
		||||
							{{ log::show(log=log, state="on_water", allowed_to_close=true, only_ones=loggedin_user.is_cox==false) }}
 | 
			
		||||
							{{ log::show(log=log, state="on_water", allowed_to_close=true, only_ones="cox" not in loggedin_user.roles) }}
 | 
			
		||||
						{% else %}
 | 
			
		||||
							{{ log::show(log=log, state="on_water", only_ones=true) }}
 | 
			
		||||
						{% endif %}
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user