1
0
forked from ScoDoc/ScoDoc

sco_gen_cal : hightlight + week_index + jour date

This commit is contained in:
Iziram 2024-05-30 09:41:36 +02:00
parent 50f2cd7a0f
commit 2aafbad9e2
2 changed files with 29 additions and 10 deletions

View File

@ -93,12 +93,22 @@ class Calendrier:
Représente un calendrier Représente un calendrier
Permet d'obtenir les informations sur les jours Permet d'obtenir les informations sur les jours
et générer une représentation html et générer une représentation html
highlight: str
-> ["jour", "semaine", "mois"]
permet de mettre en valeur lors du passage de la souris
""" """
def __init__(self, date_debut: datetime.date, date_fin: datetime.date): def __init__(
self,
date_debut: datetime.date,
date_fin: datetime.date,
highlight: str = None,
):
self.date_debut = date_debut self.date_debut = date_debut
self.date_fin = date_fin self.date_fin = date_fin
self.jours: dict[str, list[Jour]] = {} self.jours: dict[str, list[Jour]] = {}
self.highlight: str = highlight
def _get_dates_between(self) -> list[datetime.date]: def _get_dates_between(self) -> list[datetime.date]:
""" """
@ -130,11 +140,13 @@ class Calendrier:
month = scu.MONTH_NAMES_ABBREV[date.month - 1] month = scu.MONTH_NAMES_ABBREV[date.month - 1]
# Ajouter le jour à la liste correspondante au mois # Ajouter le jour à la liste correspondante au mois
if month not in organized: if month not in organized:
organized[month] = [] organized[month] = {} # semaine {22: []}
jour: Jour = self.instanciate_jour(date) jour: Jour = self.instanciate_jour(date)
semaine = date.strftime("%G-W%V")
organized[month].append(jour) if semaine not in organized[month]:
organized[month][semaine] = []
organized[month][semaine].append(jour)
self.jours = organized self.jours = organized
@ -150,4 +162,6 @@ class Calendrier:
get_html Renvoie le code html du calendrier get_html Renvoie le code html du calendrier
""" """
self.organize_by_month() self.organize_by_month()
return render_template("calendrier.j2", calendrier=self.jours) return render_template(
"calendrier.j2", calendrier=self.jours, highlight=self.highlight
)

View File

@ -1,10 +1,11 @@
<div class="calendrier"> <div class="calendrier">
{% for mois,jours in calendrier.items() %} {% for mois,semaines in calendrier.items() %}
<div class="mois"> <div class="mois {{'highlight' if highlight=='mois'}}">
<h3>{{mois}}</h3> <h3>{{mois}}</h3>
<div class="jours"> {% for semaine in semaines %}
{% for jour in jours %} <div class="jours {{'highlight' if highlight=='semaine'}}" week_index="{{semaine}}">
<div class="jour {{jour.get_class()}}"> {% for jour in semaines[semaine] %}
<div class="jour {{jour.get_class()}} {{'highlight' if highlight=='jour'}}" date="{{jour.get_date()}}">
<span class="nom">{{jour.get_nom()}}</span> <span class="nom">{{jour.get_nom()}}</span>
<div class="contenu"> <div class="contenu">
{{jour.get_html() | safe}} {{jour.get_html() | safe}}
@ -12,6 +13,7 @@
</div> </div>
{% endfor %} {% endfor %}
</div> </div>
{% endfor %}
</div> </div>
{% endfor %} {% endfor %}
</div> </div>
@ -84,5 +86,8 @@
border-left: solid 3px var(--couleur); border-left: solid 3px var(--couleur);
border-right: solid 3px var(--couleur); border-right: solid 3px var(--couleur);
} }
.highlight:hover{
border: solid 3px yellow;
}
</style> </style>