Compare commits

..

1 Commits

13 changed files with 62 additions and 33 deletions

View File

@ -760,6 +760,6 @@ def tf_error_message(msg):
if type(msg) == StringType: if type(msg) == StringType:
msg = [msg] msg = [msg]
return ( return (
'<ul class="tf-msg"><li class="tf-msg error-message">%s</li></ul>' '<ul class="tf-msg"><li id="error-message" class="tf-msg">%s</li></ul>'
% '</li><li class="tf-msg">'.join(msg) % '</li><li class="tf-msg">'.join(msg)
) )

View File

@ -1,7 +1,7 @@
# -*- mode: python -*- # -*- mode: python -*-
# -*- coding: utf-8 -*- # -*- coding: utf-8 -*-
SCOVERSION = "7.26m" SCOVERSION = "7.25m"
SCONAME = "ScoDoc" SCONAME = "ScoDoc"

View File

@ -66,7 +66,7 @@ def sidebar_common(context, REQUEST=None):
ScoUsersView, context ScoUsersView, context
): ):
H.append( H.append(
"""<a id = "link-view-users"href="%(UsersURL)s" class="sidebar">Utilisateurs</a> <br/>""" """<a id = "utilisateurs_Vue"href="%(UsersURL)s" class="sidebar">Utilisateurs</a> <br/>"""
% params % params
) )
@ -105,7 +105,7 @@ def sidebar(context, REQUEST=None):
"""<h2 id="insidebar-etud"><a href="%(ScoURL)s/ficheEtud?etudid=%(etudid)s" class="sidebar"> """<h2 id="insidebar-etud"><a href="%(ScoURL)s/ficheEtud?etudid=%(etudid)s" class="sidebar">
<font color="#FF0000">%(civilite_str)s %(nom_disp)s</font></a> <font color="#FF0000">%(civilite_str)s %(nom_disp)s</font></a>
</h2> </h2>
<p id="euid">%(etudid)s</p> <p id ="euid">%(etudid)s</p>
<b>Absences</b>""" <b>Absences</b>"""
% params % params
) )

View File

@ -422,7 +422,7 @@ class ApoEtud(dict):
# Elements UE # Elements UE
decisions_ue = nt.get_etud_decision_ues(etudid) decisions_ue = nt.get_etud_decision_ues(etudid)
for ue in nt.get_ues(): for ue in nt.get_ues():
if code in ue["code_apogee"].split(","): if ue["code_apogee"] == code:
if self.export_res_ues: if self.export_res_ues:
if decisions_ue and ue["ue_id"] in decisions_ue: if decisions_ue and ue["ue_id"] in decisions_ue:
ue_status = nt.get_etud_ue_status(etudid, ue["ue_id"]) ue_status = nt.get_etud_ue_status(etudid, ue["ue_id"])
@ -443,7 +443,7 @@ class ApoEtud(dict):
modimpls = nt.get_modimpls() modimpls = nt.get_modimpls()
module_code_found = False module_code_found = False
for modimpl in modimpls: for modimpl in modimpls:
if code in modimpl["module"]["code_apogee"].split(","): if modimpl["module"]["code_apogee"] == code:
n = nt.get_etud_mod_moy(modimpl["moduleimpl_id"], etudid) n = nt.get_etud_mod_moy(modimpl["moduleimpl_id"], etudid)
if n != "NI" and self.export_res_modules: if n != "NI" and self.export_res_modules:
return dict(N=_apo_fmt_note(n), B=20, J="", R="") return dict(N=_apo_fmt_note(n), B=20, J="", R="")
@ -972,13 +972,13 @@ class ApoData:
self.context, sem["formsemestre_id"] self.context, sem["formsemestre_id"]
) )
for ue in nt.get_ues(): for ue in nt.get_ues():
if code in ue["code_apogee"].split(","): if ue["code_apogee"] == code:
s.add(code) s.add(code)
continue continue
# associé à un module: # associé à un module:
modimpls = nt.get_modimpls() modimpls = nt.get_modimpls()
for modimpl in modimpls: for modimpl in modimpls:
if code in modimpl["module"]["code_apogee"].split(","): if modimpl["module"]["code_apogee"] == code:
s.add(code) s.add(code)
continue continue
# log('codes_by_sem=%s' % pprint.pformat(codes_by_sem)) # log('codes_by_sem=%s' % pprint.pformat(codes_by_sem))

