forked from ScoDoc/DocScoDoc
WIP refactoring
This commit is contained in:
parent
23477faa3b
commit
8cf1cc7c34
@ -198,7 +198,7 @@ def sco_import_generate_excel_sample(
|
|||||||
# rempli table avec données actuelles
|
# rempli table avec données actuelles
|
||||||
lines = []
|
lines = []
|
||||||
for i in members:
|
for i in members:
|
||||||
etud = context.getEtudInfo(etudid=i["etudid"], filled=True)[0]
|
etud = scolars.get_etud_info(etudid=i["etudid"], filled=True)[0]
|
||||||
l = []
|
l = []
|
||||||
for field in titles:
|
for field in titles:
|
||||||
if field == "groupes":
|
if field == "groupes":
|
||||||
|
@ -97,7 +97,7 @@ def sidebar(context, REQUEST=None):
|
|||||||
# ---- s'il y a un etudiant selectionné:
|
# ---- s'il y a un etudiant selectionné:
|
||||||
if REQUEST.form.has_key("etudid"):
|
if REQUEST.form.has_key("etudid"):
|
||||||
etudid = REQUEST.form["etudid"]
|
etudid = REQUEST.form["etudid"]
|
||||||
etud = context.getEtudInfo(filled=1, etudid=etudid)[0]
|
etud = scolars.get_etud_info(filled=1, etudid=etudid)[0]
|
||||||
params.update(etud)
|
params.update(etud)
|
||||||
# compte les absences du semestre en cours
|
# compte les absences du semestre en cours
|
||||||
H.append(
|
H.append(
|
||||||
@ -166,7 +166,9 @@ def sidebar_dept(context, REQUEST=None):
|
|||||||
"""Partie supérieure de la marge de gauche"""
|
"""Partie supérieure de la marge de gauche"""
|
||||||
infos = {
|
infos = {
|
||||||
"BASE0": REQUEST.BASE0,
|
"BASE0": REQUEST.BASE0,
|
||||||
"DeptIntranetTitle": sco_preferences.get_preference(context, "DeptIntranetTitle"),
|
"DeptIntranetTitle": sco_preferences.get_preference(
|
||||||
|
context, "DeptIntranetTitle"
|
||||||
|
),
|
||||||
"DeptIntranetURL": sco_preferences.get_preference(context, "DeptIntranetURL"),
|
"DeptIntranetURL": sco_preferences.get_preference(context, "DeptIntranetURL"),
|
||||||
"DeptName": sco_preferences.get_preference(context, "DeptName"),
|
"DeptName": sco_preferences.get_preference(context, "DeptName"),
|
||||||
"ScoURL": context.ScoURL(),
|
"ScoURL": context.ScoURL(),
|
||||||
|
@ -1117,7 +1117,7 @@ class JuryPE:
|
|||||||
ETUDINFO_DICT si mémorisée soit en les chargeant et en les mémorisant
|
ETUDINFO_DICT si mémorisée soit en les chargeant et en les mémorisant
|
||||||
"""
|
"""
|
||||||
if etudid not in self.ETUDINFO_DICT:
|
if etudid not in self.ETUDINFO_DICT:
|
||||||
self.ETUDINFO_DICT[etudid] = context.getEtudInfo(
|
self.ETUDINFO_DICT[etudid] = scolars.get_etud_info(
|
||||||
etudid=etudid, filled=True
|
etudid=etudid, filled=True
|
||||||
)[0]
|
)[0]
|
||||||
return self.ETUDINFO_DICT[etudid]
|
return self.ETUDINFO_DICT[etudid]
|
||||||
@ -1139,7 +1139,7 @@ class JuryPE:
|
|||||||
def get_semestresDUT_d_un_etudiant(self, etudid, semestre_id=None):
|
def get_semestresDUT_d_un_etudiant(self, etudid, semestre_id=None):
|
||||||
"""Renvoie la liste des semestres DUT d'un étudiant
|
"""Renvoie la liste des semestres DUT d'un étudiant
|
||||||
pour un semestre_id (parmi 1,2,3,4) donné
|
pour un semestre_id (parmi 1,2,3,4) donné
|
||||||
en fonction de ses infos d'etud (cf. context.getEtudInfo(etudid=etudid, filled=True)[0]),
|
en fonction de ses infos d'etud (cf. scolars.get_etud_info( etudid=etudid, filled=True)[0]),
|
||||||
les semestres étant triés par ordre décroissant.
|
les semestres étant triés par ordre décroissant.
|
||||||
Si semestre_id == None renvoie tous les semestres"""
|
Si semestre_id == None renvoie tous les semestres"""
|
||||||
etud = self.get_cache_etudInfo_d_un_etudiant(self.context, etudid)
|
etud = self.get_cache_etudInfo_d_un_etudiant(self.context, etudid)
|
||||||
|
@ -604,7 +604,7 @@ def invalidateAbsEtudDate(context, etudid, date):
|
|||||||
date: date au format ISO
|
date: date au format ISO
|
||||||
"""
|
"""
|
||||||
# Semestres a cette date:
|
# Semestres a cette date:
|
||||||
etud = context.getEtudInfo(etudid=etudid, filled=True)[0]
|
etud = scolars.get_etud_info(etudid=etudid, filled=True)[0]
|
||||||
sems = [
|
sems = [
|
||||||
sem
|
sem
|
||||||
for sem in etud["sems"]
|
for sem in etud["sems"]
|
||||||
|
@ -152,7 +152,7 @@ def abs_notify_get_destinations(context, sem, prefs, etudid, date, nbabs, nbabsj
|
|||||||
if prefs["abs_notify_email"]:
|
if prefs["abs_notify_email"]:
|
||||||
destinations.append(prefs["abs_notify_email"])
|
destinations.append(prefs["abs_notify_email"])
|
||||||
if prefs["abs_notify_etud"]:
|
if prefs["abs_notify_etud"]:
|
||||||
etud = context.getEtudInfo(etudid=etudid, filled=1)[0]
|
etud = scolars.get_etud_info(etudid=etudid, filled=1)[0]
|
||||||
if etud["email_default"]:
|
if etud["email_default"]:
|
||||||
destinations.append(etud["email_default"])
|
destinations.append(etud["email_default"])
|
||||||
|
|
||||||
@ -181,11 +181,11 @@ def abs_notify_is_above_threshold(context, etudid, nbabs, nbabsjust, formsemestr
|
|||||||
(nbabs > abs_notify_abs_threshold)
|
(nbabs > abs_notify_abs_threshold)
|
||||||
(nbabs - nbabs_last_notified) > abs_notify_abs_increment
|
(nbabs - nbabs_last_notified) > abs_notify_abs_increment
|
||||||
"""
|
"""
|
||||||
abs_notify_abs_threshold = sco_preferences.get_preference(context,
|
abs_notify_abs_threshold = sco_preferences.get_preference(
|
||||||
"abs_notify_abs_threshold", formsemestre_id
|
context, "abs_notify_abs_threshold", formsemestre_id
|
||||||
)
|
)
|
||||||
abs_notify_abs_increment = sco_preferences.get_preference(context,
|
abs_notify_abs_increment = sco_preferences.get_preference(
|
||||||
"abs_notify_abs_increment", formsemestre_id
|
context, "abs_notify_abs_increment", formsemestre_id
|
||||||
)
|
)
|
||||||
nbabs_last_notified = etud_nbabs_last_notified(context, etudid, formsemestre_id)
|
nbabs_last_notified = etud_nbabs_last_notified(context, etudid, formsemestre_id)
|
||||||
|
|
||||||
@ -236,7 +236,7 @@ def abs_notification_message(context, sem, prefs, etudid, nbabs, nbabsjust):
|
|||||||
"""Mime notification message based on template.
|
"""Mime notification message based on template.
|
||||||
returns None if sending should be canceled (emplty template).
|
returns None if sending should be canceled (emplty template).
|
||||||
"""
|
"""
|
||||||
etud = context.getEtudInfo(etudid=etudid, filled=True)[0]
|
etud = scolars.get_etud_info(etudid=etudid, filled=True)[0]
|
||||||
|
|
||||||
# Variables accessibles dans les balises du template: %(nom_variable)s :
|
# Variables accessibles dans les balises du template: %(nom_variable)s :
|
||||||
values = sco_bulletins.make_context_dict(context, sem, etud)
|
values = sco_bulletins.make_context_dict(context, sem, etud)
|
||||||
|
@ -70,7 +70,7 @@ def doSignaleAbsence(
|
|||||||
description: str
|
description: str
|
||||||
etudid: etudiant concerné. Si non spécifié, cherche dans REQUEST.form
|
etudid: etudiant concerné. Si non spécifié, cherche dans REQUEST.form
|
||||||
"""
|
"""
|
||||||
etud = context.getEtudInfo(filled=1, etudid=etudid, REQUEST=REQUEST)[0]
|
etud = scolars.get_etud_info(filled=1, etudid=etudid, REQUEST=REQUEST)[0]
|
||||||
etudid = etud["etudid"]
|
etudid = etud["etudid"]
|
||||||
|
|
||||||
description_abs = description
|
description_abs = description
|
||||||
@ -149,12 +149,12 @@ def doSignaleAbsence(
|
|||||||
def SignaleAbsenceEtud(context, REQUEST=None): # etudid implied
|
def SignaleAbsenceEtud(context, REQUEST=None): # etudid implied
|
||||||
"""Formulaire individuel simple de signalement d'une absence"""
|
"""Formulaire individuel simple de signalement d'une absence"""
|
||||||
# brute-force portage from very old dtml code ...
|
# brute-force portage from very old dtml code ...
|
||||||
etud = context.getEtudInfo(filled=1, REQUEST=REQUEST)[0]
|
etud = scolars.get_etud_info(filled=1, REQUEST=REQUEST)[0]
|
||||||
etudid = etud["etudid"]
|
etudid = etud["etudid"]
|
||||||
disabled = False
|
disabled = False
|
||||||
if not etud["cursem"]:
|
if not etud["cursem"]:
|
||||||
require_module = sco_preferences.get_preference(context,
|
require_module = sco_preferences.get_preference(
|
||||||
"abs_require_module"
|
context, "abs_require_module"
|
||||||
) # on utilise la pref globale car pas de sem courant
|
) # on utilise la pref globale car pas de sem courant
|
||||||
if require_module:
|
if require_module:
|
||||||
menu_module = """<div class="ue_warning">Pas inscrit dans un semestre courant,
|
menu_module = """<div class="ue_warning">Pas inscrit dans un semestre courant,
|
||||||
@ -164,7 +164,9 @@ def SignaleAbsenceEtud(context, REQUEST=None): # etudid implied
|
|||||||
menu_module = ""
|
menu_module = ""
|
||||||
else:
|
else:
|
||||||
formsemestre_id = etud["cursem"]["formsemestre_id"]
|
formsemestre_id = etud["cursem"]["formsemestre_id"]
|
||||||
require_module = sco_preferences.get_preference(context, "abs_require_module", formsemestre_id)
|
require_module = sco_preferences.get_preference(
|
||||||
|
context, "abs_require_module", formsemestre_id
|
||||||
|
)
|
||||||
nt = context.Notes._getNotesCache().get_NotesTable(
|
nt = context.Notes._getNotesCache().get_NotesTable(
|
||||||
context.Notes, formsemestre_id
|
context.Notes, formsemestre_id
|
||||||
)
|
)
|
||||||
@ -286,7 +288,7 @@ def doJustifAbsence(
|
|||||||
description: str
|
description: str
|
||||||
etudid: etudiant concerné. Si non spécifié, cherche dans REQUEST.form
|
etudid: etudiant concerné. Si non spécifié, cherche dans REQUEST.form
|
||||||
"""
|
"""
|
||||||
etud = context.getEtudInfo(filled=1, etudid=etudid, REQUEST=REQUEST)[0]
|
etud = scolars.get_etud_info(filled=1, etudid=etudid, REQUEST=REQUEST)[0]
|
||||||
etudid = etud["etudid"]
|
etudid = etud["etudid"]
|
||||||
description_abs = description
|
description_abs = description
|
||||||
dates = sco_abs.DateRangeISO(context, datedebut, datefin)
|
dates = sco_abs.DateRangeISO(context, datedebut, datefin)
|
||||||
@ -355,7 +357,7 @@ def doJustifAbsence(
|
|||||||
def JustifAbsenceEtud(context, REQUEST=None): # etudid implied
|
def JustifAbsenceEtud(context, REQUEST=None): # etudid implied
|
||||||
"""Formulaire individuel simple de justification d'une absence"""
|
"""Formulaire individuel simple de justification d'une absence"""
|
||||||
# brute-force portage from very old dtml code ...
|
# brute-force portage from very old dtml code ...
|
||||||
etud = context.getEtudInfo(filled=1, REQUEST=REQUEST)[0]
|
etud = scolars.get_etud_info(filled=1, REQUEST=REQUEST)[0]
|
||||||
etudid = etud["etudid"]
|
etudid = etud["etudid"]
|
||||||
H = [
|
H = [
|
||||||
html_sco_header.sco_header(
|
html_sco_header.sco_header(
|
||||||
@ -413,7 +415,7 @@ def doAnnuleAbsence(
|
|||||||
context, datedebut, datefin, demijournee, etudid=False, REQUEST=None
|
context, datedebut, datefin, demijournee, etudid=False, REQUEST=None
|
||||||
): # etudid implied
|
): # etudid implied
|
||||||
"""Annulation des absences pour une demi journée"""
|
"""Annulation des absences pour une demi journée"""
|
||||||
etud = context.getEtudInfo(filled=1, etudid=etudid, REQUEST=REQUEST)[0]
|
etud = scolars.get_etud_info(filled=1, etudid=etudid, REQUEST=REQUEST)[0]
|
||||||
etudid = etud["etudid"]
|
etudid = etud["etudid"]
|
||||||
|
|
||||||
dates = sco_abs.DateRangeISO(context, datedebut, datefin)
|
dates = sco_abs.DateRangeISO(context, datedebut, datefin)
|
||||||
@ -464,7 +466,7 @@ autre absence pour <b>%(nomprenom)s</b></a></li>
|
|||||||
def AnnuleAbsenceEtud(context, REQUEST=None): # etudid implied
|
def AnnuleAbsenceEtud(context, REQUEST=None): # etudid implied
|
||||||
"""Formulaire individuel simple d'annulation d'une absence"""
|
"""Formulaire individuel simple d'annulation d'une absence"""
|
||||||
# brute-force portage from very old dtml code ...
|
# brute-force portage from very old dtml code ...
|
||||||
etud = context.getEtudInfo(filled=1, REQUEST=REQUEST)[0]
|
etud = scolars.get_etud_info(filled=1, REQUEST=REQUEST)[0]
|
||||||
etudid = etud["etudid"]
|
etudid = etud["etudid"]
|
||||||
|
|
||||||
H = [
|
H = [
|
||||||
@ -553,7 +555,7 @@ def doAnnuleJustif(
|
|||||||
context, datedebut0, datefin0, demijournee, REQUEST=None
|
context, datedebut0, datefin0, demijournee, REQUEST=None
|
||||||
): # etudid implied
|
): # etudid implied
|
||||||
"""Annulation d'une justification"""
|
"""Annulation d'une justification"""
|
||||||
etud = context.getEtudInfo(filled=1, REQUEST=REQUEST)[0]
|
etud = scolars.get_etud_info(filled=1, REQUEST=REQUEST)[0]
|
||||||
etudid = etud["etudid"]
|
etudid = etud["etudid"]
|
||||||
dates = sco_abs.DateRangeISO(context, datedebut0, datefin0)
|
dates = sco_abs.DateRangeISO(context, datedebut0, datefin0)
|
||||||
nbadded = 0
|
nbadded = 0
|
||||||
@ -658,7 +660,7 @@ def formChoixSemestreGroupe(context, all=False):
|
|||||||
def CalAbs(context, REQUEST=None): # etud implied
|
def CalAbs(context, REQUEST=None): # etud implied
|
||||||
"""Calendrier des absences d un etudiant"""
|
"""Calendrier des absences d un etudiant"""
|
||||||
# crude portage from 1999 DTML
|
# crude portage from 1999 DTML
|
||||||
etud = context.getEtudInfo(filled=1, REQUEST=REQUEST)[0]
|
etud = scolars.get_etud_info(filled=1, REQUEST=REQUEST)[0]
|
||||||
etudid = etud["etudid"]
|
etudid = etud["etudid"]
|
||||||
anneescolaire = int(scu.AnneeScolaire(REQUEST))
|
anneescolaire = int(scu.AnneeScolaire(REQUEST))
|
||||||
datedebut = str(anneescolaire) + "-08-31"
|
datedebut = str(anneescolaire) + "-08-31"
|
||||||
@ -746,7 +748,7 @@ def ListeAbsEtud(
|
|||||||
absjust_only = int(absjust_only) # si vrai, table absjust seule (export xls ou pdf)
|
absjust_only = int(absjust_only) # si vrai, table absjust seule (export xls ou pdf)
|
||||||
datedebut = "%s-08-31" % scu.AnneeScolaire(REQUEST)
|
datedebut = "%s-08-31" % scu.AnneeScolaire(REQUEST)
|
||||||
|
|
||||||
etud = context.getEtudInfo(etudid=etudid, filled=True)[0]
|
etud = scolars.get_etud_info(etudid=etudid, filled=True)[0]
|
||||||
|
|
||||||
# Liste des absences et titres colonnes tables:
|
# Liste des absences et titres colonnes tables:
|
||||||
titles, columns_ids, absnonjust, absjust = context.Absences._TablesAbsEtud(
|
titles, columns_ids, absnonjust, absjust = context.Absences._TablesAbsEtud(
|
||||||
|
@ -285,7 +285,7 @@ class ApoEtud(dict):
|
|||||||
return "ApoEtud( nom='%s', nip='%s' )" % (self["nom"], self["nip"])
|
return "ApoEtud( nom='%s', nip='%s' )" % (self["nom"], self["nip"])
|
||||||
|
|
||||||
def lookup_scodoc(self, context, etape_formsemestre_ids):
|
def lookup_scodoc(self, context, etape_formsemestre_ids):
|
||||||
etuds = context.getEtudInfo(code_nip=self["nip"], filled=True)
|
etuds = scolars.get_etud_info(code_nip=self["nip"], filled=True)
|
||||||
if not etuds:
|
if not etuds:
|
||||||
# pas dans ScoDoc
|
# pas dans ScoDoc
|
||||||
self.etud = None
|
self.etud = None
|
||||||
|
@ -129,9 +129,10 @@ def etud_upload_file_form(context, REQUEST, etudid):
|
|||||||
raise AccessDenied(
|
raise AccessDenied(
|
||||||
"opération non autorisée pour %s" % str(REQUEST.AUTHENTICATED_USER)
|
"opération non autorisée pour %s" % str(REQUEST.AUTHENTICATED_USER)
|
||||||
)
|
)
|
||||||
etud = context.getEtudInfo(filled=1, REQUEST=REQUEST)[0]
|
etud = scolars.get_etud_info(filled=1, REQUEST=REQUEST)[0]
|
||||||
H = [
|
H = [
|
||||||
html_sco_header.sco_header(context,
|
html_sco_header.sco_header(
|
||||||
|
context,
|
||||||
REQUEST,
|
REQUEST,
|
||||||
page_title="Chargement d'un document associé à %(nomprenom)s" % etud,
|
page_title="Chargement d'un document associé à %(nomprenom)s" % etud,
|
||||||
),
|
),
|
||||||
@ -197,7 +198,7 @@ def etud_delete_archive(context, REQUEST, etudid, archive_name, dialog_confirmed
|
|||||||
raise AccessDenied(
|
raise AccessDenied(
|
||||||
"opération non autorisée pour %s" % str(REQUEST.AUTHENTICATED_USER)
|
"opération non autorisée pour %s" % str(REQUEST.AUTHENTICATED_USER)
|
||||||
)
|
)
|
||||||
etud = context.getEtudInfo(filled=1, REQUEST=REQUEST)[0]
|
etud = scolars.get_etud_info(filled=1, REQUEST=REQUEST)[0]
|
||||||
archive_id = EtudsArchive.get_id_from_name(context, etudid, archive_name)
|
archive_id = EtudsArchive.get_id_from_name(context, etudid, archive_name)
|
||||||
dest_url = "ficheEtud?etudid=%s" % etudid
|
dest_url = "ficheEtud?etudid=%s" % etudid
|
||||||
if not dialog_confirmed:
|
if not dialog_confirmed:
|
||||||
@ -252,8 +253,8 @@ def etudarchive_generate_excel_sample(context, group_id=None, REQUEST=None):
|
|||||||
def etudarchive_import_files_form(context, group_id, REQUEST=None):
|
def etudarchive_import_files_form(context, group_id, REQUEST=None):
|
||||||
"""Formualaire pour importation fichiers d'un groupe"""
|
"""Formualaire pour importation fichiers d'un groupe"""
|
||||||
H = [
|
H = [
|
||||||
html_sco_header.sco_header(context,
|
html_sco_header.sco_header(
|
||||||
REQUEST, page_title="Import de fichiers associés aux étudiants"
|
context, REQUEST, page_title="Import de fichiers associés aux étudiants"
|
||||||
),
|
),
|
||||||
"""<h2 class="formsemestre">Téléchargement de fichier associés aux étudiants</h2>
|
"""<h2 class="formsemestre">Téléchargement de fichier associés aux étudiants</h2>
|
||||||
<p>Les fichiers associés (dossiers d'admission, certificats, ...), de types quelconques (pdf, doc, images)
|
<p>Les fichiers associés (dossiers d'admission, certificats, ...), de types quelconques (pdf, doc, images)
|
||||||
|
@ -138,7 +138,7 @@ def formsemestre_bulletinetud_dict(
|
|||||||
I["formation"]["type_parcours"]
|
I["formation"]["type_parcours"]
|
||||||
)
|
)
|
||||||
# Infos sur l'etudiant
|
# Infos sur l'etudiant
|
||||||
I["etud"] = context.getEtudInfo(etudid=etudid, filled=1)[0]
|
I["etud"] = scolars.get_etud_info(etudid=etudid, filled=1)[0]
|
||||||
I["descr_situation"] = I["etud"]["inscriptionstr"]
|
I["descr_situation"] = I["etud"]["inscriptionstr"]
|
||||||
if I["etud"]["inscription_formsemestre_id"]:
|
if I["etud"]["inscription_formsemestre_id"]:
|
||||||
I[
|
I[
|
||||||
@ -780,7 +780,7 @@ def formsemestre_bulletinetud(
|
|||||||
):
|
):
|
||||||
"page bulletin de notes"
|
"page bulletin de notes"
|
||||||
try:
|
try:
|
||||||
etud = context.getEtudInfo(filled=1, REQUEST=REQUEST)[0]
|
etud = scolars.get_etud_info(filled=1, REQUEST=REQUEST)[0]
|
||||||
etudid = etud["etudid"]
|
etudid = etud["etudid"]
|
||||||
except:
|
except:
|
||||||
return scu.log_unknown_etud(context, REQUEST, format=format)
|
return scu.log_unknown_etud(context, REQUEST, format=format)
|
||||||
@ -1210,92 +1210,3 @@ def _formsemestre_bulletinetud_header_html(
|
|||||||
)
|
)
|
||||||
|
|
||||||
return "".join(H)
|
return "".join(H)
|
||||||
|
|
||||||
|
|
||||||
def formsemestre_bulletins_choice(
|
|
||||||
context, REQUEST, formsemestre_id, title="", explanation="", choose_mail=False
|
|
||||||
):
|
|
||||||
"""Choix d'une version de bulletin"""
|
|
||||||
sem = sco_formsemestre.get_formsemestre(context, formsemestre_id)
|
|
||||||
H = [
|
|
||||||
html_sco_header.html_sem_header(context, REQUEST, title, sem),
|
|
||||||
"""
|
|
||||||
<form name="f" method="GET" action="%s">
|
|
||||||
<input type="hidden" name="formsemestre_id" value="%s"></input>
|
|
||||||
"""
|
|
||||||
% (REQUEST.URL0, formsemestre_id),
|
|
||||||
]
|
|
||||||
H.append("""<select name="version" class="noprint">""")
|
|
||||||
for (v, e) in (
|
|
||||||
("short", "Version courte"),
|
|
||||||
("selectedevals", "Version intermédiaire"),
|
|
||||||
("long", "Version complète"),
|
|
||||||
):
|
|
||||||
H.append('<option value="%s">%s</option>' % (v, e))
|
|
||||||
|
|
||||||
H.append("""</select> <input type="submit" value="Générer"/>""")
|
|
||||||
if choose_mail:
|
|
||||||
H.append(
|
|
||||||
"""<div><input type="checkbox" name="prefer_mail_perso" value="1">Utiliser si possible les adresses personnelles</div>"""
|
|
||||||
)
|
|
||||||
|
|
||||||
H.append("""<p class="help">""" + explanation + """</p>""")
|
|
||||||
|
|
||||||
return "\n".join(H) + html_sco_header.sco_footer(context, REQUEST)
|
|
||||||
|
|
||||||
|
|
||||||
expl_bull = """Versions des bulletins:<ul><li><bf>courte</bf>: moyennes des modules</li><li><bf>intermédiaire</bf>: moyennes des modules et notes des évaluations sélectionnées</li><li><bf>complète</bf>: toutes les notes</li><ul>"""
|
|
||||||
|
|
||||||
|
|
||||||
def formsemestre_bulletins_pdf_choice(context, REQUEST, formsemestre_id, version=None):
|
|
||||||
"""Choix version puis envois classeur bulletins pdf"""
|
|
||||||
if version:
|
|
||||||
return context.formsemestre_bulletins_pdf(
|
|
||||||
formsemestre_id, REQUEST, version=version
|
|
||||||
)
|
|
||||||
return formsemestre_bulletins_choice(
|
|
||||||
context,
|
|
||||||
REQUEST,
|
|
||||||
formsemestre_id,
|
|
||||||
title="Choisir la version des bulletins à générer",
|
|
||||||
explanation=expl_bull,
|
|
||||||
)
|
|
||||||
|
|
||||||
|
|
||||||
def formsemestre_bulletins_mailetuds_choice(
|
|
||||||
context,
|
|
||||||
REQUEST,
|
|
||||||
formsemestre_id,
|
|
||||||
version=None,
|
|
||||||
dialog_confirmed=False,
|
|
||||||
prefer_mail_perso=0,
|
|
||||||
):
|
|
||||||
"""Choix version puis envois classeur bulletins pdf"""
|
|
||||||
if version:
|
|
||||||
return context.formsemestre_bulletins_mailetuds(
|
|
||||||
formsemestre_id,
|
|
||||||
REQUEST,
|
|
||||||
version=version,
|
|
||||||
dialog_confirmed=dialog_confirmed,
|
|
||||||
prefer_mail_perso=prefer_mail_perso,
|
|
||||||
)
|
|
||||||
return formsemestre_bulletins_choice(
|
|
||||||
context,
|
|
||||||
REQUEST,
|
|
||||||
formsemestre_id,
|
|
||||||
title="Choisir la version des bulletins à envoyer par mail",
|
|
||||||
explanation="Chaque étudiant ayant une adresse mail connue de ScoDoc recevra une copie PDF de son bulletin de notes, dans la version choisie.</p><p>"
|
|
||||||
+ expl_bull,
|
|
||||||
choose_mail=True,
|
|
||||||
)
|
|
||||||
|
|
||||||
|
|
||||||
"""
|
|
||||||
from debug import *
|
|
||||||
from sco_bulletins import *
|
|
||||||
context = go_dept(app, 'RT')
|
|
||||||
etudid='EID25013'
|
|
||||||
etudid='EID27760' # bonh
|
|
||||||
formsemestre_id = 'SEM27425'
|
|
||||||
I = formsemestre_bulletinetud_dict(context.Notes, formsemestre_id, etudid, REQUEST=REQUEST)
|
|
||||||
"""
|
|
||||||
|
@ -116,7 +116,7 @@ def formsemestre_bulletinetud_published_dict(
|
|||||||
d.update(**el)
|
d.update(**el)
|
||||||
|
|
||||||
# Infos sur l'etudiant
|
# Infos sur l'etudiant
|
||||||
etudinfo = context.getEtudInfo(etudid=etudid, filled=1)[0]
|
etudinfo = scolars.get_etud_info(etudid=etudid, filled=1)[0]
|
||||||
|
|
||||||
d["etudiant"] = dict(
|
d["etudiant"] = dict(
|
||||||
etudid=etudid,
|
etudid=etudid,
|
||||||
|
@ -227,7 +227,7 @@ def get_formsemestre_bulletins_pdf(
|
|||||||
|
|
||||||
def get_etud_bulletins_pdf(context, etudid, REQUEST, version="selectedevals"):
|
def get_etud_bulletins_pdf(context, etudid, REQUEST, version="selectedevals"):
|
||||||
"Bulletins pdf de tous les semestres de l'étudiant, et filename"
|
"Bulletins pdf de tous les semestres de l'étudiant, et filename"
|
||||||
etud = context.getEtudInfo(etudid=etudid, filled=1)[0]
|
etud = scolars.get_etud_info(etudid=etudid, filled=1)[0]
|
||||||
fragments = []
|
fragments = []
|
||||||
bookmarks = {}
|
bookmarks = {}
|
||||||
filigrannes = {}
|
filigrannes = {}
|
||||||
|
@ -99,7 +99,7 @@ def make_xml_formsemestre_bulletinetud(
|
|||||||
doc.bulletinetud(**el)
|
doc.bulletinetud(**el)
|
||||||
|
|
||||||
# Infos sur l'etudiant
|
# Infos sur l'etudiant
|
||||||
etudinfo = context.getEtudInfo(etudid=etudid, filled=1)[0]
|
etudinfo = scolars.get_etud_info(etudid=etudid, filled=1)[0]
|
||||||
doc._push()
|
doc._push()
|
||||||
doc.etudiant(
|
doc.etudiant(
|
||||||
etudid=etudid,
|
etudid=etudid,
|
||||||
|
@ -166,7 +166,7 @@ def compute_user_formula(
|
|||||||
if user_moy != "NA0" and user_moy != "NA":
|
if user_moy != "NA0" and user_moy != "NA":
|
||||||
user_moy = float(user_moy)
|
user_moy = float(user_moy)
|
||||||
if (user_moy > 20) or (user_moy < 0):
|
if (user_moy > 20) or (user_moy < 0):
|
||||||
etud = context.getEtudInfo(etudid=etudid, filled=1)[0]
|
etud = scolars.get_etud_info(etudid=etudid, filled=1)[0]
|
||||||
|
|
||||||
raise ScoException(
|
raise ScoException(
|
||||||
"""valeur moyenne %s hors limite pour <a href="formsemestre_bulletinetud?formsemestre_id=%s&etudid=%s">%s</a>"""
|
"""valeur moyenne %s hors limite pour <a href="formsemestre_bulletinetud?formsemestre_id=%s&etudid=%s">%s</a>"""
|
||||||
|
@ -104,7 +104,7 @@ def table_debouche_etudids(context, etudids, keep_numeric=True):
|
|||||||
"""Rapport pour ces etudiants"""
|
"""Rapport pour ces etudiants"""
|
||||||
L = []
|
L = []
|
||||||
for etudid in etudids:
|
for etudid in etudids:
|
||||||
etud = context.getEtudInfo(filled=1, etudid=etudid)[0]
|
etud = scolars.get_etud_info(filled=1, etudid=etudid)[0]
|
||||||
# retrouve le "dernier" semestre (au sens de la date de fin)
|
# retrouve le "dernier" semestre (au sens de la date de fin)
|
||||||
sems = etud["sems"]
|
sems = etud["sems"]
|
||||||
es = [(sems[i]["date_fin_iso"], i) for i in range(len(sems))]
|
es = [(sems[i]["date_fin_iso"], i) for i in range(len(sems))]
|
||||||
|
@ -498,7 +498,7 @@ def view_apo_etuds(context, semset_id, title="", nips=[], format="html", REQUEST
|
|||||||
etuds = sco_etape_apogee.apo_csv_retreive_etuds_by_nip(context, semset, nips)
|
etuds = sco_etape_apogee.apo_csv_retreive_etuds_by_nip(context, semset, nips)
|
||||||
# Ils sont parfois dans ScoDoc même si pas dans le semestre: essaie de les retrouver
|
# Ils sont parfois dans ScoDoc même si pas dans le semestre: essaie de les retrouver
|
||||||
for etud in etuds.values():
|
for etud in etuds.values():
|
||||||
etud_sco = context.getEtudInfo(code_nip=etud["nip"], filled=True)
|
etud_sco = scolars.get_etud_info(code_nip=etud["nip"], filled=True)
|
||||||
if etud_sco:
|
if etud_sco:
|
||||||
e = etud_sco[0]
|
e = etud_sco[0]
|
||||||
etud["inscriptions_scodoc"] = ", ".join(
|
etud["inscriptions_scodoc"] = ", ".join(
|
||||||
@ -529,12 +529,12 @@ def view_scodoc_etuds(
|
|||||||
if type(etudids) != type([]):
|
if type(etudids) != type([]):
|
||||||
etudids = [etudids]
|
etudids = [etudids]
|
||||||
etuds = [
|
etuds = [
|
||||||
context.getEtudInfo(etudid=etudid, filled=True)[0] for etudid in etudids
|
scolars.get_etud_info(etudid=etudid, filled=True)[0] for etudid in etudids
|
||||||
]
|
]
|
||||||
elif nips is not None:
|
elif nips is not None:
|
||||||
if type(nips) != type([]):
|
if type(nips) != type([]):
|
||||||
nips = [nips]
|
nips = [nips]
|
||||||
etuds = [context.getEtudInfo(code_nip=nip, filled=True)[0] for nip in nips]
|
etuds = [scolars.get_etud_info(code_nip=nip, filled=True)[0] for nip in nips]
|
||||||
else:
|
else:
|
||||||
raise ValueError("etudid or NIP must be specified")
|
raise ValueError("etudid or NIP must be specified")
|
||||||
|
|
||||||
@ -752,7 +752,7 @@ def view_apo_csv(context, etape_apo="", semset_id="", format="html", REQUEST=Non
|
|||||||
e["in_scodoc_str"] = {True: "oui", False: "non"}[e["in_scodoc"]]
|
e["in_scodoc_str"] = {True: "oui", False: "non"}[e["in_scodoc"]]
|
||||||
if e["in_scodoc"]:
|
if e["in_scodoc"]:
|
||||||
e["_in_scodoc_str_target"] = "ficheEtud?code_nip=" + e["nip"]
|
e["_in_scodoc_str_target"] = "ficheEtud?code_nip=" + e["nip"]
|
||||||
e.update(context.getEtudInfo(code_nip=e["nip"], filled=True)[0])
|
e.update(scolars.get_etud_info(code_nip=e["nip"], filled=True)[0])
|
||||||
e["_nom_td_attrs"] = 'id="%s" class="etudinfo"' % (e["etudid"],)
|
e["_nom_td_attrs"] = 'id="%s" class="etudinfo"' % (e["etudid"],)
|
||||||
e["_prenom_td_attrs"] = 'id="pre-%s" class="etudinfo"' % (e["etudid"],)
|
e["_prenom_td_attrs"] = 'id="pre-%s" class="etudinfo"' % (e["etudid"],)
|
||||||
else:
|
else:
|
||||||
|
@ -83,7 +83,7 @@ def _build_results_table(context, start_date=None, end_date=None, types_parcours
|
|||||||
etudids = nt.get_etudids()
|
etudids = nt.get_etudids()
|
||||||
for etudid in etudids:
|
for etudid in etudids:
|
||||||
if etudid not in etuds_infos: # pas encore traité ?
|
if etudid not in etuds_infos: # pas encore traité ?
|
||||||
etud = context.getEtudInfo(etudid=etudid, filled=True)[0]
|
etud = scolars.get_etud_info(etudid=etudid, filled=True)[0]
|
||||||
for sem in etud["sems"]: # le plus récent d'abord
|
for sem in etud["sems"]: # le plus récent d'abord
|
||||||
if sem["formsemestre_id"] in formsemestre_ids_parcours:
|
if sem["formsemestre_id"] in formsemestre_ids_parcours:
|
||||||
etuds_infos[etudid] = {
|
etuds_infos[etudid] = {
|
||||||
@ -340,7 +340,7 @@ from debug import *
|
|||||||
from sco_export_results import *
|
from sco_export_results import *
|
||||||
context = go_dept(app, 'RT').Notes
|
context = go_dept(app, 'RT').Notes
|
||||||
etudid = 'EID27764'
|
etudid = 'EID27764'
|
||||||
etud = context.getEtudInfo(etudid=etudid, filled=True)[0]
|
etud = scolars.get_etud_info( etudid=etudid, filled=True)[0]
|
||||||
|
|
||||||
start_date='2015-08-15'
|
start_date='2015-08-15'
|
||||||
end_date='2017-08-31'
|
end_date='2017-08-31'
|
||||||
|
@ -110,7 +110,7 @@ def search_etud_in_dept(context, expnom="", REQUEST=None):
|
|||||||
"""
|
"""
|
||||||
dest_url = "ficheEtud"
|
dest_url = "ficheEtud"
|
||||||
if len(expnom) > 1:
|
if len(expnom) > 1:
|
||||||
etuds = context.getEtudInfo(filled=1, etudid=expnom, REQUEST=REQUEST)
|
etuds = scolars.get_etud_info(filled=1, etudid=expnom, REQUEST=REQUEST)
|
||||||
if len(etuds) != 1:
|
if len(etuds) != 1:
|
||||||
if scu.is_valid_code_nip(expnom):
|
if scu.is_valid_code_nip(expnom):
|
||||||
etuds = search_etuds_infos(context, code_nip=expnom, REQUEST=REQUEST)
|
etuds = search_etuds_infos(context, code_nip=expnom, REQUEST=REQUEST)
|
||||||
|
@ -53,7 +53,7 @@ def formsemestre_ext_create(context, etudid, sem_params, REQUEST=None):
|
|||||||
args={"formation_id": sem_params["formation_id"]}
|
args={"formation_id": sem_params["formation_id"]}
|
||||||
)[0]
|
)[0]
|
||||||
if etudid:
|
if etudid:
|
||||||
_etud = context.getEtudInfo(etudid=etudid, filled=1)[0]
|
_etud = scolars.get_etud_info(etudid=etudid, filled=1)[0]
|
||||||
|
|
||||||
# Create formsemestre
|
# Create formsemestre
|
||||||
sem_params["modalite"] = "EXT"
|
sem_params["modalite"] = "EXT"
|
||||||
@ -75,7 +75,7 @@ def formsemestre_ext_create(context, etudid, sem_params, REQUEST=None):
|
|||||||
|
|
||||||
def formsemestre_ext_create_form(context, etudid, formsemestre_id, REQUEST=None):
|
def formsemestre_ext_create_form(context, etudid, formsemestre_id, REQUEST=None):
|
||||||
"""Formulaire creation/inscription à un semestre extérieur"""
|
"""Formulaire creation/inscription à un semestre extérieur"""
|
||||||
etud = context.getEtudInfo(etudid=etudid, filled=1)[0]
|
etud = scolars.get_etud_info(etudid=etudid, filled=1)[0]
|
||||||
H = [
|
H = [
|
||||||
html_sco_header.sco_header(context, REQUEST),
|
html_sco_header.sco_header(context, REQUEST),
|
||||||
"""<h2>Enregistrement d'une inscription antérieure dans un autre établissement</h2>
|
"""<h2>Enregistrement d'une inscription antérieure dans un autre établissement</h2>
|
||||||
@ -214,7 +214,7 @@ def formsemestre_ext_edit_ue_validations(
|
|||||||
mais pas enregistrée.
|
mais pas enregistrée.
|
||||||
"""
|
"""
|
||||||
sem = sco_formsemestre.get_formsemestre(context, formsemestre_id)
|
sem = sco_formsemestre.get_formsemestre(context, formsemestre_id)
|
||||||
etud = context.getEtudInfo(etudid=etudid, filled=True)[0]
|
etud = scolars.get_etud_info(etudid=etudid, filled=True)[0]
|
||||||
ue_list = _list_ue_with_coef_and_validations(context, sem, etudid)
|
ue_list = _list_ue_with_coef_and_validations(context, sem, etudid)
|
||||||
descr = _ue_form_description(context, ue_list, REQUEST.form)
|
descr = _ue_form_description(context, ue_list, REQUEST.form)
|
||||||
if REQUEST and REQUEST.method == "GET":
|
if REQUEST and REQUEST.method == "GET":
|
||||||
|
@ -119,7 +119,7 @@ def formsemestre_inscription_with_modules_form(
|
|||||||
"""Formulaire inscription de l'etud dans l'un des semestres existants.
|
"""Formulaire inscription de l'etud dans l'un des semestres existants.
|
||||||
Si only_ext, ne montre que les semestre extérieurs.
|
Si only_ext, ne montre que les semestre extérieurs.
|
||||||
"""
|
"""
|
||||||
etud = context.getEtudInfo(etudid=etudid, filled=1)[0]
|
etud = scolars.get_etud_info(etudid=etudid, filled=1)[0]
|
||||||
H = [
|
H = [
|
||||||
html_sco_header.sco_header(context, REQUEST),
|
html_sco_header.sco_header(context, REQUEST),
|
||||||
"<h2>Inscription de %s" % etud["nomprenom"],
|
"<h2>Inscription de %s" % etud["nomprenom"],
|
||||||
@ -178,7 +178,7 @@ def formsemestre_inscription_with_modules(
|
|||||||
if multiple_ok:
|
if multiple_ok:
|
||||||
multiple_ok = int(multiple_ok)
|
multiple_ok = int(multiple_ok)
|
||||||
sem = sco_formsemestre.get_formsemestre(context, formsemestre_id)
|
sem = sco_formsemestre.get_formsemestre(context, formsemestre_id)
|
||||||
etud = context.getEtudInfo(etudid=etudid, filled=1)[0]
|
etud = scolars.get_etud_info(etudid=etudid, filled=1)[0]
|
||||||
H = [
|
H = [
|
||||||
html_sco_header.html_sem_header(
|
html_sco_header.html_sem_header(
|
||||||
context,
|
context,
|
||||||
@ -278,7 +278,7 @@ def formsemestre_inscription_option(context, etudid, formsemestre_id, REQUEST=No
|
|||||||
if sem["etat"] != "1":
|
if sem["etat"] != "1":
|
||||||
raise ScoValueError("Modification impossible: semestre verrouille")
|
raise ScoValueError("Modification impossible: semestre verrouille")
|
||||||
|
|
||||||
etud = context.getEtudInfo(etudid=etudid, filled=1)[0]
|
etud = scolars.get_etud_info(etudid=etudid, filled=1)[0]
|
||||||
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_etud_ue_status
|
) # > get_etud_ue_status
|
||||||
@ -571,7 +571,7 @@ def est_inscrit_ailleurs(context, etudid, formsemestre_id):
|
|||||||
temps que celui indiqué (par formsemestre_id).
|
temps que celui indiqué (par formsemestre_id).
|
||||||
Retourne la liste des semestres concernés (ou liste vide).
|
Retourne la liste des semestres concernés (ou liste vide).
|
||||||
"""
|
"""
|
||||||
etud = context.getEtudInfo(etudid=etudid, filled=1)[0]
|
etud = scolars.get_etud_info(etudid=etudid, filled=1)[0]
|
||||||
sem = sco_formsemestre.get_formsemestre(context, formsemestre_id)
|
sem = sco_formsemestre.get_formsemestre(context, formsemestre_id)
|
||||||
debut_s = sem["dateord"]
|
debut_s = sem["dateord"]
|
||||||
fin_s = DateDMYtoISO(sem["date_fin"])
|
fin_s = DateDMYtoISO(sem["date_fin"])
|
||||||
@ -616,7 +616,7 @@ def formsemestre_inscrits_ailleurs(context, formsemestre_id, REQUEST=None):
|
|||||||
insd = list_inscrits_ailleurs(context, formsemestre_id)
|
insd = list_inscrits_ailleurs(context, formsemestre_id)
|
||||||
# liste ordonnée par nom
|
# liste ordonnée par nom
|
||||||
etudlist = [
|
etudlist = [
|
||||||
context.getEtudInfo(etudid=etudid, filled=1)[0]
|
scolars.get_etud_info(etudid=etudid, filled=1)[0]
|
||||||
for etudid in insd.keys()
|
for etudid in insd.keys()
|
||||||
if insd[etudid]
|
if insd[etudid]
|
||||||
]
|
]
|
||||||
|
@ -91,7 +91,7 @@ def formsemestre_validation_etud_form(
|
|||||||
if readonly:
|
if readonly:
|
||||||
check = True
|
check = True
|
||||||
|
|
||||||
etud = context.getEtudInfo(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)
|
||||||
if Se.sem["etat"] != "1":
|
if Se.sem["etat"] != "1":
|
||||||
raise ScoValueError("validation: semestre verrouille")
|
raise ScoValueError("validation: semestre verrouille")
|
||||||
@ -108,13 +108,13 @@ def formsemestre_validation_etud_form(
|
|||||||
Footer = ["<p>"]
|
Footer = ["<p>"]
|
||||||
# Navigation suivant/precedent
|
# Navigation suivant/precedent
|
||||||
if etud_index_prev != None:
|
if etud_index_prev != None:
|
||||||
etud_p = context.getEtudInfo(etudid=T[etud_index_prev][-1], filled=True)[0]
|
etud_p = scolars.get_etud_info(etudid=T[etud_index_prev][-1], filled=True)[0]
|
||||||
Footer.append(
|
Footer.append(
|
||||||
'<span><a href="formsemestre_validation_etud_form?formsemestre_id=%s&etud_index=%s">Etud. précédent (%s)</a></span>'
|
'<span><a href="formsemestre_validation_etud_form?formsemestre_id=%s&etud_index=%s">Etud. précédent (%s)</a></span>'
|
||||||
% (formsemestre_id, etud_index_prev, etud_p["nomprenom"])
|
% (formsemestre_id, etud_index_prev, etud_p["nomprenom"])
|
||||||
)
|
)
|
||||||
if etud_index_next != None:
|
if etud_index_next != None:
|
||||||
etud_n = context.getEtudInfo(etudid=T[etud_index_next][-1], filled=True)[0]
|
etud_n = scolars.get_etud_info(etudid=T[etud_index_next][-1], filled=True)[0]
|
||||||
Footer.append(
|
Footer.append(
|
||||||
'<span style="padding-left: 50px;"><a href="formsemestre_validation_etud_form?formsemestre_id=%s&etud_index=%s">Etud. suivant (%s)</a></span>'
|
'<span style="padding-left: 50px;"><a href="formsemestre_validation_etud_form?formsemestre_id=%s&etud_index=%s">Etud. suivant (%s)</a></span>'
|
||||||
% (formsemestre_id, etud_index_next, etud_n["nomprenom"])
|
% (formsemestre_id, etud_index_next, etud_n["nomprenom"])
|
||||||
@ -333,7 +333,7 @@ def formsemestre_validation_etud(
|
|||||||
REQUEST=None,
|
REQUEST=None,
|
||||||
):
|
):
|
||||||
"""Enregistre validation"""
|
"""Enregistre validation"""
|
||||||
etud = context.getEtudInfo(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)
|
||||||
# retrouve la decision correspondant au code:
|
# retrouve la decision correspondant au code:
|
||||||
choices = Se.get_possible_choices(assiduite=True)
|
choices = Se.get_possible_choices(assiduite=True)
|
||||||
@ -368,7 +368,7 @@ def formsemestre_validation_etud_manu(
|
|||||||
"""Enregistre validation"""
|
"""Enregistre validation"""
|
||||||
if assidu:
|
if assidu:
|
||||||
assidu = 1
|
assidu = 1
|
||||||
etud = context.getEtudInfo(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)
|
||||||
if code_etat in Se.parcours.UNUSED_CODES:
|
if code_etat in Se.parcours.UNUSED_CODES:
|
||||||
raise ScoValueError("code decision invalide dans ce parcours")
|
raise ScoValueError("code decision invalide dans ce parcours")
|
||||||
@ -862,7 +862,7 @@ def do_formsemestre_validation_auto(context, formsemestre_id, REQUEST):
|
|||||||
nb_valid = 0
|
nb_valid = 0
|
||||||
conflicts = [] # liste des etudiants avec decision differente déjà saisie
|
conflicts = [] # liste des etudiants avec decision differente déjà saisie
|
||||||
for etudid in etudids:
|
for etudid in etudids:
|
||||||
etud = context.getEtudInfo(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 = context.do_formsemestre_inscription_list(
|
||||||
{"etudid": etudid, "formsemestre_id": formsemestre_id}
|
{"etudid": etudid, "formsemestre_id": formsemestre_id}
|
||||||
@ -964,7 +964,7 @@ def formsemestre_fix_validation_ues(context, formsemestre_id, REQUEST=None):
|
|||||||
modifs = [] # liste d'étudiants modifiés
|
modifs = [] # liste d'étudiants modifiés
|
||||||
cnx = context.GetDBConnexion(autocommit=False)
|
cnx = context.GetDBConnexion(autocommit=False)
|
||||||
for etudid in etudids:
|
for etudid in etudids:
|
||||||
etud = context.getEtudInfo(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 = context.do_formsemestre_inscription_list(
|
||||||
{"etudid": etudid, "formsemestre_id": formsemestre_id}
|
{"etudid": etudid, "formsemestre_id": formsemestre_id}
|
||||||
@ -1071,7 +1071,7 @@ def formsemestre_validate_previous_ue(context, formsemestre_id, etudid, REQUEST=
|
|||||||
"""Form. saisie UE validée hors ScoDoc
|
"""Form. saisie UE validée hors ScoDoc
|
||||||
(pour étudiants arrivant avec un UE antérieurement validée).
|
(pour étudiants arrivant avec un UE antérieurement validée).
|
||||||
"""
|
"""
|
||||||
etud = context.getEtudInfo(etudid=etudid, filled=True)[0]
|
etud = scolars.get_etud_info(etudid=etudid, filled=True)[0]
|
||||||
sem = sco_formsemestre.get_formsemestre(context, formsemestre_id)
|
sem = sco_formsemestre.get_formsemestre(context, formsemestre_id)
|
||||||
Fo = context.formation_list(args={"formation_id": sem["formation_id"]})[0]
|
Fo = context.formation_list(args={"formation_id": sem["formation_id"]})[0]
|
||||||
|
|
||||||
|
@ -469,7 +469,7 @@ def XMLgetGroupsInPartition(context, partition_id, REQUEST=None): # was XMLgetG
|
|||||||
group_name=group["group_name"],
|
group_name=group["group_name"],
|
||||||
)
|
)
|
||||||
for e in get_group_members(context, group["group_id"]):
|
for e in get_group_members(context, group["group_id"]):
|
||||||
etud = context.getEtudInfo(etudid=e["etudid"], filled=1)[0]
|
etud = scolars.get_etud_info(etudid=e["etudid"], filled=1)[0]
|
||||||
doc._push()
|
doc._push()
|
||||||
doc.etud(
|
doc.etud(
|
||||||
etudid=e["etudid"],
|
etudid=e["etudid"],
|
||||||
@ -494,7 +494,7 @@ def XMLgetGroupsInPartition(context, partition_id, REQUEST=None): # was XMLgetG
|
|||||||
group_name="",
|
group_name="",
|
||||||
)
|
)
|
||||||
for etudid in etuds_set:
|
for etudid in etuds_set:
|
||||||
etud = context.getEtudInfo(etudid=etudid, filled=1)[0]
|
etud = scolars.get_etud_info(etudid=etudid, filled=1)[0]
|
||||||
doc._push()
|
doc._push()
|
||||||
doc.etud(
|
doc.etud(
|
||||||
etudid=etud["etudid"],
|
etudid=etud["etudid"],
|
||||||
@ -1299,7 +1299,7 @@ def get_prev_moy(context, etudid, formsemestre_id):
|
|||||||
"""
|
"""
|
||||||
import sco_parcours_dut
|
import sco_parcours_dut
|
||||||
|
|
||||||
info = context.getEtudInfo(etudid=etudid, filled=True)
|
info = scolars.get_etud_info(etudid=etudid, filled=True)
|
||||||
if not info:
|
if not info:
|
||||||
raise ScoValueError("etudiant invalide: etudid=%s" % etudid)
|
raise ScoValueError("etudiant invalide: etudid=%s" % etudid)
|
||||||
etud = info[0]
|
etud = info[0]
|
||||||
|
@ -785,7 +785,7 @@ def groups_table(
|
|||||||
# remplis infos lycee si on a que le code lycée
|
# remplis infos lycee si on a que le code lycée
|
||||||
# et ajoute infos inscription
|
# et ajoute infos inscription
|
||||||
for m in groups_infos.members:
|
for m in groups_infos.members:
|
||||||
etud = context.getEtudInfo(m["etudid"], filled=True)[0]
|
etud = scolars.get_etud_info(m["etudid"], filled=True)[0]
|
||||||
m.update(etud)
|
m.update(etud)
|
||||||
scolars.etud_add_lycee_infos(etud)
|
scolars.etud_add_lycee_infos(etud)
|
||||||
# et ajoute le parcours
|
# et ajoute le parcours
|
||||||
@ -974,7 +974,7 @@ def export_groups_as_moodle_csv(context, formsemestre_id=None, REQUEST=None):
|
|||||||
partition = sco_groups.get_partition(context, partition_id)
|
partition = sco_groups.get_partition(context, partition_id)
|
||||||
members = partitions_etud_groups[partition_id]
|
members = partitions_etud_groups[partition_id]
|
||||||
for etudid in members:
|
for etudid in members:
|
||||||
etud = context.getEtudInfo(etudid=etudid, filled=True)[0]
|
etud = scolars.get_etud_info(etudid=etudid, filled=True)[0]
|
||||||
group_name = members[etudid]["group_name"]
|
group_name = members[etudid]["group_name"]
|
||||||
elts = [moodle_sem_name]
|
elts = [moodle_sem_name]
|
||||||
if partition["partition_name"]:
|
if partition["partition_name"]:
|
||||||
|
@ -59,7 +59,7 @@ def list_authorized_etuds_by_sem(context, sem, delai=274):
|
|||||||
for e in liste:
|
for e in liste:
|
||||||
# Filtre ceux qui se sont déjà inscrit dans un semestre APRES le semestre src
|
# Filtre ceux qui se sont déjà inscrit dans un semestre APRES le semestre src
|
||||||
auth_used = False # autorisation deja utilisée ?
|
auth_used = False # autorisation deja utilisée ?
|
||||||
etud = context.getEtudInfo(etudid=e["etudid"], filled=True)[0]
|
etud = scolars.get_etud_info(etudid=e["etudid"], filled=True)[0]
|
||||||
for isem in etud["sems"]:
|
for isem in etud["sems"]:
|
||||||
if ndb.DateDMYtoISO(isem["date_debut"]) >= ndb.DateDMYtoISO(
|
if ndb.DateDMYtoISO(isem["date_debut"]) >= ndb.DateDMYtoISO(
|
||||||
src["date_fin"]
|
src["date_fin"]
|
||||||
@ -114,7 +114,7 @@ def list_inscrits(context, formsemestre_id, with_dems=False):
|
|||||||
inscr = {}
|
inscr = {}
|
||||||
for i in ins:
|
for i in ins:
|
||||||
etudid = i["etudid"]
|
etudid = i["etudid"]
|
||||||
inscr[etudid] = context.getEtudInfo(etudid=etudid, filled=True)[0]
|
inscr[etudid] = scolars.get_etud_info(etudid=etudid, filled=True)[0]
|
||||||
return inscr
|
return inscr
|
||||||
|
|
||||||
|
|
||||||
@ -172,7 +172,7 @@ def do_inscrit(context, sem, etudids, REQUEST=None, inscrit_groupes=False):
|
|||||||
# (mise en correspondance à partir du nom du groupe, sans tenir compte
|
# (mise en correspondance à partir du nom du groupe, sans tenir compte
|
||||||
# du nom de la partition: évidemment, cela ne marche pas si on a les
|
# du nom de la partition: évidemment, cela ne marche pas si on a les
|
||||||
# même noms de groupes dans des partitions différentes)
|
# même noms de groupes dans des partitions différentes)
|
||||||
etud = context.getEtudInfo(etudid=etudid, filled=True)[0]
|
etud = scolars.get_etud_info(etudid=etudid, filled=True)[0]
|
||||||
log("cherche groupes de %(nom)s" % etud)
|
log("cherche groupes de %(nom)s" % etud)
|
||||||
|
|
||||||
# recherche le semestre origine (il serait plus propre de l'avoir conservé!)
|
# recherche le semestre origine (il serait plus propre de l'avoir conservé!)
|
||||||
|
@ -284,7 +284,7 @@ def _make_table_notes(
|
|||||||
for etudid in etudids:
|
for etudid in etudids:
|
||||||
css_row_class = None
|
css_row_class = None
|
||||||
# infos identite etudiant
|
# infos identite etudiant
|
||||||
etud = context.getEtudInfo(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 = context.do_formsemestre_inscription_list(
|
||||||
{"etudid": etudid, "formsemestre_id": M["formsemestre_id"]}
|
{"etudid": etudid, "formsemestre_id": M["formsemestre_id"]}
|
||||||
@ -803,7 +803,7 @@ def evaluation_check_absences_html(
|
|||||||
if not etudids and show_ok:
|
if not etudids and show_ok:
|
||||||
H.append("<li>aucun</li>")
|
H.append("<li>aucun</li>")
|
||||||
for etudid in etudids:
|
for etudid in etudids:
|
||||||
etud = context.getEtudInfo(etudid=etudid, filled=True)[0]
|
etud = scolars.get_etud_info(etudid=etudid, filled=True)[0]
|
||||||
H.append(
|
H.append(
|
||||||
'<li><a class="discretelink" href="ficheEtud?etudid=%(etudid)s">%(nomprenom)s</a>'
|
'<li><a class="discretelink" href="ficheEtud?etudid=%(etudid)s">%(nomprenom)s</a>'
|
||||||
% etud
|
% etud
|
||||||
|
@ -87,7 +87,7 @@ def moduleimpl_inscriptions_edit(
|
|||||||
# Liste des inscrits à ce semestre
|
# Liste des inscrits à ce semestre
|
||||||
inscrits = context.Notes.do_formsemestre_inscription_listinscrits(formsemestre_id)
|
inscrits = context.Notes.do_formsemestre_inscription_listinscrits(formsemestre_id)
|
||||||
for ins in inscrits:
|
for ins in inscrits:
|
||||||
etuds_info = context.getEtudInfo(etudid=ins["etudid"], filled=1)
|
etuds_info = scolars.get_etud_info(etudid=ins["etudid"], filled=1)
|
||||||
if not etuds_info:
|
if not etuds_info:
|
||||||
log(
|
log(
|
||||||
"moduleimpl_inscriptions_edit: incoherency for etudid=%s !"
|
"moduleimpl_inscriptions_edit: incoherency for etudid=%s !"
|
||||||
@ -343,7 +343,7 @@ def moduleimpl_inscriptions_stats(context, formsemestre_id, REQUEST=None):
|
|||||||
)
|
)
|
||||||
H.append("<ul>")
|
H.append("<ul>")
|
||||||
for info in UECaps[ue["ue_id"]]:
|
for info in UECaps[ue["ue_id"]]:
|
||||||
etud = context.getEtudInfo(etudid=info["etudid"], filled=True)[0]
|
etud = scolars.get_etud_info(etudid=info["etudid"], filled=True)[0]
|
||||||
H.append(
|
H.append(
|
||||||
'<li class="etud"><a class="discretelink" href="ficheEtud?etudid=%(etudid)s">%(nomprenom)s</a>'
|
'<li class="etud"><a class="discretelink" href="ficheEtud?etudid=%(etudid)s">%(nomprenom)s</a>'
|
||||||
% etud
|
% etud
|
||||||
@ -447,7 +447,7 @@ def _fmt_etud_set(context, ins, max_list_size=7):
|
|||||||
return "%d étudiants" % len(ins)
|
return "%d étudiants" % len(ins)
|
||||||
etuds = []
|
etuds = []
|
||||||
for etudid in ins:
|
for etudid in ins:
|
||||||
etuds.append(context.getEtudInfo(etudid=etudid, filled=True)[0])
|
etuds.append(scolars.get_etud_info(etudid=etudid, filled=True)[0])
|
||||||
etuds.sort(lambda x, y: cmp(x["nom"], y["nom"]))
|
etuds.sort(lambda x, y: cmp(x["nom"], y["nom"]))
|
||||||
return ", ".join(
|
return ", ".join(
|
||||||
[
|
[
|
||||||
|
@ -482,7 +482,8 @@ def ficheEtud(context, etudid=None, REQUEST=None):
|
|||||||
|
|
||||||
</div>
|
</div>
|
||||||
"""
|
"""
|
||||||
header = html_sco_header.sco_header(context,
|
header = html_sco_header.sco_header(
|
||||||
|
context,
|
||||||
REQUEST,
|
REQUEST,
|
||||||
page_title="Fiche étudiant %(prenom)s %(nom)s" % info,
|
page_title="Fiche étudiant %(prenom)s %(nom)s" % info,
|
||||||
cssstyles=["libjs/jQuery-tagEditor/jquery.tag-editor.css"],
|
cssstyles=["libjs/jQuery-tagEditor/jquery.tag-editor.css"],
|
||||||
@ -504,7 +505,7 @@ def menus_etud(context, REQUEST=None):
|
|||||||
return ""
|
return ""
|
||||||
authuser = REQUEST.AUTHENTICATED_USER
|
authuser = REQUEST.AUTHENTICATED_USER
|
||||||
|
|
||||||
etud = context.getEtudInfo(filled=1, REQUEST=REQUEST)[0]
|
etud = scolars.get_etud_info(filled=1, REQUEST=REQUEST)[0]
|
||||||
|
|
||||||
menuEtud = [
|
menuEtud = [
|
||||||
{
|
{
|
||||||
@ -555,7 +556,7 @@ def etud_info_html(context, etudid, with_photo="1", REQUEST=None, debug=False):
|
|||||||
# log('etud_info_html: formsemestre_id=%s' % formsemestre_id)
|
# log('etud_info_html: formsemestre_id=%s' % formsemestre_id)
|
||||||
|
|
||||||
with_photo = int(with_photo)
|
with_photo = int(with_photo)
|
||||||
etud = context.getEtudInfo(filled=1, REQUEST=REQUEST)[0]
|
etud = scolars.get_etud_info(filled=1, REQUEST=REQUEST)[0]
|
||||||
photo_html = sco_photos.etud_photo_html(
|
photo_html = sco_photos.etud_photo_html(
|
||||||
context, etud, title="fiche de " + etud["nom"], REQUEST=REQUEST
|
context, etud, title="fiche de " + etud["nom"], REQUEST=REQUEST
|
||||||
)
|
)
|
||||||
|
@ -117,7 +117,7 @@ def get_photo_image(context, etudid=None, size="small", REQUEST=None):
|
|||||||
if not etudid:
|
if not etudid:
|
||||||
filename = UNKNOWN_IMAGE_PATH
|
filename = UNKNOWN_IMAGE_PATH
|
||||||
else:
|
else:
|
||||||
etud = context.getEtudInfo(etudid=etudid, filled=1, REQUEST=REQUEST)[0]
|
etud = scolars.get_etud_info(etudid=etudid, filled=1, REQUEST=REQUEST)[0]
|
||||||
filename = photo_pathname(context, etud, size=size)
|
filename = photo_pathname(context, etud, size=size)
|
||||||
if not filename:
|
if not filename:
|
||||||
filename = UNKNOWN_IMAGE_PATH
|
filename = UNKNOWN_IMAGE_PATH
|
||||||
@ -172,7 +172,7 @@ def etud_photo_html(
|
|||||||
"""
|
"""
|
||||||
if not etud:
|
if not etud:
|
||||||
if etudid:
|
if etudid:
|
||||||
etud = context.getEtudInfo(etudid=etudid, filled=1, REQUEST=REQUEST)[0]
|
etud = scolars.get_etud_info(etudid=etudid, filled=1, REQUEST=REQUEST)[0]
|
||||||
else:
|
else:
|
||||||
raise ValueError("etud_photo_html: either etud or etudid must be specified")
|
raise ValueError("etud_photo_html: either etud or etudid must be specified")
|
||||||
photo_url = etud_photo_url(context, etud, size=size, REQUEST=REQUEST)
|
photo_url = etud_photo_url(context, etud, size=size, REQUEST=REQUEST)
|
||||||
|
@ -158,7 +158,7 @@ def _getEtudInfoGroupes(context, group_ids, etat=None):
|
|||||||
for group_id in group_ids:
|
for group_id in group_ids:
|
||||||
members = sco_groups.get_group_members(context, group_id, etat=etat)
|
members = sco_groups.get_group_members(context, group_id, etat=etat)
|
||||||
for m in members:
|
for m in members:
|
||||||
etud = context.getEtudInfo(etudid=m["etudid"], filled=True)[0]
|
etud = scolars.get_etud_info(etudid=m["etudid"], filled=True)[0]
|
||||||
etuds.append(etud)
|
etuds.append(etud)
|
||||||
|
|
||||||
return etuds
|
return etuds
|
||||||
|
@ -71,7 +71,7 @@ def feuille_preparation_jury(context, formsemestre_id, REQUEST):
|
|||||||
nbabs = {}
|
nbabs = {}
|
||||||
nbabsjust = {}
|
nbabsjust = {}
|
||||||
for etudid in etudids:
|
for etudid in etudids:
|
||||||
info = context.getEtudInfo(etudid=etudid, filled=True)
|
info = scolars.get_etud_info(etudid=etudid, filled=True)
|
||||||
if not info:
|
if not info:
|
||||||
continue # should not occur...
|
continue # should not occur...
|
||||||
etud = info[0]
|
etud = info[0]
|
||||||
|
@ -226,7 +226,7 @@ def dict_pvjury(
|
|||||||
L = []
|
L = []
|
||||||
D = {} # même chose que L, mais { etudid : dec }
|
D = {} # même chose que L, mais { etudid : dec }
|
||||||
for etudid in etudids:
|
for etudid in etudids:
|
||||||
etud = context.getEtudInfo(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)
|
||||||
semestre_non_terminal = semestre_non_terminal or Se.semestre_non_terminal
|
semestre_non_terminal = semestre_non_terminal or Se.semestre_non_terminal
|
||||||
d = {}
|
d = {}
|
||||||
@ -327,7 +327,7 @@ def dict_pvjury(
|
|||||||
max_date = date
|
max_date = date
|
||||||
# Code semestre precedent
|
# Code semestre precedent
|
||||||
if with_prev: # optionnel car un peu long...
|
if with_prev: # optionnel car un peu long...
|
||||||
info = context.getEtudInfo(etudid=etudid, filled=True)
|
info = scolars.get_etud_info(etudid=etudid, filled=True)
|
||||||
if not info:
|
if not info:
|
||||||
continue # should not occur
|
continue # should not occur
|
||||||
etud = info[0]
|
etud = info[0]
|
||||||
@ -614,7 +614,7 @@ def formsemestre_pvjury_pdf(
|
|||||||
groups_infos = None
|
groups_infos = None
|
||||||
if etudid:
|
if etudid:
|
||||||
# PV pour ce seul étudiant:
|
# PV pour ce seul étudiant:
|
||||||
etud = context.getEtudInfo(etudid=etudid, filled=1)[0]
|
etud = scolars.get_etud_info(etudid=etudid, filled=1)[0]
|
||||||
etuddescr = '<a class="discretelink" href="ficheEtud?etudid=%s">%s</a>' % (
|
etuddescr = '<a class="discretelink" href="ficheEtud?etudid=%s">%s</a>' % (
|
||||||
etudid,
|
etudid,
|
||||||
etud["nomprenom"],
|
etud["nomprenom"],
|
||||||
|
@ -367,7 +367,7 @@ def pdf_lettres_individuelles(
|
|||||||
npages = 0
|
npages = 0
|
||||||
for e in dpv["decisions"]:
|
for e in dpv["decisions"]:
|
||||||
if e["decision_sem"]: # decision prise
|
if e["decision_sem"]: # decision prise
|
||||||
etud = context.getEtudInfo(e["identite"]["etudid"], filled=True)[0]
|
etud = scolars.get_etud_info(e["identite"]["etudid"], filled=True)[0]
|
||||||
params["nomEtud"] = etud["nomprenom"]
|
params["nomEtud"] = etud["nomprenom"]
|
||||||
bookmarks[npages + 1] = scu.suppress_accents(etud["nomprenom"])
|
bookmarks[npages + 1] = scu.suppress_accents(etud["nomprenom"])
|
||||||
objects += pdf_lettre_individuelle(
|
objects += pdf_lettre_individuelle(
|
||||||
|
@ -63,7 +63,7 @@ def formsemestre_etuds_stats(context, sem, only_primo=False):
|
|||||||
etuds = []
|
etuds = []
|
||||||
for t in T:
|
for t in T:
|
||||||
etudid = t[-1]
|
etudid = t[-1]
|
||||||
etud = context.getEtudInfo(etudid=etudid, filled=True)[0]
|
etud = scolars.get_etud_info(etudid=etudid, filled=True)[0]
|
||||||
decision = nt.get_etud_decision_sem(etudid)
|
decision = nt.get_etud_decision_sem(etudid)
|
||||||
if decision:
|
if decision:
|
||||||
etud["codedecision"] = decision["code"]
|
etud["codedecision"] = decision["code"]
|
||||||
@ -418,7 +418,7 @@ def table_suivi_cohorte(
|
|||||||
civilites = set()
|
civilites = set()
|
||||||
statuts = set()
|
statuts = set()
|
||||||
for etudid in etudids:
|
for etudid in etudids:
|
||||||
etud = context.getEtudInfo(etudid=etudid, filled=True)[0]
|
etud = scolars.get_etud_info(etudid=etudid, filled=True)[0]
|
||||||
bacspe = etud["bac"] + " / " + etud["specialite"]
|
bacspe = etud["bac"] + " / " + etud["specialite"]
|
||||||
# sélection sur bac:
|
# sélection sur bac:
|
||||||
if (
|
if (
|
||||||
@ -900,7 +900,7 @@ def _descr_etud_set(context, etudids):
|
|||||||
"textual html description of a set of etudids"
|
"textual html description of a set of etudids"
|
||||||
etuds = []
|
etuds = []
|
||||||
for etudid in etudids:
|
for etudid in etudids:
|
||||||
etuds.append(context.getEtudInfo(etudid=etudid, filled=True)[0])
|
etuds.append(scolars.get_etud_info(etudid=etudid, filled=True)[0])
|
||||||
# sort by name
|
# sort by name
|
||||||
etuds.sort(lambda x, y: cmp(x["nom"], y["nom"]))
|
etuds.sort(lambda x, y: cmp(x["nom"], y["nom"]))
|
||||||
return ", ".join([e["nomprenom"] for e in etuds])
|
return ", ".join([e["nomprenom"] for e in etuds])
|
||||||
@ -1032,7 +1032,7 @@ def tsp_etud_list(
|
|||||||
civilites = set()
|
civilites = set()
|
||||||
statuts = set()
|
statuts = set()
|
||||||
for etudid in etudids:
|
for etudid in etudids:
|
||||||
etud = context.getEtudInfo(etudid=etudid, filled=True)[0]
|
etud = scolars.get_etud_info(etudid=etudid, filled=True)[0]
|
||||||
bacspe = etud["bac"] + " / " + etud["specialite"]
|
bacspe = etud["bac"] + " / " + etud["specialite"]
|
||||||
# sélection sur bac, primo, ...:
|
# sélection sur bac, primo, ...:
|
||||||
if (
|
if (
|
||||||
|
@ -265,7 +265,7 @@ def do_evaluation_upload_xls(context, REQUEST):
|
|||||||
)
|
)
|
||||||
if len(invalids) < 25:
|
if len(invalids) < 25:
|
||||||
etudsnames = [
|
etudsnames = [
|
||||||
context.getEtudInfo(etudid=etudid, filled=True)[0]["nomprenom"]
|
scolars.get_etud_info(etudid=etudid, filled=True)[0]["nomprenom"]
|
||||||
for etudid in invalids
|
for etudid in invalids
|
||||||
]
|
]
|
||||||
diag.append("Notes invalides pour: " + ", ".join(etudsnames))
|
diag.append("Notes invalides pour: " + ", ".join(etudsnames))
|
||||||
|
@ -195,7 +195,7 @@ def formsemestre_synchro_etuds(
|
|||||||
if a_desinscrire or a_desinscrire_without_key:
|
if a_desinscrire or a_desinscrire_without_key:
|
||||||
H.append("<h3>Etudiants à désinscrire :</h3><ol>")
|
H.append("<h3>Etudiants à désinscrire :</h3><ol>")
|
||||||
for key in a_desinscrire:
|
for key in a_desinscrire:
|
||||||
etud = context.getEtudInfo(filled=1, code_nip=key)[0]
|
etud = scolars.get_etud_info(filled=1, code_nip=key)[0]
|
||||||
H.append('<li class="desinscription">%(nomprenom)s</li>' % etud)
|
H.append('<li class="desinscription">%(nomprenom)s</li>' % etud)
|
||||||
for etudid in a_desinscrire_without_key:
|
for etudid in a_desinscrire_without_key:
|
||||||
etud = inscrits_without_key_all[etudid]
|
etud = inscrits_without_key_all[etudid]
|
||||||
@ -229,7 +229,7 @@ def formsemestre_synchro_etuds(
|
|||||||
|
|
||||||
# Conversions des listes de codes NIP en listes de codes etudid
|
# Conversions des listes de codes NIP en listes de codes etudid
|
||||||
def nip2etudid(code_nip):
|
def nip2etudid(code_nip):
|
||||||
etud = context.getEtudInfo(code_nip=code_nip)[0]
|
etud = scolars.get_etud_info(code_nip=code_nip)[0]
|
||||||
return etud["etudid"]
|
return etud["etudid"]
|
||||||
|
|
||||||
etudids_a_inscrire = [nip2etudid(x) for x in a_inscrire]
|
etudids_a_inscrire = [nip2etudid(x) for x in a_inscrire]
|
||||||
@ -807,7 +807,7 @@ def formsemestre_import_etud_admission(
|
|||||||
|
|
||||||
for i in ins:
|
for i in ins:
|
||||||
etudid = i["etudid"]
|
etudid = i["etudid"]
|
||||||
info = context.getEtudInfo(etudid=etudid, filled=1)[0]
|
info = scolars.get_etud_info(etudid=etudid, filled=1)[0]
|
||||||
code_nip = info["code_nip"]
|
code_nip = info["code_nip"]
|
||||||
if not code_nip:
|
if not code_nip:
|
||||||
no_nip.append(etudid)
|
no_nip.append(etudid)
|
||||||
|
@ -270,7 +270,7 @@ def get_etud_tagged_modules(context, etudid, tagname):
|
|||||||
Cherche dans tous les semestres dans lesquel l'étudiant est ou a été inscrit.
|
Cherche dans tous les semestres dans lesquel l'étudiant est ou a été inscrit.
|
||||||
Construit la liste des modules avec le tag donné par tagname
|
Construit la liste des modules avec le tag donné par tagname
|
||||||
"""
|
"""
|
||||||
etud = context.getEtudInfo(etudid=etudid, filled=True)[0]
|
etud = scolars.get_etud_info(etudid=etudid, filled=True)[0]
|
||||||
R = []
|
R = []
|
||||||
for sem in etud["sems"]:
|
for sem in etud["sems"]:
|
||||||
nt = sco_core.get_notes_cache(
|
nt = sco_core.get_notes_cache(
|
||||||
@ -337,7 +337,7 @@ from sco_tag_module import *
|
|||||||
context = go_dept(app, 'GEA').Notes
|
context = go_dept(app, 'GEA').Notes
|
||||||
|
|
||||||
etudid='GEAEID80687'
|
etudid='GEAEID80687'
|
||||||
etud = context.getEtudInfo(etudid=etudid, filled=True)[0]
|
etud = scolars.get_etud_info( etudid=etudid, filled=True)[0]
|
||||||
sem = etud['sems'][0]
|
sem = etud['sems'][0]
|
||||||
|
|
||||||
[ tm['moy'] for tm in get_etud_tagged_modules(context, etudid, 'allo') ]
|
[ tm['moy'] for tm in get_etud_tagged_modules(context, etudid, 'allo') ]
|
||||||
|
@ -621,7 +621,7 @@ def zip_excel_import_files(
|
|||||||
etudid = Filename2Etud[normname]
|
etudid = Filename2Etud[normname]
|
||||||
# ok, store photo
|
# ok, store photo
|
||||||
try:
|
try:
|
||||||
etud = context.getEtudInfo(etudid=etudid, filled=True)[0]
|
etud = scolars.get_etud_info(etudid=etudid, filled=True)[0]
|
||||||
del Filename2Etud[normname]
|
del Filename2Etud[normname]
|
||||||
except:
|
except:
|
||||||
raise ScoValueError("ID étudiant invalide: %s" % etudid)
|
raise ScoValueError("ID étudiant invalide: %s" % etudid)
|
||||||
|
@ -214,12 +214,13 @@ def external_ue_create_form(context, formsemestre_id, etudid, REQUEST=None):
|
|||||||
if not sem["resp_can_edit"] or str(authuser) not in sem["responsables"]:
|
if not sem["resp_can_edit"] or str(authuser) not in sem["responsables"]:
|
||||||
raise AccessDenied("vous n'avez pas le droit d'effectuer cette opération")
|
raise AccessDenied("vous n'avez pas le droit d'effectuer cette opération")
|
||||||
|
|
||||||
etud = context.getEtudInfo(etudid=etudid, filled=1, REQUEST=REQUEST)[0]
|
etud = scolars.get_etud_info(etudid=etudid, filled=1, REQUEST=REQUEST)[0]
|
||||||
formation_id = sem["formation_id"]
|
formation_id = sem["formation_id"]
|
||||||
existing_external_ue = get_existing_external_ue(context, formation_id)
|
existing_external_ue = get_existing_external_ue(context, formation_id)
|
||||||
|
|
||||||
H = [
|
H = [
|
||||||
html_sco_header.html_sem_header(context,
|
html_sco_header.html_sem_header(
|
||||||
|
context,
|
||||||
REQUEST,
|
REQUEST,
|
||||||
"Ajout d'une UE externe pour %(nomprenom)s" % etud,
|
"Ajout d'une UE externe pour %(nomprenom)s" % etud,
|
||||||
sem,
|
sem,
|
||||||
|
@ -399,7 +399,7 @@ def identite_edit(cnx, args, context=None, REQUEST=None):
|
|||||||
|
|
||||||
# Notification du changement par e-mail:
|
# Notification du changement par e-mail:
|
||||||
if notify_to:
|
if notify_to:
|
||||||
etud = context.getEtudInfo(etudid=args["etudid"], filled=True)[0]
|
etud = getEtudInfo(context, etudid=args["etudid"], filled=True)[0]
|
||||||
after = identite_list(cnx, {"etudid": args["etudid"]})[0]
|
after = identite_list(cnx, {"etudid": args["etudid"]})[0]
|
||||||
notify_etud_change(
|
notify_etud_change(
|
||||||
context,
|
context,
|
||||||
@ -513,7 +513,7 @@ def adresse_edit(cnx, args, context=None):
|
|||||||
|
|
||||||
# Notification du changement par e-mail:
|
# Notification du changement par e-mail:
|
||||||
if notify_to:
|
if notify_to:
|
||||||
etud = context.getEtudInfo(etudid=args["etudid"], filled=True)[0]
|
etud = getEtudInfo(context, etudid=args["etudid"], filled=True)[0]
|
||||||
after = adresse_list(cnx, {"etudid": args["etudid"]})[0]
|
after = adresse_list(cnx, {"etudid": args["etudid"]})[0]
|
||||||
notify_etud_change(
|
notify_etud_change(
|
||||||
context,
|
context,
|
||||||
@ -652,6 +652,23 @@ def make_etud_args(etudid=None, code_nip=None, REQUEST=None, raise_exc=True):
|
|||||||
return args
|
return args
|
||||||
|
|
||||||
|
|
||||||
|
def get_etud_info(etudid=False, code_nip=False, filled=False, REQUEST=None):
|
||||||
|
"""infos sur un etudiant (API)
|
||||||
|
On peut specifier etudid ou conde_nip
|
||||||
|
ou bien cherche dans REQUEST.form: etudid, code_nip, code_ine
|
||||||
|
(dans cet ordre).
|
||||||
|
"""
|
||||||
|
if etudid is None:
|
||||||
|
return []
|
||||||
|
cnx = context.GetDBConnexion()
|
||||||
|
args = make_etud_args(etudid=etudid, code_nip=code_nip, REQUEST=REQUEST)
|
||||||
|
etud = scolars.etudident_list(cnx, args=args)
|
||||||
|
|
||||||
|
if filled:
|
||||||
|
fillEtudsInfo(context, etud)
|
||||||
|
return etud
|
||||||
|
|
||||||
|
|
||||||
def create_etud(context, cnx, args={}, REQUEST=None):
|
def create_etud(context, cnx, args={}, REQUEST=None):
|
||||||
"""Creation d'un étudiant. génère aussi évenement et "news".
|
"""Creation d'un étudiant. génère aussi évenement et "news".
|
||||||
|
|
||||||
|
@ -718,9 +718,11 @@ def SignaleAbsenceGrHebdo(
|
|||||||
)
|
)
|
||||||
|
|
||||||
formsemestre_id = groups_infos.formsemestre_id
|
formsemestre_id = groups_infos.formsemestre_id
|
||||||
require_module = sco_preferences.get_preference(context, "abs_require_module", formsemestre_id)
|
require_module = sco_preferences.get_preference(
|
||||||
|
context, "abs_require_module", formsemestre_id
|
||||||
|
)
|
||||||
etuds = [
|
etuds = [
|
||||||
context.getEtudInfo(etudid=m["etudid"], filled=True)[0]
|
scolars.get_etud_info(etudid=m["etudid"], filled=True)[0]
|
||||||
for m in groups_infos.members
|
for m in groups_infos.members
|
||||||
]
|
]
|
||||||
# Restreint aux inscrits au module sélectionné
|
# Restreint aux inscrits au module sélectionné
|
||||||
@ -880,9 +882,11 @@ def SignaleAbsenceGrSemestre(
|
|||||||
+ context.sco_footer(REQUEST)
|
+ context.sco_footer(REQUEST)
|
||||||
)
|
)
|
||||||
formsemestre_id = groups_infos.formsemestre_id
|
formsemestre_id = groups_infos.formsemestre_id
|
||||||
require_module = sco_preferences.get_preference(context, "abs_require_module", formsemestre_id)
|
require_module = sco_preferences.get_preference(
|
||||||
|
context, "abs_require_module", formsemestre_id
|
||||||
|
)
|
||||||
etuds = [
|
etuds = [
|
||||||
context.getEtudInfo(etudid=m["etudid"], filled=True)[0]
|
scolars.get_etud_info(etudid=m["etudid"], filled=True)[0]
|
||||||
for m in groups_infos.members
|
for m in groups_infos.members
|
||||||
]
|
]
|
||||||
# Restreint aux inscrits au module sélectionné
|
# Restreint aux inscrits au module sélectionné
|
||||||
@ -1380,7 +1384,7 @@ def EtatAbsencesGr(
|
|||||||
# Construit tableau (etudid, statut, nomprenom, nbJust, nbNonJust, NbTotal)
|
# Construit tableau (etudid, statut, nomprenom, nbJust, nbNonJust, NbTotal)
|
||||||
T = []
|
T = []
|
||||||
for m in groups_infos.members:
|
for m in groups_infos.members:
|
||||||
etud = context.getEtudInfo(etudid=m["etudid"], filled=True)[0]
|
etud = scolars.get_etud_info(etudid=m["etudid"], filled=True)[0]
|
||||||
nbabs = context.CountAbs(etudid=etud["etudid"], debut=datedebut, fin=datefin)
|
nbabs = context.CountAbs(etudid=etud["etudid"], debut=datedebut, fin=datefin)
|
||||||
nbabsjust = context.CountAbsJust(
|
nbabsjust = context.CountAbsJust(
|
||||||
etudid=etud["etudid"], debut=datedebut, fin=datefin
|
etudid=etud["etudid"], debut=datedebut, fin=datefin
|
||||||
@ -1604,7 +1608,7 @@ def AddBilletAbsence(
|
|||||||
"""
|
"""
|
||||||
t0 = time.time()
|
t0 = time.time()
|
||||||
# check etudid
|
# check etudid
|
||||||
etuds = context.getEtudInfo(
|
etuds = scolars.get_etud_info(
|
||||||
etudid=etudid, code_nip=code_nip, REQUEST=REQUEST, filled=True
|
etudid=etudid, code_nip=code_nip, REQUEST=REQUEST, filled=True
|
||||||
)
|
)
|
||||||
if not etuds:
|
if not etuds:
|
||||||
@ -1650,7 +1654,7 @@ def AddBilletAbsenceForm(context, etudid, REQUEST=None):
|
|||||||
"""Formulaire ajout billet (pour tests seulement, le vrai formulaire accessible aux etudiants
|
"""Formulaire ajout billet (pour tests seulement, le vrai formulaire accessible aux etudiants
|
||||||
étant sur le portail étudiant).
|
étant sur le portail étudiant).
|
||||||
"""
|
"""
|
||||||
etud = context.getEtudInfo(etudid=etudid, filled=1, REQUEST=REQUEST)[0]
|
etud = scolars.get_etud_info(etudid=etudid, filled=1, REQUEST=REQUEST)[0]
|
||||||
H = [
|
H = [
|
||||||
html_sco_header.sco_header(
|
html_sco_header.sco_header(
|
||||||
context, REQUEST, page_title="Billet d'absence de %s" % etud["nomprenom"]
|
context, REQUEST, page_title="Billet d'absence de %s" % etud["nomprenom"]
|
||||||
@ -1719,7 +1723,7 @@ def _tableBillets(context, billets, etud=None, title=""):
|
|||||||
b["etat_str"] = "ok"
|
b["etat_str"] = "ok"
|
||||||
if not etud:
|
if not etud:
|
||||||
# ajoute info etudiant
|
# ajoute info etudiant
|
||||||
e = context.getEtudInfo(etudid=b["etudid"], filled=1)
|
e = scolars.get_etud_info(etudid=b["etudid"], filled=1)
|
||||||
if not e:
|
if not e:
|
||||||
b["nomprenom"] = "???" # should not occur
|
b["nomprenom"] = "???" # should not occur
|
||||||
else:
|
else:
|
||||||
@ -1759,7 +1763,7 @@ def _tableBillets(context, billets, etud=None, title=""):
|
|||||||
@scodoc7func(context)
|
@scodoc7func(context)
|
||||||
def listeBilletsEtud(context, etudid=False, REQUEST=None, format="html"):
|
def listeBilletsEtud(context, etudid=False, REQUEST=None, format="html"):
|
||||||
"""Liste billets pour un etudiant"""
|
"""Liste billets pour un etudiant"""
|
||||||
etuds = context.getEtudInfo(etudid=etudid, filled=1, REQUEST=REQUEST)
|
etuds = scolars.get_etud_info(etudid=etudid, filled=1, REQUEST=REQUEST)
|
||||||
if not etuds:
|
if not etuds:
|
||||||
return scu.log_unknown_etud(context, format=format, REQUEST=REQUEST)
|
return scu.log_unknown_etud(context, format=format, REQUEST=REQUEST)
|
||||||
|
|
||||||
@ -1902,7 +1906,7 @@ def ProcessBilletAbsenceForm(context, billet_id, REQUEST=None):
|
|||||||
)
|
)
|
||||||
billet = billets[0]
|
billet = billets[0]
|
||||||
etudid = billet["etudid"]
|
etudid = billet["etudid"]
|
||||||
etud = context.getEtudInfo(etudid=etudid, filled=1, REQUEST=REQUEST)[0]
|
etud = scolars.get_etud_info(etudid=etudid, filled=1, REQUEST=REQUEST)[0]
|
||||||
|
|
||||||
H = [
|
H = [
|
||||||
html_sco_header.sco_header(
|
html_sco_header.sco_header(
|
||||||
@ -1983,7 +1987,7 @@ def ProcessBilletAbsenceForm(context, billet_id, REQUEST=None):
|
|||||||
def XMLgetAbsEtud(context, beg_date="", end_date="", REQUEST=None):
|
def XMLgetAbsEtud(context, beg_date="", end_date="", REQUEST=None):
|
||||||
"""returns list of absences in date interval"""
|
"""returns list of absences in date interval"""
|
||||||
t0 = time.time()
|
t0 = time.time()
|
||||||
etud = context.getEtudInfo(REQUEST=REQUEST)[0]
|
etud = scolars.get_etud_info(REQUEST=REQUEST)[0]
|
||||||
exp = re.compile(r"^(\d{4})\D?(0[1-9]|1[0-2])\D?([12]\d|0[1-9]|3[01])$")
|
exp = re.compile(r"^(\d{4})\D?(0[1-9]|1[0-2])\D?([12]\d|0[1-9]|3[01])$")
|
||||||
if not exp.match(beg_date):
|
if not exp.match(beg_date):
|
||||||
raise ScoValueError("invalid date: %s" % beg_date)
|
raise ScoValueError("invalid date: %s" % beg_date)
|
||||||
|
@ -1499,7 +1499,7 @@ def view_module_abs(context, REQUEST, moduleimpl_id, format="html"):
|
|||||||
fin=fin_sem,
|
fin=fin_sem,
|
||||||
moduleimpl_id=moduleimpl_id,
|
moduleimpl_id=moduleimpl_id,
|
||||||
)
|
)
|
||||||
etud = context.getEtudInfo(etudid=etudid, filled=True)[0]
|
etud = scolars.get_etud_info(etudid=etudid, filled=True)[0]
|
||||||
T.append(
|
T.append(
|
||||||
{
|
{
|
||||||
"nomprenom": etud["nomprenom"],
|
"nomprenom": etud["nomprenom"],
|
||||||
@ -1811,7 +1811,7 @@ def do_formsemestre_inscription_listinscrits(
|
|||||||
context, formsemestre_id, format=None, REQUEST=None
|
context, formsemestre_id, format=None, REQUEST=None
|
||||||
):
|
):
|
||||||
"""Liste les inscrits (état I) à ce semestre et cache le résultat"""
|
"""Liste les inscrits (état I) à ce semestre et cache le résultat"""
|
||||||
cache = sco_core.get_formsemestre_inscription_cache(context, )
|
cache = context.get_formsemestre_inscription_cache()
|
||||||
r = cache.get(formsemestre_id)
|
r = cache.get(formsemestre_id)
|
||||||
if r is None:
|
if r is None:
|
||||||
# retreive list
|
# retreive list
|
||||||
@ -1834,17 +1834,6 @@ def do_formsemestre_inscription_edit(context, args=None, formsemestre_id=None):
|
|||||||
) # > modif inscription semestre (demission ?)
|
) # > modif inscription semestre (demission ?)
|
||||||
|
|
||||||
|
|
||||||
# Cache inscriptions semestres
|
|
||||||
def get_formsemestre_inscription_cache(context, format=None):
|
|
||||||
u = context.GetDBConnexionString()
|
|
||||||
if CACHE_formsemestre_inscription.has_key(u):
|
|
||||||
return CACHE_formsemestre_inscription[u]
|
|
||||||
else:
|
|
||||||
log("get_formsemestre_inscription_cache: new simpleCache")
|
|
||||||
CACHE_formsemestre_inscription[u] = sco_cache.simpleCache()
|
|
||||||
return CACHE_formsemestre_inscription[u]
|
|
||||||
|
|
||||||
|
|
||||||
@bp.route("/formsemestre_desinscription")
|
@bp.route("/formsemestre_desinscription")
|
||||||
@permission_required(Permission.ScoImplement)
|
@permission_required(Permission.ScoImplement)
|
||||||
@scodoc7func(context)
|
@scodoc7func(context)
|
||||||
@ -1874,7 +1863,7 @@ def formsemestre_desinscription(
|
|||||||
% (etudid, formsemestre_id)
|
% (etudid, formsemestre_id)
|
||||||
)
|
)
|
||||||
if not dialog_confirmed:
|
if not dialog_confirmed:
|
||||||
etud = context.getEtudInfo(etudid=etudid, filled=1)[0]
|
etud = scolars.get_etud_info(etudid=etudid, filled=1)[0]
|
||||||
if sem["modalite"] != "EXT":
|
if sem["modalite"] != "EXT":
|
||||||
msg_ext = """
|
msg_ext = """
|
||||||
<p>%s sera désinscrit de tous les modules du semestre %s (%s - %s).</p>
|
<p>%s sera désinscrit de tous les modules du semestre %s (%s - %s).</p>
|
||||||
@ -2573,6 +2562,25 @@ def formsemestre_bulletins_pdf(
|
|||||||
return scu.sendPDFFile(REQUEST, pdfdoc, filename)
|
return scu.sendPDFFile(REQUEST, pdfdoc, filename)
|
||||||
|
|
||||||
|
|
||||||
|
@bp.route("/formsemestre_bulletins_pdf_choice")
|
||||||
|
@permission_required(Permission.ScoView)
|
||||||
|
@scodoc7func(context)
|
||||||
|
def formsemestre_bulletins_pdf_choice(context, REQUEST, formsemestre_id, version=None):
|
||||||
|
"""Choix version puis envois classeur bulletins pdf"""
|
||||||
|
if version:
|
||||||
|
pdfdoc, filename = sco_bulletins_pdf.get_formsemestre_bulletins_pdf(
|
||||||
|
context, formsemestre_id, REQUEST, version=version
|
||||||
|
)
|
||||||
|
return scu.sendPDFFile(REQUEST, pdfdoc, filename)
|
||||||
|
return formsemestre_bulletins_choice(
|
||||||
|
context,
|
||||||
|
REQUEST,
|
||||||
|
formsemestre_id,
|
||||||
|
title="Choisir la version des bulletins à générer",
|
||||||
|
explanation=expl_bull,
|
||||||
|
)
|
||||||
|
|
||||||
|
|
||||||
@bp.route("/etud_bulletins_pdf")
|
@bp.route("/etud_bulletins_pdf")
|
||||||
@permission_required(Permission.ScoView)
|
@permission_required(Permission.ScoView)
|
||||||
@scodoc7func(context)
|
@scodoc7func(context)
|
||||||
@ -2584,18 +2592,70 @@ def etud_bulletins_pdf(context, etudid, REQUEST, version="selectedevals"):
|
|||||||
return scu.sendPDFFile(REQUEST, pdfdoc, filename)
|
return scu.sendPDFFile(REQUEST, pdfdoc, filename)
|
||||||
|
|
||||||
|
|
||||||
sco_publish(
|
@bp.route("/formsemestre_bulletins_mailetuds_choice")
|
||||||
"/formsemestre_bulletins_pdf_choice",
|
@permission_required(Permission.ScoView)
|
||||||
sco_bulletins.formsemestre_bulletins_pdf_choice,
|
@scodoc7func(context)
|
||||||
Permission.ScoView,
|
def formsemestre_bulletins_mailetuds_choice(
|
||||||
|
context,
|
||||||
|
REQUEST,
|
||||||
|
formsemestre_id,
|
||||||
|
version=None,
|
||||||
|
dialog_confirmed=False,
|
||||||
|
prefer_mail_perso=0,
|
||||||
|
):
|
||||||
|
"""Choix version puis envois classeur bulletins pdf"""
|
||||||
|
if version:
|
||||||
|
return context.formsemestre_bulletins_mailetuds(
|
||||||
|
formsemestre_id,
|
||||||
|
REQUEST,
|
||||||
|
version=version,
|
||||||
|
dialog_confirmed=dialog_confirmed,
|
||||||
|
prefer_mail_perso=prefer_mail_perso,
|
||||||
)
|
)
|
||||||
sco_publish(
|
expl_bull = """Versions des bulletins:<ul><li><bf>courte</bf>: moyennes des modules</li><li><bf>intermédiaire</bf>: moyennes des modules et notes des évaluations sélectionnées</li><li><bf>complète</bf>: toutes les notes</li><ul>"""
|
||||||
"/formsemestre_bulletins_mailetuds_choice",
|
return formsemestre_bulletins_choice(
|
||||||
sco_bulletins.formsemestre_bulletins_mailetuds_choice,
|
context,
|
||||||
Permission.ScoView,
|
REQUEST,
|
||||||
|
formsemestre_id,
|
||||||
|
title="Choisir la version des bulletins à envoyer par mail",
|
||||||
|
explanation="Chaque étudiant ayant une adresse mail connue de ScoDoc recevra une copie PDF de son bulletin de notes, dans la version choisie.</p><p>"
|
||||||
|
+ expl_bull,
|
||||||
|
choose_mail=True,
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|
||||||
|
def formsemestre_bulletins_choice(
|
||||||
|
context, REQUEST, formsemestre_id, title="", explanation="", choose_mail=False
|
||||||
|
):
|
||||||
|
"""Choix d'une version de bulletin"""
|
||||||
|
sem = sco_formsemestre.get_formsemestre(context, formsemestre_id)
|
||||||
|
H = [
|
||||||
|
html_sco_header.html_sem_header(context, REQUEST, title, sem),
|
||||||
|
"""
|
||||||
|
<form name="f" method="GET" action="%s">
|
||||||
|
<input type="hidden" name="formsemestre_id" value="%s"></input>
|
||||||
|
"""
|
||||||
|
% (REQUEST.URL0, formsemestre_id),
|
||||||
|
]
|
||||||
|
H.append("""<select name="version" class="noprint">""")
|
||||||
|
for (v, e) in (
|
||||||
|
("short", "Version courte"),
|
||||||
|
("selectedevals", "Version intermédiaire"),
|
||||||
|
("long", "Version complète"),
|
||||||
|
):
|
||||||
|
H.append('<option value="%s">%s</option>' % (v, e))
|
||||||
|
|
||||||
|
H.append("""</select> <input type="submit" value="Générer"/>""")
|
||||||
|
if choose_mail:
|
||||||
|
H.append(
|
||||||
|
"""<div><input type="checkbox" name="prefer_mail_perso" value="1">Utiliser si possible les adresses personnelles</div>"""
|
||||||
|
)
|
||||||
|
|
||||||
|
H.append("""<p class="help">""" + explanation + """</p>""")
|
||||||
|
|
||||||
|
return "\n".join(H) + html_sco_header.sco_footer(context, REQUEST)
|
||||||
|
|
||||||
|
|
||||||
@bp.route("/formsemestre_bulletins_mailetuds")
|
@bp.route("/formsemestre_bulletins_mailetuds")
|
||||||
@permission_required(Permission.ScoView)
|
@permission_required(Permission.ScoView)
|
||||||
@scodoc7func(context)
|
@scodoc7func(context)
|
||||||
@ -2706,7 +2766,7 @@ def appreciation_add_form(
|
|||||||
logdb(REQUEST, cnx, method="appreciation_suppress", etudid=etudid, msg="")
|
logdb(REQUEST, cnx, method="appreciation_suppress", etudid=etudid, msg="")
|
||||||
return REQUEST.RESPONSE.redirect(bull_url)
|
return REQUEST.RESPONSE.redirect(bull_url)
|
||||||
#
|
#
|
||||||
etud = context.getEtudInfo(etudid=etudid, filled=1)[0]
|
etud = scolars.get_etud_info(etudid=etudid, filled=1)[0]
|
||||||
if id:
|
if id:
|
||||||
a = "Edition"
|
a = "Edition"
|
||||||
else:
|
else:
|
||||||
@ -3052,7 +3112,7 @@ def formsemestre_validation_suppress_etud(
|
|||||||
)
|
)
|
||||||
if not dialog_confirmed:
|
if not dialog_confirmed:
|
||||||
sem = sco_formsemestre.get_formsemestre(context, formsemestre_id)
|
sem = sco_formsemestre.get_formsemestre(context, formsemestre_id)
|
||||||
etud = context.getEtudInfo(etudid=etudid, filled=1)[0]
|
etud = scolars.get_etud_info(etudid=etudid, filled=1)[0]
|
||||||
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_etud_decision_sem
|
) # > get_etud_decision_sem
|
||||||
|
@ -256,7 +256,7 @@ def doc_preferences(context, REQUEST):
|
|||||||
@scodoc7func(context)
|
@scodoc7func(context)
|
||||||
def showEtudLog(context, etudid, format="html", REQUEST=None):
|
def showEtudLog(context, etudid, format="html", REQUEST=None):
|
||||||
"""Display log of operations on this student"""
|
"""Display log of operations on this student"""
|
||||||
etud = context.getEtudInfo(filled=1, REQUEST=REQUEST)[0]
|
etud = scolars.get_etud_info(filled=1, REQUEST=REQUEST)[0]
|
||||||
|
|
||||||
ops = scolars.list_scolog(context, etudid)
|
ops = scolars.list_scolog(context, etudid)
|
||||||
|
|
||||||
@ -336,18 +336,13 @@ def getEtudInfo(
|
|||||||
context, etudid=False, code_nip=False, filled=False, REQUEST=None, format=None
|
context, etudid=False, code_nip=False, filled=False, REQUEST=None, format=None
|
||||||
):
|
):
|
||||||
"""infos sur un etudiant (API)
|
"""infos sur un etudiant (API)
|
||||||
On peut specifier etudid
|
On peut specifier etudid ou code_nip
|
||||||
ou bien cherche dans REQUEST.form: etudid, code_nip, code_ine
|
ou bien cherche dans REQUEST.form: etudid, code_nip, code_ine
|
||||||
(dans cet ordre).
|
(dans cet ordre).
|
||||||
"""
|
"""
|
||||||
if etudid is None:
|
etud = scolars.get_etud_info(
|
||||||
return []
|
etudid=etudid, code_nip=code_nip, filled=filled, REQUEST=REQUEST
|
||||||
cnx = context.GetDBConnexion()
|
)
|
||||||
args = make_etud_args(etudid=etudid, code_nip=code_nip, REQUEST=REQUEST)
|
|
||||||
etud = scolars.etudident_list(cnx, args=args)
|
|
||||||
|
|
||||||
if filled:
|
|
||||||
fillEtudsInfo(context, etud)
|
|
||||||
if format is None:
|
if format is None:
|
||||||
return etud
|
return etud
|
||||||
else:
|
else:
|
||||||
@ -598,7 +593,7 @@ def doSuppressAnnotation(context, etudid, annotation_id, REQUEST):
|
|||||||
def formChangeCoordonnees(context, etudid, REQUEST):
|
def formChangeCoordonnees(context, etudid, REQUEST):
|
||||||
"edit coordonnees etudiant"
|
"edit coordonnees etudiant"
|
||||||
cnx = context.GetDBConnexion()
|
cnx = context.GetDBConnexion()
|
||||||
etud = context.getEtudInfo(etudid=etudid, filled=1, REQUEST=REQUEST)[0]
|
etud = scolars.get_etud_info(etudid=etudid, filled=1, REQUEST=REQUEST)[0]
|
||||||
adrs = scolars.adresse_list(cnx, {"etudid": etudid})
|
adrs = scolars.adresse_list(cnx, {"etudid": etudid})
|
||||||
if adrs:
|
if adrs:
|
||||||
adr = adrs[0]
|
adr = adrs[0]
|
||||||
@ -716,7 +711,7 @@ sco_publish("/etud_photo_html", sco_photos.etud_photo_html, Permission.ScoView)
|
|||||||
@scodoc7func(context)
|
@scodoc7func(context)
|
||||||
def etud_photo_orig_page(context, etudid=None, REQUEST=None):
|
def etud_photo_orig_page(context, etudid=None, REQUEST=None):
|
||||||
"Page with photo in orig. size"
|
"Page with photo in orig. size"
|
||||||
etud = context.getEtudInfo(etudid=etudid, filled=1, REQUEST=REQUEST)[0]
|
etud = scolars.get_etud_info(etudid=etudid, filled=1, REQUEST=REQUEST)[0]
|
||||||
H = [
|
H = [
|
||||||
html_sco_header.sco_header(context, REQUEST, page_title=etud["nomprenom"]),
|
html_sco_header.sco_header(context, REQUEST, page_title=etud["nomprenom"]),
|
||||||
"<h2>%s</h2>" % etud["nomprenom"],
|
"<h2>%s</h2>" % etud["nomprenom"],
|
||||||
@ -733,7 +728,7 @@ def etud_photo_orig_page(context, etudid=None, REQUEST=None):
|
|||||||
@scodoc7func(context)
|
@scodoc7func(context)
|
||||||
def formChangePhoto(context, etudid=None, REQUEST=None):
|
def formChangePhoto(context, etudid=None, REQUEST=None):
|
||||||
"""Formulaire changement photo étudiant"""
|
"""Formulaire changement photo étudiant"""
|
||||||
etud = context.getEtudInfo(filled=1, REQUEST=REQUEST)[0]
|
etud = scolars.get_etud_info(filled=1, REQUEST=REQUEST)[0]
|
||||||
if sco_photos.etud_photo_is_local(context, etud):
|
if sco_photos.etud_photo_is_local(context, etud):
|
||||||
etud["photoloc"] = "dans ScoDoc"
|
etud["photoloc"] = "dans ScoDoc"
|
||||||
else:
|
else:
|
||||||
@ -790,7 +785,7 @@ def formChangePhoto(context, etudid=None, REQUEST=None):
|
|||||||
@scodoc7func(context)
|
@scodoc7func(context)
|
||||||
def formSuppressPhoto(context, etudid=None, REQUEST=None, dialog_confirmed=False):
|
def formSuppressPhoto(context, etudid=None, REQUEST=None, dialog_confirmed=False):
|
||||||
"""Formulaire suppression photo étudiant"""
|
"""Formulaire suppression photo étudiant"""
|
||||||
etud = context.getEtudInfo(filled=1, REQUEST=REQUEST)[0]
|
etud = scolars.get_etud_info(filled=1, REQUEST=REQUEST)[0]
|
||||||
if not dialog_confirmed:
|
if not dialog_confirmed:
|
||||||
return scu.confirm_dialog(
|
return scu.confirm_dialog(
|
||||||
context,
|
context,
|
||||||
@ -846,7 +841,7 @@ def _formDem_of_Def(
|
|||||||
operation_method="",
|
operation_method="",
|
||||||
):
|
):
|
||||||
"Formulaire démission ou défaillance Etudiant"
|
"Formulaire démission ou défaillance Etudiant"
|
||||||
etud = context.getEtudInfo(etudid=etudid, filled=1, REQUEST=REQUEST)[0]
|
etud = scolars.get_etud_info(etudid=etudid, filled=1, REQUEST=REQUEST)[0]
|
||||||
sem = sco_formsemestre.get_formsemestre(context, formsemestre_id)
|
sem = sco_formsemestre.get_formsemestre(context, formsemestre_id)
|
||||||
if sem["etat"] != "1":
|
if sem["etat"] != "1":
|
||||||
raise ScoValueError("Modification impossible: semestre verrouille")
|
raise ScoValueError("Modification impossible: semestre verrouille")
|
||||||
@ -1020,7 +1015,7 @@ def _doCancelDem_or_Def(
|
|||||||
if sem["etat"] != "1":
|
if sem["etat"] != "1":
|
||||||
raise ScoValueError("Modification impossible: semestre verrouille")
|
raise ScoValueError("Modification impossible: semestre verrouille")
|
||||||
# verif
|
# verif
|
||||||
info = context.getEtudInfo(etudid, filled=True)[0]
|
info = scolars.get_etud_info(etudid, filled=True)[0]
|
||||||
ok = False
|
ok = False
|
||||||
for i in info["ins"]:
|
for i in info["ins"]:
|
||||||
if i["formsemestre_id"] == formsemestre_id:
|
if i["formsemestre_id"] == formsemestre_id:
|
||||||
|
Loading…
Reference in New Issue
Block a user