WIP deplacé /static. Accueil fonctionnel.
@ -30,7 +30,8 @@ moment = Moment()
|
|||||||
|
|
||||||
|
|
||||||
def create_app(config_class=Config):
|
def create_app(config_class=Config):
|
||||||
app = Flask(__name__)
|
app = Flask(__name__, static_url_path="/ScoDoc/static", static_folder="static")
|
||||||
|
app.logger.setLevel(logging.DEBUG)
|
||||||
app.config.from_object(config_class)
|
app.config.from_object(config_class)
|
||||||
db.init_app(app)
|
db.init_app(app)
|
||||||
migrate.init_app(app, db)
|
migrate.init_app(app, db)
|
||||||
|
@ -20,7 +20,9 @@ context = None
|
|||||||
@bp.route("/")
|
@bp.route("/")
|
||||||
@bp.route("/index")
|
@bp.route("/index")
|
||||||
def index():
|
def index():
|
||||||
return render_template("main/index.html", title=u"Essai Flask")
|
return render_template(
|
||||||
|
"main/index.html", title=u"Essai Flask", current_app=flask.current_app
|
||||||
|
)
|
||||||
|
|
||||||
|
|
||||||
@bp.route("/test_vue")
|
@bp.route("/test_vue")
|
||||||
|
@ -64,7 +64,7 @@ def standard_html_header():
|
|||||||
<META name="LANG" content="fr">
|
<META name="LANG" content="fr">
|
||||||
<META name="DESCRIPTION" content="ScoDoc: gestion scolarite">
|
<META name="DESCRIPTION" content="ScoDoc: gestion scolarite">
|
||||||
|
|
||||||
<link HREF="/ScoDoc/static/css/scodoc.css" rel="stylesheet" type="text/css"/>
|
<link href="/ScoDoc/static/css/scodoc.css" rel="stylesheet" type="text/css"/>
|
||||||
|
|
||||||
</head><body>%s""" % (
|
</head><body>%s""" % (
|
||||||
scu.SCO_ENCODING,
|
scu.SCO_ENCODING,
|
||||||
|
@ -177,7 +177,7 @@ class NotesTable:
|
|||||||
context, "use_ue_coefs", formsemestre_id
|
context, "use_ue_coefs", formsemestre_id
|
||||||
)
|
)
|
||||||
# Infos sur les etudiants
|
# Infos sur les etudiants
|
||||||
self.inscrlist = context.do_formsemestre_inscription_list(
|
self.inscrlist = sco_formsemestre_inscriptions.do_formsemestre_inscription_list(context,
|
||||||
args={"formsemestre_id": formsemestre_id}
|
args={"formsemestre_id": formsemestre_id}
|
||||||
)
|
)
|
||||||
# infos identite etudiant
|
# infos identite etudiant
|
||||||
|
@ -376,7 +376,7 @@ def do_formsemestre_moyennes(context, nt, formsemestre_id):
|
|||||||
liste des moduleimpls avec notes en attente.
|
liste des moduleimpls avec notes en attente.
|
||||||
"""
|
"""
|
||||||
# sem = sco_formsemestre.get_formsemestre(context, formsemestre_id)
|
# sem = sco_formsemestre.get_formsemestre(context, formsemestre_id)
|
||||||
# inscr = context.do_formsemestre_inscription_list(
|
# inscr = sco_formsemestre_inscriptions.do_formsemestre_inscription_list(context,
|
||||||
# args={"formsemestre_id": formsemestre_id}
|
# args={"formsemestre_id": formsemestre_id}
|
||||||
# )
|
# )
|
||||||
# etudids = [x["etudid"] for x in inscr]
|
# etudids = [x["etudid"] for x in inscr]
|
||||||
|
@ -35,7 +35,9 @@ import sco_news
|
|||||||
import sco_up_to_date
|
import sco_up_to_date
|
||||||
import sco_formsemestre
|
import sco_formsemestre
|
||||||
from gen_tables import GenTable
|
from gen_tables import GenTable
|
||||||
from sco_permissions import ScoEtudInscrit, ScoEditApo
|
from sco_permissions import Permission, ScoEtudInscrit, ScoEditApo
|
||||||
|
import html_sco_header
|
||||||
|
import sco_formsemestre_inscriptions
|
||||||
|
|
||||||
|
|
||||||
def index_html(context, REQUEST=None, showcodes=0, showsemtable=0):
|
def index_html(context, REQUEST=None, showcodes=0, showsemtable=0):
|
||||||
@ -78,7 +80,9 @@ def index_html(context, REQUEST=None, showcodes=0, showsemtable=0):
|
|||||||
sem["tmpcode"] = ""
|
sem["tmpcode"] = ""
|
||||||
# Nombre d'inscrits:
|
# Nombre d'inscrits:
|
||||||
args = {"formsemestre_id": sem["formsemestre_id"]}
|
args = {"formsemestre_id": sem["formsemestre_id"]}
|
||||||
ins = context.Notes.do_formsemestre_inscription_list(args=args)
|
ins = sco_formsemestre_inscriptions.do_formsemestre_inscription_list(
|
||||||
|
context, args=args
|
||||||
|
)
|
||||||
nb = len(ins) # nb etudiants
|
nb = len(ins) # nb etudiants
|
||||||
sem["nb_inscrits"] = nb
|
sem["nb_inscrits"] = nb
|
||||||
if nb > 0:
|
if nb > 0:
|
||||||
|
@ -130,8 +130,9 @@ def formsemestre_enrich(context, sem):
|
|||||||
# imports ici pour eviter refs circulaires
|
# imports ici pour eviter refs circulaires
|
||||||
import sco_formsemestre_edit
|
import sco_formsemestre_edit
|
||||||
import scolars
|
import scolars
|
||||||
|
from app.views import notes
|
||||||
|
|
||||||
F = context.formation_list(args={"formation_id": sem["formation_id"]})[0]
|
F = notes.formation_list(context, args={"formation_id": sem["formation_id"]})[0]
|
||||||
parcours = sco_codes_parcours.get_parcours_from_code(F["type_parcours"])
|
parcours = sco_codes_parcours.get_parcours_from_code(F["type_parcours"])
|
||||||
# 'S1', 'S2', ... ou '' pour les monosemestres
|
# 'S1', 'S2', ... ou '' pour les monosemestres
|
||||||
if sem["semestre_id"] != NO_SEMESTRE_ID:
|
if sem["semestre_id"] != NO_SEMESTRE_ID:
|
||||||
|
@ -100,7 +100,7 @@ def formsemestre_ext_create_form(context, etudid, formsemestre_id, REQUEST=None)
|
|||||||
# et seulement si pas inscrit au même semestre_id d'un semestre ordinaire ScoDoc.
|
# et seulement si pas inscrit au même semestre_id d'un semestre ordinaire ScoDoc.
|
||||||
# Les autres situations (eg redoublements en changeant d'établissement)
|
# Les autres situations (eg redoublements en changeant d'établissement)
|
||||||
# doivent être gérées par les validations de semestres "antérieurs"
|
# doivent être gérées par les validations de semestres "antérieurs"
|
||||||
insem = context.do_formsemestre_inscription_list(
|
insem = sco_formsemestre_inscriptions.do_formsemestre_inscription_list(context,
|
||||||
args={"etudid": etudid, "etat": "I"}
|
args={"etudid": etudid, "etat": "I"}
|
||||||
)
|
)
|
||||||
semlist = [
|
semlist = [
|
||||||
|
@ -33,6 +33,7 @@ from notes_log import log
|
|||||||
from sco_exceptions import ScoValueError
|
from sco_exceptions import ScoValueError
|
||||||
from sco_permissions import ScoEtudInscrit
|
from sco_permissions import ScoEtudInscrit
|
||||||
from sco_codes_parcours import UE_STANDARD, UE_SPORT, UE_TYPE_NAME
|
from sco_codes_parcours import UE_STANDARD, UE_SPORT, UE_TYPE_NAME
|
||||||
|
import notesdb as ndb
|
||||||
from notesdb import ScoDocCursor, DateISOtoDMY, DateDMYtoISO
|
from notesdb import ScoDocCursor, DateISOtoDMY, DateDMYtoISO
|
||||||
|
|
||||||
from TrivialFormulator import TrivialFormulator, TF
|
from TrivialFormulator import TrivialFormulator, TF
|
||||||
@ -43,6 +44,145 @@ import sco_formsemestre
|
|||||||
import sco_moduleimpl
|
import sco_moduleimpl
|
||||||
import sco_groups
|
import sco_groups
|
||||||
|
|
||||||
|
# --- Gestion des inscriptions aux semestres
|
||||||
|
_formsemestre_inscriptionEditor = ndb.EditableTable(
|
||||||
|
"notes_formsemestre_inscription",
|
||||||
|
"formsemestre_inscription_id",
|
||||||
|
("formsemestre_inscription_id", "etudid", "formsemestre_id", "etat", "etape"),
|
||||||
|
sortkey="formsemestre_id",
|
||||||
|
)
|
||||||
|
|
||||||
|
|
||||||
|
def do_formsemestre_inscription_list(context, *args, **kw):
|
||||||
|
"list formsemestre_inscriptions"
|
||||||
|
cnx = ndb.GetDBConnexion()
|
||||||
|
return _formsemestre_inscriptionEditor.list(cnx, *args, **kw)
|
||||||
|
|
||||||
|
|
||||||
|
def do_formsemestre_inscription_create(context, args, REQUEST, method=None):
|
||||||
|
"create a formsemestre_inscription (and sco event)"
|
||||||
|
cnx = ndb.GetDBConnexion()
|
||||||
|
log("do_formsemestre_inscription_create: args=%s" % str(args))
|
||||||
|
sems = sco_formsemestre.do_formsemestre_list(
|
||||||
|
context, {"formsemestre_id": args["formsemestre_id"]}
|
||||||
|
)
|
||||||
|
if len(sems) != 1:
|
||||||
|
raise ScoValueError("code de semestre invalide: %s" % args["formsemestre_id"])
|
||||||
|
sem = sems[0]
|
||||||
|
# check lock
|
||||||
|
if sem["etat"] != "1":
|
||||||
|
raise ScoValueError("inscription: semestre verrouille")
|
||||||
|
#
|
||||||
|
r = _formsemestre_inscriptionEditor.create(cnx, args)
|
||||||
|
# Evenement
|
||||||
|
scolars.scolar_events_create(
|
||||||
|
cnx,
|
||||||
|
args={
|
||||||
|
"etudid": args["etudid"],
|
||||||
|
"event_date": time.strftime("%d/%m/%Y"),
|
||||||
|
"formsemestre_id": args["formsemestre_id"],
|
||||||
|
"event_type": "INSCRIPTION",
|
||||||
|
},
|
||||||
|
)
|
||||||
|
# Log etudiant
|
||||||
|
logdb(
|
||||||
|
REQUEST,
|
||||||
|
cnx,
|
||||||
|
method=method,
|
||||||
|
etudid=args["etudid"],
|
||||||
|
msg="inscription en semestre %s" % args["formsemestre_id"],
|
||||||
|
commit=False,
|
||||||
|
)
|
||||||
|
#
|
||||||
|
sco_core.inval_cache(
|
||||||
|
context, formsemestre_id=args["formsemestre_id"]
|
||||||
|
) # > inscription au semestre
|
||||||
|
return r
|
||||||
|
|
||||||
|
|
||||||
|
def do_formsemestre_inscription_delete(context, oid, formsemestre_id=None):
|
||||||
|
"delete formsemestre_inscription"
|
||||||
|
cnx = ndb.GetDBConnexion()
|
||||||
|
_formsemestre_inscriptionEditor.delete(cnx, oid)
|
||||||
|
|
||||||
|
sco_core.inval_cache(
|
||||||
|
context, formsemestre_id=formsemestre_id
|
||||||
|
) # > desinscription du semestre
|
||||||
|
|
||||||
|
|
||||||
|
def do_formsemestre_inscription_edit(context, args=None, formsemestre_id=None):
|
||||||
|
"edit a formsemestre_inscription"
|
||||||
|
cnx = ndb.GetDBConnexion()
|
||||||
|
_formsemestre_inscriptionEditor.edit(cnx, args)
|
||||||
|
sco_core.inval_cache(
|
||||||
|
context, formsemestre_id=formsemestre_id
|
||||||
|
) # > modif inscription semestre (demission ?)
|
||||||
|
|
||||||
|
|
||||||
|
def do_formsemestre_desinscription(context, etudid, formsemestre_id, REQUEST=None):
|
||||||
|
"""Désinscription d'un étudiant.
|
||||||
|
Si semestre extérieur et dernier inscrit, suppression de ce semestre.
|
||||||
|
"""
|
||||||
|
sem = sco_formsemestre.get_formsemestre(context, formsemestre_id)
|
||||||
|
# -- check lock
|
||||||
|
if sem["etat"] != "1":
|
||||||
|
raise ScoValueError("desinscription impossible: semestre verrouille")
|
||||||
|
|
||||||
|
# -- Si decisions de jury, desinscription interdite
|
||||||
|
nt = sco_core.get_notes_cache(context).get_NotesTable(context, formsemestre_id)
|
||||||
|
if nt.etud_has_decision(etudid):
|
||||||
|
raise ScoValueError(
|
||||||
|
"desinscription impossible: l'étudiant a une décision de jury (la supprimer avant si nécessaire)"
|
||||||
|
)
|
||||||
|
|
||||||
|
insem = do_formsemestre_inscription_list(context,
|
||||||
|
args={"formsemestre_id": formsemestre_id, "etudid": etudid}
|
||||||
|
)
|
||||||
|
if not insem:
|
||||||
|
raise ScoValueError("%s n'est pas inscrit au semestre !" % etudid)
|
||||||
|
insem = insem[0]
|
||||||
|
# -- desinscription de tous les modules
|
||||||
|
cnx = ndb.GetDBConnexion()
|
||||||
|
cursor = cnx.cursor(cursor_factory=ndb.ScoDocCursor)
|
||||||
|
cursor.execute(
|
||||||
|
"select moduleimpl_inscription_id from notes_moduleimpl_inscription Im, notes_moduleimpl M where Im.etudid=%(etudid)s and Im.moduleimpl_id = M.moduleimpl_id and M.formsemestre_id = %(formsemestre_id)s",
|
||||||
|
{"etudid": etudid, "formsemestre_id": formsemestre_id},
|
||||||
|
)
|
||||||
|
res = cursor.fetchall()
|
||||||
|
moduleimpl_inscription_ids = [x[0] for x in res]
|
||||||
|
for moduleimpl_inscription_id in moduleimpl_inscription_ids:
|
||||||
|
sco_moduleimpl.do_moduleimpl_inscription_delete(
|
||||||
|
context, moduleimpl_inscription_id, formsemestre_id=formsemestre_id
|
||||||
|
)
|
||||||
|
# -- desincription du semestre
|
||||||
|
do_formsemestre_inscription_delete(
|
||||||
|
context, insem["formsemestre_inscription_id"], formsemestre_id=formsemestre_id
|
||||||
|
)
|
||||||
|
# --- Semestre extérieur
|
||||||
|
if sem["modalite"] == "EXT":
|
||||||
|
inscrits = do_formsemestre_inscription_list(context,
|
||||||
|
args={"formsemestre_id": formsemestre_id}
|
||||||
|
)
|
||||||
|
nbinscrits = len(inscrits)
|
||||||
|
if nbinscrits == 0:
|
||||||
|
log(
|
||||||
|
"do_formsemestre_desinscription: suppression du semestre extérieur %s"
|
||||||
|
% formsemestre_id
|
||||||
|
)
|
||||||
|
sco_formsemestre_edit.do_formsemestre_delete(
|
||||||
|
context, formsemestre_id, REQUEST=REQUEST
|
||||||
|
)
|
||||||
|
|
||||||
|
if REQUEST:
|
||||||
|
logdb(
|
||||||
|
REQUEST,
|
||||||
|
cnx,
|
||||||
|
method="formsemestre_desinscription",
|
||||||
|
etudid=etudid,
|
||||||
|
msg="desinscription semestre %s" % formsemestre_id,
|
||||||
|
commit=False,
|
||||||
|
)
|
||||||
|
|
||||||
|
|
||||||
def do_formsemestre_inscription_with_modules(
|
def do_formsemestre_inscription_with_modules(
|
||||||
context,
|
context,
|
||||||
@ -61,7 +201,7 @@ def do_formsemestre_inscription_with_modules(
|
|||||||
args = {"formsemestre_id": formsemestre_id, "etudid": etudid}
|
args = {"formsemestre_id": formsemestre_id, "etudid": etudid}
|
||||||
if etat is not None:
|
if etat is not None:
|
||||||
args["etat"] = etat
|
args["etat"] = etat
|
||||||
context.do_formsemestre_inscription_create(args, REQUEST, method=method)
|
do_formsemestre_inscription_create(context, args, REQUEST, method=method)
|
||||||
log(
|
log(
|
||||||
"do_formsemestre_inscription_with_modules: etudid=%s formsemestre_id=%s"
|
"do_formsemestre_inscription_with_modules: etudid=%s formsemestre_id=%s"
|
||||||
% (etudid, formsemestre_id)
|
% (etudid, formsemestre_id)
|
||||||
@ -135,7 +275,7 @@ def formsemestre_inscription_with_modules_form(
|
|||||||
)
|
)
|
||||||
F = html_sco_header.sco_footer(context, REQUEST)
|
F = html_sco_header.sco_footer(context, REQUEST)
|
||||||
sems = sco_formsemestre.do_formsemestre_list(context, args={"etat": "1"})
|
sems = sco_formsemestre.do_formsemestre_list(context, args={"etat": "1"})
|
||||||
insem = context.do_formsemestre_inscription_list(
|
insem = do_formsemestre_inscription_list(context,
|
||||||
args={"etudid": etudid, "etat": "I"}
|
args={"etudid": etudid, "etat": "I"}
|
||||||
)
|
)
|
||||||
if sems:
|
if sems:
|
||||||
|
@ -579,7 +579,7 @@ def fill_formsemestre(context, sem, REQUEST=None):
|
|||||||
sco_formsemestre.formsemestre_etape_apo_str(sem) or "Pas de code étape"
|
sco_formsemestre.formsemestre_etape_apo_str(sem) or "Pas de code étape"
|
||||||
)
|
)
|
||||||
|
|
||||||
inscrits = context.Notes.do_formsemestre_inscription_list(
|
inscrits = sco_formsemestre_inscriptions.do_formsemestre_inscription_list(context,
|
||||||
args={"formsemestre_id": formsemestre_id}
|
args={"formsemestre_id": formsemestre_id}
|
||||||
)
|
)
|
||||||
sem["nbinscrits"] = len(inscrits)
|
sem["nbinscrits"] = len(inscrits)
|
||||||
@ -977,7 +977,7 @@ def formsemestre_status(context, formsemestre_id=None, REQUEST=None):
|
|||||||
Mlist = sco_moduleimpl.do_moduleimpl_withmodule_list(
|
Mlist = sco_moduleimpl.do_moduleimpl_withmodule_list(
|
||||||
context, formsemestre_id=formsemestre_id
|
context, formsemestre_id=formsemestre_id
|
||||||
)
|
)
|
||||||
# inscrits = context.do_formsemestre_inscription_list(
|
# inscrits = sco_formsemestre_inscriptions.do_formsemestre_inscription_list(context,
|
||||||
# args={"formsemestre_id": formsemestre_id}
|
# args={"formsemestre_id": formsemestre_id}
|
||||||
# )
|
# )
|
||||||
prev_ue_id = None
|
prev_ue_id = None
|
||||||
|
@ -864,7 +864,7 @@ def do_formsemestre_validation_auto(context, formsemestre_id, REQUEST):
|
|||||||
for etudid in etudids:
|
for etudid in etudids:
|
||||||
etud = scolars.get_etud_info(etudid=etudid, filled=True)[0]
|
etud = scolars.get_etud_info(etudid=etudid, filled=True)[0]
|
||||||
Se = sco_parcours_dut.SituationEtudParcours(context, etud, formsemestre_id)
|
Se = sco_parcours_dut.SituationEtudParcours(context, etud, formsemestre_id)
|
||||||
ins = context.do_formsemestre_inscription_list(
|
ins = sco_formsemestre_inscriptions.do_formsemestre_inscription_list(context,
|
||||||
{"etudid": etudid, "formsemestre_id": formsemestre_id}
|
{"etudid": etudid, "formsemestre_id": formsemestre_id}
|
||||||
)[0]
|
)[0]
|
||||||
|
|
||||||
@ -966,7 +966,7 @@ def formsemestre_fix_validation_ues(context, formsemestre_id, REQUEST=None):
|
|||||||
for etudid in etudids:
|
for etudid in etudids:
|
||||||
etud = scolars.get_etud_info(etudid=etudid, filled=True)[0]
|
etud = scolars.get_etud_info(etudid=etudid, filled=True)[0]
|
||||||
Se = sco_parcours_dut.SituationEtudParcours(context, etud, formsemestre_id)
|
Se = sco_parcours_dut.SituationEtudParcours(context, etud, formsemestre_id)
|
||||||
ins = context.do_formsemestre_inscription_list(
|
ins = sco_formsemestre_inscriptions.do_formsemestre_inscription_list(context,
|
||||||
{"etudid": etudid, "formsemestre_id": formsemestre_id}
|
{"etudid": etudid, "formsemestre_id": formsemestre_id}
|
||||||
)[0]
|
)[0]
|
||||||
decision_sem = nt.get_etud_decision_sem(etudid)
|
decision_sem = nt.get_etud_decision_sem(etudid)
|
||||||
|
@ -1321,7 +1321,7 @@ def create_etapes_partition(context, formsemestre_id, partition_name="apo_etapes
|
|||||||
vides ne sont pas supprimés).
|
vides ne sont pas supprimés).
|
||||||
"""
|
"""
|
||||||
log("create_etapes_partition(%s)" % formsemestre_id)
|
log("create_etapes_partition(%s)" % formsemestre_id)
|
||||||
ins = context.do_formsemestre_inscription_list(
|
ins = sco_formsemestre_inscriptions.do_formsemestre_inscription_list(context,
|
||||||
args={"formsemestre_id": formsemestre_id}
|
args={"formsemestre_id": formsemestre_id}
|
||||||
)
|
)
|
||||||
etapes = {i["etape"] for i in ins if i["etape"]}
|
etapes = {i["etape"] for i in ins if i["etape"]}
|
||||||
|
@ -110,7 +110,7 @@ def list_inscrits(context, formsemestre_id, with_dems=False):
|
|||||||
) # optimized
|
) # optimized
|
||||||
else:
|
else:
|
||||||
args = {"formsemestre_id": formsemestre_id}
|
args = {"formsemestre_id": formsemestre_id}
|
||||||
ins = context.Notes.do_formsemestre_inscription_list(args=args)
|
ins = sco_formsemestre_inscriptions.do_formsemestre_inscription_list(context, args=args)
|
||||||
inscr = {}
|
inscr = {}
|
||||||
for i in ins:
|
for i in ins:
|
||||||
etudid = i["etudid"]
|
etudid = i["etudid"]
|
||||||
|
@ -286,7 +286,7 @@ def _make_table_notes(
|
|||||||
# infos identite etudiant
|
# infos identite etudiant
|
||||||
etud = scolars.get_etud_info(etudid=etudid, filled=1)[0]
|
etud = scolars.get_etud_info(etudid=etudid, filled=1)[0]
|
||||||
# infos inscription
|
# infos inscription
|
||||||
inscr = context.do_formsemestre_inscription_list(
|
inscr = sco_formsemestre_inscriptions.do_formsemestre_inscription_list(context,
|
||||||
{"etudid": etudid, "formsemestre_id": M["formsemestre_id"]}
|
{"etudid": etudid, "formsemestre_id": M["formsemestre_id"]}
|
||||||
)[0]
|
)[0]
|
||||||
|
|
||||||
|
@ -232,7 +232,7 @@ def do_moduleimpl_inscrit_etuds(
|
|||||||
"""
|
"""
|
||||||
# Verifie qu'ils sont tous bien inscrits au semestre
|
# Verifie qu'ils sont tous bien inscrits au semestre
|
||||||
for etudid in etudids:
|
for etudid in etudids:
|
||||||
insem = context.do_formsemestre_inscription_list(
|
insem = sco_formsemestre_inscriptions.do_formsemestre_inscription_list(context,
|
||||||
args={"formsemestre_id": formsemestre_id, "etudid": etudid}
|
args={"formsemestre_id": formsemestre_id, "etudid": etudid}
|
||||||
)
|
)
|
||||||
if not insem:
|
if not insem:
|
||||||
|
@ -238,7 +238,7 @@ def moduleimpl_inscriptions_stats(context, formsemestre_id, REQUEST=None):
|
|||||||
authuser = REQUEST.AUTHENTICATED_USER
|
authuser = REQUEST.AUTHENTICATED_USER
|
||||||
|
|
||||||
sem = sco_formsemestre.get_formsemestre(context, formsemestre_id)
|
sem = sco_formsemestre.get_formsemestre(context, formsemestre_id)
|
||||||
inscrits = context.do_formsemestre_inscription_list(
|
inscrits = sco_formsemestre_inscriptions.do_formsemestre_inscription_list(context,
|
||||||
args={"formsemestre_id": formsemestre_id}
|
args={"formsemestre_id": formsemestre_id}
|
||||||
)
|
)
|
||||||
set_all = set([x["etudid"] for x in inscrits])
|
set_all = set([x["etudid"] for x in inscrits])
|
||||||
@ -465,7 +465,7 @@ def get_etuds_with_capitalized_ue(context, formsemestre_id):
|
|||||||
nt = sco_core.get_notes_cache(context).get_NotesTable(
|
nt = sco_core.get_notes_cache(context).get_NotesTable(
|
||||||
context, formsemestre_id
|
context, formsemestre_id
|
||||||
) # > get_ues, get_etud_ue_status
|
) # > get_ues, get_etud_ue_status
|
||||||
inscrits = context.do_formsemestre_inscription_list(
|
inscrits = sco_formsemestre_inscriptions.do_formsemestre_inscription_list(context,
|
||||||
args={"formsemestre_id": formsemestre_id}
|
args={"formsemestre_id": formsemestre_id}
|
||||||
)
|
)
|
||||||
ues = nt.get_ues()
|
ues = nt.get_ues()
|
||||||
@ -544,7 +544,7 @@ def do_etud_desinscrit_ue(context, etudid, formsemestre_id, ue_id, REQUEST=None)
|
|||||||
def do_etud_inscrit_ue(context, etudid, formsemestre_id, ue_id, REQUEST=None):
|
def do_etud_inscrit_ue(context, etudid, formsemestre_id, ue_id, REQUEST=None):
|
||||||
"""Incrit l'etudiant de tous les modules de cette UE dans ce semestre."""
|
"""Incrit l'etudiant de tous les modules de cette UE dans ce semestre."""
|
||||||
# Verifie qu'il est bien inscrit au semestre
|
# Verifie qu'il est bien inscrit au semestre
|
||||||
insem = context.do_formsemestre_inscription_list(
|
insem = sco_formsemestre_inscriptions.do_formsemestre_inscription_list(context,
|
||||||
args={"formsemestre_id": formsemestre_id, "etudid": etudid}
|
args={"formsemestre_id": formsemestre_id, "etudid": etudid}
|
||||||
)
|
)
|
||||||
if not insem:
|
if not insem:
|
||||||
|
@ -64,7 +64,7 @@ from scolog import logdb
|
|||||||
|
|
||||||
# Full paths on server's filesystem. Something like "/opt/scodoc/var/scodoc/photos"
|
# Full paths on server's filesystem. Something like "/opt/scodoc/var/scodoc/photos"
|
||||||
PHOTO_DIR = os.path.join(Config.INSTANCE_HOME, "var", "scodoc", "photos")
|
PHOTO_DIR = os.path.join(Config.INSTANCE_HOME, "var", "scodoc", "photos")
|
||||||
ICONS_DIR = os.path.join(SCO_SRC_DIR, "static", "icons")
|
ICONS_DIR = os.path.join(SCO_SRC_DIR, "app", "static", "icons")
|
||||||
UNKNOWN_IMAGE_PATH = os.path.join(ICONS_DIR, "unknown.jpg")
|
UNKNOWN_IMAGE_PATH = os.path.join(ICONS_DIR, "unknown.jpg")
|
||||||
UNKNOWN_IMAGE_URL = "get_photo_image?etudid=" # with empty etudid => unknown face image
|
UNKNOWN_IMAGE_URL = "get_photo_image?etudid=" # with empty etudid => unknown face image
|
||||||
IMAGE_EXT = ".jpg"
|
IMAGE_EXT = ".jpg"
|
||||||
|
@ -298,7 +298,7 @@ def do_placement(context, REQUEST):
|
|||||||
0
|
0
|
||||||
] # XXX utiliser ZScolar (parent)
|
] # XXX utiliser ZScolar (parent)
|
||||||
# infos inscription
|
# infos inscription
|
||||||
inscr = context.do_formsemestre_inscription_list(
|
inscr = sco_formsemestre_inscriptions.do_formsemestre_inscription_list(context,
|
||||||
{"etudid": etudid, "formsemestre_id": M["formsemestre_id"]}
|
{"etudid": etudid, "formsemestre_id": M["formsemestre_id"]}
|
||||||
)[0]
|
)[0]
|
||||||
if inscr["etat"] != "D":
|
if inscr["etat"] != "D":
|
||||||
|
@ -451,7 +451,7 @@ def table_suivi_cohorte(
|
|||||||
logt("B: etuds sets")
|
logt("B: etuds sets")
|
||||||
sem["members"] = orig_set
|
sem["members"] = orig_set
|
||||||
for s in sems:
|
for s in sems:
|
||||||
ins = context.do_formsemestre_inscription_list(
|
ins = sco_formsemestre_inscriptions.do_formsemestre_inscription_list(context,
|
||||||
args={"formsemestre_id": s["formsemestre_id"]}
|
args={"formsemestre_id": s["formsemestre_id"]}
|
||||||
) # sans dems
|
) # sans dems
|
||||||
inset = set([i["etudid"] for i in ins])
|
inset = set([i["etudid"] for i in ins])
|
||||||
|
@ -1006,7 +1006,7 @@ def _get_sorted_etuds(context, E, etudids, formsemestre_id):
|
|||||||
scolars.format_etud_ident(e)
|
scolars.format_etud_ident(e)
|
||||||
etuds.append(e)
|
etuds.append(e)
|
||||||
# infos inscription dans ce semestre
|
# infos inscription dans ce semestre
|
||||||
e["inscr"] = context.do_formsemestre_inscription_list(
|
e["inscr"] = sco_formsemestre_inscriptions.do_formsemestre_inscription_list(context,
|
||||||
{"etudid": etudid, "formsemestre_id": formsemestre_id}
|
{"etudid": etudid, "formsemestre_id": formsemestre_id}
|
||||||
)[0]
|
)[0]
|
||||||
# Groupes auxquels appartient cet étudiant:
|
# Groupes auxquels appartient cet étudiant:
|
||||||
|
@ -770,7 +770,7 @@ def update_etape_formsemestre_inscription(context, ins, etud):
|
|||||||
"""
|
"""
|
||||||
if etud["etape"] != ins["etape"]:
|
if etud["etape"] != ins["etape"]:
|
||||||
ins["etape"] = etud["etape"]
|
ins["etape"] = etud["etape"]
|
||||||
context.do_formsemestre_inscription_edit(args=ins)
|
sco_formsemestre_inscriptions.do_formsemestre_inscription_edit(context, args=ins)
|
||||||
|
|
||||||
|
|
||||||
def formsemestre_import_etud_admission(
|
def formsemestre_import_etud_admission(
|
||||||
@ -783,7 +783,7 @@ def formsemestre_import_etud_admission(
|
|||||||
N'affecte pas les etudiants inconnus sur le portail.
|
N'affecte pas les etudiants inconnus sur le portail.
|
||||||
"""
|
"""
|
||||||
sem = sco_formsemestre.get_formsemestre(context, formsemestre_id)
|
sem = sco_formsemestre.get_formsemestre(context, formsemestre_id)
|
||||||
ins = context.do_formsemestre_inscription_list({"formsemestre_id": formsemestre_id})
|
ins = sco_formsemestre_inscriptions.do_formsemestre_inscription_list(context, {"formsemestre_id": formsemestre_id})
|
||||||
log(
|
log(
|
||||||
"formsemestre_import_etud_admission: %s (%d etuds)"
|
"formsemestre_import_etud_admission: %s (%d etuds)"
|
||||||
% (formsemestre_id, len(ins))
|
% (formsemestre_id, len(ins))
|
||||||
|
@ -234,7 +234,7 @@ if not os.path.exists(SCO_TMP_DIR):
|
|||||||
# ----- Les logos: /opt/scodoc/var/scodoc/config/logos
|
# ----- Les logos: /opt/scodoc/var/scodoc/config/logos
|
||||||
SCODOC_LOGOS_DIR = os.path.join(SCODOC_CFG_DIR, "logos")
|
SCODOC_LOGOS_DIR = os.path.join(SCODOC_CFG_DIR, "logos")
|
||||||
|
|
||||||
# Dans les sources:
|
# Racine projet: /.../ScoDoc/
|
||||||
SCO_SRC_DIR = os.path.join(Config.INSTANCE_HOME, "Products", "ScoDoc")
|
SCO_SRC_DIR = os.path.join(Config.INSTANCE_HOME, "Products", "ScoDoc")
|
||||||
# - Les outils distribués
|
# - Les outils distribués
|
||||||
SCO_TOOLS_DIR = os.path.join(SCO_SRC_DIR, "config")
|
SCO_TOOLS_DIR = os.path.join(SCO_SRC_DIR, "config")
|
||||||
@ -820,7 +820,7 @@ def icontag(name, file_format="png", **attrs):
|
|||||||
"""
|
"""
|
||||||
if ("width" not in attrs) or ("height" not in attrs):
|
if ("width" not in attrs) or ("height" not in attrs):
|
||||||
if name not in ICONSIZES:
|
if name not in ICONSIZES:
|
||||||
img_file = SCO_SRC_DIR + "/static/icons/%s.%s" % (name, file_format)
|
img_file = SCO_SRC_DIR + "/app/static/icons/%s.%s" % (name, file_format)
|
||||||
im = PILImage.open(img_file)
|
im = PILImage.open(img_file)
|
||||||
width, height = im.size[0], im.size[1]
|
width, height = im.size[0], im.size[1]
|
||||||
ICONSIZES[name] = (width, height) # cache
|
ICONSIZES[name] = (width, height) # cache
|
||||||
|
@ -926,7 +926,7 @@ def fillEtudsInfo(context, etuds):
|
|||||||
format_etud_ident(etud)
|
format_etud_ident(etud)
|
||||||
|
|
||||||
# Semestres dans lesquel il est inscrit
|
# Semestres dans lesquel il est inscrit
|
||||||
ins = context.Notes.do_formsemestre_inscription_list({"etudid": etudid})
|
ins = sco_formsemestre_inscriptions.do_formsemestre_inscription_list(context, {"etudid": etudid})
|
||||||
etud["ins"] = ins
|
etud["ins"] = ins
|
||||||
sems = []
|
sems = []
|
||||||
cursem = None # semestre "courant" ou il est inscrit
|
cursem = None # semestre "courant" ou il est inscrit
|
||||||
|
Before Width: | Height: | Size: 160 B After Width: | Height: | Size: 160 B |
Before Width: | Height: | Size: 148 B After Width: | Height: | Size: 148 B |
Before Width: | Height: | Size: 201 B After Width: | Height: | Size: 201 B |
Before Width: | Height: | Size: 158 B After Width: | Height: | Size: 158 B |
Before Width: | Height: | Size: 146 B After Width: | Height: | Size: 146 B |