View File

@ -153,8 +153,8 @@ def module_create(context, matiere_id=None, REQUEST=None):
"code_apogee", "code_apogee",
{ {
"title": "Code Apogée", "title": "Code Apogée",
"size": 25, "size": 15,
"explanation": "code élément pédagogique Apogée (optionnel) ou liste de codes ELP séparés par une virgule", "explanation": "code élément pédagogique Apogée (optionnel)",
}, },
), ),
( (
@ -355,7 +355,7 @@ def module_edit(context, module_id=None, REQUEST=None):
{ {
"title": "Code Apogée", "title": "Code Apogée",
"size": 15, "size": 15,
"explanation": "code élément pédagogique Apogée (optionnel) ou liste de codes ELP séparés par une virgule", "explanation": "code élément pédagogique Apogée (optionnel)",
}, },
), ),
( (

View File

@ -146,8 +146,8 @@ def ue_edit(context, ue_id=None, create=False, formation_id=None, REQUEST=None):
"code_apogee", "code_apogee",
{ {
"title": "Code Apogée", "title": "Code Apogée",
"size": 25, "size": 15,
"explanation": "code élément pédagogique Apogée (optionnel) ou liste de codes ELP séparés par une virgule", "explanation": "code élément pédagogique Apogée (optionnel)",
}, },
), ),
] ]

View File

@ -171,7 +171,7 @@ def search_etud_in_dept(context, expnom="", REQUEST=None):
) )
) )
else: else:
H.append('<h2 id="title-no-result" style="color: red;">Aucun résultat pour "%s".</h2>' % expnom) H.append('<h2 style="color: red;">Aucun résultat pour "%s".</h2>' % expnom)
H.append( H.append(
"""<p class="help">La recherche porte sur tout ou partie du NOM ou du NIP de l'étudiant</p>""" """<p class="help">La recherche porte sur tout ou partie du NOM ou du NIP de l'étudiant</p>"""
) )

View File

@ -229,7 +229,7 @@ def formation_list_table(context, formation_id=None, args={}, REQUEST=None):
f["parcours_name"] = "" f["parcours_name"] = ""
f["_titre_target"] = "ue_list?formation_id=%(formation_id)s" % f f["_titre_target"] = "ue_list?formation_id=%(formation_id)s" % f
f["_titre_link_class"] = "stdlink" f["_titre_link_class"] = "stdlink"
f["_titre_id"] = "titre-%s" % f["acronyme"].lower().replace(" ","-") f["_titre_id"] = "titre-%s" % f["acronyme"]
# Ajoute les semestres associés à chaque formation: # Ajoute les semestres associés à chaque formation:
f["sems"] = sco_formsemestre.do_formsemestre_list( f["sems"] = sco_formsemestre.do_formsemestre_list(
context, args={"formation_id": f["formation_id"]} context, args={"formation_id": f["formation_id"]}
@ -243,7 +243,7 @@ def formation_list_table(context, formation_id=None, args={}, REQUEST=None):
] ]
+ [ + [
'<a class="stdlink" id="add-semestre-%s" href="formsemestre_createwithmodules?formation_id=%s&semestre_id=1">ajouter</a>' '<a class="stdlink" id="add-semestre-%s" href="formsemestre_createwithmodules?formation_id=%s&semestre_id=1">ajouter</a>'
% (f["acronyme"].lower().replace(" ", "-"), f["formation_id"]) % (f["acronyme"].lower(), f["formation_id"])
] ]
) )
if f["sems"]: if f["sems"]:
@ -261,14 +261,14 @@ def formation_list_table(context, formation_id=None, args={}, REQUEST=None):
if editable and not locked: if editable and not locked:
but_suppr = ( but_suppr = (
'<a class="stdlink" id="delete-formation-%s" href="formation_delete?formation_id=%s">%s</a>' '<a class="stdlink" id="delete-formation-%s" href="formation_delete?formation_id=%s">%s</a>'
% (f["acronyme"],f["formation_id"], suppricon) % (f["acronyme"], f["formation_id"], suppricon)
) )
else: else:
but_suppr = '<span class="but_placeholder"></span>' but_suppr = '<span class="but_placeholder"></span>'
if editable: if editable:
but_edit = ( but_edit = (
'<a class="stdlink" id="edit-formation-%s" href="formation_edit?formation_id=%s">%s</a>' '<a class="stdlink" id="edit-formation-%s" href="formation_edit?formation_id=%s">%s</a>'
% (f["acronyme"].lower().replace(" ","-"), f["formation_id"], editicon) % (f["acronyme"], f["formation_id"], editicon)
) )
else: else:
but_edit = '<span class="but_placeholder"></span>' but_edit = '<span class="but_placeholder"></span>'

