diff --git a/agenda/types.py b/agenda/types.py
index 0e5bfc4..1b4a27a 100644
--- a/agenda/types.py
+++ b/agenda/types.py
@@ -3,7 +3,7 @@
import collections
import datetime
import typing
-from collections import defaultdict
+from collections import Counter
from dataclasses import dataclass, field
import emoji
@@ -190,12 +190,12 @@ class Trip:
Any travel item with a missing or None 'distance' field is ignored.
"""
- transport_distances: defaultdict[str, float] = defaultdict(float)
+ transport_distances: Counter[float] = Counter()
for item in self.travel:
distance = item.get("distance")
if distance:
- transport_type: str = item.get("type", "unknown")
+ transport_type = item.get("type", "unknown")
transport_distances[transport_type] += distance
return list(transport_distances.items())
diff --git a/templates/macros.html b/templates/macros.html
index 50e55cf..fec5da9 100644
--- a/templates/macros.html
+++ b/templates/macros.html
@@ -3,10 +3,6 @@
{% macro display_date(dt) %}{{ dt.strftime("%a %-d %b %Y") }}{% endmacro %}
{% macro display_date_no_year(dt) %}{{ dt.strftime("%a %-d %b") }}{% endmacro %}
-{% macro format_distance(distance) %}
- {{ "{:,.0f} km / {:,.0f} miles".format(distance, distance / 1.60934) }}
-{% endmacro %}
-
{% macro trip_link(trip) %}
{{ trip.title }}
{% endmacro %}
diff --git a/templates/trip/list.html b/templates/trip/list.html
index c39a516..a35ac5b 100644
--- a/templates/trip/list.html
+++ b/templates/trip/list.html
@@ -1,6 +1,6 @@
{% extends "base.html" %}
-{% from "macros.html" import trip_link, display_date_no_year, display_date, display_datetime, display_time, format_distance with context %}
+{% from "macros.html" import trip_link, display_date_no_year, display_date, display_datetime, display_time with context %}
{% block title %}{{ heading }} - Edward Betts{% endblock %}
@@ -52,18 +52,6 @@
{% set items = item_list | list %}
{{ heading }}
{{ items | count }} trips
-
- Total distance: {{ format_distance(total_distance) }}
-
- {% for transport_type, distance in distances_by_transport_type %}
-
- {{ transport_type | title }}
- distance: {{format_distance(distance) }}
-
- {% endfor %}
-
-
-
{% for trip in items %}
{% set distances_by_transport_type = trip.distances_by_transport_type() %}
{% set total_distance = trip.total_distance() %}
@@ -86,17 +74,15 @@
Start: {{ display_date_no_year(trip.start) }} (end date missing)
{% endif %}
{% if total_distance %}
-
- Total distance:
- {{ format_distance(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: {{format_distance(distance) }}
+
{{ transport_type | title }} distance:
+ {{ "{:,.0f} km / {:,.0f} miles".format(distance, distance / 1.60934) }}
{% endfor %}
{% endif %}
@@ -122,14 +108,9 @@
{% if e.element_type == "flight" %}
airline: {{ e.detail.airline_name }}
flight number: {{ e.detail.airline }}{{ e.detail.flight_number }}
- {% if e.detail.duration %}
-
duration: {{ e.detail.duration }}
- {% endif %}
+
duration: {{ e.detail.duration }}
{#
{{ e.detail | pprint }} #}
{% endif %}
- {% if e.detail.distance %}
-
distance: {{ format_distance(e.detail.distance) }}
- {% endif %}
{% endif %}
{% endfor %}
diff --git a/web_view.py b/web_view.py
index 8c30bbd..286d4ad 100755
--- a/web_view.py
+++ b/web_view.py
@@ -8,7 +8,6 @@ import operator
import os.path
import sys
import traceback
-from collections import defaultdict
from datetime import date, datetime, timedelta
import flask
@@ -287,27 +286,6 @@ def trip_list() -> werkzeug.Response:
return flask.redirect(flask.url_for("trip_future_list"))
-def calc_total_distance(trips: list[Trip]) -> float:
- """Total distance for trips."""
- total = 0.0
- for item in trips:
- dist = item.total_distance()
- if dist:
- total += dist
-
- return total
-
-
-def sum_distances_by_transport_type(trips: list[Trip]) -> list[tuple[str, float]]:
- """Sum distances by transport type."""
- distances_by_transport_type: defaultdict[str, float] = defaultdict(float)
- for trip in trips:
- for transport_type, dist in trip.distances_by_transport_type():
- distances_by_transport_type[transport_type] += dist
-
- return list(distances_by_transport_type.items())
-
-
@app.route("/trip/past")
def trip_past_list() -> str:
"""Page showing a list of past trips."""
@@ -329,8 +307,6 @@ def trip_past_list() -> str:
get_country=agenda.get_country,
format_list_with_ampersand=format_list_with_ampersand,
fx_rate=agenda.fx.get_rates(app.config),
- total_distance=calc_total_distance(past),
- distances_by_transport_type=sum_distances_by_transport_type(past),
)
@@ -361,8 +337,6 @@ def trip_future_list() -> str:
get_country=agenda.get_country,
format_list_with_ampersand=format_list_with_ampersand,
fx_rate=agenda.fx.get_rates(app.config),
- total_distance=calc_total_distance(current + future),
- distances_by_transport_type=sum_distances_by_transport_type(current + future),
)