forked from ScoDoc/ScoDoc
unit test pass
This commit is contained in:
parent
5db32a80ee
commit
80dd25ba02
@ -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]
|
||||
|
||||
|
@ -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">
|
||||
|
@ -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)
|
||||
|
@ -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
|
||||
|
@ -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 = ""
|
||||
|
@ -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)
|
||||
|
Loading…
Reference in New Issue
Block a user