170 lines
		
	
	
		
			5.1 KiB
		
	
	
	
		
			HTML
		
	
	
	
	
	
			
		
		
	
	
			170 lines
		
	
	
		
			5.1 KiB
		
	
	
	
		
			HTML
		
	
	
	
	
	
<!doctype html>
 | 
						|
<html lang="en">
 | 
						|
<head>
 | 
						|
  <meta charset="utf-8">
 | 
						|
  <meta name="viewport" content="width=device-width, initial-scale=1">
 | 
						|
  <title>Agenda - Edward Betts</title>
 | 
						|
  <link href="{{ url_for("static", filename="bootstrap5/css/bootstrap.min.css") }}" rel="stylesheet">
 | 
						|
  <link rel="icon" href="data:image/svg+xml,<svg xmlns=%22http://www.w3.org/2000/svg%22 viewBox=%220 0 100 100%22><text y=%22.9em%22 font-size=%2290%22>📅</text></svg>">
 | 
						|
 | 
						|
  <script async src="{{ url_for("static", filename="es-module-shims/es-module-shims.js") }}"></script>
 | 
						|
 | 
						|
</head>
 | 
						|
 | 
						|
{% set event_labels = {
 | 
						|
  "economist": "📰 The Economist",
 | 
						|
  "mothers_day": "Mothers' day",
 | 
						|
  "fathers_day": "Fathers' day",
 | 
						|
  "uk_financial_year_end": "End of financial year",
 | 
						|
  "bank_holiday": "UK bank holiday",
 | 
						|
  "us_holiday": "US holiday",
 | 
						|
  "uk_clock_change": "UK clock change",
 | 
						|
  "us_clock_change": "US clock change",
 | 
						|
  "us_presidential_election": "US pres. election",
 | 
						|
  "xmas_last_second": "Christmas last posting 2nd class",
 | 
						|
  "xmas_last_first": "Christmas last posting 1st class",
 | 
						|
  "up_series": "Up documentary",
 | 
						|
  "waste_schedule": "Waste schedule",
 | 
						|
  "gwr_advance_tickets": "GWR advance tickets",
 | 
						|
  "critical_mass": "Critical Mass",
 | 
						|
}
 | 
						|
%}
 | 
						|
 | 
						|
{%set class_map = {
 | 
						|
  "bank_holiday": "bg-success-subtle",
 | 
						|
  "conference": "bg-primary-subtle",
 | 
						|
  "us_holiday": "bg-secondary-subtle",
 | 
						|
  "birthday": "bg-info-subtle",
 | 
						|
  "waste_schedule": "bg-danger-subtle",
 | 
						|
} %}
 | 
						|
 | 
						|
 | 
						|
{% from "macros.html" import trip_link, display_date_no_year, trip_item with context %}
 | 
						|
 | 
						|
{% from "navbar.html" import navbar with context %}
 | 
						|
