diff --git a/app/scodoc/sco_abs_views.py b/app/scodoc/sco_abs_views.py index efd0e2c5e..02b7f86e4 100644 --- a/app/scodoc/sco_abs_views.py +++ b/app/scodoc/sco_abs_views.py @@ -687,7 +687,7 @@ def EtatAbsences(context, REQUEST=None): """ - % (scu.AnneeScolaire(REQUEST), datetime.datetime.now().strftime("%d/%m/%Y")), + % (scu.AnneeScolaire(), datetime.datetime.now().strftime("%d/%m/%Y")), html_sco_header.sco_footer(), ] return "\n".join(H) @@ -721,12 +721,13 @@ def formChoixSemestreGroupe(context, all=False): return "\n".join(H) -def CalAbs(context, REQUEST=None): # etud implied +def CalAbs(context, etudid, sco_year=None): """Calendrier des absences d'un etudiant""" # crude portage from 1999 DTML + REQUEST = None # XXX etud = sco_etud.get_etud_info(filled=1, REQUEST=REQUEST)[0] etudid = etud["etudid"] - anneescolaire = int(scu.AnneeScolaire(REQUEST)) + anneescolaire = int(scu.AnneeScolaire(sco_year)) datedebut = str(anneescolaire) + "-08-31" datefin = str(anneescolaire + 1) + "-07-31" nbabs = sco_abs.count_abs(etudid=etudid, debut=datedebut, fin=datefin) @@ -796,18 +797,25 @@ def CalAbs(context, REQUEST=None): # etud implied def ListeAbsEtud( context, etudid, - with_evals=True, # indique les evaluations aux dates d'absences + with_evals=True, format="html", - absjust_only=0, # si vrai, renvoie table absences justifiées + absjust_only=0, + sco_year=None, REQUEST=None, ): """Liste des absences d'un étudiant sur l'année en cours En format 'html': page avec deux tableaux (non justifiées et justifiées). En format json, xml, xls ou pdf: l'un ou l'autre des table, suivant absjust_only. En format 'text': texte avec liste d'absences (pour mails). + + Args: + etudid: + with_evals: indique les evaluations aux dates d'absences + absjust_only: si vrai, renvoie table absences justifiées + sco_year: année scolaire à utiliser. Si non spécifier, utilie l'année en cours. e.g. "2005" """ absjust_only = int(absjust_only) # si vrai, table absjust seule (export xls ou pdf) - datedebut = "%s-08-31" % scu.AnneeScolaire(REQUEST) + datedebut = "%s-08-31" % scu.AnneeScolaire(sco_year=sco_year) etud = sco_etud.get_etud_info(etudid=etudid, filled=True)[0] diff --git a/app/scodoc/sco_formsemestre.py b/app/scodoc/sco_formsemestre.py index 701ca6316..529421dcd 100644 --- a/app/scodoc/sco_formsemestre.py +++ b/app/scodoc/sco_formsemestre.py @@ -408,7 +408,7 @@ def sem_in_semestre_scolaire(context, sem, year=False, saison=0, REQUEST=None): ) """ if not year: - year = scu.AnneeScolaire(REQUEST) + year = scu.AnneeScolaire() # est-on dans la même année universitaire ? if sem["mois_debut_ord"] > 7: if sem["annee_debut"] != str(year): @@ -432,7 +432,7 @@ def sem_in_annee_scolaire(context, sem, year=False, REQUEST=None): Si annee non specifiée, année scolaire courante """ if not year: - year = scu.AnneeScolaire(REQUEST) + year = scu.AnneeScolaire() return ((sem["annee_debut"] == str(year)) and (sem["mois_debut_ord"] > 7)) or ( (sem["annee_debut"] == str(year + 1)) and (sem["mois_debut_ord"] <= 7) ) @@ -574,7 +574,7 @@ def view_formsemestre_by_etape(context, etape_apo=None, format="html", REQUEST=N tab = table_formsemestres( context, list_formsemestre_by_etape( - context, etape_apo=etape_apo, annee_scolaire=scu.AnneeScolaire(REQUEST) + context, etape_apo=etape_apo, annee_scolaire=scu.AnneeScolaire() ), html_title=html_title, html_next_section="""
""", @@ -188,10 +188,10 @@ saisir les absences de toute cette semaine. return "\n".join(H) -def cal_select_week(context, year=None, REQUEST=None): +def cal_select_week(context, year=None): "display calendar allowing week selection" if not year: - year = scu.AnneeScolaire(REQUEST) + year = scu.AnneeScolaire() sems = sco_formsemestre.do_formsemestre_list(context) if not sems: js = "" diff --git a/tests/unit/test_abs_demijournee.py b/tests/unit/test_abs_demijournee.py index db3a15505..9fb429e5a 100644 --- a/tests/unit/test_abs_demijournee.py +++ b/tests/unit/test_abs_demijournee.py @@ -243,32 +243,31 @@ def test_abs_basic(test_client): b = sco_abs.is_work_saturday(context) assert b == 0 # samedi ne sont pas compris nbabs, nbabsjust = sco_abs.get_abs_count(etudid, sem) - assert ( - nbabs == 5 - ) # l'étudiant a été absent le 15 (apres midi) , (16 et 17 we), 18 (matin) et 19 janvier (matin et apres midi), et 22 (matin) - assert nbabsjust == 4 # l'étudiant justifie ses abs du 15, 18 et 19 + # l'étudiant a été absent le 15 (apres midi) , (16 et 17 we), + # 18 (matin) et 19 janvier (matin et apres midi), et 22 (matin) + assert nbabs == 5 + # l'étudiant justifie ses abs du 15, 18 et 19 + assert nbabsjust == 4 - # + vérification à l'aide de ScoDoc WEB : ok! - - # --- Supression d'une absence et d'une justification + # --- Suppression d'une absence et d'une justification _ = sco_abs_views.doAnnuleAbsence( context, "19/01/2021", "19/01/2021", 2, etudid=etudid ) nbabs, nbabsjust = sco_abs.get_abs_count(etudid, sem) - print(nbabs) # lors du print cela affiche 5 or cela devrait afficher 3 + assert nbabs == 3 + assert nbabsjust == 2 - # assert nbabs == 3 - # + vérification à l'aide de ScoDoc WEB : il y a bien plus que 3 abs, 2 justifiés et 1 non justifié. - - # --- supression d'une justification pas encore disponible à l'aide de python. + # --- suppression d'une justification pas encore disponible à l'aide de python. # --- Création d'une liste d'abs liste_abs = sco_abs_views.ListeAbsEtud( - context, etudid, format="json", absjust_only=1 + context, etudid, format="json", absjust_only=1, sco_year="2020" + ) + liste_abs2 = sco_abs_views.ListeAbsEtud( + context, etudid, format="json", sco_year="2020" ) - liste_abs2 = sco_abs_views.ListeAbsEtud(context, etudid, format="json") load_liste_abs = json.loads(liste_abs) load_liste_abs2 = json.loads(liste_abs2)