Compare commits
5 Commits
2c8f8a125a
...
cf83228dcb
Author | SHA1 | Date | |
---|---|---|---|
cf83228dcb | |||
5aacc2db63 | |||
20ec08490b | |||
626d70e72c | |||
276a21ec49 |
@ -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"
|
||||
#'
|
||||
|
@ -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"]
|
||||
+ (
|
||||
|
@ -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)
|
||||
|
@ -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)
|
||||
|
@ -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
|
||||
|
@ -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
|
||||
|
||||
|
@ -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
|
||||
|
@ -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
|
||||
|
Loading…
Reference in New Issue
Block a user