from colloscope.models import * def table_colloscope(periode, heading=True, est_colle=True): semaines = periode.range_semaines() lundis = [periode.classe.week_beginning_date(n) for n in semaines] creneaux = Slot.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.subject jour = c.jour heure = c.time colleur = c.colleur salle = c.room 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 Colle.objects.filter(creneau=c, semaine=sem).exists(): r = Colle.objects.get(creneau=c, semaine=sem) groupes = r.groupes content = ", ".join(g.description for g in groupes.all()) if r.is_edited(): s += f"\n" else: s += f"\n" else: s += "\n" s += "
{th}{sem}
{lundi.strftime('%d/%m/%y')}
{matiere.description}{jours[jour]}{heure.strftime('%H:%M')}{} {}salle{content}{content}
\n" return s