View File

@ -149,7 +149,12 @@ def formsemestre_inscription_with_modules_form(
""" """
<li><a class="stdlink" id="inscription-semestre-%s" href="formsemestre_inscription_with_modules?etudid=%s&formsemestre_id=%s">%s</a> <li><a class="stdlink" id="inscription-semestre-%s" href="formsemestre_inscription_with_modules?etudid=%s&formsemestre_id=%s">%s</a>
""" """
% (sem["formsemestre_id"],etudid, sem["formsemestre_id"], sem["titremois"]) % (
sem["formsemestre_id"],
etudid,
sem["formsemestre_id"],
sem["titremois"],
)
) )
H.append("</ul>") H.append("</ul>")
else: else:

View File

@ -401,9 +401,9 @@ def formsemestre_validation_etud_manu(
def _redirect_valid_choice( def _redirect_valid_choice(
formsemestre_id, etudid, Se, choice, desturl, sortcol, REQUEST formsemestre_id, etudid, Se, choice, desturl, sortcol, REQUEST
): ):
adr = ( adr = "formsemestre_validation_etud_form?formsemestre_id=%s&etudid=%s&check=1" % (
"formsemestre_validation_etud_form?formsemestre_id=%s&etudid=%s&check=1" formsemestre_id,
% (formsemestre_id, etudid) etudid,
) )
if sortcol: if sortcol:
adr += "&sortcol=" + sortcol adr += "&sortcol=" + sortcol
@ -455,7 +455,7 @@ def decisions_possible_rows(Se, assiduite, subtitle="", trclass=""):
for ch in choices: for ch in choices:
H.append( H.append(
"""<tr class="%s"><td title="règle %s"><input type="radio" name="codechoice" value="%s" id="input-choice-%s" onClick="document.getElementById('subut').disabled=false;">""" """<tr class="%s"><td title="règle %s"><input type="radio" name="codechoice" value="%s" id="input-choice-%s" onClick="document.getElementById('subut').disabled=false;">"""
% (trclass, ch.rule_id, ch.codechoice,ch.rule_id) % (trclass, ch.rule_id, ch.codechoice, ch.rule_id)
) )
H.append("%s </input></td>" % ch.explication) H.append("%s </input></td>" % ch.explication)
if Se.prev: if Se.prev:
@ -643,7 +643,7 @@ def formsemestre_recap_parcours_table(
'<td class="%s" id="ue-%s" title="%s">%s</td>' '<td class="%s" id="ue-%s" title="%s">%s</td>'
% ( % (
class_ue, class_ue,
ue["acronyme"].lower().replace(" ","-"), ue["acronyme"],
" ".join(explanation_ue), " ".join(explanation_ue),
scu.fmt_note(moy_ue), scu.fmt_note(moy_ue),
) )

View File

@ -169,7 +169,7 @@ def moduleimpl_status(context, moduleimpl_id=None, partition_id=None, REQUEST=No
<table> <table>
<tr> <tr>
<td class="fichetitre2">Responsable: </td><td id="ens-responsable" class="redboldtext">""", <td class="fichetitre2">Responsable: </td><td class="redboldtext">""",
context.Users.user_info(M["responsable_id"])["nomprenom"], context.Users.user_info(M["responsable_id"])["nomprenom"],
"""<span class="blacktt">(%(responsable_id)s)</span>""" % M, """<span class="blacktt">(%(responsable_id)s)</span>""" % M,
] ]
@ -181,7 +181,7 @@ def moduleimpl_status(context, moduleimpl_id=None, partition_id=None, REQUEST=No
) )
except: except:
pass pass
H.append("""</td><td class="ens-in-module">""") H.append("""</td><td>""")
H.append( H.append(
", ".join([context.Users.user_info(m["ens_id"])["nomprenom"] for m in M["ens"]]) ", ".join([context.Users.user_info(m["ens_id"])["nomprenom"] for m in M["ens"]])
) )
@ -360,12 +360,18 @@ def moduleimpl_status(context, moduleimpl_id=None, partition_id=None, REQUEST=No
"""<a href="evaluation_edit?evaluation_id=%(evaluation_id)s" class="mievr_evalnodate">Evaluation sans date</a>""" """<a href="evaluation_edit?evaluation_id=%(evaluation_id)s" class="mievr_evalnodate">Evaluation sans date</a>"""
% eval % eval
) )
H.append("&nbsp;&nbsp;&nbsp; <em id=""%(description)s"">%(description)s</em>" % eval) H.append(
"&nbsp;&nbsp;&nbsp; <em id="
"%(description)s"
">%(description)s</em>" % eval
)
if eval["evaluation_type"] == EVALUATION_RATTRAPAGE: if eval["evaluation_type"] == EVALUATION_RATTRAPAGE:
H.append( H.append(
"""<span class="mievr_rattr" title="remplace si meilleure note">rattrapage</span>""" """<span class="mievr_rattr" title="remplace si meilleure note">rattrapage</span>"""
) )
H.append("<div id='hidden-id' style='visibility:hidden'>%(evaluation_id)s</div>") H.append(
"<div id='hidden-id' style='visibility:hidden'>%(evaluation_id)s</div>"
)
elif eval["evaluation_type"] == EVALUATION_SESSION2: elif eval["evaluation_type"] == EVALUATION_SESSION2:
H.append( H.append(
"""<span class="mievr_rattr" title="remplace autres notes">session 2</span>""" """<span class="mievr_rattr" title="remplace autres notes">session 2</span>"""

View File

@ -26,7 +26,9 @@
############################################################################## ##############################################################################
"""ScoDoc ficheEtud """ScoDoc ficheEtud
Fiche description d'un étudiant et de son parcours Fiche description d'un étudiant et de son parcours
""" """
import sco_utils as scu import sco_utils as scu
@ -413,10 +415,12 @@ def ficheEtud(context, etudid=None, REQUEST=None):
<div class="ficheEtud" id="ficheEtud"><table> <div class="ficheEtud" id="ficheEtud"><table>
<tr><td> <tr><td>
<h2>%(nomprenom)s (%(inscription)s)</h2> <h2>%(nomprenom)s (%(inscription)s)</h2>
<span>%(emaillink)s</span> <span>%(emaillink)s</span>
</td><td class="photocell"> </td><td class="photocell">
<a href="etud_photo_orig_page?etudid=%(etudid)s">%(etudfoto)s</a> <a href="etud_photo_orig_page?etudid=%(etudid)s">%(etudfoto)s</a>
</td></tr></table> </td></tr></table>
<div class="fichesituation"> <div class="fichesituation">
<div class="fichetablesitu"> <div class="fichetablesitu">
<table> <table>
@ -424,25 +428,33 @@ def ficheEtud(context, etudid=None, REQUEST=None):
%(groupes_row)s %(groupes_row)s
<tr><td class="fichetitre2">%(ne)s le :</td><td id="student-birth">%(info_naissance)s</td></tr> <tr><td class="fichetitre2">%(ne)s le :</td><td id="student-birth">%(info_naissance)s</td></tr>
</table> </table>
<!-- Adresse --> <!-- Adresse -->
<div class="ficheadresse" id="fiche-adresse"> <div class="ficheadresse" id="ficheadresse">
<table><tr> <table><tr>
<td class="fichetitre2">Adresse :</td><td id="student-address"> %(domicile)s %(codepostaldomicile)s %(villedomicile)s %(paysdomicile)s <td class="fichetitre2">Adresse :</td><td id="student-adress> %(domicile)s %(codepostaldomicile)s %(villedomicile)s %(paysdomicile)s
%(modifadresse)s %(modifadresse)s
%(telephones)s %(telephones)s
</td></tr></table> </td></tr></table>
</div> </div>
</div> </div>
</div> </div>
%(inscriptions_mkup)s %(inscriptions_mkup)s
<div class="ficheadmission"> <div class="ficheadmission">
%(adm_data)s %(adm_data)s
%(fichiers_archive_htm)s %(fichiers_archive_htm)s
</div> </div>
%(debouche_html)s %(debouche_html)s
<div class="ficheannotations"> <div class="ficheannotations">
%(tit_anno)s %(tit_anno)s
<table id="etudannotations">%(liste_annotations)s</table> <table id="etudannotations">%(liste_annotations)s</table>
<form action="doAddAnnotation" method="GET" class="noprint"> <form action="doAddAnnotation" method="GET" class="noprint">
<input type="hidden" name="etudid" value="%(etudid)s"> <input type="hidden" name="etudid" value="%(etudid)s">
<b>Ajouter une annotation sur %(nomprenom)s: </b> <b>Ajouter une annotation sur %(nomprenom)s: </b>
@ -460,7 +472,9 @@ def ficheEtud(context, etudid=None, REQUEST=None):
</table> </table>
</form> </form>
</div> </div>
<div class="code_nip">code NIP: %(code_nip)s</div> <div class="code_nip">code NIP: %(code_nip)s</div>
</div> </div>
""" """
header = context.sco_header( header = context.sco_header(

View File

@ -361,7 +361,8 @@ def _check_duplicate_code(cnx, args, code_name, context, edit=True, REQUEST=None
parameters = {} parameters = {}
if context: if context:
err_page = context.confirmDialog( err_page = context.confirmDialog(
message="""<h3 class="title-error">Code étudiant (%s) dupliqué !</h3>""" % code_name, message="""<h3 class="title-error">Code étudiant (%s) dupliqué !</h3>"""
% code_name,
helpmsg="""Le %s %s est déjà utilisé: un seul étudiant peut avoir ce code. Vérifier votre valeur ou supprimer l'autre étudiant avec cette valeur.<p><ul><li>""" helpmsg="""Le %s %s est déjà utilisé: un seul étudiant peut avoir ce code. Vérifier votre valeur ou supprimer l'autre étudiant avec cette valeur.<p><ul><li>"""
% (code_name, args[code_name]) % (code_name, args[code_name])
+ "</li><li>".join(listh) + "</li><li>".join(listh)
@ -372,7 +373,10 @@ def _check_duplicate_code(cnx, args, code_name, context, edit=True, REQUEST=None
REQUEST=REQUEST, REQUEST=REQUEST,
) )
else: else:
err_page = """<h3 class="title-error">Code étudiant (%s) dupliqué !</h3>""" % code_name err_page = (
"""<h3 class="title-error">Code étudiant (%s) dupliqué !</h3>"""
% code_name
)
log("*** error: code %s duplique: %s" % (code_name, args[code_name])) log("*** error: code %s duplique: %s" % (code_name, args[code_name]))
raise ScoGenError(err_page) raise ScoGenError(err_page)