{% extends "base.html" %} {% block title %}{{ trip.title }} ({{ display_date(trip.start) }}) - Edward Betts{% endblock %} {% from "macros.html" import trip_link, display_datetime, display_date_no_year, display_date, conference_row, accommodation_row, flight_row, train_row with context %} {% set row = { "flight": flight_row, "train": train_row } %} {% macro next_and_previous() %}

{% if prev_trip %} previous: {{ trip_link(prev_trip) }} ({{ (trip.start - prev_trip.end).days }} days) {% endif %} {% if next_trip %} next: {{ trip_link(next_trip) }} ({{ (next_trip.start - trip.end).days }} days) {% endif %}

{% endmacro %} {% block style %} {% if coordinates %} {% endif %} {% set conference_column_count = 7 %} {% set accommodation_column_count = 7 %} {% set travel_column_count = 9 %} {% endblock %} {% set end = trip.end %} {% set total_distance = trip.total_distance() %} {% set distances_by_transport_type = trip.distances_by_transport_type() %} {% block content %}
{{ next_and_previous() }}

{{ trip.title }}

{% if end %} {{ display_date_no_year(trip.start) }} to {{ display_date_no_year(end) }} ({{ (end - trip.start).days }} nights) {% else %} {{ display_date_no_year(trip.start) }} (end date missing) {% endif %}

{#
Countries: {{ trip.countries_str }}
#}
Locations: {{ trip.locations_str }}
{% if total_distance %}
Total distance: {{ "{:,.0f} km / {:,.0f} miles".format(total_distance, total_distance / 1.60934) }}
{% endif %} {% if distances_by_transport_type %} {% for transport_type, distance in distances_by_transport_type %}
{{ transport_type | title }} distance: {{ "{:,.0f} km / {:,.0f} miles".format(distance, distance / 1.60934) }}
{% endfor %} {% endif %} {% set delta = human_readable_delta(trip.start) %} {% if delta %}
How long until trip: {{ delta }}
{% endif %}
{% for item in trip.conferences %} {% set country = get_country(item.country) if item.country else None %}
{{ item.name }} {{ display_date_no_year(item.start) }} to {{ display_date_no_year(item.end) }}

Topic: {{ item.topic }} Venue: {{ item.venue }} Location: {{ item.location }} {% if country %} {{ country.flag if trip.show_flags }} {% elif item.online %} πŸ’» Online {% else %} country code {{ item.country }} not found {% endif %} {% if item.free %} free to attend {% elif item.price and item.currency %} price: {{ item.price }} {{ item.currency }} {% endif %}

{% endfor %} {% for item in trip.accommodation %} {% set country = get_country(item.country) if item.country else None %} {% set nights = (item.to.date() - item.from.date()).days %}
{% if item.operator %}{{ item.operator }}: {% endif %} {{ item.name }} {{ display_date_no_year(item.from) }} to {{ display_date_no_year(item.to) }} ({% if nights == 1 %}1 night{% else %}{{ nights }} nights{% endif %})

Address: {{ item.address }} Location: {{ item.location }} {% if country %} {{ country.flag if trip.show_flags }} {% else %} country code {{ item.country }} not found {% endif %} {% if g.user.is_authenticated and item.price and item.currency %} price: {{ item.price }} {{ item.currency }} {% endif %}

{% endfor %} {% if trip.flight_bookings %}

Flight bookings

{% for item in trip.flight_bookings %}
{{ item.flights | map(attribute="airline_name") | unique | join(" + ") }} {% if g.user.is_authenticated and item.booking_reference %} booking reference: {{ item.booking_reference }} {% endif %} {% if g.user.is_authenticated and item.price and item.currency %} price: {{ item.price }} {{ item.currency }} {% endif %}
{% endfor %} {% endif %} {% for item in trip.events %} {% set country = get_country(item.country) if item.country else None %}
{{ item.title }} {{ display_date_no_year(item.date) }}

Address: {{ item.address }} | Location: {{ item.location }} {% if country %} {{ country.flag if trip.show_flags }} {% else %} country code {{ item.country }} not found {% endif %} {% if g.user.is_authenticated and item.price and item.currency %} | price: {{ item.price }} {{ item.currency }} {% endif %}

{% endfor %} {% for item in trip.travel %}
{% if item.type == "flight" %} ✈️ {{ item.from_airport.name }} ({{ item.from_airport.iata}}) → {{ item.to_airport.name }} ({{item.to_airport.iata}}) {% elif item.type == "train" %} πŸš† {{ item.from }} → {{ item.to }} {% endif %}

{% if item.type == "flight" %}

{{ item.airline_name }} ({{ item.airline }}) ✨ {{ display_datetime(item.depart) }} {% if item.arrive %} → {{ item.arrive.strftime("%H:%M %z") }} πŸ•’{{ ((item.arrive - item.depart).total_seconds() // 60) | int }} mins {% endif %} ✨ {{ item.airline }}{{ item.flight_number }} {% if item.distance %} 🌍distance: {{ "{:,.0f} km / {:,.0f} miles".format(item.distance, item.distance / 1.60934) }} {% endif %}
{% elif item.type == "train" %}
{{ display_datetime(item.depart) }} → {{ item.arrive.strftime("%H:%M %z") }} {% if item.class %} {{ item.class }} {% endif %} πŸ•’{{ ((item.arrive - item.depart).total_seconds() // 60) | int }} mins {% if item.distance %} πŸ›€οΈ {{ "{:,.0f} km / {:,.0f} miles".format(item.distance, item.distance / 1.60934) }} {% endif %}
{% endif %}

{% endfor %}

Holidays

{% if holidays %} {% for item in holidays %} {% set country = get_country(item.country) %} {% if loop.first or item.date != loop.previtem.date %} {% else %} {% endif %} {% endfor %}
{{ display_date(item.date) }}{{ country.flag if trip.show_flags }} {{ country.name }} {{ item.display_name }}
{% else %}

No public holidays during trip.

{% endif %}
{{ next_and_previous() }}
{% endblock %} {% block scripts %} {% endblock %}