Compare commits

...

5 Commits

Author SHA1 Message Date
Jean-Marie PLACE 52a5fb68b5 add IUT LILLE logo 2022-03-03 18:24:53 +01:00
Jean-Marie PLACE b99839088b change templates 2022-03-03 18:24:52 +01:00
Jean-Marie PLACE aa0f9aab77 fichier des annotations multi ecoles 2022-03-03 18:24:52 +01:00
Jean-Marie PLACE a644fd2584 reprise pe 2022-03-03 18:24:47 +01:00
Jean-Marie PLACE 23b2c9ebce read multiple annotations 2022-03-03 18:17:58 +01:00
9 changed files with 402 additions and 166 deletions

View File

@ -218,6 +218,17 @@ def get_code_latex_avis_etudiant(
return code return code
def get_annotations(etudids, tag_annotation_pe):
annotations = {} # etudid -> ( general, [ ecole -> specifique ] )
ecoles = set()
for etudid in etudids: # parcours des étudiants
generale, specifiques = get_annotation_PE(etudid, tag_annotation_pe)
annotations[etudid] = (generale, specifiques)
for ecole in specifiques.keys():
ecoles.add(ecole)
return ecoles, annotations
# ---------------------------------------------------------------------------------------- # ----------------------------------------------------------------------------------------
def get_annotation_PE(etudid, tag_annotation_pe): def get_annotation_PE(etudid, tag_annotation_pe):
"""Renvoie l'annotation PE dans la liste de ces annotations ; """Renvoie l'annotation PE dans la liste de ces annotations ;
@ -225,6 +236,8 @@ def get_annotation_PE(etudid, tag_annotation_pe):
(cf. .get_preferences -> pe_tag_annotation_avis_latex). (cf. .get_preferences -> pe_tag_annotation_avis_latex).
Result: chaine unicode Result: chaine unicode
patch JMP
Result: <generale> { <ecole> : wspecifique> }
""" """
if tag_annotation_pe: if tag_annotation_pe:
cnx = ndb.GetDBConnexion() cnx = ndb.GetDBConnexion()
@ -255,8 +268,14 @@ def get_annotation_PE(etudid, tag_annotation_pe):
annotationPE = annotationPE.replace( annotationPE = annotationPE.replace(
"<br/>", "\n\n" "<br/>", "\n\n"
) # Interprète les retours chariots html ) # Interprète les retours chariots html
return annotationPE splitted = annotationPE.split("@")
return "" # pas d'annotations generale = splitted[0]
specifiques = {}
for slice in splitted[1:]:
ecole, specifique = slice.split(":", 1)
specifiques[ecole] = specifique
return generale, specifiques
return "", {} # pas d'annotations
# ---------------------------------------------------------------------------------------- # ----------------------------------------------------------------------------------------
@ -381,22 +400,58 @@ def get_bilanParTag(donnees_etudiant, groupe="groupe"):
return code_latex return code_latex
# ----------------------------------------------------------------------------------------
def get_avis_poursuite_par_etudiant( def get_avis_poursuite_par_etudiant(
jury, etudid, template_latex, tag_annotation_pe, footer_latex, prefs jury, etudid, template_latex, tag_annotation_pe, footer_latex, prefs
):
if pe_tools.PE_DEBUG:
pe_tools.pe_print(
"avis etudiant: " + jury.syntheseJury[etudid]["nom"] + " " + str(etudid)
)
generale, specifiques = get_annotation_PE(etudid, tag_annotation_pe)
results = []
if len(specifiques) == 0:
annotation = generale
results.append(
get_avis_poursuite_par_candidature(
jury, template_latex, footer_latex, prefs, etudid, annotation
)
)
else:
for ecole, specifique in specifiques.items():
annotation = f"{generale}\n{ecole}:{specifique}"
results.append(
get_avis_poursuite_par_candidature(
jury, template_latex, footer_latex, prefs, etudid, annotation, ecole
)
)
return results
# candidature = etudiant x ecole
# ----------------------------------------------------------------------------------------
def get_avis_poursuite_par_candidature(
jury, template_latex, footer_latex, prefs, etudid, annotation, ecole=""
): ):
"""Renvoie un nom de fichier et le contenu de l'avis latex d'un étudiant dont l'etudid est fourni. """Renvoie un nom de fichier et le contenu de l'avis latex d'un étudiant dont l'etudid est fourni.
result: [ chaine unicode, chaine unicode ] result: [ chaine unicode, chaine unicode ]
""" """
if pe_tools.PE_DEBUG: if pe_tools.PE_DEBUG:
pe_tools.pe_print(jury.syntheseJury[etudid]["nom"] + " " + str(etudid)) pe_tools.pe_print(
"avis candidature: "
+ jury.syntheseJury[etudid]["nom"]
+ " "
+ str(etudid)
+ " "
+ ecole
)
civilite_str = jury.syntheseJury[etudid]["civilite_str"] civilite_str = jury.syntheseJury[etudid]["civilite_str"]
nom = jury.syntheseJury[etudid]["nom"].replace(" ", "-") nom = jury.syntheseJury[etudid]["nom"].replace(" ", "-")
prenom = jury.syntheseJury[etudid]["prenom"].replace(" ", "-") prenom = jury.syntheseJury[etudid]["prenom"].replace(" ", "-")
nom_fichier = scu.sanitize_filename( nom_fichier = scu.sanitize_filename(
"avis_poursuite_%s_%s_%s" % (nom, prenom, etudid) "avis_poursuite_%s_%s_%s_%s" % (nom, prenom, etudid, ecole)
) )
if pe_tools.PE_DEBUG: if pe_tools.PE_DEBUG:
pe_tools.pe_print("fichier latex =" + nom_fichier, type(nom_fichier)) pe_tools.pe_print("fichier latex =" + nom_fichier, type(nom_fichier))
@ -406,19 +461,14 @@ def get_avis_poursuite_par_etudiant(
"%% ---- Etudiant: " + civilite_str + " " + nom + " " + prenom + "\n" "%% ---- Etudiant: " + civilite_str + " " + nom + " " + prenom + "\n"
) )
# les annnotations
annotationPE = get_annotation_PE(etudid, tag_annotation_pe=tag_annotation_pe)
if pe_tools.PE_DEBUG:
pe_tools.pe_print(annotationPE, type(annotationPE))
# le LaTeX # le LaTeX
avis = get_code_latex_avis_etudiant( avis = get_code_latex_avis_etudiant(
jury.syntheseJury[etudid], template_latex, annotationPE, footer_latex, prefs jury.syntheseJury[etudid], template_latex, annotation, footer_latex, prefs
) )
# if pe_tools.PE_DEBUG: pe_tools.pe_print(avis, type(avis)) # if pe_tools.PE_DEBUG: pe_tools.pe_print(avis, type(avis))
contenu_latex += avis + "\n" contenu_latex += avis + "\n"
return [nom_fichier, contenu_latex] return nom_fichier, contenu_latex
def get_templates_from_distrib(template="avis"): def get_templates_from_distrib(template="avis"):
@ -472,12 +522,16 @@ def table_syntheseAnnotationPE(syntheseJury, tag_annotation_pe):
maxParcours = max( maxParcours = max(
[syntheseJury[etudid]["nbSemestres"] for etudid in etudids] [syntheseJury[etudid]["nbSemestres"] for etudid in etudids]
) # le nombre de semestre le + grand ) # le nombre de semestre le + grand
# calcul de l'inventaire des annotations
ecoles, annotations = get_annotations(etudids, tag_annotation_pe)
infos = ["civilite", "nom", "prenom", "age", "nbSemestres"] infos = ["civilite", "nom", "prenom", "age", "nbSemestres"]
entete = ["etudid"] entete = ["etudid"]
entete.extend(infos) entete.extend(infos)
entete.extend(["P%d" % i for i in range(1, maxParcours + 1)]) # ajout du parcours entete.extend(["P%d" % i for i in range(1, maxParcours + 1)]) # ajout du parcours
entete.append("Annotation PE") entete.append("Annotation PE")
for ecole in sorted(ecoles):
entete.append(ecole)
columns_ids = entete # les id et les titres de colonnes sont ici identiques columns_ids = entete # les id et les titres de colonnes sont ici identiques
titles = {i: i for i in columns_ids} titles = {i: i for i in columns_ids}
@ -502,8 +556,10 @@ def table_syntheseAnnotationPE(syntheseJury, tag_annotation_pe):
n += 1 n += 1
# L'annotation PE # L'annotation PE
annotationPE = get_annotation_PE(etudid, tag_annotation_pe=tag_annotation_pe) generale, specifiques = annotations[etudid]
row["Annotation PE"] = annotationPE if annotationPE else "" row["Annotation PE"] = generale
for ecole in sorted(ecoles):
row[ecole] = specifiques.get(ecole, "")
rows.append(row) rows.append(row)
T = GenTable( T = GenTable(

View File

@ -623,7 +623,7 @@ class JuryPE(object):
u" - %d étudiants classés " % (nbinscrit) u" - %d étudiants classés " % (nbinscrit)
+ ": " + ": "
+ ",".join( + ",".join(
[etudid for etudid in self.semTagDict[fid].get_etudids()] [str(etudid) for etudid in self.semTagDict[fid].get_etudids()]
) )
) )
if lesEtudidsManquants: if lesEtudidsManquants:
@ -631,7 +631,7 @@ class JuryPE(object):
u" - dont %d étudiants manquants ajoutés aux données du jury" u" - dont %d étudiants manquants ajoutés aux données du jury"
% (len(lesEtudidsManquants)) % (len(lesEtudidsManquants))
+ ": " + ": "
+ ", ".join(lesEtudidsManquants) + ", ".join(str(lesEtudidsManquants))
) )
pe_tools.pe_print(u" - Export csv") pe_tools.pe_print(u" - Export csv")
filename = self.NOM_EXPORT_ZIP + self.semTagDict[fid].nom + ".csv" filename = self.NOM_EXPORT_ZIP + self.semTagDict[fid].nom + ".csv"

