up wiki land

This commit is contained in:
Tykayn 2025-08-22 18:19:20 +02:00 committed by tykayn
parent 391a212034
commit e533c273b2
10 changed files with 1116 additions and 182 deletions

View file

@ -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>