forked from Ruderverein-Donau-Linz/rowt
		
	Merge pull request 'group-reservations-in-log' (#426) from group-reservations-in-log into main
Reviewed-on: Ruderverein-Donau-Linz/rowt#426
This commit is contained in:
		@@ -154,8 +154,15 @@ function selectBoatChange() {
 | 
			
		||||
 | 
			
		||||
        if (event.detail.customProperties.owner) {
 | 
			
		||||
          choiceObjects["newrower"].setChoiceByValue(
 | 
			
		||||
            event.detail.customProperties.owner + "",
 | 
			
		||||
            event.detail.customProperties.owner.toString(),
 | 
			
		||||
          );
 | 
			
		||||
 | 
			
		||||
          if(event.detail.value === '36') {
 | 
			
		||||
              /** custom code for Etsch */
 | 
			
		||||
              choiceObjects["newrower"].setChoiceByValue(
 | 
			
		||||
                "81",
 | 
			
		||||
              );
 | 
			
		||||
          }
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        const inputElement = document.getElementById(
 | 
			
		||||
 
 | 
			
		||||
@@ -10,6 +10,7 @@
 | 
			
		||||
 | 
			
		||||
  &.open {
 | 
			
		||||
      display: block;
 | 
			
		||||
      height: 100dvh;
 | 
			
		||||
      height: 100vh;
 | 
			
		||||
      right: 0;
 | 
			
		||||
      top: 0;
 | 
			
		||||
 
 | 
			
		||||
@@ -15,6 +15,7 @@ test("Cox can start and cancel trip", async ({ page }, testInfo) => {
 | 
			
		||||
    await page.getByText("Kaputtes Boot :-( (7 x)").nth(1).click();
 | 
			
		||||
    await page.getByRole("option", { name: "Joe" }).click();
 | 
			
		||||
  } else {
 | 
			
		||||
    await page.getByText('2x').click();
 | 
			
		||||
    await page.getByText("Joe", { exact: true }).click();
 | 
			
		||||
  }
 | 
			
		||||
  await page.getByPlaceholder("Ruderer auswählen").click();
 | 
			
		||||
@@ -55,6 +56,7 @@ test("Cox can start and finish trip", async ({ page }, testInfo) => {
 | 
			
		||||
    await page.getByText("Kaputtes Boot :-( (7 x)").nth(1).click();
 | 
			
		||||
    await page.getByRole("option", { name: "Joe" }).click();
 | 
			
		||||
  } else {
 | 
			
		||||
    await page.getByText('2x').click();
 | 
			
		||||
    await page.getByText("Joe", { exact: true }).click();
 | 
			
		||||
  }
 | 
			
		||||
  await page.getByPlaceholder("Ruderer auswählen").click();
 | 
			
		||||
@@ -106,6 +108,7 @@ test("Kiosk can start and cancel trip", async ({ page }, testInfo) => {
 | 
			
		||||
    await page.getByText("Kaputtes Boot :-( (7 x)").nth(1).click();
 | 
			
		||||
    await page.getByRole("option", { name: "Joe" }).click();
 | 
			
		||||
  } else {
 | 
			
		||||
    await page.getByText('2x').click();
 | 
			
		||||
    await page.getByText("Joe", { exact: true }).click();
 | 
			
		||||
  }
 | 
			
		||||
  await page.getByPlaceholder("Ruderer auswählen").click();
 | 
			
		||||
@@ -139,6 +142,7 @@ test("Kiosk can start and finish trip", async ({ page }, testInfo) => {
 | 
			
		||||
    await page.getByText("Kaputtes Boot :-( (7 x)").nth(1).click();
 | 
			
		||||
    await page.getByRole("option", { name: "Joe" }).click();
 | 
			
		||||
  } else {
 | 
			
		||||
    await page.getByText('2x').click();
 | 
			
		||||
    await page.getByText("Joe", { exact: true }).click();
 | 
			
		||||
  }
 | 
			
		||||
  await page.getByPlaceholder("Ruderer auswählen").click();
 | 
			
		||||
 
 | 
			
		||||
@@ -4,24 +4,38 @@
 | 
			
		||||
 #}
 | 
			
		||||
{% macro show_boats() %}
 | 
			
		||||
    {% for amount_seats, grouped_boats in boats | group_by(attribute="amount_seats") %}
 | 
			
		||||
        <div class="pb-2">
 | 
			
		||||
            <div class="bg-gray-100 dark:bg-primary-600 text-primary-950 dark:text-white text-center text-sm mb-2">
 | 
			
		||||
                <strong>{{ amount_seats }}x</strong>
 | 
			
		||||
        <details>
 | 
			
		||||
            <summary class="font-bold cursor-pointer text-primary-900 dark:text-white border-t p-3 hover:bg-gray-100 dark:hover:bg-primary-950">
 | 
			
		||||
                <span>
 | 
			
		||||
                    {% if grouped_boats[0].amount_seats < 9 or grouped_boats[0].amount_seats == 24 %}
 | 
			
		||||
                        {{ amount_seats }}x
 | 
			
		||||
                    {% elif grouped_boats[0].amount_seats == 9 %}
 | 
			
		||||
                        {{ grouped_boats[0].amount_seats - 1 }}+
 | 
			
		||||
                    {% else %}
 | 
			
		||||
                        Vereinsfremde Boote
 | 
			
		||||
                    {% endif %}
 | 
			
		||||
                  </span>
 | 
			
		||||
                  <small class="text-gray-500 dark:text-gray-100">
 | 
			
		||||
                    ({{ grouped_boats | length }}) 
 | 
			
		||||
                  </small>
 | 
			
		||||
            </summary>
 | 
			
		||||
            <div class="pb-3">
 | 
			
		||||
              {% for boat in grouped_boats | sort(attribute="name") %}
 | 
			
		||||
                  <div id="boat-{{ boat.id }}"
 | 
			
		||||
                      class="py-3 mx-3 boats-js text-black dark:text-white border-t {% if boat.damage != 'locked' and not boat.on_water %} cursor-pointer hover:text-primary-900 dark:hover:text-gray-100 hover:bg-gray-100 dark:hover:bg-primary-950 {% endif %}"
 | 
			
		||||
                      {% if boat.damage != 'locked' and not boat.on_water %} data-seats="{{ boat.amount_seats }}" data-default_shipmaster_only_steering="{{ boat.default_shipmaster_only_steering }}" data-default-destination="{{ boat.default_destination }}" data-onclick="true" {% endif %}
 | 
			
		||||
                      data-id="{{ boat.id }}">
 | 
			
		||||
                      <span class="status-damage status-damage-{{ boat.damage }}"></span>
 | 
			
		||||
                      <span {% if boat.damage == 'locked' or boat.on_water %}class="opacity-50"{% endif %}>{{ boat.name }}
 | 
			
		||||
                          {% if boat.owner %}<span class="opacity-50">(privat)</span>{% endif %}
 | 
			
		||||
                      </span>
 | 
			
		||||
                  </div>
 | 
			
		||||
              {% endfor %}
 | 
			
		||||
            </div>
 | 
			
		||||
            {% for boat in grouped_boats | sort(attribute="name") %}
 | 
			
		||||
                <div id="boat-{{ boat.id }}"
 | 
			
		||||
                     class="px-3 boats-js text-black dark:text-white {% if boat.damage != 'locked' and not boat.on_water %} cursor-pointer hover:text-primary-900 dark:hover:text-gray-100 {% endif %}"
 | 
			
		||||
                     {% if boat.damage != 'locked' and not boat.on_water %} data-seats="{{ boat.amount_seats }}" data-default_shipmaster_only_steering="{{ boat.default_shipmaster_only_steering }}" data-default-destination="{{ boat.default_destination }}" data-onclick="true" {% endif %}
 | 
			
		||||
                     data-id="{{ boat.id }}">
 | 
			
		||||
                    <span class="status-damage status-damage-{{ boat.damage }}"></span>
 | 
			
		||||
                    <span {% if boat.damage == 'locked' or boat.on_water %}class="opacity-50"{% endif %}>{{ boat.name }}
 | 
			
		||||
                        {% if boat.owner %}<span class="opacity-50">(privat)</span>{% endif %}
 | 
			
		||||
                    </span>
 | 
			
		||||
                </div>
 | 
			
		||||
            {% endfor %}
 | 
			
		||||
        </div>
 | 
			
		||||
          </details>
 | 
			
		||||
    {% endfor %}
 | 
			
		||||
{% endmacro show_boats %}
 | 
			
		||||
 | 
			
		||||
{# Shows the form for creating a new logbook entry. #}
 | 
			
		||||
{% macro new(shipmaster) %}
 | 
			
		||||
    <form action="/log"
 | 
			
		||||
 
 | 
			
		||||
@@ -15,10 +15,29 @@
 | 
			
		||||
                    <h2 class="h2">Boote</h2>
 | 
			
		||||
                    <div>{{ log::show_boats(only_ones=false) }}</div>
 | 
			
		||||
                </div>
 | 
			
		||||
                <div class="bg-white dark:bg-primary-900 rounded-md hidden lg:block shadow mt-3">
 | 
			
		||||
                    <h2 class="h2">Schnellauswahl</h2>
 | 
			
		||||
                    <div>
 | 
			
		||||
                      {% for boat in boats | reverse %}
 | 
			
		||||
                        {% if boat.id in [42, 36] %}
 | 
			
		||||
                          <div class="p-3 boats-js text-black dark:text-white border-t {% if boat.damage != 'locked' and not boat.on_water %} cursor-pointer hover:text-primary-900 dark:hover:text-gray-100 hover:bg-gray-100 dark:hover:bg-primary-950 {% endif %}"
 | 
			
		||||
                            {% if boat.damage != 'locked' and not boat.on_water %} data-seats="{{ boat.amount_seats }}" data-default_shipmaster_only_steering="{{ boat.default_shipmaster_only_steering }}" data-default-destination="{{ boat.default_destination }}" data-onclick="true" {% endif %}
 | 
			
		||||
                            data-id="{{ boat.id }}">
 | 
			
		||||
                              <span class="status-damage status-damage-{{ boat.damage }}"></span>
 | 
			
		||||
                              <span {% if boat.damage == 'locked' or boat.on_water %}class="opacity-50"{% endif %}>{{ boat.name }}
 | 
			
		||||
                                  {% if boat.owner %}<span class="opacity-50">(privat)</span>{% endif %}
 | 
			
		||||
                              </span>
 | 
			
		||||
                          </div>
 | 
			
		||||
                        {% endif %}
 | 
			
		||||
                      {% endfor %}
 | 
			
		||||
                    </div>
 | 
			
		||||
                </div>
 | 
			
		||||
            </div>
 | 
			
		||||
            <div class="lg: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=false, shipmaster=-1) }}</div>
 | 
			
		||||
            <div class="lg:col-span-3">
 | 
			
		||||
                <div class="bg-white dark:bg-primary-900 rounded-md shadow">
 | 
			
		||||
                  <h2 class="h2">Neue Ausfahrt</h2>
 | 
			
		||||
                  <div class="p-3">{{ log::new(only_ones=false, shipmaster=-1) }}</div>
 | 
			
		||||
                </div>
 | 
			
		||||
            </div>
 | 
			
		||||
            <div>
 | 
			
		||||
                <div class="bg-white dark:bg-primary-900 rounded-md shadow pb-2">
 | 
			
		||||
 
 | 
			
		||||
@@ -6,14 +6,16 @@
 | 
			
		||||
        <h1 class="h1">Logbuch</h1>
 | 
			
		||||
        <div class="w-full grid lg:grid-cols-5 gap-3 mt-5">
 | 
			
		||||
            <div>
 | 
			
		||||
                <div class="bg-white dark:bg-primary-900 rounded-md hidden md:block shadow">
 | 
			
		||||
                <div class="bg-white dark:bg-primary-900 rounded-md hidden lg:block shadow">
 | 
			
		||||
                    <h2 class="h2">Boote</h2>
 | 
			
		||||
                    <div>{{ log::show_boats(only_ones=false) }}</div>
 | 
			
		||||
                </div>
 | 
			
		||||
            </div>
 | 
			
		||||
            <div class="lg:col-span-3 bg-white dark:bg-primary-900 rounded-md shadow">
 | 
			
		||||
                <h2 class="h2">Neue Ausfahrt</h2>
 | 
			
		||||
                <div class="p-3">{{ log::new(shipmaster=loggedin_user.id) }}</div>
 | 
			
		||||
            <div class="lg:col-span-3">
 | 
			
		||||
              <div class="bg-white dark:bg-primary-900 rounded-md shadow">
 | 
			
		||||
                  <h2 class="h2">Neue Ausfahrt</h2>
 | 
			
		||||
                  <div class="p-3">{{ log::new(shipmaster=loggedin_user.id) }}</div>
 | 
			
		||||
              </div>
 | 
			
		||||
            </div>
 | 
			
		||||
            <div>
 | 
			
		||||
                <div class="bg-white dark:bg-primary-900 rounded-md shadow pb-2">
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user