<body>
 | 
						|
  {{ navbar() }}
 | 
						|
 | 
						|
  <div class="container-fluid mt-2">
 | 
						|
    <h1>Agenda</h1>
 | 
						|
    <p>
 | 
						|
      <a href="/tools">← personal tools</a>
 | 
						|
    </p>
 | 
						|
 | 
						|
    <ul>
 | 
						|
    <li>Today is {{now.strftime("%A, %-d %b %Y")}}</li>
 | 
						|
    {% if gbpusd %}
 | 
						|
      <li>GBPUSD: {{"{:,.3f}".format(gbpusd)}}</li>
 | 
						|
    {% endif %}
 | 
						|
    <li>GWR advance ticket furthest date:
 | 
						|
      {% if gwr_advance_tickets %}
 | 
						|
        {{ gwr_advance_tickets.strftime("%A, %-d %b %Y") }}
 | 
						|
      {% else %}
 | 
						|
        unknown
 | 
						|
      {% endif %}
 | 
						|
    </li>
 | 
						|
    <li>Bristol Sunrise: {{ sunrise.strftime("%H:%M:%S") }} /
 | 
						|
    Sunset: {{ sunset.strftime("%H:%M:%S") }}</li>
 | 
						|
    </ul>
 | 
						|
 | 
						|
  {% if errors %}
 | 
						|
    {% for error in errors %}
 | 
						|
      <div class="alert alert-danger" role="alert">
 | 
						|
        Error: {{ error }}
 | 
						|
      </div>
 | 
						|
    {% endfor %}
 | 
						|
  {% endif %}
 | 
						|
 | 
						|
  <h3>Stock markets</h3>
 | 
						|
  {% for market in stock_markets %}
 | 
						|
    <p>{{ market }}</p>
 | 
						|
  {% endfor %}
 | 
						|
 | 
						|
  {% if current_trip %}
 | 
						|
    <div>
 | 
						|
      <h3>Current trip</h3>
 | 
						|
      {{ trip_item(current_trip) }}
 | 
						|
    </div>
 | 
						|
  {% endif %}
 | 
						|
 | 
						|
  <h3>Agenda</h3>
 | 
						|
 | 
						|
  <div>
 | 
						|
  Markets:
 | 
						|
  <a href="{{ url_for(request.endpoint) }}">Hide while away</a>
 | 
						|
  | <a href="{{ url_for(request.endpoint, markets="show") }}">Show all</a>
 | 
						|
  | <a href="{{ url_for(request.endpoint, markets="hide") }}">Hide all</a>
 | 
						|
  </div>
 | 
						|
 | 
						|
  {% for event in events if start_event_list <= event.as_date <= end_event_list %}
 | 
						|
  {% if loop.first or event.date.year != loop.previtem.date.year or event.date.month != loop.previtem.date.month %}
 | 
						|
  <div class="row mt-2">
 | 
						|
    <div class="col">
 | 
						|
      <h4>{{ event.date.strftime("%B %Y") }}</h4>
 | 
						|
    </div>
 | 
						|
  </div>
 | 
						|
  {% endif %}
 | 
						|
  {% set delta = event.delta_days(today) %}
 | 
						|
  {% if event.name == "today" %}
 | 
						|
    <div class="row">
 | 
						|
      <div class="col bg-warning-subtle">
 | 
						|
        <h3>today</h3>
 | 
						|
      </div>
 | 
						|
    </div>
 | 
						|
  {% else %}
 | 
						|
    {% set cell_bg = " bg-warning-subtle" if delta == "today" else "" %}
 | 
						|
    <div class="row border border-1 {% if event.name in class_map %} {{ class_map[event.name]}}{% else %}{{ cell_bg }}{% endif %}">
 | 
						|
      <div class="col-md-2{{ cell_bg }}">
 | 
						|
        {{event.as_date.strftime("%a, %d, %b")}}
 | 
						|
         
 | 
						|
         
 | 
						|
        {{event.display_time or ""}}
 | 
						|
         
 | 
						|
         
 | 
						|
        {{event.display_timezone or ""}}
 | 
						|
      </div>
 | 
						|
 | 
						|
      <div class="col-md-2{{ cell_bg }}">
 | 
						|
        {% if event.end_date %}
 | 
						|
          {% set duration = event.display_duration() %}
 | 
						|
          {% if duration %}
 | 
						|
            end: {{event.end_date.strftime("%H:%M") }}
 | 
						|
            (duration: {{duration}})
 | 
						|
          {% elif event.end_date != event.date %}
 | 
						|
            {{event.end_date}}
 | 
						|
          {% endif %}
 | 
						|
        {% endif %}
 | 
						|
      </div>
 | 
						|
 | 
						|
      <div class="col-md-7 text-start">
 | 
						|
        {% if event.url %}<a href="{{ event.url }}">{% endif %}
 | 
						|
      {{ event_labels.get(event.name) or event.name }}
 | 
						|
      {%- if event.title -%}: {{ event.title_with_emoji }}{% endif %}
 | 
						|
      {% if event.url %}</a>{% endif %}
 | 
						|
      </div>
 | 
						|
      <div class="col-md-1{{ cell_bg }}">
 | 
						|
      {{ delta }}
 | 
						|
      </div>
 | 
						|
    </div>
 | 
						|
    {% endif %}
 | 
						|
  {% endfor %}
 | 
						|
 | 
						|
  <div class="mt-2">
 | 
						|
    <h5>Page generation time</h5>
 | 
						|
    <ul>
 | 
						|
    <li>Data gather took {{ "%.1f" | format(data_gather_seconds) }} seconds</li>
 | 
						|
    <li>Stock market open/close took
 | 
						|
        {{ "%.1f" | format(stock_market_times_seconds) }} seconds</li>
 | 
						|
    {% for name, seconds in timings %}
 | 
						|
    <li>{{ name }} took {{ "%.1f" | format(seconds) }} seconds</li>
 | 
						|
    {% endfor %}
 | 
						|
    <li>Render time: {{ "%.1f" | format(render_time) }} seconds</li>
 | 
						|
 | 
						|
    </ul>
 | 
						|
  </div>
 | 
						|
 | 
						|
  </div>
 | 
						|
  <script src="{{ url_for("static", filename="bootstrap5/js/bootstrap.bundle.min.js") }}"></script>
 | 
						|
</body>
 | 
						|
</html>
 |