Compare commits

...

5 Commits

Author SHA1 Message Date
cf83228dcb Fix: export recap en CSV 2021-02-16 15:22:50 +01:00
5aacc2db63 Fix: civilite 2021-02-16 15:18:06 +01:00
20ec08490b upgrade old zope dateutils 2021-02-16 15:17:47 +01:00
626d70e72c pylint 2021-02-16 15:16:57 +01:00
276a21ec49 test billets absences 2021-02-16 15:16:01 +01:00
8 changed files with 64 additions and 11 deletions

View File

@ -119,6 +119,8 @@ then
/opt/zope213/bin/pip install requests
fi
/opt/zope213/bin/pip install --upgrade python-dateutil
# Ensure www-data can duplicate databases (for dumps)
su -c $'psql -c \'alter role "www-data" with CREATEDB;\'' "$POSTGRES_SUPERUSER"
#'

View File

@ -813,6 +813,7 @@ class JuryPE:
"nom": etudinfo["nom"],
"prenom": etudinfo["prenom"],
"civilite": etudinfo["civilite"],
"civilite_str": etudinfo["civilite_str"],
"age": str(pe_tools.calcul_age(etudinfo["date_naissance"])),
"lycee": etudinfo["nomlycee"]
+ (

View File

@ -325,7 +325,7 @@ def do_formsemestre_archive(
if data:
PVArchive.store(archive_id, "Decisions_Jury.xls", data)
# Classeur bulletins (PDF)
data, filename = sco_bulletins_pdf.get_formsemestre_bulletins_pdf(
data, _ = sco_bulletins_pdf.get_formsemestre_bulletins_pdf(
context, formsemestre_id, REQUEST, version=bulVersion
)
if data:
@ -548,7 +548,7 @@ def formsemestre_delete_archive(
raise AccessDenied(
"opération non autorisée pour %s" % str(REQUEST.AUTHENTICATED_USER)
)
sem = sco_formsemestre.get_formsemestre(
_ = sco_formsemestre.get_formsemestre(
context, formsemestre_id
) # check formsemestre_id
archive_id = PVArchive.get_id_from_name(context, formsemestre_id, archive_name)

View File

@ -416,7 +416,7 @@ def make_formsemestre_recapcomplet(
l.append(fmtnum(scu.fmt_note(t[0], keep_numeric=keep_numeric))) # moy_gen
# Ajoute rangs dans groupes seulement si CSV ou XLS
if format[:3] == "xls" or format == "csv":
rang_gr, ninscrits_gr, gr_name = sco_bulletins.get_etud_rangs_groups(
rang_gr, _, gr_name = sco_bulletins.get_etud_rangs_groups(
context, etudid, formsemestre_id, partitions, partitions_etud_groups, nt
)
@ -758,7 +758,9 @@ def make_formsemestre_recapcomplet(
H.append("</table>")
return "\n".join(H), "", "html"
elif format == "csv":
CSV = scu.CSV_LINESEP.join([scu.CSV_FIELDSEP.join(str(x)) for x in F])
CSV = scu.CSV_LINESEP.join(
[scu.CSV_FIELDSEP.join([str(x) for x in l]) for l in F]
)
semname = sem["titre_num"].replace(" ", "_")
date = time.strftime("%d-%m-%Y")
filename = "notes_modules-%s-%s.csv" % (semname, date)

View File

@ -11,12 +11,16 @@ Utiliser comme:
"""
import random
# La variable context est définie par le script de lancement
# l'affecte ainsi pour évietr les warnins pylint:
context = context # pylint: disable=undefined-variable
REQUEST = REQUEST # pylint: disable=undefined-variable
import scotests.sco_fake_gen as sco_fake_gen # pylint: disable=import-error
import sco_utils
import sco_abs
import sco_abs_views
G = sco_fake_gen.ScoFake(context.Notes) # pylint: disable=undefined-variable
G = sco_fake_gen.ScoFake(context.Notes)
G.verbose = False
# --- Création d'étudiants

View File

@ -11,8 +11,10 @@ Utiliser comme:
"""
import scotests.sco_fake_gen as sco_fake_gen # pylint: disable=import-error
# La variable context est définie par le script de lancement
# l'affecte ainsi pour évietr les warnins pylint:
context = context # pylint: disable=undefined-variable
import scotests.sco_fake_gen as sco_fake_gen
import sco_utils as scu
import sco_moduleimpl

View File

@ -10,13 +10,15 @@ Utiliser comme:
scotests/scointeractive.sh -r TEST00 scotests/test_capitalisation.py
"""
# La variable context est définie par le script de lancement
# l'affecte ainsi pour évietr les warnins pylint:
context = context # pylint: disable=undefined-variable
import scotests.sco_fake_gen as sco_fake_gen # pylint: disable=import-error
import sco_utils
import sco_codes_parcours
import sco_modalites
G = sco_fake_gen.ScoFake(context.Notes) # pylint: disable=undefined-variable
G = sco_fake_gen.ScoFake(context.Notes)
G.verbose = False
# --- Création d'étudiants

View File

@ -12,16 +12,24 @@ Utiliser comme:
scotests/scointeractive.sh -r TEST00 scotests/test_demissions.py
"""
import datetime
import re
import json
# La variable context est définie par le script de lancement
# l'affecte ainsi pour évietr les warnins pylint:
context = context # pylint: disable=undefined-variable
REQUEST = REQUEST # pylint: disable=undefined-variable
import scotests.sco_fake_gen as sco_fake_gen # pylint: disable=import-error
import sco_utils
import sco_bulletins
G = sco_fake_gen.ScoFake(context.Notes) # pylint: disable=undefined-variable
G = sco_fake_gen.ScoFake(context.Notes)
G.verbose = False
nb_etuds = 10
# --- Création d'étudiants
etuds = [G.create_etud(code_nip=None) for _ in range(2)]
etuds = [G.create_etud(code_nip=None) for _ in range(nb_etuds)]
# --- Mise en place formation
form, ue_list, mod_list = G.setup_formation(
nb_semestre=1, titre="Essai 1", acronyme="ESS01"
@ -59,3 +67,35 @@ print(bul["moy_gen"])
assert bul["moy_gen"] == "NA"
assert bul["ins"][0]["etat"] == "D"
# ------------ Billets d'absences
etud = etuds[1] # non demissionnaire
d = sem["date_debut_iso"]
d_beg = datetime.datetime(*[int(x) for x in d.split("-")])
d_end = d_beg + datetime.timedelta(2)
description = "billet test 0"
x = context.Absences.AddBilletAbsence(
d_beg.isoformat(),
d_end.isoformat(),
description=description,
etudid=etud["etudid"],
REQUEST=REQUEST,
)
#
billet_id = re.search(r"billet_id value=\"([A-Z0-9]+)\"", x).group(1)
context.Absences.deleteBilletAbsence(billet_id, REQUEST=REQUEST, dialog_confirmed=True)
j = context.Absences.listeBilletsEtud(
etudid=etud["etudid"], REQUEST=REQUEST, format="json"
)
assert len(json.loads(j)) == 0
x = context.Absences.AddBilletAbsence(
d_beg.isoformat(),
d_end.isoformat(),
description=description,
etudid=etud["etudid"],
REQUEST=REQUEST,
)
j = context.Absences.listeBilletsEtud(
etudid=etud["etudid"], REQUEST=REQUEST, format="json"
)
assert json.loads(j)[0]["description"] == description