Compare commits
3 Commits
de42981231
...
0571e8d8e2
Author | SHA1 | Date | |
---|---|---|---|
0571e8d8e2 | |||
8ea64acf07 | |||
7622cd1a7e |
@ -88,7 +88,7 @@ def sidebar(context, REQUEST=None):
|
||||
|
||||
H.append(
|
||||
"""<div class="box-chercheetud">Chercher étudiant:<br/>
|
||||
<form id="form-chercheetud" action="%(ScoURL)s/search_etud_in_dept">
|
||||
<form method="get" id="form-chercheetud" action="%(ScoURL)s/search_etud_in_dept">
|
||||
<div><input type="text" size="12" id="in-expnom" name="expnom" spellcheck="false"></input></div>
|
||||
</form></div>
|
||||
<div class="etud-insidebar">
|
||||
|
115
sco_find_etud.py
115
sco_find_etud.py
@ -96,73 +96,52 @@ def form_search_etud(
|
||||
return "\n".join(H)
|
||||
|
||||
|
||||
# was chercheEtud()
|
||||
def search_etud_in_dept(
|
||||
context,
|
||||
expnom=None,
|
||||
dest_url="ficheEtud",
|
||||
parameters={},
|
||||
parameters_keys="",
|
||||
add_headers=True, # complete page
|
||||
title=None,
|
||||
REQUEST=None,
|
||||
):
|
||||
"""Page recherche d'un etudiant
|
||||
expnom est un regexp sur le nom ou un code_nip ou un etudid
|
||||
dest_url est la page sur laquelle on sera redirigé après choix
|
||||
parameters spécifie des arguments additionnels à passer à l'URL (en plus de etudid)
|
||||
def search_etud_in_dept(context, expnom="", REQUEST=None):
|
||||
"""Page recherche d'un etudiant.
|
||||
|
||||
Affiche la fiche de l'étudiant, ou, si la recherche donne plusieurs résultats, la liste des étudianst
|
||||
correspondants.
|
||||
Appelée par boite de recherche barre latérale gauche.
|
||||
|
||||
Args:
|
||||
expnom: string, regexp sur le nom ou un code_nip ou un etudid
|
||||
"""
|
||||
if type(expnom) == ListType:
|
||||
expnom = expnom[0]
|
||||
q = []
|
||||
if parameters:
|
||||
for param in parameters.keys():
|
||||
q.append("%s=%s" % (param, parameters[param]))
|
||||
elif parameters_keys:
|
||||
for key in parameters_keys.split(","):
|
||||
v = REQUEST.form.get(key, False)
|
||||
if v:
|
||||
q.append("%s=%s" % (key, v))
|
||||
query_string = "&".join(q)
|
||||
|
||||
no_side_bar = True
|
||||
H = []
|
||||
if title:
|
||||
H.append("<h2>%s</h2>" % title)
|
||||
|
||||
if scu.is_valid_code_nip(expnom):
|
||||
etuds = search_etuds_infos(context, code_nip=expnom, REQUEST=REQUEST)
|
||||
elif expnom:
|
||||
etuds = search_etuds_infos(context, expnom=expnom, REQUEST=REQUEST)
|
||||
if expnom and not etuds:
|
||||
dest_url = "ficheEtud"
|
||||
if len(expnom) > 1:
|
||||
etuds = context.getEtudInfo(filled=1, etudid=expnom, REQUEST=REQUEST)
|
||||
if len(etuds) != 1:
|
||||
etuds = []
|
||||
if scu.is_valid_code_nip(expnom):
|
||||
etuds = search_etuds_infos(context, code_nip=expnom, REQUEST=REQUEST)
|
||||
else:
|
||||
etuds = search_etuds_infos(context, expnom=expnom, REQUEST=REQUEST)
|
||||
else:
|
||||
etuds = [] # si expnom est trop court, n'affiche rien
|
||||
|
||||
if len(etuds) == 1:
|
||||
# va directement a la destination
|
||||
return REQUEST.RESPONSE.redirect(
|
||||
dest_url + "?etudid=%s&" % etuds[0]["etudid"] + query_string
|
||||
)
|
||||
return context.ficheEtud(etudid=etuds[0]["etudid"], REQUEST=REQUEST)
|
||||
|
||||
H = [
|
||||
context.sco_header(
|
||||
page_title="Recherche d'un étudiant",
|
||||
no_side_bar=True,
|
||||
init_qtip=True,
|
||||
javascripts=["js/etud_info.js"],
|
||||
REQUEST=REQUEST,
|
||||
),
|
||||
"""<h2>%d résultats pour "%s": choisissez un étudiant:</h2>"""
|
||||
% (len(etuds), expnom),
|
||||
form_search_etud(
|
||||
context,
|
||||
dest_url=dest_url,
|
||||
REQUEST=REQUEST,
|
||||
title="Autre recherche",
|
||||
),
|
||||
]
|
||||
if len(etuds) > 0:
|
||||
# Choix dans la liste des résultats:
|
||||
H.append(
|
||||
"""<h2>%d résultats pour "%s": choisissez un étudiant:</h2>"""
|
||||
% (len(etuds), expnom)
|
||||
)
|
||||
H.append(
|
||||
form_search_etud(
|
||||
context,
|
||||
dest_url=dest_url,
|
||||
parameters=parameters,
|
||||
parameters_keys=parameters_keys,
|
||||
REQUEST=REQUEST,
|
||||
title="Autre recherche",
|
||||
)
|
||||
)
|
||||
|
||||
for e in etuds:
|
||||
target = dest_url + "?etudid=%s&" % e["etudid"] + query_string
|
||||
target = dest_url + "?etudid=%s&" % e["etudid"]
|
||||
e["_nomprenom_target"] = target
|
||||
e["inscription_target"] = target
|
||||
e["_nomprenom_td_attrs"] = 'id="%s" class="etudinfo"' % (e["etudid"])
|
||||
@ -187,34 +166,16 @@ def search_etud_in_dept(
|
||||
form_search_etud(
|
||||
context,
|
||||
dest_url=dest_url,
|
||||
parameters=parameters,
|
||||
parameters_keys=parameters_keys,
|
||||
REQUEST=REQUEST,
|
||||
title="Autre recherche",
|
||||
)
|
||||
)
|
||||
|
||||
else:
|
||||
H.append('<h2 style="color: red;">Aucun résultat pour "%s".</h2>' % expnom)
|
||||
add_headers = True
|
||||
no_side_bar = False
|
||||
H.append(
|
||||
"""<p class="help">La recherche porte sur tout ou partie du NOM ou du NIP de l'étudiant</p>"""
|
||||
)
|
||||
if add_headers:
|
||||
return (
|
||||
context.sco_header(
|
||||
REQUEST,
|
||||
page_title="Choix d'un étudiant",
|
||||
init_qtip=True,
|
||||
javascripts=["js/etud_info.js"],
|
||||
no_side_bar=no_side_bar,
|
||||
)
|
||||
+ "\n".join(H)
|
||||
+ context.sco_footer(REQUEST)
|
||||
)
|
||||
else:
|
||||
return "\n".join(H)
|
||||
return "\n".join(H) + context.sco_footer(REQUEST)
|
||||
|
||||
|
||||
# Was chercheEtudsInfo()
|
||||
|
@ -312,8 +312,11 @@ def _write_formsemestre_aux(context, sem, fieldname, valuename):
|
||||
"""fieldname: 'etapes' ou 'responsables'
|
||||
valuename: 'etape_apo' ou 'responsable_id'
|
||||
"""
|
||||
if not "etapes" in sem:
|
||||
if not fieldname in sem:
|
||||
return
|
||||
# uniquify
|
||||
values = set([str(x) for x in sem[fieldname]])
|
||||
|
||||
cnx = context.GetDBConnexion(autocommit=False)
|
||||
cursor = cnx.cursor(cursor_factory=ndb.ScoDocCursor)
|
||||
tablename = "notes_formsemestre_" + fieldname
|
||||
@ -322,7 +325,7 @@ def _write_formsemestre_aux(context, sem, fieldname, valuename):
|
||||
"DELETE from " + tablename + " where formsemestre_id = %(formsemestre_id)s",
|
||||
{"formsemestre_id": sem["formsemestre_id"]},
|
||||
)
|
||||
for item in sem[fieldname]:
|
||||
for item in values:
|
||||
if item:
|
||||
cursor.execute(
|
||||
"INSERT INTO "
|
||||
@ -332,7 +335,7 @@ def _write_formsemestre_aux(context, sem, fieldname, valuename):
|
||||
+ ") VALUES (%(formsemestre_id)s, %("
|
||||
+ valuename
|
||||
+ ")s)",
|
||||
{"formsemestre_id": sem["formsemestre_id"], valuename: str(item)},
|
||||
{"formsemestre_id": sem["formsemestre_id"], valuename: item},
|
||||
)
|
||||
except:
|
||||
log("Warning: exception in write_formsemestre_aux !")
|
||||
|
@ -784,9 +784,7 @@ def groups_table(
|
||||
context.Notes, etud, groups_infos.formsemestre_id
|
||||
)
|
||||
m["parcours"] = Se.get_parcours_descr()
|
||||
m["codeparcours"], decisions_jury = sco_report.get_codeparcoursetud(
|
||||
context.Notes, etud
|
||||
)
|
||||
m["codeparcours"], _ = sco_report.get_codeparcoursetud(context.Notes, etud)
|
||||
|
||||
def dicttakestr(d, keys):
|
||||
r = []
|
||||
@ -933,7 +931,7 @@ def form_choix_saisie_semaine(context, groups_infos, REQUEST=None):
|
||||
|
||||
DateJour = time.strftime("%d/%m/%Y")
|
||||
datelundi = sco_abs.ddmmyyyy(DateJour).prev_monday()
|
||||
FA = [] # formulaire avec menu saisi hebdo des absences
|
||||
FA = [] # formulaire avec menu saisie hebdo des absences
|
||||
FA.append('<form action="Absences/SignaleAbsenceGrHebdo" method="get">')
|
||||
FA.append('<input type="hidden" name="datelundi" value="%s"/>' % datelundi)
|
||||
FA.append('<input type="hidden" name="moduleimpl_id" value="%s"/>' % moduleimpl_id)
|
||||
@ -955,7 +953,7 @@ def export_groups_as_moodle_csv(context, formsemestre_id=None, REQUEST=None):
|
||||
"""
|
||||
if not formsemestre_id:
|
||||
raise ScoValueError("missing parameter: formsemestre_id")
|
||||
partitions, partitions_etud_groups = sco_groups.get_formsemestre_groups(
|
||||
_, partitions_etud_groups = sco_groups.get_formsemestre_groups(
|
||||
context, formsemestre_id, with_default=True
|
||||
)
|
||||
sem = sco_formsemestre.get_formsemestre(context, formsemestre_id)
|
||||
|
@ -259,9 +259,10 @@ def moduleimpl_status(context, moduleimpl_id=None, partition_id=None, REQUEST=No
|
||||
ScoAbsChange, context
|
||||
) and sco_formsemestre.sem_est_courant(context, sem):
|
||||
datelundi = sco_abs.ddmmyyyy(time.strftime("%d/%m/%Y")).prev_monday()
|
||||
group_id = sco_groups.get_default_group(context, formsemestre_id)
|
||||
H.append(
|
||||
'<span class="moduleimpl_abs_link"><a class="stdlink" href="Absences/SignaleAbsenceGrHebdo?formsemestre_id=%s&moduleimpl_id=%s&datelundi=%s">Saisie Absences hebdo.</a></span>'
|
||||
% (formsemestre_id, moduleimpl_id, datelundi)
|
||||
'<span class="moduleimpl_abs_link"><a class="stdlink" href="Absences/SignaleAbsenceGrHebdo?formsemestre_id=%s&moduleimpl_id=%s&datelundi=%s&group_ids=%s">Saisie Absences hebdo.</a></span>'
|
||||
% (formsemestre_id, moduleimpl_id, datelundi, group_id)
|
||||
)
|
||||
|
||||
H.append("</td></tr></table>")
|
||||
|
Loading…
Reference in New Issue
Block a user