Page d'agenda
This commit is contained in:
parent
6c3a1e6ddc
commit
b58d85198a
|
@ -37,6 +37,7 @@ class Migration(migrations.Migration):
|
|||
),
|
||||
),
|
||||
],
|
||||
options={'verbose_name': 'Agenda', 'verbose_name_plural': 'Agenda'},
|
||||
),
|
||||
migrations.CreateModel(
|
||||
name="Document",
|
||||
|
|
|
@ -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}"
|
||||
|
||||
|
|
|
@ -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;
|
||||
}
|
||||
|
|
|
@ -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):
|
||||
|
|
|
@ -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
|
||||
|
||||
|
|
|
@ -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"),
|
||||
]
|
||||
|
|
5
templates/admin/base_site.html
Normal file
5
templates/admin/base_site.html
Normal 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
20
templates/agenda.html
Normal 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 %}
|
|
@ -3,7 +3,7 @@
|
|||
<head>
|
||||
<meta charset="utf-8">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1">
|
||||
<title>Le Gospel de l’Abeille - Bee's Gospel</title>
|
||||
<title>Le Gospel de l’Abeille - 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>
|
||||
|
|
|
@ -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 l’agenda</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 %}
|
||||
|
|
Loading…
Reference in a new issue