View File

@ -265,7 +265,7 @@ class TableTag(object):
for etudid in self.identdict: for etudid in self.identdict:
descr = delim.join( descr = delim.join(
[ [
etudid, str(etudid),
self.identdict[etudid]["nom"], self.identdict[etudid]["nom"],
self.identdict[etudid]["prenom"], self.identdict[etudid]["prenom"],
] ]

View File

@ -48,7 +48,7 @@ import app.scodoc.sco_utils as scu
from app import log from app import log
from app.scodoc.sco_logos import find_logo from app.scodoc.sco_logos import find_logo
PE_DEBUG = 0 PE_DEBUG = 1
if not PE_DEBUG: if not PE_DEBUG:
# log to notes.log # log to notes.log
@ -56,6 +56,7 @@ if not PE_DEBUG:
# kw is ignored. log always add a newline # kw is ignored. log always add a newline
log(" ".join(a)) log(" ".join(a))
else: else:
pe_print = print # print function pe_print = print # print function
@ -203,12 +204,12 @@ def add_pe_stuff_to_zip(zipfile, ziproot):
add_local_file_to_zip(zipfile, ziproot, pathname, "avis/" + filename) add_local_file_to_zip(zipfile, ziproot, pathname, "avis/" + filename)
# Logos: (add to logos/ directory in zip) # Logos: (add to logos/ directory in zip)
logos_names = ["header", "footer"] logos_names = ["header", "footer", "IUT_LILLE"]
for name in logos_names: for name in logos_names:
logo = find_logo(logoname=name, dept_id=g.scodoc_dept_id) logo = find_logo(logoname=name, dept_id=g.scodoc_dept_id)
if logo is not None: if logo is not None:
add_local_file_to_zip( add_local_file_to_zip(
zipfile, ziproot, logo.filepath, "avis/logos/" + logo.filename zipfile, ziproot, logo.filepath, "avis/logos/logo_" + logo.filename
) )

View File

@ -145,16 +145,17 @@ def pe_view_sem_recap(
latex_pages = {} # Dictionnaire de la forme nom_fichier => contenu_latex latex_pages = {} # Dictionnaire de la forme nom_fichier => contenu_latex
for etudid in etudids: for etudid in etudids:
[nom_fichier, contenu_latex] = pe_avislatex.get_avis_poursuite_par_etudiant( for fichier_latex in pe_avislatex.get_avis_poursuite_par_etudiant(
jury, jury,
etudid, etudid,
template_latex, template_latex,
tag_annotation_pe, tag_annotation_pe,
footer_latex, footer_latex,
prefs, prefs,
) ):
jury.add_file_to_zip("avis/" + nom_fichier + ".tex", contenu_latex) nom_fichier, contenu_latex = fichier_latex
latex_pages[nom_fichier] = contenu_latex # Sauvegarde dans un dico jury.add_file_to_zip("avis/" + nom_fichier + ".tex", contenu_latex)
latex_pages[nom_fichier] = contenu_latex # Sauvegarde dans un dico
# Nouvelle version : 1 fichier par étudiant avec 1 fichier appelant créée ci-dessous # Nouvelle version : 1 fichier par étudiant avec 1 fichier appelant créée ci-dessous
doc_latex = "\n% -----\n".join( doc_latex = "\n% -----\n".join(

View File

@ -0,0 +1,164 @@
%% Original : Cléo BARAS
%%
%% Template LaTeX des avis
%%
%% Version 1.0
%%
%% Ce fichier est distribué par ScoDoc
%%
%% Si vous voulez le modifier sur le serveur, copiez le dans
%% ../local/
%% et éditez votre copie dans local.
%%
% Ce document est n'est pas utilisé si le paramètre eTemplate LaTeX des avis" est rempli.
% ************************************************************
% En-tête de l'avis
% ************************************************************
\begin{entete}{logos/header}
\textbf{\Huge{Avis de Poursuites d'Etudes}} \\
\ligne \\
\normalsize{Département **DeptFullName**} \\
\normalsize{**InstituteName**} \\
\end{entete}
\begin{nom}
**sexe** **prenom** **nom** (**age** ans)
\end{nom}
% ************************************************************
% Parcours scolaire de l'étudiant
% ************************************************************
\begin{rubrique}{Parcours scolaire}
% TIMELINE
**parcourstimeline**
{
\scriptsize
\textbf{Guide de lecture} :
$\bullet$ Les options de la formation: FI = initiale, UFA = alternance (contrat pro), ENEPS = École nationale de l'enseignement professionnel supérieur
}
\end{rubrique}
% ************************************************************
% Bilan scolaire
% ************************************************************
\begin{rubrique}{Bilan scolaire synthétique}
\begin{tabular}{|p{0.08\textwidth}|p{0.11\textwidth}|*{8}{p{0.07\textwidth}|}}
% Titres des colonnes
\hline & \textbf{Resultats} & \multicolumn{4}{c|}{\textbf{Dans le groupe}\textdagger}
& \multicolumn{4}{c|}{\textbf{Dans la promo}\textdagger} \\
& & Class. & Min & Moy & Max
& Class. & Min & Moy & Max \\
\hline
\hline S1 & **S1:groupe:dut:note** & **S1:groupe:dut:rang**
& {\scriptsize **S1:groupe:dut:min**}
& {\scriptsize **S1:groupe:dut:moy**}
& {\scriptsize **S1:groupe:dut:max**}
& **S1:promo:dut:rang**
& {\scriptsize **S1:promo:dut:min**}
& {\scriptsize **S1:promo:dut:moy**}
& {\scriptsize **S1:promo:dut:max**} \\
\hline S2 & **S2:groupe:dut:note** & **S2:groupe:dut:rang**
& {\scriptsize **S2:groupe:dut:min**}
& {\scriptsize **S2:groupe:dut:moy**}
& {\scriptsize **S2:groupe:dut:max**}
& **S2:promo:dut:rang**
& {\scriptsize **S2:promo:dut:min**}
& {\scriptsize **S2:promo:dut:moy**}
& {\scriptsize **S2:promo:dut:max**} \\
\hline
\hline \cellcolor{black!20} 1A & **1A:groupe:dut:note** & **1A:groupe:dut:rang**
& {\scriptsize **1A:groupe:dut:min**}
& {\scriptsize **1A:groupe:dut:moy**}
& {\scriptsize **1A:groupe:dut:max**}
& **1A:promo:dut:rang**
& {\scriptsize **1A:promo:dut:min**}
& {\scriptsize **1A:promo:dut:moy**}
& {\scriptsize **1A:promo:dut:max**} \\
\hline
\hline S3 & **S3:groupe:dut:note** & **S3:groupe:dut:rang**
& {\scriptsize **S3:groupe:dut:min**}
& {\scriptsize **S3:groupe:dut:moy**}
& {\scriptsize **S3:groupe:dut:max**}
& **S3:promo:dut:rang**
& {\scriptsize **S3:promo:dut:min**}
& {\scriptsize **S3:promo:dut:moy**}
& {\scriptsize **S3:promo:dut:max**} \\
\hline S4* & **S4:groupe:dut:note** & **S4:groupe:dut:rang**
& {\scriptsize **S4:groupe:dut:min**}
& {\scriptsize **S4:groupe:dut:moy**}
& {\scriptsize **S4:groupe:dut:max**}
& **S4:promo:dut:rang**
& {\scriptsize **S4:promo:dut:min**}
& {\scriptsize **S4:promo:dut:moy**}
& {\scriptsize **S4:promo:dut:max**} \\
\hline
\hline \cellcolor{black!20} 2A* & **2A:groupe:dut:note** & **2A:groupe:dut:rang**
& {\scriptsize **2A:groupe:dut:min**}
& {\scriptsize **2A:groupe:dut:moy**}
& {\scriptsize **2A:groupe:dut:max**}
& **2A:promo:dut:rang**
& {\scriptsize **2A:promo:dut:min**}
& {\scriptsize **2A:promo:dut:moy**}
& {\scriptsize **2A:promo:dut:max**} \\
\hline
\hline DUT* & **4S:groupe:dut:note** & **4S:groupe:dut:rang**
& {\scriptsize **4S:groupe:dut:min**}
& {\scriptsize **4S:groupe:dut:moy**}
& {\scriptsize **4S:groupe:dut:max**}
& **4S:promo:dut:rang**
& {\scriptsize **4S:promo:dut:min**}
& {\scriptsize **4S:promo:dut:moy**}
& {\scriptsize **4S:promo:dut:max**} \\
\hline
\end{tabular}
\begin{minipage}{\textwidth}
\scriptsize
\textbf{Guide de lecture} : * Sur notes disponibles ; \textdagger~Le groupe est l'ensemble des étudiants ayant suivi le même semestre que **prenom** **nom** alors que la promo est l'ensemble des étudiants recevant le diplôme de DUT à la même date que **prenom** **nom** (ayant donc des parcours potentiellement différents)
\end{minipage}
\end{rubrique}
% ************************************************************
% Avis de poursuite d'études manuscrit ou saisi dans les
% annotations de l'étudiant
% ************************************************************
\begin{rubrique}{Avis du jury de Poursuites d'Etudes}
**annotation**
\end{rubrique}
\newpage % Saut de page
% ------------------------------------------------------------
% ************************************************************
% Bilan automatisé par matières
% ************************************************************
\begin{rubrique}{Bilan par matières}
**bilanParTag**
\end{rubrique}
% ************************************************************
% Signature
% ************************************************************
\begin{rubrique}{Cachet de l'établissement}
\begin{flushright}
Le~\today,\\
**NomResponsablePE**~\\
\textit{Responsable des Poursuites d'Études du département **DeptName**}
\end{flushright}
\vspace{0.5cm}
\end{rubrique}
% Le pied de page (indiqué dans les paramètres ScoDoc) vient après cette ligne

View File

@ -1,164 +1,178 @@
%% Original : Cléo BARAS
%% %%
%% Template LaTeX des avis %% Deux tableaux sur deux pages
%%
%% %%
%% Version 1.0
%%
%% Ce fichier est distribué par ScoDoc
%%
%% Si vous voulez le modifier sur le serveur, copiez le dans
%% ../local/
%% et éditez votre copie dans local.
%%
% Ce document est n'est pas utilisé si le paramètre eTemplate LaTeX des avis" est rempli.
% ************************************************************ % ************************************************************
% En-tête de l'avis \begin{entete}{logos/logo_IUT_Lille}
\textbf{\Huge{Avis de Poursuites d'Etudes}} \\
\ligne \\
\normalsize{Département **DeptFullName**} \\
\normalsize{**InstituteName**} \\
\end{entete}\\
% ************************************************************ % ************************************************************
\begin{entete}{logos/header}
\textbf{\Huge{Avis de Poursuites d'Etudes}} \\
\ligne \\
\normalsize{Département **DeptFullName**} \\
\normalsize{**InstituteName**} \\
\end{entete}
\begin{nom} \begin{nom}
**sexe** **prenom** **nom** (**age** ans) **sexe** **prenom** **nom** (**age** ans)
\end{nom} \end{nom}\\
% ************************************************************ % ************************************************************
% Parcours scolaire de l'étudiant
% ************************************************************
\begin{rubrique}{Parcours scolaire} \begin{rubrique}{Parcours scolaire}
**parcourstimeline**
% TIMELINE
**parcourstimeline**
{
\scriptsize
\textbf{Guide de lecture} :
$\bullet$ Les options de la formation: FI = initiale, UFA = alternance (contrat pro), ENEPS = École nationale de l'enseignement professionnel supérieur
}
\end{rubrique} \end{rubrique}
% ************************************************************ % ************************************************************
% Bilan scolaire
% ************************************************************ % ************************************************************
\begin{rubrique}{Bilan scolaire synthétique} \begin{rubrique}{Bilan scolaire synthétique}
\begin{tabular}{|p{0.11\textwidth}|p{0.11\textwidth}|*{8}{p{0.065\textwidth}|}}
\begin{tabular}{|p{0.08\textwidth}|p{0.11\textwidth}|*{8}{p{0.07\textwidth}|}}
% Titres des colonnes % Titres des colonnes
\hline & \textbf{Resultats} & \multicolumn{4}{c|}{\textbf{Dans le groupe}\textdagger}
& \multicolumn{4}{c|}{\textbf{Dans la promo}\textdagger} \\
& & Class. & Min & Moy & Max
& Class. & Min & Moy & Max \\
\hline \hline
\hline S1 & **S1:groupe:dut:note** & **S1:groupe:dut:rang** & & \multicolumn{4}{c|}{\textbf{Dans le groupe}\textdagger}
& {\scriptsize **S1:groupe:dut:min**} & \multicolumn{4}{c|}{\textbf{Dans la promotion}\textdagger} \\
& {\scriptsize **S1:groupe:dut:moy**} Semestres & Résultats & Class. & Min & Moy & Max
& {\scriptsize **S1:groupe:dut:max**} & Class. & Min & Moy & Max \\
& **S1:promo:dut:rang**
& {\scriptsize **S1:promo:dut:min**}
& {\scriptsize **S1:promo:dut:moy**}
& {\scriptsize **S1:promo:dut:max**} \\
\hline S2 & **S2:groupe:dut:note** & **S2:groupe:dut:rang**
& {\scriptsize **S2:groupe:dut:min**}
& {\scriptsize **S2:groupe:dut:moy**}
& {\scriptsize **S2:groupe:dut:max**}
& **S2:promo:dut:rang**
& {\scriptsize **S2:promo:dut:min**}
& {\scriptsize **S2:promo:dut:moy**}
& {\scriptsize **S2:promo:dut:max**} \\
\hline \hline
\hline \cellcolor{black!20} 1A & **1A:groupe:dut:note** & **1A:groupe:dut:rang** \hline S1
& {\scriptsize **1A:groupe:dut:min**} & **S1:groupe:dut:note**
& {\scriptsize **1A:groupe:dut:moy**} & {\scriptsize **S1:groupe:dut:rang**}
& {\scriptsize **1A:groupe:dut:max**} & {\scriptsize **S1:groupe:dut:min**}
& **1A:promo:dut:rang** & {\scriptsize **S1:groupe:dut:moy**}
& {\scriptsize **1A:promo:dut:min**} & {\scriptsize **S1:groupe:dut:max**}
& {\scriptsize **1A:promo:dut:moy**} & {\scriptsize **S1:promo:dut:rang**}
& {\scriptsize **1A:promo:dut:max**} \\ & {\scriptsize **S1:promo:dut:min**}
& {\scriptsize **S1:promo:dut:moy**}
& {\scriptsize **S1:promo:dut:max**} \\
\hline S2
& **S2:groupe:dut:note**
& {\scriptsize **S2:groupe:dut:rang**}
& {\scriptsize **S2:groupe:dut:min**}
& {\scriptsize **S2:groupe:dut:moy**}
& {\scriptsize **S2:groupe:dut:max**}
& {\scriptsize **S2:promo:dut:rang**}
& {\scriptsize **S2:promo:dut:min**}
& {\scriptsize **S2:promo:dut:moy**}
& {\scriptsize **S2:promo:dut:max**} \\
\hline S3
& **S3:groupe:dut:note**
& {\scriptsize **S3:groupe:dut:rang**}
& {\scriptsize **S3:groupe:dut:min**}
& {\scriptsize **S3:groupe:dut:moy**}
& {\scriptsize **S3:groupe:dut:max**}
& {\scriptsize **S3:promo:dut:rang**}
& {\scriptsize **S3:promo:dut:min**}
& {\scriptsize **S3:promo:dut:moy**}
& {\scriptsize **S3:promo:dut:max**} \\
\hline \hline
\hline S3 & **S3:groupe:dut:note** & **S3:groupe:dut:rang** \end{tabular}\\
& {\scriptsize **S3:groupe:dut:min**} \begin{minipage}{0.9\textwidth}
& {\scriptsize **S3:groupe:dut:moy**} \scriptsize
& {\scriptsize **S3:groupe:dut:max**} \textbf{Guide de lecture} : %* Sur notes disponibles ;
& **S3:promo:dut:rang** \textdagger~Le groupe est l'ensemble des étudiants ayant suivi le même semestre que **prenom** **nom** alors que la promo est l'ensemble des étudiants recevant le diplôme de DUT à la même date que **prenom** **nom** (ayant donc des parcours potentiellement différents)
& {\scriptsize **S3:promo:dut:min**}
& {\scriptsize **S3:promo:dut:moy**}
& {\scriptsize **S3:promo:dut:max**} \\
\hline S4* & **S4:groupe:dut:note** & **S4:groupe:dut:rang**
& {\scriptsize **S4:groupe:dut:min**}
& {\scriptsize **S4:groupe:dut:moy**}
& {\scriptsize **S4:groupe:dut:max**}
& **S4:promo:dut:rang**
& {\scriptsize **S4:promo:dut:min**}
& {\scriptsize **S4:promo:dut:moy**}
& {\scriptsize **S4:promo:dut:max**} \\
\hline
\hline \cellcolor{black!20} 2A* & **2A:groupe:dut:note** & **2A:groupe:dut:rang**
& {\scriptsize **2A:groupe:dut:min**}
& {\scriptsize **2A:groupe:dut:moy**}
& {\scriptsize **2A:groupe:dut:max**}
& **2A:promo:dut:rang**
& {\scriptsize **2A:promo:dut:min**}
& {\scriptsize **2A:promo:dut:moy**}
& {\scriptsize **2A:promo:dut:max**} \\
\hline
\hline DUT* & **4S:groupe:dut:note** & **4S:groupe:dut:rang**
& {\scriptsize **4S:groupe:dut:min**}
& {\scriptsize **4S:groupe:dut:moy**}
& {\scriptsize **4S:groupe:dut:max**}
& **4S:promo:dut:rang**
& {\scriptsize **4S:promo:dut:min**}
& {\scriptsize **4S:promo:dut:moy**}
& {\scriptsize **4S:promo:dut:max**} \\
\hline
\end{tabular}
\begin{minipage}{\textwidth}
\scriptsize
\textbf{Guide de lecture} : * Sur notes disponibles ; \textdagger~Le groupe est l'ensemble des étudiants ayant suivi le même semestre que **prenom** **nom** alors que la promo est l'ensemble des étudiants recevant le diplôme de DUT à la même date que **prenom** **nom** (ayant donc des parcours potentiellement différents)
\end{minipage} \end{minipage}
\end{rubrique}\\
\end{rubrique}
% ************************************************************ % ************************************************************
% Avis de poursuite d'études manuscrit ou saisi dans les \def\CaseACocher{\ensuremath{\;\begin{tikzpicture} \draw (0,0) rectangle (0.4,0.4); \end{tikzpicture}\;}}
% annotations de l'étudiant \def\cg{\cellcolor{black!20}}
% ************************************************************ % ************************************************************
\begin{rubrique}{Avis du jury de Poursuites d'Études}
\begin{rubrique}{Avis du jury de Poursuites d'Etudes}
**annotation** **annotation**
\end{rubrique} \end{rubrique}
\newpage % Saut de page
% ------------------------------------------------------------
% ************************************************************ % ************************************************************
% Bilan automatisé par matières \newpage
% ************************************************************ % ************************************************************
\begin{rubrique}{Bilan par matières de **sexe** **prenom** **nom** }
\begin{center}
\def\si#1{\scriptsize \textit{#1}}
\begin{tabular}{|p{100mm}||c|c|c|c|}
\hline
& \textbf{S1} & \textbf{S2} & \textbf{S3} & \textbf{S1+S2+S3} \\
\hline\hline
\textbf{électrotechnique}
& **S1:groupe:electrotechnique:note** & **S2:groupe:electrotechnique:note**
& **S3:groupe:electrotechnique:note** & **3S:groupe:electrotechnique:note** \\
& \si{**S1:groupe:electrotechnique:rang**} & \si{**S2:groupe:electrotechnique:rang**}
& \si{**S3:groupe:electrotechnique:rang**} & \si{**3S:groupe:electrotechnique:rang**} \\
\hline
\textbf{électronique}
& **S1:groupe:electronique:note** & **S2:groupe:electronique:note**
& **S3:groupe:electronique:note** & **3S:groupe:electronique:note** \\
& \si{**S1:groupe:electronique:rang**} & \si{**S2:groupe:electronique:rang**}
& \si{**S3:groupe:electronique:rang**} & \si{**3S:groupe:electronique:rang**} \\
\hline
\textbf{automatisme et informatique industrielle}
& **S1:groupe:automatisme et informatique industrielle:note** & **S2:groupe:automatisme et informatique industrielle:note**
& **S3:groupe:automatisme et informatique industrielle:note** & **3S:groupe:automatisme et informatique industrielle:note** \\
& \si{**S1:groupe:automatisme et informatique industrielle:rang**} & \si{**S2:groupe:automatisme et informatique industrielle:rang**}
& \si{**S3:groupe:automatisme et informatique industrielle:rang**} & \si{**3S:groupe:automatisme et informatique industrielle:rang**} \\
\hline
\textbf{projets et réalisations}
& **S1:groupe:projets et realisations:note** & **S2:groupe:projets et realisations:note**
& **S3:groupe:projets et realisations:note** & **3S:groupe:projets et realisations:note** \\
& \si{**S1:groupe:projets et realisations:rang**} & \si{**S2:groupe:projets et realisations:rang**}
& \si{**S3:groupe:projets et realisations:rang**} & \si{**3S:groupe:projets et realisations:rang**} \\
\hline
\textbf{connaissances et compétences générales}
& **S1:groupe:connaissances et competences generales:note** & **S2:groupe:connaissances et competences generales:note**
& **S3:groupe:connaissances et competences generales:note** & **3S:groupe:connaissances et competences generales:note** \\
& \si{**S1:groupe:connaissances et competences generales:rang**} & \si{**S2:groupe:connaissances et competences generales:rang**}
& \si{**S3:groupe:connaissances et competences generales:rang**} & \si{**3S:groupe:connaissances et competences generales:rang**} \\
\hline
\textbf{anglais}
& **S1:groupe:anglais:note** & **S2:groupe:anglais:note**
& **S3:groupe:anglais:note** & **3S:groupe:anglais:note** \\
& \si{**S1:groupe:anglais:rang**} & \si{**S2:groupe:anglais:rang**}
& \si{**S3:groupe:anglais:rang**} & \si{**3S:groupe:anglais:rang**} \\
\hline
\end{tabular}
\end{center}
\begin{rubrique}{Bilan par matières}
**bilanParTag**
\end{rubrique} \end{rubrique}
% ************************************************************ % ************************************************************
% Signature \vfill
% ************************************************************ %%%%%%%%%%%%%%%%
\def\unecaselargescriptsize#1{\multicolumn{2}{l}{{\scriptsize #1}}\\ }
\begin{rubrique}{Cachet de l'établissement} \begin{rubrique}{Cachet de l'établissement}
\begin{flushright} \vspace{-10mm}
Le~\today,\\ \begin{center}
**NomResponsablePE**~\\ \begin{tabular}{|*{2}{p{0.45\textwidth}|}}
\textit{Responsable des Poursuites d'Études du département **DeptName**} \hline
\end{flushright} Pour le Chef du Département
\vspace{0.5cm} &
Pour l'administrateur provisoire de l'IUT
\\
et par délégation,
&
et par délégation,
\\
Jocelyne \textsc{Creton Nutten},
&
Vincent \textsc{Devlaminck},
\\
\textit{Responsable des Poursuites d'Études }
&
\textit{chargé de mission}
\\
\textit{du département GEII}
&
\textit{en charge de la Scolarité}
\\[15mm]
&\\ \hline
%%%%%%%%%%%%%%%%%
\unecaselargescriptsize{
IUT A de Lille ---
Av Paul Langevin - Cité scientifique - BP 90179 --- 59653 Villeneuve d'Ascq Cedex --- France
}
\unecaselargescriptsize{
\textbf{Secrétariat Département GEII}:
}
\unecaselargescriptsize{
Mme Séverine \textsc{Derenchy}, Tel (+33)3.59.63.21.91, \texttt{severine.derenchy@univ-lille.fr}
}
\unecaselargescriptsize{
\textbf{Responsable Poursuites d'Études Département GEII}:
}
\unecaselargescriptsize{
Mme Jocelyne \textsc{Creton Nutten}, \texttt{Jocelyne.Creton@univ-lille.fr}
}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\end{tabular}
\end{center}
\end{rubrique} \end{rubrique}
% ************************************************************
% Le pied de page (indiqué dans les paramètres ScoDoc) vient après cette ligne

View File

@ -0,0 +1,7 @@
\begin{minipage}{\textwidth} \scriptsize
%IUT exemple - Dpt RT, 3 rue xxx, France
% \textbf{Secrétariat Poursuite d'Etudes}: Xxx Yyy, Tel 01.02.03.04.05, xxx.yyy@example.com
% \textbf{Responsables Poursuite d'Etudes RT}: Zzz Wwww, Tel 01.02.03.04.05, zzz.www@example.com
\end{minipage}

View File

@ -1,7 +0,0 @@
\begin{minipage}{\textwidth} \scriptsize
%IUT exemple - Dpt RT, 3 rue xxx, France
% \textbf{Secrétariat Poursuite d'Etudes}: Xxx Yyy, Tel 01.02.03.04.05, xxx.yyy@example.com
% \textbf{Responsables Poursuite d'Etudes RT}: Zzz Wwww, Tel 01.02.03.04.05, zzz.www@example.com
\end{minipage}