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