unit test pass

This commit is contained in:
Emmanuel Viennet 2021-08-01 17:13:47 +03:00
parent 5db32a80ee
commit 80dd25ba02
6 changed files with 38 additions and 31 deletions

View File

@ -687,7 +687,7 @@ def EtatAbsences(context, REQUEST=None):
</td></tr></table>
</form>"""
% (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]

View File

@ -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="""<form action="view_formsemestre_by_etape">

View File

@ -479,7 +479,7 @@ def semset_page(context, format="html", REQUEST=None):
]
H.append(tab.html())
annee_courante = int(scu.AnneeScolaire(REQUEST))
annee_courante = int(scu.AnneeScolaire())
menu_annee = "\n".join(
[
'<option value="%s">%s</option>' % (i, i)

View File

@ -762,16 +762,16 @@ def query_portal(req, msg="Portail Apogee", timeout=3):
return data
def AnneeScolaire(REQUEST=None): # TODO remplacer REQUEST #sco8
def AnneeScolaire(sco_year=None):
"annee de debut de l'annee scolaire courante"
if REQUEST and "sco_year" in REQUEST.form:
year = REQUEST.form["sco_year"]
if sco_year:
year = sco_year
try:
year = int(year)
if year > 1900 and year < 2999:
return year
except:
pass
raise sco_exceptions.ScoValueError("invalid sco_year")
t = time.localtime()
year, month = t[0], t[1]
if month < 8: # le "pivot" est le 1er aout

View File

@ -173,7 +173,7 @@ def index_html(context, REQUEST=None):
% REQUEST.URL0,
sco_abs_views.formChoixSemestreGroupe(context),
"</p>",
cal_select_week(context, REQUEST=REQUEST),
cal_select_week(context),
"""<p class="help">Sélectionner le groupe d'étudiants, puis cliquez sur une semaine pour
saisir les absences de toute cette semaine.</p>
</form>""",
@ -188,10 +188,10 @@ saisir les absences de toute cette semaine.</p>
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 = ""

View File

@ -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)