forked from ScoDoc/ScoDoc
Compare commits
1 Commits
Author | SHA1 | Date | |
---|---|---|---|
a9f186f4b2 |
@ -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)
|
||||||
)
|
)
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
# -*- mode: python -*-
|
# -*- mode: python -*-
|
||||||
# -*- coding: utf-8 -*-
|
# -*- coding: utf-8 -*-
|
||||||
|
|
||||||
SCOVERSION = "7.26m"
|
SCOVERSION = "7.25m"
|
||||||
|
|
||||||
SCONAME = "ScoDoc"
|
SCONAME = "ScoDoc"
|
||||||
|
|
||||||
|
@ -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
|
||||||
)
|
)
|
||||||
|
@ -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))
|
||||||
|
@ -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)",
|
||||||
},
|
},
|
||||||
),
|
),
|
||||||
(
|
(
|
||||||
|
@ -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)",
|
||||||
},
|
},
|
||||||
),
|
),
|
||||||
]
|
]
|
||||||
|
@ -171,8 +171,8 @@ 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>"""
|
||||||
)
|
)
|
||||||
return "\n".join(H) + context.sco_footer(REQUEST)
|
return "\n".join(H) + context.sco_footer(REQUEST)
|
||||||
|
@ -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>'
|
||||||
|
@ -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:
|
||||||
|
@ -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),
|
||||||
)
|
)
|
||||||
|
@ -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(" <em id=""%(description)s"">%(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>")
|
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>"""
|
||||||
|
@ -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">Né%(ne)s le :</td><td id="student-birth">%(info_naissance)s</td></tr>
|
<tr><td class="fichetitre2">Né%(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(
|
||||||
|
@ -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)
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user