forked from ScoDoc/DocScoDoc
petites modifs pour intégration
This commit is contained in:
parent
0cb9d18344
commit
b7e5c12aa1
@ -30,8 +30,6 @@
|
|||||||
"""
|
"""
|
||||||
import time, datetime
|
import time, datetime
|
||||||
|
|
||||||
# #sco8 #py3 XXX TODO A revoir utiliser d'autres modules
|
|
||||||
# from pyExcelerator import *
|
|
||||||
|
|
||||||
import app.scodoc.sco_utils as scu
|
import app.scodoc.sco_utils as scu
|
||||||
from app.scodoc import notesdb
|
from app.scodoc import notesdb
|
||||||
@ -364,12 +362,12 @@ def Excel_feuille_saisie(E, titreannee, description, lines):
|
|||||||
# ligne de titres
|
# ligne de titres
|
||||||
li = 0
|
li = 0
|
||||||
ws0.write(
|
ws0.write(
|
||||||
li, 0, u"Feuille saisie note (à enregistrer au format excel)", style_titres
|
li, 0, "Feuille saisie note (à enregistrer au format excel)", style_titres
|
||||||
)
|
)
|
||||||
li += 1
|
li += 1
|
||||||
ws0.write(li, 0, u"Saisir les notes dans la colonne E (cases jaunes)", style_expl)
|
ws0.write(li, 0, "Saisir les notes dans la colonne E (cases jaunes)", style_expl)
|
||||||
li += 1
|
li += 1
|
||||||
ws0.write(li, 0, u"Ne pas modifier les cases en mauve !", style_expl)
|
ws0.write(li, 0, "Ne pas modifier les cases en mauve !", style_expl)
|
||||||
li += 1
|
li += 1
|
||||||
# Nom du semestre
|
# Nom du semestre
|
||||||
ws0.write(
|
ws0.write(
|
||||||
@ -382,17 +380,17 @@ def Excel_feuille_saisie(E, titreannee, description, lines):
|
|||||||
)
|
)
|
||||||
li += 1
|
li += 1
|
||||||
ws0.write(
|
ws0.write(
|
||||||
li, 0, u"Evaluation du %s (coef. %g)" % (E["jour"], E["coefficient"]), style
|
li, 0, "Evaluation du %s (coef. %g)" % (E["jour"], E["coefficient"]), style
|
||||||
)
|
)
|
||||||
li += 1
|
li += 1
|
||||||
li += 1 # ligne blanche
|
li += 1 # ligne blanche
|
||||||
# code et titres colonnes
|
# code et titres colonnes
|
||||||
ws0.write(li, 0, u"!%s" % E["evaluation_id"], style_ro)
|
ws0.write(li, 0, "!%s" % E["evaluation_id"], style_ro)
|
||||||
ws0.write(li, 1, u"Nom", style_titres)
|
ws0.write(li, 1, "Nom", style_titres)
|
||||||
ws0.write(li, 2, u"Prénom", style_titres)
|
ws0.write(li, 2, "Prénom", style_titres)
|
||||||
ws0.write(li, 3, u"Groupe", style_titres)
|
ws0.write(li, 3, "Groupe", style_titres)
|
||||||
ws0.write(li, 4, u"Note sur %g" % E["note_max"], style_titres)
|
ws0.write(li, 4, "Note sur %g" % E["note_max"], style_titres)
|
||||||
ws0.write(li, 5, u"Remarque", style_titres)
|
ws0.write(li, 5, "Remarque", style_titres)
|
||||||
# etudiants
|
# etudiants
|
||||||
for line in lines:
|
for line in lines:
|
||||||
li += 1
|
li += 1
|
||||||
@ -417,17 +415,17 @@ def Excel_feuille_saisie(E, titreannee, description, lines):
|
|||||||
ws0.write(li, 5, line[6].decode(scu.SCO_ENCODING), style_comment) # comment
|
ws0.write(li, 5, line[6].decode(scu.SCO_ENCODING), style_comment) # comment
|
||||||
# explication en bas
|
# explication en bas
|
||||||
li += 2
|
li += 2
|
||||||
ws0.write(li, 1, u"Code notes", style_titres)
|
ws0.write(li, 1, "Code notes", style_titres)
|
||||||
ws0.write(li + 1, 1, u"ABS", style_expl)
|
ws0.write(li + 1, 1, "ABS", style_expl)
|
||||||
ws0.write(li + 1, 2, u"absent (0)", style_expl)
|
ws0.write(li + 1, 2, "absent (0)", style_expl)
|
||||||
ws0.write(li + 2, 1, u"EXC", style_expl)
|
ws0.write(li + 2, 1, "EXC", style_expl)
|
||||||
ws0.write(li + 2, 2, u"pas prise en compte", style_expl)
|
ws0.write(li + 2, 2, "pas prise en compte", style_expl)
|
||||||
ws0.write(li + 3, 1, u"ATT", style_expl)
|
ws0.write(li + 3, 1, "ATT", style_expl)
|
||||||
ws0.write(li + 3, 2, u"en attente", style_expl)
|
ws0.write(li + 3, 2, "en attente", style_expl)
|
||||||
ws0.write(li + 4, 1, u"SUPR", style_expl)
|
ws0.write(li + 4, 1, "SUPR", style_expl)
|
||||||
ws0.write(li + 4, 2, u"pour supprimer note déjà entrée", style_expl)
|
ws0.write(li + 4, 2, "pour supprimer note déjà entrée", style_expl)
|
||||||
ws0.write(li + 5, 1, u"", style_expl)
|
ws0.write(li + 5, 1, "", style_expl)
|
||||||
ws0.write(li + 5, 2, u"cellule vide -> note non modifiée", style_expl)
|
ws0.write(li + 5, 2, "cellule vide -> note non modifiée", style_expl)
|
||||||
return wb.savetostr()
|
return wb.savetostr()
|
||||||
|
|
||||||
|
|
||||||
@ -479,11 +477,12 @@ def Excel_to_list(data, convert_to_string=str): # we may need 'encoding' argume
|
|||||||
#
|
#
|
||||||
return diag, M
|
return diag, M
|
||||||
|
|
||||||
|
|
||||||
# Un style est enregistré comme un dictionnaire qui précise la valeur d'un attributdans la liste suivante:
|
# Un style est enregistré comme un dictionnaire qui précise la valeur d'un attributdans la liste suivante:
|
||||||
# font, border, .. (cf https://openpyxl.readthedocs.io/en/stable/styles.html#working-with-styles)
|
# font, border, .. (cf https://openpyxl.readthedocs.io/en/stable/styles.html#working-with-styles)
|
||||||
|
|
||||||
|
|
||||||
def __make_cell(ws, value: any = u"", style=None):
|
def _make_cell(ws, value: any = "", style=None):
|
||||||
"""Contruit/retourne une cellule en spécifiant contenu et style.
|
"""Contruit/retourne une cellule en spécifiant contenu et style.
|
||||||
|
|
||||||
ws -- La feuille où sera intégrée la cellule
|
ws -- La feuille où sera intégrée la cellule
|
||||||
@ -498,8 +497,15 @@ def __make_cell(ws, value: any = u"", style=None):
|
|||||||
return cell
|
return cell
|
||||||
|
|
||||||
|
|
||||||
def excel_feuille_listeappel(sem, groupname, lines, partitions=None, with_codes=False, with_paiement=False,
|
def excel_feuille_listeappel(
|
||||||
server_name=None):
|
sem,
|
||||||
|
groupname,
|
||||||
|
lines,
|
||||||
|
partitions=None,
|
||||||
|
with_codes=False,
|
||||||
|
with_paiement=False,
|
||||||
|
server_name=None,
|
||||||
|
):
|
||||||
"""generation feuille appel"""
|
"""generation feuille appel"""
|
||||||
if partitions is None:
|
if partitions is None:
|
||||||
partitions = []
|
partitions = []
|
||||||
@ -563,20 +569,22 @@ def excel_feuille_listeappel(sem, groupname, lines, partitions=None, with_codes=
|
|||||||
sem["date_fin"],
|
sem["date_fin"],
|
||||||
)
|
)
|
||||||
|
|
||||||
cell_2 = __make_cell(ws, title, style2)
|
cell_2 = _make_cell(ws, title, style2)
|
||||||
ws.append([None, cell_2])
|
ws.append([None, cell_2])
|
||||||
|
|
||||||
# ligne 2
|
# ligne 2
|
||||||
cell_2 = __make_cell(ws, u"Discipline :", style2)
|
cell_2 = _make_cell(ws, "Discipline :", style2)
|
||||||
ws.append([None, cell_2])
|
ws.append([None, cell_2])
|
||||||
|
|
||||||
# ligne 3
|
# ligne 3
|
||||||
cell_2 = __make_cell(ws, u"Enseignant :", style2)
|
cell_2 = _make_cell(ws, "Enseignant :", style2)
|
||||||
cell_6 = __make_cell(ws, ("Groupe %s" % groupname), style3)
|
cell_6 = _make_cell(ws, ("Groupe %s" % groupname), style3)
|
||||||
ws.append([None, cell_2, None, None, None, None, cell_6])
|
ws.append([None, cell_2, None, None, None, None, cell_6])
|
||||||
|
|
||||||
# ligne 4: Avertissement pour ne pas confondre avec listes notes
|
# ligne 4: Avertissement pour ne pas confondre avec listes notes
|
||||||
cell_2 = __make_cell(ws, u"Ne pas utiliser cette feuille pour saisir les notes !", style1i)
|
cell_2 = _make_cell(
|
||||||
|
ws, "Ne pas utiliser cette feuille pour saisir les notes !", style1i
|
||||||
|
)
|
||||||
ws.append([None, None, cell_2])
|
ws.append([None, None, cell_2])
|
||||||
|
|
||||||
ws.append([None])
|
ws.append([None])
|
||||||
@ -584,16 +592,16 @@ def excel_feuille_listeappel(sem, groupname, lines, partitions=None, with_codes=
|
|||||||
|
|
||||||
# ligne 7: Entête (contruction dans une liste cells)
|
# ligne 7: Entête (contruction dans une liste cells)
|
||||||
cells = [None] # passe la première colonne
|
cells = [None] # passe la première colonne
|
||||||
cell_2 = __make_cell(ws, u"Nom", style3)
|
cell_2 = _make_cell(ws, "Nom", style3)
|
||||||
cells.append(cell_2)
|
cells.append(cell_2)
|
||||||
for partition in partitions:
|
for partition in partitions:
|
||||||
cells.append(__make_cell(ws, partition["partition_name"], style3))
|
cells.append(_make_cell(ws, partition["partition_name"], style3))
|
||||||
if with_codes:
|
if with_codes:
|
||||||
cells.append(__make_cell(ws, u"etudid", style3))
|
cells.append(_make_cell(ws, "etudid", style3))
|
||||||
cells.append(__make_cell(ws, u"code_nip", style3))
|
cells.append(_make_cell(ws, "code_nip", style3))
|
||||||
cells.append(__make_cell(ws, u"code_ine", style3))
|
cells.append(_make_cell(ws, "code_ine", style3))
|
||||||
for i in range(nb_weeks):
|
for i in range(nb_weeks):
|
||||||
cells.append(__make_cell(ws, "", style2b))
|
cells.append(_make_cell(ws, "", style2b))
|
||||||
ws.append(cells)
|
ws.append(cells)
|
||||||
|
|
||||||
n = 0
|
n = 0
|
||||||
@ -616,24 +624,24 @@ def excel_feuille_listeappel(sem, groupname, lines, partitions=None, with_codes=
|
|||||||
elif not paie:
|
elif not paie:
|
||||||
nomprenom += " (non paiement)"
|
nomprenom += " (non paiement)"
|
||||||
style_nom = style2t3bold
|
style_nom = style2t3bold
|
||||||
cell_1 = __make_cell(ws, n, style1b)
|
cell_1 = _make_cell(ws, n, style1b)
|
||||||
cell_2 = __make_cell(ws, nomprenom, style_nom)
|
cell_2 = _make_cell(ws, nomprenom, style_nom)
|
||||||
cells = [cell_1, cell_2]
|
cells = [cell_1, cell_2]
|
||||||
|
|
||||||
for partition in partitions:
|
for partition in partitions:
|
||||||
if partition["partition_name"]:
|
if partition["partition_name"]:
|
||||||
cells.append(
|
cells.append(
|
||||||
__make_cell(ws, t.get(partition["partition_id"], u""), style2t3)
|
_make_cell(ws, t.get(partition["partition_id"], ""), style2t3)
|
||||||
)
|
)
|
||||||
if with_codes:
|
if with_codes:
|
||||||
cells.append(__make_cell(ws, t["etudid"], style2t3))
|
cells.append(_make_cell(ws, t["etudid"], style2t3))
|
||||||
code_nip = t.get("code_nip", u"")
|
code_nip = t.get("code_nip", "")
|
||||||
cells.append(__make_cell(ws, code_nip, style2t3))
|
cells.append(_make_cell(ws, code_nip, style2t3))
|
||||||
code_ine = t.get("code_ine", u"")
|
code_ine = t.get("code_ine", "")
|
||||||
cells.append(__make_cell(ws, code_ine, style2t3))
|
cells.append(_make_cell(ws, code_ine, style2t3))
|
||||||
cells.append(__make_cell(ws, t.get("etath", ""), style2b))
|
cells.append(_make_cell(ws, t.get("etath", ""), style2b))
|
||||||
for i in range(1, nb_weeks):
|
for i in range(1, nb_weeks):
|
||||||
cells.append(__make_cell(ws, style=style2t3))
|
cells.append(_make_cell(ws, style=style2t3))
|
||||||
# ws0.row(li).height = 850 # sans effet ?
|
# ws0.row(li).height = 850 # sans effet ?
|
||||||
# (openpyxl: en mode optimisé, les hauteurs de lignes doivent être spécifiées avant toutes les cellules)
|
# (openpyxl: en mode optimisé, les hauteurs de lignes doivent être spécifiées avant toutes les cellules)
|
||||||
ws.append(cells)
|
ws.append(cells)
|
||||||
@ -644,7 +652,7 @@ def excel_feuille_listeappel(sem, groupname, lines, partitions=None, with_codes=
|
|||||||
dt = time.strftime("%d/%m/%Y à %Hh%M")
|
dt = time.strftime("%d/%m/%Y à %Hh%M")
|
||||||
if server_name:
|
if server_name:
|
||||||
dt += " sur " + server_name
|
dt += " sur " + server_name
|
||||||
cell_2 = __make_cell(ws, ("Liste éditée le " + dt), style1i)
|
cell_2 = _make_cell(ws, ("Liste éditée le " + dt), style1i)
|
||||||
ws.append([None, cell_2])
|
ws.append([None, cell_2])
|
||||||
|
|
||||||
# construction d'un flux (https://openpyxl.readthedocs.io/en/stable/tutorial.html#saving-as-a-stream)
|
# construction d'un flux (https://openpyxl.readthedocs.io/en/stable/tutorial.html#saving-as-a-stream)
|
||||||
|
Loading…
Reference in New Issue
Block a user