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