107 lines
3 KiB
HTML
107 lines
3 KiB
HTML
<!doctype html>
|
|
<html lang="en">
|
|
<head>
|
|
<meta charset="utf-8">
|
|
<title>Ferries to France</title>
|
|
<meta name="viewport" content="width=device-width, initial-scale=1">
|
|
<link href="https://cdn.jsdelivr.net/npm/bootstrap@5.2.0/dist/css/bootstrap.min.css" rel="stylesheet" integrity="sha384-gH2yIJqKdNHPEq0n4Mqa/HGKIhSkIHeL5AyhkYV8i59U5AR6csBvApHHNl/vI1Bx" crossorigin="anonymous">
|
|
|
|
<!--
|
|
<style>
|
|
body {
|
|
background: black;
|
|
color: white;
|
|
}
|
|
|
|
.table { color: white; }
|
|
|
|
a:link {
|
|
color: rgb(127, 127, 255);
|
|
}
|
|
|
|
</style>
|
|
-->
|
|
|
|
|
|
|
|
</head>
|
|
|
|
<body>
|
|
<div class="m-3">
|
|
|
|
<h1>{{ port_lookup[departure_port].title() }}
|
|
to {{ port_lookup[arrival_port].title() }}</h1>
|
|
|
|
<p>{{ departure_date.strftime("%A, %d %B %Y %H:%M UTC") }} {{ ticket_tier }}</p>
|
|
|
|
<p><a href="{{ url_for(section + "_page", rear_mounted_bike_carrier=request.args.get("rear_mounted_bike_carrier")) }}">back to sailings</a></p>
|
|
|
|
<p>Passengers: {{ pax_label }}</p>
|
|
|
|
{% if rear_mounted_bike_carrier %}
|
|
<p>Bike carrier: <strong>yes</strong> | <a href="{{ url_for(request.endpoint, rear_mounted_bike_carrier=None, **request.view_args) }}">no</a></p>
|
|
{% else %}
|
|
<p>Bike carrier:
|
|
<a href="{{ url_for(request.endpoint, rear_mounted_bike_carrier='true', **request.view_args) }}">yes</a>
|
|
|
|
|
<strong>no</strong>
|
|
</p>
|
|
{% endif %}
|
|
|
|
<table class="table w-auto">
|
|
<tr>
|
|
<th>code</th>
|
|
<th>description</th>
|
|
<th>births</th>
|
|
<th>quantity<br/>available</th>
|
|
<th class="text-end">cabin<br/>price</th>
|
|
<th class="text-end">total<br/>price</th>
|
|
</tr>
|
|
{% for a in accommodations if a.quantityAvailable > 0 %}
|
|
<tr>
|
|
<td>{{ a.code }}</td>
|
|
<td>{{ a.description }}</td>
|
|
<td>{{ a.maxAdults }}</td>
|
|
<td>
|
|
{% if a.quantityAvailable == 10 %}
|
|
10+
|
|
{% else %}
|
|
{{ a.quantityAvailable }}
|
|
{% endif %}
|
|
</td>
|
|
<td class="text-end">£{{ a.unitCost.amount }}</td>
|
|
<td class="text-end">£{{ a.unitCost.amount + crossing.flexiPrice.amount }}</td>
|
|
</tr>
|
|
{% endfor %}
|
|
</table>
|
|
|
|
{% if pet_accommodations %}
|
|
<h4>Pet accommodations</h4>
|
|
|
|
{% set pets = {"G": "stay in car", "B": "large kennel", "K": "small kennel" } %}
|
|
|
|
<ul>
|
|
{% for i in pet_accommodations if i.quantityAvailable and i.quantityAvailable > 0 %}
|
|
<li>{{ pets[i.code] }}</li>
|
|
{% endfor %}
|
|
</ul>
|
|
|
|
{% endif %}
|
|
|
|
<h4>Sailing</h4>
|
|
|
|
<ul>
|
|
<li>sailing ID: {{ crossing.sailingId }}</li>
|
|
<li>depart: {{ crossing.departureDateTime.time }}</li>
|
|
<li>arrive: {{ crossing.arrivalDateTime.time }}</li>
|
|
<li>duration: {{ get_duration(crossing.departureDateTime.time, crossing.arrivalDateTime.time, time_delta) }}</li>
|
|
<li>ship: {{ crossing.shipName }}</li>
|
|
<li>economy price: £{{ crossing.economyPrice.amount }}</li>
|
|
<li>standard price: £{{ crossing.standardPrice.amount }}</li>
|
|
<li>flexi price: £{{ crossing.flexiPrice.amount }}</li>
|
|
</ul>
|
|
|
|
</div>
|
|
</body>
|
|
</html>
|