WIP deplacé /static. Accueil fonctionnel.

This commit is contained in:
Emmanuel Viennet 2021-06-16 16:59:31 +02:00
parent f2e86622ae
commit be1d5d7a65
307 changed files with 260 additions and 196 deletions

View File

@ -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)

View File

@ -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")

View File

@ -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,

View File

@ -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

View File

@ -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]

View File

@ -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:

View File

@ -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:

View File

@ -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 = [

View File

@ -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:

View File

@ -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

View File

@ -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)

View File

@ -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"]}

View File

@ -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"]

View File

@ -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]

View File

@ -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:

View File

@ -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:

View File

@ -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"

View File

@ -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":

View File

@ -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])

View File

@ -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:

View File

@ -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))

View File

@ -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

View File

@ -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

View File

Before

Width:  |  Height:  |  Size: 160 B

After

Width:  |  Height:  |  Size: 160 B

View File

Before

Width:  |  Height:  |  Size: 148 B

After

Width:  |  Height:  |  Size: 148 B

View File

Before

Width:  |  Height:  |  Size: 201 B

After

Width:  |  Height:  |  Size: 201 B

View File

Before

Width:  |  Height:  |  Size: 158 B

After

Width:  |  Height:  |  Size: 158 B

Some files were not shown because too many files have changed in this diff Show More