Ajout contenu page Media

This commit is contained in:
Claude Paroz 2025-08-16 20:27:45 +02:00
parent b58d85198a
commit daf7ca4ba0
6 changed files with 41 additions and 3 deletions

View file

@ -72,4 +72,4 @@ class Document(models.Model):
) )
def __str__(self): def __str__(self):
return f"{self.titre} {self.date}" return f"{self.titre} {self.quand}"

View file

@ -74,6 +74,7 @@ nav {
border-left: 2px solid red; border-left: 2px solid red;
} }
.date_agenda { background-color: #ddd; }
.prive { .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-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; background-size: 33.94px 33.94px;

View file

@ -2,7 +2,7 @@ from datetime import date, timedelta
from django.contrib.auth.mixins import LoginRequiredMixin from django.contrib.auth.mixins import LoginRequiredMixin
from django.views.generic import ListView, TemplateView from django.views.generic import ListView, TemplateView
from .models import Agenda, Membre from .models import Agenda, Document, Membre
class AgendaView(ListView): class AgendaView(ListView):
@ -18,6 +18,19 @@ class AgendaView(ListView):
return qs return qs
class MediaView(ListView):
model = Document
template_name = "media.html"
def get_queryset(self):
qs = Document.objects.filter(
date_heure__gt=date.today() - timedelta(days=3),
).order_by("-quand")
if not self.request.user.is_authenticated:
qs = qs.filter(prive=False)
return qs
class EspaceMembresView(LoginRequiredMixin, TemplateView): class EspaceMembresView(LoginRequiredMixin, TemplateView):
template_name = "membres/index.html" template_name = "membres/index.html"

View file

@ -14,4 +14,5 @@ urlpatterns = [
path("membres/", views.EspaceMembresView.as_view(), name="membres"), path("membres/", views.EspaceMembresView.as_view(), name="membres"),
path("membres/liste/", views.ListeMembresView.as_view(), name="liste-membres"), path("membres/liste/", views.ListeMembresView.as_view(), name="liste-membres"),
path("agenda/", views.AgendaView.as_view(), name="agenda"), path("agenda/", views.AgendaView.as_view(), name="agenda"),
path("media/", views.MediaView.as_view(), name="media"),
] ]

View file

@ -8,7 +8,7 @@
{% for item in object_list %} {% for item in object_list %}
<div class="border-bottom border-danger mt-3{% if item.prive %} prive{% endif %}"> <div class="border-bottom border-danger mt-3{% if item.prive %} prive{% endif %}">
<div class="row"> <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"> <div class="col col-12 col-sm-4 col-lg-2 text-black rounded align-self-center text-center fw-bold pt-2 pb-2 date_agenda">
{{ item.date_heure|date:'D d F à H:i' }} {{ item.date_heure|date:'D d F à H:i' }}
</div> </div>
<div class="col col-12 col-sm-8 col-lg-10 fs-4">{{ item.titre }}</div> <div class="col col-12 col-sm-8 col-lg-10 fs-4">{{ item.titre }}</div>

23
templates/media.html Normal file
View file

@ -0,0 +1,23 @@
{% extends "base.html" %}
{% block page_title %} - Media{% endblock %}
{% block content %}
<h2 class="mb-5">Enregistrements, photos et vidéos 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-8 col-lg-10 fs-4">
<a href="{{ item.url|default:item.fichier.url }}">{{ item.titre }}</a>
</div>
<div class="col col-12 col-sm-4 col-lg-2 text-end">
{{ item.quand|date:'d F Y' }}
</div>
</div>
<div class="pb-3">{{ item.infos }}</div>
</div>
{% empty %}
<p><i>Aucun document disponible pour le moment</i></p>
{% endfor %}
{% endblock %}