Page d'agenda

This commit is contained in:
Claude Paroz 2025-08-16 18:44:58 +02:00
parent 6c3a1e6ddc
commit b58d85198a
10 changed files with 64 additions and 8 deletions

View file

@ -37,6 +37,7 @@ class Migration(migrations.Migration):
),
),
],
options={'verbose_name': 'Agenda', 'verbose_name_plural': 'Agenda'},
),
migrations.CreateModel(
name="Document",

View file

@ -50,6 +50,10 @@ class Agenda(models.Model):
)
)
class Meta:
verbose_name = "Agenda"
verbose_name_plural = "Agenda"
def __str__(self):
return f"{self.titre} {self.date_heure}"

View file

@ -73,3 +73,8 @@ nav {
.left-red {
border-left: 2px solid red;
}
.prive {
background-image: linear-gradient(45deg, #333333 41.67%, #6b0c0c 41.67%, #6b0c0c 50%, #333333 50%, #333333 91.67%, #6b0c0c 91.67%, #6b0c0c 100%);
background-size: 33.94px 33.94px;
}

View file

@ -1,7 +1,21 @@
from datetime import date, timedelta
from django.contrib.auth.mixins import LoginRequiredMixin
from django.views.generic import ListView, TemplateView
from .models import Membre
from .models import Agenda, Membre
class AgendaView(ListView):
model = Agenda
template_name = "agenda.html"
def get_queryset(self):
qs = Agenda.objects.filter(
date_heure__gt=date.today() - timedelta(days=3),
).order_by("date_heure")
if not self.request.user.is_authenticated:
qs = qs.filter(prive=False)
return qs
class EspaceMembresView(LoginRequiredMixin, TemplateView):

View file

@ -96,11 +96,11 @@ AUTH_USER_MODEL = "beesgospel.User"
# Internationalization
# https://docs.djangoproject.com/en/5.2/topics/i18n/
LANGUAGE_CODE = "fr"
LANGUAGE_CODE = "fr-ch"
TIME_ZONE = "UTC"
TIME_ZONE = "Europe/Zurich"
USE_I18N = False
USE_I18N = True
USE_TZ = True

View file

@ -13,4 +13,5 @@ urlpatterns = [
path("contact/", TemplateView.as_view(template_name="contact.html"), name="contact"),
path("membres/", views.EspaceMembresView.as_view(), name="membres"),
path("membres/liste/", views.ListeMembresView.as_view(), name="liste-membres"),
path("agenda/", views.AgendaView.as_view(), name="agenda"),
]

View file

@ -0,0 +1,5 @@
{% extends 'admin/base.html' %}
{% block branding %}
<div id="site-name"><a href="{% url 'admin:index' %}">Administration du site beesgospel.ch</a></div>
{% endblock %}

20
templates/agenda.html Normal file
View file

@ -0,0 +1,20 @@
{% extends "base.html" %}
{% block page_title %} - Agenda{% endblock %}
{% block content %}
<h2 class="mb-5">Agenda des prochaines prestations de la chorale</h2>
{% for item in object_list %}
<div class="border-bottom border-danger mt-3{% if item.prive %} prive{% endif %}">
<div class="row">
<div class="col col-12 col-sm-4 col-lg-2 bg-white text-black rounded align-self-center text-center fw-bold pt-2 pb-2">
{{ item.date_heure|date:'D d F à H:i' }}
</div>
<div class="col col-12 col-sm-8 col-lg-10 fs-4">{{ item.titre }}</div>
</div>
<div class="mt-2 mb-2">{{ item.lieu }}</div>
<div class="pb-3">{{ item.infos }}</div>
</div>
{% endfor %}
{% endblock %}

View file

@ -3,7 +3,7 @@
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>Le Gospel de lAbeille - Bee's Gospel</title>
<title>Le Gospel de lAbeille - Bee's Gospel{% block page_title %}{% endblock %}</title>
<link href="{% static 'vendor/bootstrap.min.css' %}" rel="stylesheet">
<link href="{% static 'css/main.css' %}" rel="stylesheet">
<script src="{% static 'vendor/bootstrap.bundle.min.js' %}"></script>
@ -26,7 +26,7 @@
<li class="nav-sep"></li>
<li class="nav-item"><a class="nav-link{% if request.path == "/contact/" %} active{% endif %}" href="{% url 'contact' %}">Contact</a></li>
<li class="nav-sep"></li>
<li class="nav-item"><a class="nav-link" href="#">Agenda</a></li>
<li class="nav-item"><a class="nav-link" href="{% url 'agenda' %}">Agenda</a></li>
<li class="nav-sep"></li>
<li class="nav-item"><a class="nav-link" href="#">Médias</a></li>
<li class="nav-sep"></li>

View file

@ -5,7 +5,13 @@
<form action="{% url 'logout' %}" method="post">{% csrf_token %}<button class="btn btn-sm btn-light" type="submit">Déconnexion</button></form>
</div>
<h2>Espace membres</h2>
<div class="row">
<a href="{% url 'liste-membres' %}">Liste des membres</a>
<div class="row mt-4">
<div class="col col-4"><a href="{% url 'liste-membres' %}">Liste des membres</a></div>
{% if perms.beesgospel.change_agenda %}
<div class="col col-4"><a href="{% url 'admin:beesgospel_agenda_changelist' %}">Gestion de lagenda</a></div>
{% endif %}
{% if perms.beesgospel.change_document %}
<div class="col col-4"><a href="{% url 'admin:beesgospel_document_changelist' %}">Gestion des documents</a></div>
{% endif %}
</div>
{% endblock %}