from colloscope.models import * def table_colloscope(periode, heading=True, est_colle=True): semaines = periode.range_semaines() lundis = [ periode.classe.date_debut_sem(n) for n in semaines ] creneaux = Creneau.objects.filter(periode=periode, est_colle=est_colle) jours = ["dimanche", "lundi", "mardi", "mercredi", "jeudi", "vendredi", "samedi"] s = "" s += "\n" if heading: s += "\n" for th in ("Matière", "Jour", "Heure", "Colleur", "Salle"): s += f"\n" for sem in semaines: s +=f"\n" s += "\n\n" for lundi in lundis: s += f"\n" s += "\n" for i, c in enumerate(creneaux): matiere = c.matiere jour = c.jour heure = c.heure colleur = c.colleur salle = c.salle s += "\n" s += f"\n" s += f"\n" s += f"\n" s += "\n".format("M." if colleur.civilite=="M" else "Mme", colleur.nom.upper()) s += f"\n" for sem in semaines: if Rotation.objects.filter(creneau=c, semaine=sem).exists(): r = Rotation.objects.get(creneau=c, semaine=sem) groupes = r.groupes content = ", ".join(g.libelle for g in groupes.all()) if r.est_modifiee(): s += f"\n" else: s += f"\n" else: s += "\n" s += "
{th}{sem}
{lundi.strftime('%d/%m/%y')}
{matiere.libelle}{jours[jour]}{heure.strftime('%H:%M')}{} {}salle{content}{content}
\n" return s