forked from ScoDoc/ScoDoc
Update opolka/ScoDoc from ScoDoc/ScoDoc #2
@ -353,12 +353,12 @@ class Assiduite(ScoDocModel):
|
|||||||
|
|
||||||
elif self.external_data is not None and "module" in self.external_data:
|
elif self.external_data is not None and "module" in self.external_data:
|
||||||
return (
|
return (
|
||||||
"Tout module"
|
"Autre module (pas dans la liste)"
|
||||||
if self.external_data["module"] == "Autre"
|
if self.external_data["module"] == "Autre"
|
||||||
else self.external_data["module"]
|
else self.external_data["module"]
|
||||||
)
|
)
|
||||||
|
|
||||||
return "Non spécifié" if traduire else None
|
return "Module non spécifié" if traduire else None
|
||||||
|
|
||||||
def get_saisie(self) -> str:
|
def get_saisie(self) -> str:
|
||||||
"""
|
"""
|
||||||
|
@ -401,7 +401,7 @@ async function creerTousLesEtudiants(etuds) {
|
|||||||
* @returns {String}
|
* @returns {String}
|
||||||
*/
|
*/
|
||||||
async function getModuleImpl(assiduite) {
|
async function getModuleImpl(assiduite) {
|
||||||
if (assiduite == null) return "Pas de module";
|
if (assiduite == null) return "Module non spécifié";
|
||||||
const id = assiduite.moduleimpl_id;
|
const id = assiduite.moduleimpl_id;
|
||||||
|
|
||||||
if (id == null || id == undefined) {
|
if (id == null || id == undefined) {
|
||||||
@ -414,7 +414,7 @@ async function getModuleImpl(assiduite) {
|
|||||||
? "Autre module (pas dans la liste)"
|
? "Autre module (pas dans la liste)"
|
||||||
: assiduite.external_data.module;
|
: assiduite.external_data.module;
|
||||||
} else {
|
} else {
|
||||||
return "Pas de module";
|
return "Module non spécifié";
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -890,6 +890,11 @@ function setupAssiduiteBubble(el, assiduite) {
|
|||||||
actionsDiv.appendChild(infos);
|
actionsDiv.appendChild(infos);
|
||||||
bubble.appendChild(actionsDiv);
|
bubble.appendChild(actionsDiv);
|
||||||
|
|
||||||
|
const stateDiv = document.createElement("div");
|
||||||
|
stateDiv.className = "assiduite-state";
|
||||||
|
stateDiv.textContent = `État: ${assiduite.etat.capitalize()}`;
|
||||||
|
bubble.appendChild(stateDiv);
|
||||||
|
|
||||||
const idDiv = document.createElement("div");
|
const idDiv = document.createElement("div");
|
||||||
idDiv.className = "assiduite-id";
|
idDiv.className = "assiduite-id";
|
||||||
getModuleImpl(assiduite).then((modImpl) => {
|
getModuleImpl(assiduite).then((modImpl) => {
|
||||||
@ -897,26 +902,32 @@ function setupAssiduiteBubble(el, assiduite) {
|
|||||||
});
|
});
|
||||||
bubble.appendChild(idDiv);
|
bubble.appendChild(idDiv);
|
||||||
|
|
||||||
const periodDivDeb = document.createElement("div");
|
// Affichage des dates
|
||||||
periodDivDeb.className = "assiduite-period";
|
// si les jours sont les mêmes, on affiche "jour hh:mm - hh:mm"
|
||||||
periodDivDeb.textContent = `${formatDateModal(assiduite.date_debut)}`;
|
// sinon on affiche "jour hh:mm - jour hh:mm"
|
||||||
bubble.appendChild(periodDivDeb);
|
const periodDiv = document.createElement("div");
|
||||||
const periodDivFin = document.createElement("div");
|
periodDiv.className = "assiduite-period";
|
||||||
periodDivFin.className = "assiduite-period";
|
const dateDeb = new Date(Date.removeUTC(assiduite.date_debut));
|
||||||
periodDivFin.textContent = `${formatDateModal(assiduite.date_fin)}`;
|
const dateFin = new Date(Date.removeUTC(assiduite.date_fin));
|
||||||
bubble.appendChild(periodDivFin);
|
if (dateDeb.isSame(dateFin, "day")) {
|
||||||
|
const jour = dateDeb.format("DD/MM/YYYY");
|
||||||
|
const deb = dateDeb.format("HH:mm");
|
||||||
|
const fin = dateFin.format("HH:mm");
|
||||||
|
periodDiv.textContent = `${jour} de ${deb} à ${fin}`;
|
||||||
|
} else {
|
||||||
|
const jourDeb = dateDeb.format("DD/MM/YYYY");
|
||||||
|
const jourFin = dateFin.format("DD/MM/YYYY");
|
||||||
|
periodDiv.textContent = `du ${jourDeb} au ${jourFin}`;
|
||||||
|
}
|
||||||
|
|
||||||
const stateDiv = document.createElement("div");
|
bubble.appendChild(periodDiv);
|
||||||
stateDiv.className = "assiduite-state";
|
|
||||||
stateDiv.textContent = `État: ${assiduite.etat.capitalize()}`;
|
|
||||||
bubble.appendChild(stateDiv);
|
|
||||||
|
|
||||||
const motifDiv = document.createElement("div");
|
const motifDiv = document.createElement("div");
|
||||||
stateDiv.className = "assiduite-why";
|
motifDiv.className = "assiduite-why";
|
||||||
const motif = ["", null, undefined].includes(assiduite.desc)
|
const motif = ["", null, undefined].includes(assiduite.desc)
|
||||||
? "Pas de motif"
|
? "Non spécifié"
|
||||||
: assiduite.desc.capitalize();
|
: assiduite.desc.capitalize();
|
||||||
stateDiv.textContent = `Motif: ${motif}`;
|
motifDiv.textContent = `Motif: ${motif}`;
|
||||||
bubble.appendChild(motifDiv);
|
bubble.appendChild(motifDiv);
|
||||||
|
|
||||||
const userIdDiv = document.createElement("div");
|
const userIdDiv = document.createElement("div");
|
||||||
|
@ -1,8 +1,7 @@
|
|||||||
<div class="assiduite-bubble {{etat}}">
|
<div class="assiduite-bubble {{etat}}">
|
||||||
<div class="assiduite-id">{{moduleimpl}}</div>
|
|
||||||
<div class="assiduite-period">{{date_debut}}</div>
|
|
||||||
<div class="assiduite-period">{{date_fin}}</div>
|
|
||||||
<div class="assiduite-state">État: {{etat}}</div>
|
<div class="assiduite-state">État: {{etat}}</div>
|
||||||
|
<div class="assiduite-id">{{moduleimpl}}</div>
|
||||||
|
<div class="assiduite-period">{{date}}</div>
|
||||||
<div class="assiduite-why">Motif: {{motif}}</div>
|
<div class="assiduite-why">Motif: {{motif}}</div>
|
||||||
<div class="assiduite-user_id">{{saisie}}</div>
|
<div class="assiduite-user_id">{{saisie}}</div>
|
||||||
</div>
|
</div>
|
@ -2581,14 +2581,26 @@ def _generate_assiduite_bubble(assiduite: Assiduite) -> str:
|
|||||||
# Récupérer informations saisie
|
# Récupérer informations saisie
|
||||||
saisie: str = assiduite.get_saisie()
|
saisie: str = assiduite.get_saisie()
|
||||||
|
|
||||||
motif: str = assiduite.description if assiduite.description else ""
|
motif: str = assiduite.description or "Non spécifié"
|
||||||
|
|
||||||
|
# Récupérer date
|
||||||
|
|
||||||
|
if assiduite.date_debut.date() == assiduite.date_fin.date():
|
||||||
|
jour = assiduite.date_debut.strftime("%d/%m/%Y")
|
||||||
|
heure_deb: str = assiduite.date_debut.strftime("%H:%M")
|
||||||
|
heure_fin: str = assiduite.date_fin.strftime("%H:%M")
|
||||||
|
date: str = f"{jour} de {heure_deb} à {heure_fin}"
|
||||||
|
else:
|
||||||
|
date: str = (
|
||||||
|
f"du {assiduite.date_debut.strftime('%d/%m/%Y')} "
|
||||||
|
+ f"au {assiduite.date_fin.strftime('%d/%m/%Y')}"
|
||||||
|
)
|
||||||
|
|
||||||
return render_template(
|
return render_template(
|
||||||
"assiduites/widgets/assiduite_bubble.j2",
|
"assiduites/widgets/assiduite_bubble.j2",
|
||||||
moduleimpl=moduleimpl_infos,
|
moduleimpl=moduleimpl_infos,
|
||||||
etat=scu.EtatAssiduite(assiduite.etat).name.lower(),
|
etat=scu.EtatAssiduite(assiduite.etat).name.lower(),
|
||||||
date_debut=assiduite.date_debut.strftime("%d/%m/%Y %H:%M"),
|
date=date,
|
||||||
date_fin=assiduite.date_fin.strftime("%d/%m/%Y %H:%M"),
|
|
||||||
saisie=saisie,
|
saisie=saisie,
|
||||||
motif=motif,
|
motif=motif,
|
||||||
)
|
)
|
||||||
|
Loading…
Reference in New Issue
Block a user