up wiki land
This commit is contained in:
parent
391a212034
commit
e533c273b2
10 changed files with 1116 additions and 182 deletions
|
@ -41,6 +41,11 @@
|
|||
<i class="bi bi-people"></i> Groupes OSM-FR
|
||||
</a>
|
||||
</li>
|
||||
<li class="nav-item">
|
||||
<a class="nav-link {% if app.request.get('_route') == 'app_admin_wiki_recent_changes' %}active{% endif %}" href="{{ path('app_admin_wiki_recent_changes') }}">
|
||||
<i class="bi bi-clock-history"></i> Changements récents
|
||||
</a>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
|
|
|
@ -58,7 +58,13 @@
|
|||
<div class="card h-100">
|
||||
<div class="card-header bg-primary text-white">
|
||||
<h3>Sections en anglais</h3>
|
||||
<span class="badge bg-light text-dark">{{ en_page.sections }} sections</span>
|
||||
<span class="badge bg-light text-dark">
|
||||
{% if detailed_comparison.adjusted_en_section_count is defined %}
|
||||
{{ detailed_comparison.adjusted_en_section_count }} sections ({{ en_page.sections }} avec "Contents")
|
||||
{% else %}
|
||||
{{ en_page.sections }} sections
|
||||
{% endif %}
|
||||
</span>
|
||||
</div>
|
||||
<div class="card-body">
|
||||
<h4>Sections alignées par hiérarchie</h4>
|
||||
|
@ -67,6 +73,9 @@
|
|||
<li class="list-group-item title-level-{{ section.en.level }}">
|
||||
{# <span class="badge bg-secondary">h{{ section.en.level }}</span> #}
|
||||
{{ section.en.title }}
|
||||
{% if detailed_comparison.en_hierarchy_errors is defined and loop.index0 in detailed_comparison.en_hierarchy_errors %}
|
||||
<span class="badge bg-danger ms-2" title="Hiérarchie incorrecte">!</span>
|
||||
{% endif %}
|
||||
</li>
|
||||
{% endfor %}
|
||||
|
||||
|
@ -74,6 +83,9 @@
|
|||
<li class="list-group-item list-group-item-warning title-level-{{ section.level }}">
|
||||
{# <span class="badge bg-secondary">h{{ section.level }}</span> #}
|
||||
{{ section.title }}
|
||||
{% if detailed_comparison.en_hierarchy_errors is defined and (detailed_comparison.section_comparison.common|length + loop.index0) in detailed_comparison.en_hierarchy_errors %}
|
||||
<span class="badge bg-danger ms-2" title="Hiérarchie incorrecte">!</span>
|
||||
{% endif %}
|
||||
</li>
|
||||
{% endfor %}
|
||||
</ul>
|
||||
|
@ -84,7 +96,13 @@
|
|||
<div class="card h-100">
|
||||
<div class="card-header bg-info text-white">
|
||||
<h3>Sections en français</h3>
|
||||
<span class="badge bg-light text-dark">{{ fr_page.sections }} sections</span>
|
||||
<span class="badge bg-light text-dark">
|
||||
{% if detailed_comparison.adjusted_fr_section_count is defined %}
|
||||
{{ detailed_comparison.adjusted_fr_section_count }} sections ({{ fr_page.sections }} avec "Sommaire")
|
||||
{% else %}
|
||||
{{ fr_page.sections }} sections
|
||||
{% endif %}
|
||||
</span>
|
||||
</div>
|
||||
<div class="card-body">
|
||||
<h4>Sections alignées par hiérarchie</h4>
|
||||
|
@ -93,6 +111,9 @@
|
|||
<li class="list-group-item title-level-{{ section.fr.level }}">
|
||||
{# <span class="badge bg-secondary">h{{ section.fr.level }}</span> #}
|
||||
{{ section.fr.title }}
|
||||
{% if detailed_comparison.fr_hierarchy_errors is defined and loop.index0 in detailed_comparison.fr_hierarchy_errors %}
|
||||
<span class="badge bg-danger ms-2" title="Hiérarchie incorrecte">!</span>
|
||||
{% endif %}
|
||||
</li>
|
||||
{% endfor %}
|
||||
|
||||
|
@ -100,7 +121,9 @@
|
|||
<li class="list-group-item list-group-item-info title-level-{{ section.level }}">
|
||||
{# <span class="badge bg-secondary">h{{ section.level }}</span> #}
|
||||
{{ section.title }}
|
||||
|
||||
{% if detailed_comparison.fr_hierarchy_errors is defined and (detailed_comparison.section_comparison.common|length + loop.index0) in detailed_comparison.fr_hierarchy_errors %}
|
||||
<span class="badge bg-danger ms-2" title="Hiérarchie incorrecte">!</span>
|
||||
{% endif %}
|
||||
</li>
|
||||
{% endfor %}
|
||||
</ul>
|
||||
|
@ -227,59 +250,41 @@
|
|||
<div class="card-body">
|
||||
|
||||
|
||||
<h4>Liens uniquement en anglais
|
||||
({{ detailed_comparison.link_comparison.en_only|length }})</h4>
|
||||
<h4>Comparaison des liens côte à côte</h4>
|
||||
<div class="table-responsive">
|
||||
<table class="table table-sm table-warning">
|
||||
<table class="table table-sm">
|
||||
<thead>
|
||||
<tr>
|
||||
<th>Texte</th>
|
||||
<th>URL</th>
|
||||
<th class="bg-primary text-white">Texte EN</th>
|
||||
<th class="bg-primary text-white">URL EN</th>
|
||||
<th class="bg-info text-white">Texte FR</th>
|
||||
<th class="bg-info text-white">URL FR</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
{% for link in detailed_comparison.link_comparison.en_only %}
|
||||
{% set en_links = detailed_comparison.link_comparison.en_only %}
|
||||
{% set fr_links = detailed_comparison.link_comparison.fr_only %}
|
||||
{% set max_links = max(en_links|length, fr_links|length) %}
|
||||
|
||||
{% for i in 0..(max_links - 1) %}
|
||||
<tr>
|
||||
<td>{{ link.text }}</td>
|
||||
<td><a href="{{ link.href }}" target="_blank"
|
||||
class="small">{{ link.href|slice(0, 30) }}...</a></td>
|
||||
{% if i < en_links|length %}
|
||||
<td class="bg-light">{{ en_links[i].text }}</td>
|
||||
<td class="bg-light"><a href="{{ en_links[i].href }}" target="_blank" class="small">{{ en_links[i].href|slice(0, 30) }}...</a></td>
|
||||
{% else %}
|
||||
<td class="bg-light"></td>
|
||||
<td class="bg-light"></td>
|
||||
{% endif %}
|
||||
|
||||
{% if i < fr_links|length %}
|
||||
<td>{{ fr_links[i].text }}</td>
|
||||
<td><a href="{{ fr_links[i].href }}" target="_blank" class="small">{{ fr_links[i].href|slice(0, 30) }}...</a></td>
|
||||
{% else %}
|
||||
<td></td>
|
||||
<td></td>
|
||||
{% endif %}
|
||||
</tr>
|
||||
{% endfor %}
|
||||
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-md-6">
|
||||
<div class="card h-100">
|
||||
<div class="card-header bg-info text-white">
|
||||
<h3>Liens en français</h3>
|
||||
<span class="badge bg-light text-dark">{{ fr_page.link_count }} liens</span>
|
||||
</div>
|
||||
<div class="card-body">
|
||||
|
||||
|
||||
<h4>Liens uniquement en français
|
||||
({{ detailed_comparison.link_comparison.fr_only|length }})</h4>
|
||||
<div class="table-responsive">
|
||||
<table class="table table-sm table-info">
|
||||
<thead>
|
||||
<tr>
|
||||
<th>Texte</th>
|
||||
<th>URL</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
{% for link in detailed_comparison.link_comparison.fr_only %}
|
||||
<tr>
|
||||
<td>{{ link.text }}</td>
|
||||
<td><a href="{{ link.href }}" target="_blank"
|
||||
class="small">{{ link.href|slice(0, 30) }}...</a></td>
|
||||
</tr>
|
||||
{% endfor %}
|
||||
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
|
@ -377,7 +382,13 @@
|
|||
<ul class="list-group mb-3">
|
||||
<li class="list-group-item d-flex justify-content-between align-items-center">
|
||||
Sections
|
||||
<span class="badge bg-primary rounded-pill">{{ en_page.sections }}</span>
|
||||
<span class="badge bg-primary rounded-pill">
|
||||
{% if detailed_comparison.adjusted_en_section_count is defined %}
|
||||
{{ detailed_comparison.adjusted_en_section_count }}
|
||||
{% else %}
|
||||
{{ en_page.sections }}
|
||||
{% endif %}
|
||||
</span>
|
||||
</li>
|
||||
<li class="list-group-item d-flex justify-content-between align-items-center">
|
||||
Mots
|
||||
|
@ -510,7 +521,13 @@
|
|||
<ul class="list-group mb-3">
|
||||
<li class="list-group-item d-flex justify-content-between align-items-center">
|
||||
Sections
|
||||
<span class="badge bg-primary rounded-pill">{{ en_page.sections }}</span>
|
||||
<span class="badge bg-primary rounded-pill">
|
||||
{% if detailed_comparison.adjusted_en_section_count is defined %}
|
||||
{{ detailed_comparison.adjusted_en_section_count }}
|
||||
{% else %}
|
||||
{{ en_page.sections }}
|
||||
{% endif %}
|
||||
</span>
|
||||
</li>
|
||||
<li class="list-group-item d-flex justify-content-between align-items-center">
|
||||
Mots
|
||||
|
@ -547,7 +564,13 @@
|
|||
<ul class="list-group mb-3">
|
||||
<li class="list-group-item d-flex justify-content-between align-items-center">
|
||||
Sections
|
||||
<span class="badge bg-info rounded-pill">{{ fr_page.sections }}</span>
|
||||
<span class="badge bg-info rounded-pill">
|
||||
{% if detailed_comparison.adjusted_fr_section_count is defined %}
|
||||
{{ detailed_comparison.adjusted_fr_section_count }}
|
||||
{% else %}
|
||||
{{ fr_page.sections }}
|
||||
{% endif %}
|
||||
</span>
|
||||
</li>
|
||||
<li class="list-group-item d-flex justify-content-between align-items-center">
|
||||
Mots
|
||||
|
|
|
@ -96,26 +96,103 @@
|
|||
</div>
|
||||
<div class="card-body">
|
||||
{% if local_groups|length > 0 %}
|
||||
<!-- Filtres -->
|
||||
<div class="mb-4">
|
||||
<div class="btn-group" role="group" aria-label="Filtres">
|
||||
<button type="button" class="btn btn-outline-primary active filter-btn" data-filter="all">Tous</button>
|
||||
<button type="button" class="btn btn-outline-primary filter-btn" data-filter="wiki">Wiki</button>
|
||||
<button type="button" class="btn btn-outline-primary filter-btn" data-filter="framacalc">Framacalc</button>
|
||||
<button type="button" class="btn btn-outline-primary filter-btn" data-filter="has-wiki">Avec page wiki</button>
|
||||
<button type="button" class="btn btn-outline-primary filter-btn" data-filter="no-wiki">Sans page wiki</button>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="row row-cols-1 row-cols-md-2 row-cols-lg-3 g-4">
|
||||
{% for group in local_groups %}
|
||||
<div class="col">
|
||||
<div class="card h-100">
|
||||
{% set source = group.source|default('wiki') %}
|
||||
{% set has_wiki = group.has_wiki_page|default(true) %}
|
||||
{% set filter_classes = source ~ ' ' ~ (has_wiki ? 'has-wiki' : 'no-wiki') %}
|
||||
|
||||
<div class="col group-item {{ filter_classes }}">
|
||||
<div class="card h-100 {% if source == 'framacalc' and not has_wiki %}border-danger{% endif %}">
|
||||
{% if source == 'framacalc' %}
|
||||
<div class="card-header bg-light">
|
||||
<span class="badge bg-secondary">Framacalc</span>
|
||||
{% if has_wiki %}
|
||||
<span class="badge bg-success">Page wiki</span>
|
||||
{% else %}
|
||||
<span class="badge bg-danger">Pas de page wiki</span>
|
||||
{% endif %}
|
||||
</div>
|
||||
{% endif %}
|
||||
<div class="card-body">
|
||||
<h5 class="card-title">{{ group.name }}</h5>
|
||||
{% if group.description %}
|
||||
<p class="card-text">{{ group.description }}</p>
|
||||
{% endif %}
|
||||
|
||||
{% if source == 'framacalc' and group.contact %}
|
||||
<p class="card-text"><small class="text-muted">Contact: {{ group.contact }}</small></p>
|
||||
{% endif %}
|
||||
|
||||
{% if source == 'framacalc' and group.website %}
|
||||
<p class="card-text">
|
||||
<a href="{{ group.website }}" target="_blank" class="btn btn-sm btn-outline-secondary">
|
||||
<i class="bi bi-globe"></i> Site web
|
||||
</a>
|
||||
</p>
|
||||
{% endif %}
|
||||
</div>
|
||||
<div class="card-footer">
|
||||
<a href="{{ group.url }}" target="_blank"
|
||||
class="btn btn-sm btn-outline-primary">
|
||||
<i class="bi bi-box-arrow-up-right"></i> Voir sur le wiki
|
||||
</a>
|
||||
{% if source == 'wiki' or has_wiki %}
|
||||
<a href="{{ group.url }}" target="_blank"
|
||||
class="btn btn-sm btn-outline-primary">
|
||||
<i class="bi bi-box-arrow-up-right"></i> Voir sur le wiki
|
||||
</a>
|
||||
{% else %}
|
||||
<a href="https://wiki.openstreetmap.org/wiki/Special:Search?search={{ group.name|url_encode }}"
|
||||
target="_blank" class="btn btn-sm btn-outline-danger">
|
||||
<i class="bi bi-search"></i> Rechercher sur le wiki
|
||||
</a>
|
||||
{% endif %}
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
{% endfor %}
|
||||
</div>
|
||||
|
||||
<!-- JavaScript pour les filtres -->
|
||||
<script>
|
||||
document.addEventListener('DOMContentLoaded', function() {
|
||||
const filterButtons = document.querySelectorAll('.filter-btn');
|
||||
const groupItems = document.querySelectorAll('.group-item');
|
||||
|
||||
filterButtons.forEach(button => {
|
||||
button.addEventListener('click', function() {
|
||||
// Remove active class from all buttons
|
||||
filterButtons.forEach(btn => btn.classList.remove('active'));
|
||||
|
||||
// Add active class to clicked button
|
||||
this.classList.add('active');
|
||||
|
||||
const filter = this.getAttribute('data-filter');
|
||||
|
||||
// Show/hide items based on filter
|
||||
groupItems.forEach(item => {
|
||||
if (filter === 'all') {
|
||||
item.style.display = 'block';
|
||||
} else {
|
||||
if (item.classList.contains(filter)) {
|
||||
item.style.display = 'block';
|
||||
} else {
|
||||
item.style.display = 'none';
|
||||
}
|
||||
}
|
||||
});
|
||||
});
|
||||
});
|
||||
});
|
||||
</script>
|
||||
{% else %}
|
||||
<div class="alert alert-info">
|
||||
<p><i class="bi bi-info-circle"></i> Aucun groupe local n'a été trouvé.</p>
|
||||
|
|
|
@ -3,120 +3,122 @@
|
|||
{% block title %}Suggestion de page Wiki à améliorer{% endblock %}
|
||||
|
||||
{% block body %}
|
||||
<div class="container mt-4">
|
||||
{% include 'admin/_wiki_navigation.html.twig' %}
|
||||
|
||||
<h1>Suggestion de page Wiki à améliorer</h1>
|
||||
<p class="lead">Voici une page wiki qui a besoin d'être améliorée.</p>
|
||||
<div class="container mt-4">
|
||||
{% include 'admin/_wiki_navigation.html.twig' %}
|
||||
|
||||
<div class="card mb-4">
|
||||
<div class="card-header bg-primary text-white">
|
||||
<h2>{{ page.key }}</h2>
|
||||
</div>
|
||||
<div class="card-body">
|
||||
<div class="alert alert-info">
|
||||
<h3>Raisons d'amélioration</h3>
|
||||
<p>{{ page.reason }}</p>
|
||||
<h1>Suggestion de page Wiki à améliorer</h1>
|
||||
<p class="lead">Voici une page wiki qui a besoin d'être améliorée.</p>
|
||||
|
||||
<div class="card mb-4">
|
||||
<div class="card-header bg-primary text-white">
|
||||
<h2>{{ page.key }}</h2>
|
||||
</div>
|
||||
<div class="card-body">
|
||||
<div class="alert alert-info">
|
||||
<h3>Raisons d'amélioration</h3>
|
||||
<p>{{ page.reason }}</p>
|
||||
</div>
|
||||
|
||||
<div class="row">
|
||||
<div class="col-md-6">
|
||||
<div class="card h-100">
|
||||
<div class="card-header bg-primary text-white">
|
||||
<h3>Version anglaise</h3>
|
||||
<p class="mb-0">
|
||||
<small>Dernière modification: {{ page.en_page.last_modified }}</small>
|
||||
</p>
|
||||
<div class="row">
|
||||
<div class="col-md-6">
|
||||
<div class="card h-100">
|
||||
<div class="card-header bg-primary text-white">
|
||||
<h3>Version anglaise</h3>
|
||||
<p class="mb-0">
|
||||
<small>Dernière modification: {{ page.en_page.last_modified }}</small>
|
||||
</p>
|
||||
</div>
|
||||
<div class="card-body">
|
||||
<ul class="list-group mb-3">
|
||||
<li class="list-group-item d-flex justify-content-between align-items-center">
|
||||
Sections
|
||||
<span class="badge bg-primary rounded-pill">{{ page.en_page.sections }}</span>
|
||||
</li>
|
||||
<li class="list-group-item d-flex justify-content-between align-items-center">
|
||||
Mots
|
||||
<span class="badge bg-primary rounded-pill">{{ page.en_page.word_count|default(0) }}</span>
|
||||
</li>
|
||||
<li class="list-group-item d-flex justify-content-between align-items-center">
|
||||
Liens
|
||||
<span class="badge bg-primary rounded-pill">{{ page.en_page.link_count|default(0) }}</span>
|
||||
</li>
|
||||
</ul>
|
||||
<div class="d-grid gap-2">
|
||||
<a href="{{ page.en_page.url }}" target="_blank" class="btn btn-outline-primary">
|
||||
<i class="bi bi-box-arrow-up-right"></i> Voir la page anglaise
|
||||
</a>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="card-body">
|
||||
<ul class="list-group mb-3">
|
||||
<li class="list-group-item d-flex justify-content-between align-items-center">
|
||||
Sections
|
||||
<span class="badge bg-primary rounded-pill">{{ page.en_page.sections }}</span>
|
||||
</li>
|
||||
<li class="list-group-item d-flex justify-content-between align-items-center">
|
||||
Mots
|
||||
<span class="badge bg-primary rounded-pill">{{ page.en_page.word_count|default(0) }}</span>
|
||||
</li>
|
||||
<li class="list-group-item d-flex justify-content-between align-items-center">
|
||||
Liens
|
||||
<span class="badge bg-primary rounded-pill">{{ page.en_page.link_count|default(0) }}</span>
|
||||
</li>
|
||||
</ul>
|
||||
<div class="d-grid gap-2">
|
||||
<a href="{{ page.en_page.url }}" target="_blank" class="btn btn-outline-primary">
|
||||
<i class="bi bi-box-arrow-up-right"></i> Voir la page anglaise
|
||||
</a>
|
||||
</div>
|
||||
<div class="col-md-6">
|
||||
<div class="card h-100">
|
||||
<div class="card-header bg-info text-white">
|
||||
<h3>Version française</h3>
|
||||
{% if page.fr_page %}
|
||||
<p class="mb-0">
|
||||
<small>Dernière modification: {{ page.fr_page.last_modified }}</small>
|
||||
</p>
|
||||
{% else %}
|
||||
<p class="mb-0">
|
||||
<small>Page non existante</small>
|
||||
</p>
|
||||
{% endif %}
|
||||
</div>
|
||||
<div class="card-body">
|
||||
{% if page.fr_page %}
|
||||
<ul class="list-group mb-3">
|
||||
<li class="list-group-item d-flex justify-content-between align-items-center">
|
||||
Sections
|
||||
<span class="badge bg-info rounded-pill">{{ page.fr_page.sections }}</span>
|
||||
</li>
|
||||
<li class="list-group-item d-flex justify-content-between align-items-center">
|
||||
Mots
|
||||
<span class="badge bg-info rounded-pill">{{ page.fr_page.word_count|default(0) }}</span>
|
||||
</li>
|
||||
<li class="list-group-item d-flex justify-content-between align-items-center">
|
||||
Liens
|
||||
<span class="badge bg-info rounded-pill">{{ page.fr_page.link_count|default(0) }}</span>
|
||||
</li>
|
||||
</ul>
|
||||
<div class="d-grid gap-2">
|
||||
<a href="{{ page.fr_page.url }}" target="_blank" class="btn btn-outline-info">
|
||||
<i class="bi bi-box-arrow-up-right"></i> Voir la page française
|
||||
</a>
|
||||
</div>
|
||||
{% else %}
|
||||
<div class="alert alert-warning">
|
||||
<p><i class="bi bi-exclamation-triangle"></i> <strong>La page wiki pour la clé
|
||||
"{{ page.key }}" n'existe pas en français.</strong></p>
|
||||
<p>Vous pouvez contribuer en créant cette page sur le wiki OpenStreetMap.</p>
|
||||
</div>
|
||||
<div class="d-grid gap-2">
|
||||
<a href="https://wiki.openstreetmap.org/w/index.php?title=FR:Key:{{ page.key }}&action=edit"
|
||||
target="_blank" class="btn btn-success">
|
||||
<i class="bi bi-plus-circle"></i> Créer la page française
|
||||
</a>
|
||||
</div>
|
||||
{% endif %}
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-md-6">
|
||||
<div class="card h-100">
|
||||
<div class="card-header bg-info text-white">
|
||||
<h3>Version française</h3>
|
||||
{% if page.fr_page %}
|
||||
<p class="mb-0">
|
||||
<small>Dernière modification: {{ page.fr_page.last_modified }}</small>
|
||||
</p>
|
||||
{% else %}
|
||||
<p class="mb-0">
|
||||
<small>Page non existante</small>
|
||||
</p>
|
||||
{% endif %}
|
||||
</div>
|
||||
<div class="card-body">
|
||||
{% if page.fr_page %}
|
||||
<ul class="list-group mb-3">
|
||||
<li class="list-group-item d-flex justify-content-between align-items-center">
|
||||
Sections
|
||||
<span class="badge bg-info rounded-pill">{{ page.fr_page.sections }}</span>
|
||||
</li>
|
||||
<li class="list-group-item d-flex justify-content-between align-items-center">
|
||||
Mots
|
||||
<span class="badge bg-info rounded-pill">{{ page.fr_page.word_count|default(0) }}</span>
|
||||
</li>
|
||||
<li class="list-group-item d-flex justify-content-between align-items-center">
|
||||
Liens
|
||||
<span class="badge bg-info rounded-pill">{{ page.fr_page.link_count|default(0) }}</span>
|
||||
</li>
|
||||
</ul>
|
||||
<div class="d-grid gap-2">
|
||||
<a href="{{ page.fr_page.url }}" target="_blank" class="btn btn-outline-info">
|
||||
<i class="bi bi-box-arrow-up-right"></i> Voir la page française
|
||||
</a>
|
||||
</div>
|
||||
{% else %}
|
||||
<div class="alert alert-warning">
|
||||
<p><i class="bi bi-exclamation-triangle"></i> <strong>La page wiki pour la clé "{{ page.key }}" n'existe pas en français.</strong></p>
|
||||
<p>Vous pouvez contribuer en créant cette page sur le wiki OpenStreetMap.</p>
|
||||
</div>
|
||||
<div class="d-grid gap-2">
|
||||
<a href="https://wiki.openstreetmap.org/wiki/FR:Key:{{ page.key }}" target="_blank" class="btn btn-success">
|
||||
<i class="bi bi-plus-circle"></i> Créer la page française
|
||||
</a>
|
||||
</div>
|
||||
{% endif %}
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="mt-4 d-grid gap-2">
|
||||
<a href="{{ path('app_admin_wiki_compare', {'key': page.key}) }}" class="btn btn-primary">
|
||||
<i class="bi bi-arrows-angle-expand"></i> Voir la comparaison détaillée
|
||||
</a>
|
||||
<a href="{{ path('app_admin_wiki_random_suggestion') }}" class="btn btn-secondary">
|
||||
<i class="bi bi-shuffle"></i> Autre suggestion aléatoire
|
||||
</a>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="mt-4 d-grid gap-2">
|
||||
<a href="{{ path('app_admin_wiki_compare', {'key': page.key}) }}" class="btn btn-primary">
|
||||
<i class="bi bi-arrows-angle-expand"></i> Voir la comparaison détaillée
|
||||
</a>
|
||||
<a href="{{ path('app_admin_wiki_random_suggestion') }}" class="btn btn-secondary">
|
||||
<i class="bi bi-shuffle"></i> Autre suggestion aléatoire
|
||||
</a>
|
||||
</div>
|
||||
<div class="mt-3">
|
||||
<a href="{{ path('app_admin_wiki') }}" class="btn btn-secondary">
|
||||
<i class="bi bi-arrow-left"></i> Retour à la liste des pages wiki
|
||||
</a>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="mt-3">
|
||||
<a href="{{ path('app_admin_wiki') }}" class="btn btn-secondary">
|
||||
<i class="bi bi-arrow-left"></i> Retour à la liste des pages wiki
|
||||
</a>
|
||||
</div>
|
||||
</div>
|
||||
{% endblock %}
|
87
templates/admin/wiki_recent_changes.html.twig
Normal file
87
templates/admin/wiki_recent_changes.html.twig
Normal file
|
@ -0,0 +1,87 @@
|
|||
{% extends 'base.html.twig' %}
|
||||
|
||||
{% block title %}Changements récents Wiki OSM{% endblock %}
|
||||
|
||||
{% block body %}
|
||||
<div class="container mt-4">
|
||||
{% include 'admin/_wiki_navigation.html.twig' %}
|
||||
|
||||
<h1>Changements récents Wiki OpenStreetMap</h1>
|
||||
<p class="lead">Liste des changements récents dans l'espace de noms français du wiki OpenStreetMap.</p>
|
||||
|
||||
{% if last_updated %}
|
||||
<div class="alert alert-info">
|
||||
<i class="bi bi-info-circle"></i> Dernière mise à jour : {{ last_updated|date('d/m/Y H:i') }}
|
||||
</div>
|
||||
{% endif %}
|
||||
|
||||
<div class="card mb-4">
|
||||
<div class="card-header bg-primary text-white">
|
||||
<h2>Changements récents</h2>
|
||||
<p class="mb-0">
|
||||
<a href="https://wiki.openstreetmap.org/w/index.php?hidebots=1&hidepreviousrevisions=1&hidecategorization=1&hideWikibase=1&hidelog=1&hidenewuserlog=1&namespace=202&limit=500&days=30&enhanced=1&title=Special:RecentChanges&urlversion=2"
|
||||
target="_blank" class="text-white">
|
||||
<i class="bi bi-box-arrow-up-right"></i> Voir sur le wiki OSM
|
||||
</a>
|
||||
</p>
|
||||
</div>
|
||||
<div class="card-body">
|
||||
{% if recent_changes|length > 0 %}
|
||||
<div class="table-responsive">
|
||||
<table class="table table-striped table-hover">
|
||||
<thead class="thead-dark">
|
||||
<tr>
|
||||
<th>Page</th>
|
||||
<th>Date</th>
|
||||
<th>Utilisateur</th>
|
||||
<th>Commentaire</th>
|
||||
<th>Taille</th>
|
||||
<th>Actions</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
{% for change in recent_changes %}
|
||||
<tr>
|
||||
<td>
|
||||
<strong>{{ change.page_name }}</strong>
|
||||
</td>
|
||||
<td>{{ change.timestamp }}</td>
|
||||
<td>{{ change.user }}</td>
|
||||
<td>{{ change.comment }}</td>
|
||||
<td>{{ change.change_size }}</td>
|
||||
<td>
|
||||
<a href="{{ change.page_url }}" target="_blank" class="btn btn-sm btn-outline-primary">
|
||||
<i class="bi bi-box-arrow-up-right"></i> Voir
|
||||
</a>
|
||||
</td>
|
||||
</tr>
|
||||
{% endfor %}
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
{% else %}
|
||||
<div class="alert alert-info">
|
||||
<p><i class="bi bi-info-circle"></i> Aucun changement récent n'a été trouvé.</p>
|
||||
</div>
|
||||
{% endif %}
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="card mb-4">
|
||||
<div class="card-header">
|
||||
<h2>À propos des changements récents</h2>
|
||||
</div>
|
||||
<div class="card-body">
|
||||
<p>Cette page affiche les changements récents dans l'espace de noms français (FR:) du wiki OpenStreetMap.</p>
|
||||
<p>Ces informations sont utiles pour suivre les traductions manquantes et les mises à jour des pages wiki.</p>
|
||||
<p>Les données sont mises à jour automatiquement toutes les heures.</p>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="mt-3">
|
||||
<a href="{{ path('app_admin_wiki') }}" class="btn btn-secondary">
|
||||
<i class="bi bi-arrow-left"></i> Retour à la liste des pages wiki
|
||||
</a>
|
||||
</div>
|
||||
</div>
|
||||
{% endblock %}
|
Loading…
Add table
Add a link
Reference in a new issue