Merge pull request 'Ajout d'id sur différentes pages pour avoir un meilleur repèrage grace au DOM' (#80) from aurelien.plancke/ScoDoc:master into master
Reviewed-on: https://scodoc.org/git/viennet/ScoDoc/pulls/80
This commit is contained in:
commit
a6e76c6898
@ -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">%s</li></ul>'
|
'<ul class="tf-msg"><li id="errorMessage" class="tf-msg">%s</li></ul>'
|
||||||
% '</li><li class="tf-msg">'.join(msg)
|
% '</li><li class="tf-msg">'.join(msg)
|
||||||
)
|
)
|
||||||
|
@ -376,7 +376,7 @@ class ZNotes(ObjectManager, PropertyManager, RoleManager, Item, Persistent, Impl
|
|||||||
|
|
||||||
if editable:
|
if editable:
|
||||||
H.append(
|
H.append(
|
||||||
"""<p><a class="stdlink" href="formation_create">Créer une formation</a></p>
|
"""<p><a class="stdlink" href="formation_create" id="create_formation_link">Créer une formation</a></p>
|
||||||
<p><a class="stdlink" href="formation_import_xml_form">Importer une formation (xml)</a></p>
|
<p><a class="stdlink" href="formation_import_xml_form">Importer une formation (xml)</a></p>
|
||||||
<p class="help">Une "formation" est un programme pédagogique structuré en UE, matières et modules. Chaque semestre se réfère à une formation. La modification d'une formation affecte tous les semestres qui s'y réfèrent.</p>
|
<p class="help">Une "formation" est un programme pédagogique structuré en UE, matières et modules. Chaque semestre se réfère à une formation. La modification d'une formation affecte tous les semestres qui s'y réfèrent.</p>
|
||||||
"""
|
"""
|
||||||
|
@ -898,7 +898,7 @@ subversion: %(svn_version)s
|
|||||||
# aucun departement defini: aide utilisateur
|
# aucun departement defini: aide utilisateur
|
||||||
H.append("<p>Aucun département à ajouter !</p>")
|
H.append("<p>Aucun département à ajouter !</p>")
|
||||||
else:
|
else:
|
||||||
H.append("""<form action="create_dept"><select name="DeptId"/>""")
|
H.append("""<form action="create_dept" id="CreateDpt"><select name="DeptId"/>""")
|
||||||
for deptId in addableDepts:
|
for deptId in addableDepts:
|
||||||
H.append("""<option value="%s">%s</option>""" % (deptId, deptId))
|
H.append("""<option value="%s">%s</option>""" % (deptId, deptId))
|
||||||
H.append(
|
H.append(
|
||||||
@ -915,7 +915,7 @@ subversion: %(svn_version)s
|
|||||||
(le site peut donc être recréé sans perte de données).
|
(le site peut donc être recréé sans perte de données).
|
||||||
</p>
|
</p>
|
||||||
<form action="delete_dept">
|
<form action="delete_dept">
|
||||||
<select name="DeptId">
|
<select name="DeptId" id= "DeleteDept">
|
||||||
"""
|
"""
|
||||||
)
|
)
|
||||||
for deptFolder in self._list_depts():
|
for deptFolder in self._list_depts():
|
||||||
|
@ -143,7 +143,7 @@ class ZScoUsers(
|
|||||||
|
|
||||||
if authuser.has_permission(ScoUsersAdmin, self):
|
if authuser.has_permission(ScoUsersAdmin, self):
|
||||||
H.append(
|
H.append(
|
||||||
'<p><a href="create_user_form" class="stdlink">Ajouter un utilisateur</a>'
|
'<p><a id="creer_Utilisateur" href="create_user_form" class="stdlink">Ajouter un utilisateur</a>'
|
||||||
)
|
)
|
||||||
H.append(
|
H.append(
|
||||||
' <a href="import_users_form" class="stdlink">Importer des utilisateurs</a></p>'
|
' <a href="import_users_form" class="stdlink">Importer des utilisateurs</a></p>'
|
||||||
|
@ -55,9 +55,9 @@ def sidebar_common(context, REQUEST=None):
|
|||||||
% params,
|
% params,
|
||||||
context.sidebar_dept(REQUEST),
|
context.sidebar_dept(REQUEST),
|
||||||
"""<h2 class="insidebar">Scolarité</h2>
|
"""<h2 class="insidebar">Scolarité</h2>
|
||||||
<a href="%(ScoURL)s" class="sidebar">Semestres</a> <br/>
|
<a id="SemestresLink" href="%(ScoURL)s" class="sidebar">Semestres</a> <br/>
|
||||||
<a href="%(NotesURL)s" class="sidebar">Programmes</a> <br/>
|
<a id="ProgrammesLink" href="%(NotesURL)s" class="sidebar">Programmes</a> <br/>
|
||||||
<a href="%(AbsencesURL)s" class="sidebar">Absences</a> <br/>
|
<a id="AbsnecesLink" href="%(AbsencesURL)s" class="sidebar">Absences</a> <br/>
|
||||||
"""
|
"""
|
||||||
% params,
|
% params,
|
||||||
]
|
]
|
||||||
@ -66,12 +66,12 @@ def sidebar_common(context, REQUEST=None):
|
|||||||
ScoUsersView, context
|
ScoUsersView, context
|
||||||
):
|
):
|
||||||
H.append(
|
H.append(
|
||||||
"""<a href="%(UsersURL)s" class="sidebar">Utilisateurs</a> <br/>""" % params
|
"""<a id="utilisateurs_Vue" href="%(UsersURL)s" class="sidebar">Utilisateurs</a> <br/>""" % params
|
||||||
)
|
)
|
||||||
|
|
||||||
if authuser.has_permission(ScoChangePreferences, context):
|
if authuser.has_permission(ScoChangePreferences, context):
|
||||||
H.append(
|
H.append(
|
||||||
"""<a href="%(ScoURL)s/edit_preferences" class="sidebar">Paramétrage</a> <br/>"""
|
"""<a id="preferences_Edit" href="%(ScoURL)s/edit_preferences" class="sidebar">Paramétrage</a> <br/>"""
|
||||||
% params
|
% params
|
||||||
)
|
)
|
||||||
|
|
||||||
@ -104,6 +104,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>
|
||||||
<b>Absences</b>"""
|
<b>Absences</b>"""
|
||||||
% params
|
% params
|
||||||
)
|
)
|
||||||
@ -123,21 +124,21 @@ def sidebar(context, REQUEST=None):
|
|||||||
if REQUEST.AUTHENTICATED_USER.has_permission(ScoAbsChange, context):
|
if REQUEST.AUTHENTICATED_USER.has_permission(ScoAbsChange, context):
|
||||||
H.append(
|
H.append(
|
||||||
"""
|
"""
|
||||||
<li> <a href="%(ScoURL)s/Absences/SignaleAbsenceEtud?etudid=%(etudid)s">Ajouter</a></li>
|
<li> <a id="ajout_Absence" href="%(ScoURL)s/Absences/SignaleAbsenceEtud?etudid=%(etudid)s">Ajouter</a></li>
|
||||||
<li> <a href="%(ScoURL)s/Absences/JustifAbsenceEtud?etudid=%(etudid)s">Justifier</a></li>
|
<li> <a id="justifier_Absence" href="%(ScoURL)s/Absences/JustifAbsenceEtud?etudid=%(etudid)s">Justifier</a></li>
|
||||||
<li> <a href="%(ScoURL)s/Absences/AnnuleAbsenceEtud?etudid=%(etudid)s">Supprimer</a></li>
|
<li> <a id="supprimer_Absence" href="%(ScoURL)s/Absences/AnnuleAbsenceEtud?etudid=%(etudid)s">Supprimer</a></li>
|
||||||
"""
|
"""
|
||||||
% params
|
% params
|
||||||
)
|
)
|
||||||
if context.get_preference("handle_billets_abs"):
|
if context.get_preference("handle_billets_abs"):
|
||||||
H.append(
|
H.append(
|
||||||
"""<li> <a href="%(ScoURL)s/Absences/listeBilletsEtud?etudid=%(etudid)s">Billets</a></li>"""
|
"""<li> <a id="afficher_Billets" href="%(ScoURL)s/Absences/listeBilletsEtud?etudid=%(etudid)s">Billets</a></li>"""
|
||||||
% params
|
% params
|
||||||
)
|
)
|
||||||
H.append(
|
H.append(
|
||||||
"""
|
"""
|
||||||
<li> <a href="%(ScoURL)s/Absences/CalAbs?etudid=%(etudid)s">Calendrier</a></li>
|
<li> <a id="afficher_Calendrier" href="%(ScoURL)s/Absences/CalAbs?etudid=%(etudid)s">Calendrier</a></li>
|
||||||
<li> <a href="%(ScoURL)s/Absences/ListeAbsEtud?etudid=%(etudid)s">Liste</a></li>
|
<li> <a id="afficher_Liste_Absence" href="%(ScoURL)s/Absences/ListeAbsEtud?etudid=%(etudid)s">Liste</a></li>
|
||||||
</ul>
|
</ul>
|
||||||
"""
|
"""
|
||||||
% params
|
% params
|
||||||
|
@ -143,7 +143,7 @@ Chercher étape courante: <input name="etape_apo" type="text" size="8" spellchec
|
|||||||
"""<hr>
|
"""<hr>
|
||||||
<h3>Gestion des étudiants</h3>
|
<h3>Gestion des étudiants</h3>
|
||||||
<ul>
|
<ul>
|
||||||
<li><a class="stdlink" href="etudident_create_form">créer <em>un</em> nouvel étudiant</a></li>
|
<li><a class="stdlink" id="link_create_etudident" href="etudident_create_form">créer <em>un</em> nouvel étudiant</a></li>
|
||||||
<li><a class="stdlink" href="form_students_import_excel">importer de nouveaux étudiants</a> (ne pas utiliser sauf cas particulier, utilisez plutôt le lien dans
|
<li><a class="stdlink" href="form_students_import_excel">importer de nouveaux étudiants</a> (ne pas utiliser sauf cas particulier, utilisez plutôt le lien dans
|
||||||
le tableau de bord semestre si vous souhaitez inscrire les
|
le tableau de bord semestre si vous souhaitez inscrire les
|
||||||
étudiants importés à un semestre)</li>
|
étudiants importés à un semestre)</li>
|
||||||
|
@ -58,7 +58,7 @@ def form_search_etud(
|
|||||||
H.append(
|
H.append(
|
||||||
"""<form action="search_etud_in_dept" method="POST">
|
"""<form action="search_etud_in_dept" method="POST">
|
||||||
<b>%s</b>
|
<b>%s</b>
|
||||||
<input type="text" name="expnom" width="12" spellcheck="false" value="">
|
<input type="text" name="expnom" id="searchEtud" width="12" spellcheck="false" value="">
|
||||||
<input type="submit" value="Chercher">
|
<input type="submit" value="Chercher">
|
||||||
<br/>(entrer une partie du nom)
|
<br/>(entrer une partie du nom)
|
||||||
"""
|
"""
|
||||||
|
@ -229,6 +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"]
|
||||||
# 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"]}
|
||||||
@ -241,8 +242,8 @@ def formation_list_table(context, formation_id=None, args={}, REQUEST=None):
|
|||||||
for s in f["sems"]
|
for s in f["sems"]
|
||||||
]
|
]
|
||||||
+ [
|
+ [
|
||||||
'<a class="stdlink" href="formsemestre_createwithmodules?formation_id=%(formation_id)s&semestre_id=1">ajouter</a>'
|
'<a class="stdlink" id="addSemestre_%s" href="formsemestre_createwithmodules?formation_id=%s&semestre_id=1">ajouter</a>'
|
||||||
% f
|
% (f["acronyme"],f["formation_id"])
|
||||||
]
|
]
|
||||||
)
|
)
|
||||||
if f["sems"]:
|
if f["sems"]:
|
||||||
@ -259,15 +260,15 @@ def formation_list_table(context, formation_id=None, args={}, REQUEST=None):
|
|||||||
but_locked = '<span class="but_placeholder"></span>'
|
but_locked = '<span class="but_placeholder"></span>'
|
||||||
if editable and not locked:
|
if editable and not locked:
|
||||||
but_suppr = (
|
but_suppr = (
|
||||||
'<a class="stdlink" href="formation_delete?formation_id=%s">%s</a>'
|
'<a class="stdlink" id="delete_Formation_%s" href="formation_delete?formation_id=%s">%s</a>'
|
||||||
% (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" href="formation_edit?formation_id=%s">%s</a>'
|
'<a class="stdlink" id="edit_Formation_%s" href="formation_edit?formation_id=%s">%s</a>'
|
||||||
% (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>'
|
||||||
|
@ -147,9 +147,9 @@ def formsemestre_inscription_with_modules_form(
|
|||||||
if (not only_ext) or (sem["modalite"] == "EXT"):
|
if (not only_ext) or (sem["modalite"] == "EXT"):
|
||||||
H.append(
|
H.append(
|
||||||
"""
|
"""
|
||||||
<li><a class="stdlink" 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>
|
||||||
"""
|
"""
|
||||||
% (etudid, sem["formsemestre_id"], sem["titremois"])
|
% (sem["formsemestre_id"],etudid, sem["formsemestre_id"], sem["titremois"])
|
||||||
)
|
)
|
||||||
H.append("</ul>")
|
H.append("</ul>")
|
||||||
else:
|
else:
|
||||||
|
@ -454,8 +454,8 @@ def decisions_possible_rows(Se, assiduite, subtitle="", trclass=""):
|
|||||||
H.append("<th>Code %s</th><th>Devenir</th></tr>" % TitleCur)
|
H.append("<th>Code %s</th><th>Devenir</th></tr>" % TitleCur)
|
||||||
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" onClick="document.getElementById('subut').disabled=false;">"""
|
"""<tr class="%s"><td title="règle %s"><input type="radio" name="codechoice" value="%s" id="choice_input_%s" onClick="document.getElementById('subut').disabled=false;">"""
|
||||||
% (trclass, ch.rule_id, ch.codechoice)
|
% (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:
|
||||||
@ -640,8 +640,8 @@ def formsemestre_recap_parcours_table(
|
|||||||
# log('')
|
# log('')
|
||||||
|
|
||||||
H.append(
|
H.append(
|
||||||
'<td class="%s" title="%s">%s</td>'
|
'<td class="%s" id="ue_%s" title="%s">%s</td>'
|
||||||
% (class_ue, " ".join(explanation_ue), scu.fmt_note(moy_ue))
|
% (class_ue,ue["acronyme"], " ".join(explanation_ue), scu.fmt_note(moy_ue))
|
||||||
)
|
)
|
||||||
if len(ues) < Se.nb_max_ue:
|
if len(ues) < Se.nb_max_ue:
|
||||||
H.append('<td colspan="%d"></td>' % (Se.nb_max_ue - len(ues)))
|
H.append('<td colspan="%d"></td>' % (Se.nb_max_ue - len(ues)))
|
||||||
|
@ -321,7 +321,7 @@ def moduleimpl_status(context, moduleimpl_id=None, partition_id=None, REQUEST=No
|
|||||||
top_table_links = ""
|
top_table_links = ""
|
||||||
if sem["etat"] == "1": # non verrouillé
|
if sem["etat"] == "1": # non verrouillé
|
||||||
top_table_links = (
|
top_table_links = (
|
||||||
"""<a class="stdlink" href="evaluation_create?moduleimpl_id=%(moduleimpl_id)s">Créer nouvelle évaluation</a>
|
"""<a class="stdlink" id="add_Evaluation_Link" href="evaluation_create?moduleimpl_id=%(moduleimpl_id)s">Créer nouvelle évaluation</a>
|
||||||
<a class="stdlink" style="margin-left:2em;" href="module_evaluation_renumber?moduleimpl_id=%(moduleimpl_id)s&redirect=1">Trier par date</a>
|
<a class="stdlink" style="margin-left:2em;" href="module_evaluation_renumber?moduleimpl_id=%(moduleimpl_id)s&redirect=1">Trier par date</a>
|
||||||
"""
|
"""
|
||||||
% M
|
% M
|
||||||
@ -360,11 +360,12 @@ 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(" <em>%(description)s</em>" % eval)
|
H.append(" <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>")
|
||||||
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>"""
|
||||||
@ -453,7 +454,7 @@ def moduleimpl_status(context, moduleimpl_id=None, partition_id=None, REQUEST=No
|
|||||||
"""<a class="smallbutton" href="evaluation_delete?evaluation_id=%(evaluation_id)s">"""
|
"""<a class="smallbutton" href="evaluation_delete?evaluation_id=%(evaluation_id)s">"""
|
||||||
% eval
|
% eval
|
||||||
)
|
)
|
||||||
H.append(scu.icontag("delete_img", alt="supprimer", title="Supprimer"))
|
H.append(scu.icontag("delete_img", alt="supprimer", title="Supprimer", id="delete_buttion_%s" %eval["evaluation_id"]))
|
||||||
if caneditevals:
|
if caneditevals:
|
||||||
H.append("""</a>""")
|
H.append("""</a>""")
|
||||||
elif etat["evalcomplete"]:
|
elif etat["evalcomplete"]:
|
||||||
|
@ -430,16 +430,16 @@ def ficheEtud(context, etudid=None, REQUEST=None):
|
|||||||
<div class="fichesituation">
|
<div class="fichesituation">
|
||||||
<div class="fichetablesitu">
|
<div class="fichetablesitu">
|
||||||
<table>
|
<table>
|
||||||
<tr><td class="fichetitre2">Situation :</td><td>%(situation)s</td></tr>
|
<tr><td class="fichetitre2">Situation :</td><td id="situation_etudiant">%(situation)s</td></tr>
|
||||||
%(groupes_row)s
|
%(groupes_row)s
|
||||||
<tr><td class="fichetitre2">Né%(ne)s le :</td><td>%(info_naissance)s</td></tr>
|
<tr><td class="fichetitre2">Né%(ne)s le :</td><td id="naissance_etudiant">%(info_naissance)s</td></tr>
|
||||||
</table>
|
</table>
|
||||||
|
|
||||||
|
|
||||||
<!-- Adresse -->
|
<!-- Adresse -->
|
||||||
<div class="ficheadresse" id="ficheadresse">
|
<div class="ficheadresse" id="ficheadresse">
|
||||||
<table><tr>
|
<table><tr>
|
||||||
<td class="fichetitre2">Adresse :</td><td> %(domicile)s %(codepostaldomicile)s %(villedomicile)s %(paysdomicile)s
|
<td class="fichetitre2">Adresse :</td><td id="adresse_etudiant> %(domicile)s %(codepostaldomicile)s %(villedomicile)s %(paysdomicile)s
|
||||||
%(modifadresse)s
|
%(modifadresse)s
|
||||||
%(telephones)s
|
%(telephones)s
|
||||||
</td></tr></table>
|
</td></tr></table>
|
||||||
|
@ -361,7 +361,7 @@ 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>Code étudiant (%s) dupliqué !</h3>""" % code_name,
|
message="""<h3 id= "titleError">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 +372,7 @@ def _check_duplicate_code(cnx, args, code_name, context, edit=True, REQUEST=None
|
|||||||
REQUEST=REQUEST,
|
REQUEST=REQUEST,
|
||||||
)
|
)
|
||||||
else:
|
else:
|
||||||
err_page = """<h3>Code étudiant (%s) dupliqué !</h3>""" % code_name
|
err_page = """<h3 id="titleError">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)
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user