Show country names and flags on accommodation page
This commit is contained in:
parent
9800030201
commit
fd46f0a405
|
@ -1,9 +1,10 @@
|
||||||
{% extends "base.html" %}
|
{% extends "base.html" %}
|
||||||
{% block style %}
|
{% block style %}
|
||||||
|
{% set column_count = 7 %}
|
||||||
<style>
|
<style>
|
||||||
.grid-container {
|
.grid-container {
|
||||||
display: grid;
|
display: grid;
|
||||||
grid-template-columns: repeat(6, auto);
|
grid-template-columns: repeat({{ column_count }}, auto);
|
||||||
gap: 10px;
|
gap: 10px;
|
||||||
justify-content: start;
|
justify-content: start;
|
||||||
}
|
}
|
||||||
|
@ -13,18 +14,28 @@
|
||||||
}
|
}
|
||||||
|
|
||||||
.heading {
|
.heading {
|
||||||
grid-column: 1 / 7; /* Spans from the 1st line to the 7th line */
|
grid-column: 1 / {{ column_count + 1 }}; /* Spans from the 1st line to the 7th line */
|
||||||
}
|
}
|
||||||
</style>
|
</style>
|
||||||
{% endblock %}
|
{% endblock %}
|
||||||
|
|
||||||
{% macro row(item, badge) %}
|
{% macro row(item, badge) %}
|
||||||
|
{% set country = get_country(item.country) %}
|
||||||
<div class="grid-item text-end">{{ item.from.strftime("%a, %d %b %Y") }}</div>
|
<div class="grid-item text-end">{{ item.from.strftime("%a, %d %b %Y") }}</div>
|
||||||
<div class="grid-item text-end">{{ item.to.strftime("%a, %d %b") }}</div>
|
<div class="grid-item text-end">{{ item.to.strftime("%a, %d %b") }}</div>
|
||||||
<div class="grid-item text-end">{{ (item.to.date() - item.from.date()).days }}</div>
|
<div class="grid-item text-end">{{ (item.to.date() - item.from.date()).days }}</div>
|
||||||
<div class="grid-item">{{ item.name }}</div>
|
<div class="grid-item">{{ item.name }}</div>
|
||||||
<div class="grid-item">{{ item.operator }}</div>
|
<div class="grid-item">{{ item.operator }}</div>
|
||||||
<div class="grid-item">{{ item.location }}</div>
|
<div class="grid-item">{{ item.location }}</div>
|
||||||
|
<div class="grid-item">
|
||||||
|
{% if country %}
|
||||||
|
{{ country.flag }} {{ country.name }}
|
||||||
|
{% else %}
|
||||||
|
<span class="text-bg-danger p-2">
|
||||||
|
country code <strong>{{ item.country }}</strong> not found
|
||||||
|
</span>
|
||||||
|
{% endif %}
|
||||||
|
</div>
|
||||||
{% endmacro %}
|
{% endmacro %}
|
||||||
|
|
||||||
{% macro section(heading, item_list, badge) %}
|
{% macro section(heading, item_list, badge) %}
|
||||||
|
|
|
@ -7,9 +7,11 @@ import operator
|
||||||
import os.path
|
import os.path
|
||||||
import sys
|
import sys
|
||||||
import traceback
|
import traceback
|
||||||
|
import typing
|
||||||
from datetime import date, datetime
|
from datetime import date, datetime
|
||||||
|
|
||||||
import flask
|
import flask
|
||||||
|
import pycountry
|
||||||
import werkzeug
|
import werkzeug
|
||||||
import werkzeug.debug.tbtools
|
import werkzeug.debug.tbtools
|
||||||
import yaml
|
import yaml
|
||||||
|
@ -140,11 +142,15 @@ def accommodation_list() -> str:
|
||||||
if stay["country"] != "gb"
|
if stay["country"] != "gb"
|
||||||
)
|
)
|
||||||
|
|
||||||
|
def get_country(alpha_2: str) -> str | None:
|
||||||
|
return typing.cast(str | None, pycountry.countries.get(alpha_2=alpha_2.upper()))
|
||||||
|
|
||||||
return flask.render_template(
|
return flask.render_template(
|
||||||
"accommodation.html",
|
"accommodation.html",
|
||||||
items=items,
|
items=items,
|
||||||
total_nights_2024=total_nights_2024,
|
total_nights_2024=total_nights_2024,
|
||||||
nights_abroad_2024=nights_abroad_2024,
|
nights_abroad_2024=nights_abroad_2024,
|
||||||
|
get_country=get_country,
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue