{% extends 'layouts/authenticated.html.twig' %} {% block page_title %}{{ page_title }}{% endblock %} {% block content %}
{# En-tête #}

{{ page_title }}

Répartition géographique des accès au portail

{# Filtre période #}
Période : {% for value, label in {'7': '7 jours', '30': '30 jours', '90': '90 jours', 'all': 'Tout'} %} {{ label }} {% endfor %}
{# Statistiques globales #}
Total Requêtes
{{ stats.total_requests|default(0)|number_format(0, ',', ' ') }}
IPs Uniques
{{ stats.unique_ips|default(0)|number_format(0, ',', ' ') }}
Pays
{{ countries|length }}
Suspectes
{{ stats.suspicious_requests|default(0)|number_format(0, ',', ' ') }}
{# Répartition par pays #}

Répartition par pays

{% if countries|length > 0 %}
{% for entry in countries %} {% set percentage = total_requests > 0 ? (entry.request_count / total_requests * 100) : 0 %}
{{ entry.country }} {{ entry.unique_ips }} IP{{ entry.unique_ips > 1 ? 's' : '' }}
{{ entry.request_count|number_format(0, ',', ' ') }} ({{ percentage|number_format(1) }}%)
{% endfor %}
{% else %}

Aucune donnée disponible pour cette période.

{% endif %}
{# Top IPs #}

Top IPs

{% if top_ips|length > 0 %} {% for ip in top_ips %}

{{ ip.ipAddress }}

{{ ip.country|default('Inconnu') }}{% if ip.city %} - {{ ip.city }}{% endif %}

{{ ip.request_count }}
{% endfor %} {% else %}

Aucune donnée.

{% endif %}
{% endblock %}