forked from ScoDoc/ScoDoc
Enhanced tests + some code cleaning
This commit is contained in:
parent
f9c2eb0e94
commit
73cabb0039
@ -34,10 +34,7 @@
|
||||
import time, string, glob, re, inspect
|
||||
import urllib, urllib2, cgi, xml
|
||||
|
||||
try:
|
||||
from cStringIO import StringIO
|
||||
except:
|
||||
from StringIO import StringIO
|
||||
from cStringIO import StringIO
|
||||
from zipfile import ZipFile
|
||||
import os.path, glob
|
||||
import traceback
|
||||
@ -48,9 +45,8 @@ from email.MIMEBase import MIMEBase
|
||||
from email.Header import Header
|
||||
from email import Encoders
|
||||
|
||||
from sco_zope import *
|
||||
from sco_zope import * # pylint: disable=unused-wildcard-import
|
||||
|
||||
#
|
||||
try:
|
||||
import Products.ZPsycopgDA.DA as ZopeDA
|
||||
except:
|
||||
|
@ -87,7 +87,8 @@ import ZNotes
|
||||
import ZAbsences
|
||||
import ZEntreprises
|
||||
import ZScoUsers
|
||||
import sco_modalites
|
||||
|
||||
# import sco_modalites
|
||||
import ImportScolars
|
||||
import sco_abs
|
||||
import sco_portal_apogee
|
||||
|
@ -33,8 +33,8 @@ Elle n'est pas utilisée pour les parcours, ni pour rien d'autre
|
||||
(c'est donc un attribut "cosmétique").
|
||||
|
||||
"""
|
||||
from notesdb import *
|
||||
from sco_utils import *
|
||||
import notesdb as ndb
|
||||
import sco_utils as scu
|
||||
from notes_log import log
|
||||
from TrivialFormulator import TrivialFormulator, TF
|
||||
import sco_codes_parcours
|
||||
@ -56,7 +56,7 @@ def group_sems_by_modalite(context, sems):
|
||||
"""Given the list of fromsemestre, group them by modalite,
|
||||
sorted in each one by semestre id and date
|
||||
"""
|
||||
sems_by_mod = DictDefault(defaultvalue=[])
|
||||
sems_by_mod = scu.DictDefault(defaultvalue=[])
|
||||
modalites = list_formsemestres_modalites(context, sems)
|
||||
for modalite in modalites:
|
||||
for sem in sems:
|
||||
@ -75,12 +75,12 @@ def group_sems_by_modalite(context, sems):
|
||||
|
||||
# ------ Low level interface (database) ------
|
||||
|
||||
_modaliteEditor = EditableTable(
|
||||
_modaliteEditor = ndb.EditableTable(
|
||||
"notes_form_modalites",
|
||||
"form_modalite_id",
|
||||
("form_modalite_id", "modalite", "titre", "numero"),
|
||||
sortkey="numero",
|
||||
output_formators={"numero": int_null_is_zero},
|
||||
output_formators={"numero": ndb.int_null_is_zero},
|
||||
)
|
||||
|
||||
|
||||
@ -90,23 +90,23 @@ def do_modalite_list(context, *args, **kw):
|
||||
return _modaliteEditor.list(cnx, *args, **kw)
|
||||
|
||||
|
||||
def do_modalite_create(context, args, REQUEST):
|
||||
def do_modalite_create(context, args, REQUEST=None):
|
||||
"create a modalite"
|
||||
cnx = self.GetDBConnexion()
|
||||
cnx = context.GetDBConnexion()
|
||||
r = _modaliteEditor.create(cnx, args)
|
||||
return r
|
||||
|
||||
|
||||
def do_modalite_delete(context, oid, REQUEST=None):
|
||||
"delete a modalite"
|
||||
cnx = self.GetDBConnexion()
|
||||
cnx = context.GetDBConnexion()
|
||||
log("do_modalite_delete: form_modalite_id=%s" % oid)
|
||||
_modaliteEditor.delete(cnx, oid)
|
||||
|
||||
|
||||
def do_modalite_edit(context, *args, **kw):
|
||||
"edit a modalite"
|
||||
cnx = self.GetDBConnexion()
|
||||
cnx = context.GetDBConnexion()
|
||||
# check
|
||||
m = do_modalite_list(context, {"form_modalite_id": args[0]["form_modalite_id"]})[0]
|
||||
_modaliteEditor.edit(cnx, *args, **kw)
|
||||
|
@ -132,7 +132,7 @@ class ScoFake:
|
||||
code_specialite=None,
|
||||
):
|
||||
"""Crée une formation"""
|
||||
if acronyme == "":
|
||||
if not acronyme:
|
||||
acronyme = "TEST" + str(random.randint(100000, 999999))
|
||||
oid = self.context.do_formation_create(locals(), REQUEST=REQUEST)
|
||||
oids = self.context.formation_list(args={"formation_id": oid})
|
||||
@ -295,7 +295,14 @@ class ScoFake:
|
||||
comment=comment,
|
||||
)
|
||||
|
||||
def setup_formation(self, nb_semestre=1, nb_ue_per_semestre=2, nb_module_per_ue=2):
|
||||
def setup_formation(
|
||||
self,
|
||||
nb_semestre=1,
|
||||
nb_ue_per_semestre=2,
|
||||
nb_module_per_ue=2,
|
||||
acronyme=None,
|
||||
titre=None,
|
||||
):
|
||||
"""Création d'une formation, avec UE, modules et évaluations.
|
||||
|
||||
Formation avec `nb_semestre` comportant chacun `nb_ue_per_semestre` UE
|
||||
@ -304,7 +311,7 @@ class ScoFake:
|
||||
Returns:
|
||||
formation (dict), liste d'ue (dicts), liste de modules.
|
||||
"""
|
||||
f = self.create_formation(acronyme="")
|
||||
f = self.create_formation(acronyme=acronyme, titre=titre)
|
||||
ue_list = []
|
||||
mod_list = []
|
||||
for semestre_id in range(1, nb_semestre + 1):
|
||||
@ -337,6 +344,9 @@ class ScoFake:
|
||||
date_debut="01/01/2020",
|
||||
date_fin="30/06/2020",
|
||||
nb_evaluations_per_module=1,
|
||||
titre=None,
|
||||
responsables=["bach"],
|
||||
modalite=None,
|
||||
):
|
||||
"""Création semestre, avec modules et évaluations."""
|
||||
sem = self.create_formsemestre(
|
||||
@ -344,6 +354,9 @@ class ScoFake:
|
||||
semestre_id=semestre_id,
|
||||
date_debut=date_debut,
|
||||
date_fin=date_fin,
|
||||
titre=titre,
|
||||
responsables=responsables,
|
||||
modalite=modalite,
|
||||
)
|
||||
eval_list = []
|
||||
for mod in mod_list:
|
||||
|
@ -14,6 +14,7 @@ Utiliser comme:
|
||||
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.verbose = False
|
||||
@ -21,8 +22,29 @@ G.verbose = False
|
||||
# --- Création d'étudiants
|
||||
etuds = [G.create_etud(code_nip=None) for _ in range(10)]
|
||||
|
||||
# Deux modalités
|
||||
# sco_modalites.do_modalite_create(context, {})
|
||||
|
||||
# --- Mise en place formation 4 semestres
|
||||
f, ue_list, mod_list = G.setup_formation(nb_semestre=4)
|
||||
form_dut, ue_list, mod_list = G.setup_formation(
|
||||
nb_semestre=4, titre="DUT RT", acronyme="DUT-RT"
|
||||
)
|
||||
|
||||
# --- et une formation LP en 2 semestres
|
||||
form_lp, ue_list_lp, mod_list_lp = G.setup_formation(
|
||||
nb_semestre=2, titre="Licence Pro Ingéniérie Pédagogique", acronyme="LP IP"
|
||||
)
|
||||
# et un semestre que l'on ne va pas utiliser ici:
|
||||
_, _ = G.setup_formsemestre(
|
||||
form_lp,
|
||||
mod_list_lp,
|
||||
semestre_id=1,
|
||||
date_debut="01/09/2021",
|
||||
date_fin="15/01/2022",
|
||||
titre="Licence Pro Ingéniérie Pédagogique",
|
||||
responsables=["callas"],
|
||||
modalite="FAP",
|
||||
)
|
||||
|
||||
# --- Crée les 4 semestres et affecte des notes aléatoires
|
||||
sems, evals = [], []
|
||||
@ -33,7 +55,12 @@ for semestre_id, date_debut, date_fin in [
|
||||
(4, "16/01/2021", "30/06/2021"),
|
||||
]:
|
||||
sem, eval_list = G.setup_formsemestre(
|
||||
f, mod_list, semestre_id=semestre_id, date_debut=date_debut, date_fin=date_fin
|
||||
form_dut,
|
||||
mod_list,
|
||||
semestre_id=semestre_id,
|
||||
date_debut=date_debut,
|
||||
date_fin=date_fin,
|
||||
titre="BUT Réseaux et Tests",
|
||||
)
|
||||
sems.append(sem)
|
||||
evals.append(eval_list) # liste des listes d'evaluations
|
||||
@ -55,7 +82,12 @@ for semestre_id, date_debut, date_fin in [
|
||||
(4, "16/01/2023", "30/06/2023"),
|
||||
]:
|
||||
sem, eval_list = G.setup_formsemestre(
|
||||
f, mod_list, semestre_id=semestre_id, date_debut=date_debut, date_fin=date_fin
|
||||
form_dut,
|
||||
mod_list,
|
||||
semestre_id=semestre_id,
|
||||
date_debut=date_debut,
|
||||
date_fin=date_fin,
|
||||
titre="BUT Réseaux et Tests",
|
||||
)
|
||||
sems.append(sem)
|
||||
evals.append(eval_list) # liste des listes d'evaluations
|
||||
|
Loading…
Reference in New Issue
Block a user