{% extends 'partials/base.html.twig' %} {% block content %} {% set tracker_page = grav.pages.find(page.parent().route ~ '/dailies') %} {% set all_entries = tracker_page ? tracker_page.children.published() : [] %} {# Basic counts #} {% set entry_count = all_entries|length %} {# Days on the road — find earliest entry timestamp by iterating #} {% set days_on_road = 0 %} {% set first_ts = null %} {% for entry in all_entries %} {% set ts = entry.date|date('U') %} {% if first_ts is null or ts < first_ts %} {% set first_ts = ts %} {% endif %} {% endfor %} {% if first_ts is not null %} {% set now_ts = "now"|date('U') %} {% set diff_seconds = now_ts - first_ts %} {% set days_raw = (diff_seconds / 86400)|round(0, 'floor') %} {% set days_on_road = days_raw < 1 ? 1 : days_raw %} {% endif %} {# Countries — unique, case-insensitive dedup, preserve original casing #} {% set seen_lower = [] %} {% set country_display = [] %} {% for entry in all_entries %} {% if entry.header.location_country is not empty %} {% set lower = entry.header.location_country|trim|lower %} {% if lower not in seen_lower %} {% set seen_lower = seen_lower|merge([lower]) %} {% set country_display = country_display|merge([entry.header.location_country|trim]) %} {% endif %} {% endif %} {% endfor %} {# GPS points for distance — collect as JSON for JS computation #} {% set gps_points = [] %} {% for entry in all_entries %} {% if entry.header.lat is not empty and entry.header.lng is not empty %} {% set gps_points = gps_points|merge([[entry.header.lat, entry.header.lng]]) %} {% endif %} {% endfor %}
Distance is approximate — straight lines between entry locations.