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>
|
</td></tr></table>
|
||||||
</form>"""
|
</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(),
|
html_sco_header.sco_footer(),
|
||||||
]
|
]
|
||||||
return "\n".join(H)
|
return "\n".join(H)
|
||||||
@ -721,12 +721,13 @@ def formChoixSemestreGroupe(context, all=False):
|
|||||||
return "\n".join(H)
|
return "\n".join(H)
|
||||||
|
|
||||||
|
|
||||||
def CalAbs(context, REQUEST=None): # etud implied
|
def CalAbs(context, etudid, sco_year=None):
|
||||||
"""Calendrier des absences d'un etudiant"""
|
"""Calendrier des absences d'un etudiant"""
|
||||||
# crude portage from 1999 DTML
|
# crude portage from 1999 DTML
|
||||||
|
REQUEST = None # XXX
|
||||||
etud = sco_etud.get_etud_info(filled=1, REQUEST=REQUEST)[0]
|
etud = sco_etud.get_etud_info(filled=1, REQUEST=REQUEST)[0]
|
||||||
etudid = etud["etudid"]
|
etudid = etud["etudid"]
|
||||||
anneescolaire = int(scu.AnneeScolaire(REQUEST))
|
anneescolaire = int(scu.AnneeScolaire(sco_year))
|
||||||
datedebut = str(anneescolaire) + "-08-31"
|
datedebut = str(anneescolaire) + "-08-31"
|
||||||
datefin = str(anneescolaire + 1) + "-07-31"
|
datefin = str(anneescolaire + 1) + "-07-31"
|
||||||
nbabs = sco_abs.count_abs(etudid=etudid, debut=datedebut, fin=datefin)
|
nbabs = sco_abs.count_abs(etudid=etudid, debut=datedebut, fin=datefin)
|
||||||
@ -796,18 +797,25 @@ def CalAbs(context, REQUEST=None): # etud implied
|
|||||||
def ListeAbsEtud(
|
def ListeAbsEtud(
|
||||||
context,
|
context,
|
||||||
etudid,
|
etudid,
|
||||||
with_evals=True, # indique les evaluations aux dates d'absences
|
with_evals=True,
|
||||||
format="html",
|
format="html",
|
||||||
absjust_only=0, # si vrai, renvoie table absences justifiées
|
absjust_only=0,
|
||||||
|
sco_year=None,
|
||||||
REQUEST=None,
|
REQUEST=None,
|
||||||
):
|
):
|
||||||
"""Liste des absences d'un étudiant sur l'année en cours
|
"""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 '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 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).
|
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)
|
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]
|
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:
|
if not year:
|
||||||
year = scu.AnneeScolaire(REQUEST)
|
year = scu.AnneeScolaire()
|
||||||
# est-on dans la même année universitaire ?
|
# est-on dans la même année universitaire ?
|
||||||
if sem["mois_debut_ord"] > 7:
|
if sem["mois_debut_ord"] > 7:
|
||||||
if sem["annee_debut"] != str(year):
|
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
|
Si annee non specifiée, année scolaire courante
|
||||||
"""
|
"""
|
||||||
if not year:
|
if not year:
|
||||||
year = scu.AnneeScolaire(REQUEST)
|
year = scu.AnneeScolaire()
|
||||||
return ((sem["annee_debut"] == str(year)) and (sem["mois_debut_ord"] > 7)) or (
|
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)
|
(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(
|
tab = table_formsemestres(
|
||||||
context,
|
context,
|
||||||
list_formsemestre_by_etape(
|
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_title=html_title,
|
||||||
html_next_section="""<form action="view_formsemestre_by_etape">
|
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())
|
H.append(tab.html())
|
||||||
|
|
||||||
annee_courante = int(scu.AnneeScolaire(REQUEST))
|
annee_courante = int(scu.AnneeScolaire())
|
||||||
menu_annee = "\n".join(
|
menu_annee = "\n".join(
|
||||||
[
|
[
|
||||||
'<option value="%s">%s</option>' % (i, i)
|
'<option value="%s">%s</option>' % (i, i)
|
||||||
|
@ -762,16 +762,16 @@ def query_portal(req, msg="Portail Apogee", timeout=3):
|
|||||||
return data
|
return data
|
||||||
|
|
||||||
|
|
||||||
def AnneeScolaire(REQUEST=None): # TODO remplacer REQUEST #sco8
|
def AnneeScolaire(sco_year=None):
|
||||||
"annee de debut de l'annee scolaire courante"
|
"annee de debut de l'annee scolaire courante"
|
||||||
if REQUEST and "sco_year" in REQUEST.form:
|
if sco_year:
|
||||||
year = REQUEST.form["sco_year"]
|
year = sco_year
|
||||||
try:
|
try:
|
||||||
year = int(year)
|
year = int(year)
|
||||||
if year > 1900 and year < 2999:
|
if year > 1900 and year < 2999:
|
||||||
return year
|
return year
|
||||||
except:
|
except:
|
||||||
pass
|
raise sco_exceptions.ScoValueError("invalid sco_year")
|
||||||
t = time.localtime()
|
t = time.localtime()
|
||||||
year, month = t[0], t[1]
|
year, month = t[0], t[1]
|
||||||
if month < 8: # le "pivot" est le 1er aout
|
if month < 8: # le "pivot" est le 1er aout
|
||||||
|
@ -173,7 +173,7 @@ def index_html(context, REQUEST=None):
|
|||||||
% REQUEST.URL0,
|
% REQUEST.URL0,
|
||||||
sco_abs_views.formChoixSemestreGroupe(context),
|
sco_abs_views.formChoixSemestreGroupe(context),
|
||||||
"</p>",
|
"</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
|
"""<p class="help">Sélectionner le groupe d'étudiants, puis cliquez sur une semaine pour
|
||||||
saisir les absences de toute cette semaine.</p>
|
saisir les absences de toute cette semaine.</p>
|
||||||
</form>""",
|
</form>""",
|
||||||
@ -188,10 +188,10 @@ saisir les absences de toute cette semaine.</p>
|
|||||||
return "\n".join(H)
|
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"
|
"display calendar allowing week selection"
|
||||||
if not year:
|
if not year:
|
||||||
year = scu.AnneeScolaire(REQUEST)
|
year = scu.AnneeScolaire()
|
||||||
sems = sco_formsemestre.do_formsemestre_list(context)
|
sems = sco_formsemestre.do_formsemestre_list(context)
|
||||||
if not sems:
|
if not sems:
|
||||||
js = ""
|
js = ""
|
||||||
|
@ -243,32 +243,31 @@ def test_abs_basic(test_client):
|
|||||||
b = sco_abs.is_work_saturday(context)
|
b = sco_abs.is_work_saturday(context)
|
||||||
assert b == 0 # samedi ne sont pas compris
|
assert b == 0 # samedi ne sont pas compris
|
||||||
nbabs, nbabsjust = sco_abs.get_abs_count(etudid, sem)
|
nbabs, nbabsjust = sco_abs.get_abs_count(etudid, sem)
|
||||||
assert (
|
# l'étudiant a été absent le 15 (apres midi) , (16 et 17 we),
|
||||||
nbabs == 5
|
# 18 (matin) et 19 janvier (matin et apres midi), et 22 (matin)
|
||||||
) # 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
|
||||||
assert nbabsjust == 4 # l'étudiant justifie ses abs du 15, 18 et 19
|
# l'étudiant justifie ses abs du 15, 18 et 19
|
||||||
|
assert nbabsjust == 4
|
||||||
|
|
||||||
# + vérification à l'aide de ScoDoc WEB : ok!
|
# --- Suppression d'une absence et d'une justification
|
||||||
|
|
||||||
# --- Supression d'une absence et d'une justification
|
|
||||||
|
|
||||||
_ = sco_abs_views.doAnnuleAbsence(
|
_ = sco_abs_views.doAnnuleAbsence(
|
||||||
context, "19/01/2021", "19/01/2021", 2, etudid=etudid
|
context, "19/01/2021", "19/01/2021", 2, etudid=etudid
|
||||||
)
|
)
|
||||||
nbabs, nbabsjust = sco_abs.get_abs_count(etudid, sem)
|
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
|
# --- suppression d'une justification pas encore disponible à l'aide de python.
|
||||||
# + 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.
|
|
||||||
|
|
||||||
# --- Création d'une liste d'abs
|
# --- Création d'une liste d'abs
|
||||||
|
|
||||||
liste_abs = sco_abs_views.ListeAbsEtud(
|
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_abs = json.loads(liste_abs)
|
||||||
load_liste_abs2 = json.loads(liste_abs2)
|
load_liste_abs2 = json.loads(liste_abs2)
|
||||||
|
Loading…
Reference in New Issue
Block a user