forked from ScoDoc/DocScoDoc
déplacement du template placement
This commit is contained in:
parent
a23ae38014
commit
0ef822cfd8
@ -144,7 +144,7 @@ class PlacementForm(FlaskForm):
|
|||||||
class _DistributeurContinu:
|
class _DistributeurContinu:
|
||||||
"""Distribue les places selon un ordre numérique."""
|
"""Distribue les places selon un ordre numérique."""
|
||||||
|
|
||||||
def __init(self):
|
def __init__(self):
|
||||||
self.position = 1
|
self.position = 1
|
||||||
|
|
||||||
def suivant(self):
|
def suivant(self):
|
||||||
@ -193,7 +193,7 @@ def placement_eval_selectetuds(evaluation_id):
|
|||||||
H = [html_sco_header.sco_header(init_jquery_ui=True)]
|
H = [html_sco_header.sco_header(init_jquery_ui=True)]
|
||||||
H.append(sco_evaluations.evaluation_describe(evaluation_id=evaluation_id))
|
H.append(sco_evaluations.evaluation_describe(evaluation_id=evaluation_id))
|
||||||
H.append("<h3>Placement et émargement des étudiants</h3>")
|
H.append("<h3>Placement et émargement des étudiants</h3>")
|
||||||
H.append(render_template("forms/placement.html", form=form))
|
H.append(render_template("scodoc/forms/placement.html", form=form))
|
||||||
F = html_sco_header.sco_footer()
|
F = html_sco_header.sco_footer()
|
||||||
return "\n".join(H) + "<p>" + F
|
return "\n".join(H) + "<p>" + F
|
||||||
|
|
||||||
@ -493,36 +493,40 @@ class PlacementRunner:
|
|||||||
|
|
||||||
# etudiants - feuille0
|
# etudiants - feuille0
|
||||||
place = 1
|
place = 1
|
||||||
for rang, linetud in enumerate(self.plan, start=1):
|
col = 0
|
||||||
# Chaque rang est affiché sur 3 lignes xlsx (notées A, B, C)
|
rang = 1
|
||||||
# ligne A: le nom, ligne B: le prénom, ligne C: un espace ou la place
|
# Chaque rang est affiché sur 3 lignes xlsx (notées A, B, C)
|
||||||
cells_a = [ws0.make_cell(rang, self.styles["2b"])]
|
# ligne A: le nom, ligne B: le prénom, ligne C: un espace ou la place
|
||||||
cells_b = [ws0.make_cell("", self.styles["2b"])]
|
cells_a = [ws0.make_cell(rang, self.styles["2b"])]
|
||||||
cells_c = [ws0.make_cell("", self.styles["2b"])]
|
cells_b = [ws0.make_cell("", self.styles["2b"])]
|
||||||
row = 14 # premieère ligne de signature
|
cells_c = [ws0.make_cell("", self.styles["2b"])]
|
||||||
for etudid in linetud:
|
row = 13 # première ligne de signature
|
||||||
cells_a.append(ws0.make_cell(etudid[0], self.styles["1t"]))
|
for linetud in self.plan:
|
||||||
cells_b.append(ws0.make_cell(etudid[1], self.styles["1m"]))
|
cells_a.append(ws0.make_cell(linetud[0][0], self.styles["1t"])) # nom
|
||||||
if self.etiquetage == COORD:
|
cells_b.append(ws0.make_cell(linetud[0][1], self.styles["1m"])) # prenom
|
||||||
cell_c = ws0.make_cell("", self.styles["1bb"])
|
if self.etiquetage == COORD:
|
||||||
else:
|
cell_c = ws0.make_cell("", self.styles["1bb"])
|
||||||
cell_c = ws0.make_cell("place %s" % place, self.styles["1bb"])
|
else:
|
||||||
cells_c.append(cell_c)
|
cell_c = ws0.make_cell("place %s" % place, self.styles["1bb"])
|
||||||
ws0.set_row_dimension_height(row, space / 25)
|
|
||||||
row += 3
|
|
||||||
place = place + 1
|
place = place + 1
|
||||||
if col == self.nb_rangs:
|
cells_c.append(cell_c)
|
||||||
ws0.append_row(cells_a)
|
|
||||||
ws0.append_row(cells_b)
|
|
||||||
ws0.append_row(cells_c)
|
|
||||||
cells_a = [ws0.make_cell(rang, self.styles["2b"])]
|
|
||||||
cells_b = [ws0.make_cell("", self.styles["2b"])]
|
|
||||||
cells_c = [ws0.make_cell("", self.styles["2b"])]
|
|
||||||
# publication du rang final incomplet
|
|
||||||
ws0.append_row(cells_a)
|
|
||||||
ws0.append_row(cells_b)
|
|
||||||
ws0.append_row(cells_c)
|
|
||||||
ws0.set_row_dimension_height(row, space / 25)
|
ws0.set_row_dimension_height(row, space / 25)
|
||||||
|
row += 3
|
||||||
|
col += 1
|
||||||
|
if col == self.nb_rangs: # On a fini la rangée courante
|
||||||
|
ws0.append_row(cells_a) # on affiche les 3 lignes construites
|
||||||
|
ws0.append_row(cells_b)
|
||||||
|
ws0.append_row(cells_c)
|
||||||
|
cells_a = [ws0.make_cell(rang, self.styles["2b"])] # on réinitialise les 3 lignes
|
||||||
|
cells_b = [ws0.make_cell("", self.styles["2b"])]
|
||||||
|
cells_c = [ws0.make_cell("", self.styles["2b"])]
|
||||||
|
col = 0
|
||||||
|
rang += 1
|
||||||
|
# publication du rang final incomplet
|
||||||
|
ws0.append_row(cells_a) # Affiche des 3 lignes (dernières lignes incomplètes)
|
||||||
|
ws0.append_row(cells_b)
|
||||||
|
ws0.append_row(cells_c)
|
||||||
|
ws0.set_row_dimension_height(row, space / 25)
|
||||||
|
|
||||||
def _next_page(ws):
|
def _next_page(ws):
|
||||||
pass
|
pass
|
||||||
@ -553,15 +557,15 @@ class PlacementRunner:
|
|||||||
lines = self._init_lines(maxlines)
|
lines = self._init_lines(maxlines)
|
||||||
line = 0
|
line = 0
|
||||||
col = 0
|
col = 0
|
||||||
for etud in sorted(self.plan, key=lambda etud: etud[0][0]):
|
for etud in sorted(self.plan, key=lambda e: e[0][0]): # tri alphabétique
|
||||||
# check for skip of list or page
|
# check for skip of list or page
|
||||||
if col > 0: # add a empty cell between lists
|
if col > 0: # add a empty cell between lists
|
||||||
lines[line].append(ws.make_cell())
|
lines[line].append(ws.make_cell())
|
||||||
lines[line].append(ws.make_cell(etud[0][0], self.styles["2l"]))
|
lines[line].append(ws.make_cell(etud[0][0], self.styles["2l"]))
|
||||||
lines[line].append(ws.make_cell(etud[0][1], self.styles["2m1"]))
|
lines[line].append(ws.make_cell(etud[0][1], self.styles["2m1"]))
|
||||||
if self.etiquetage == COORD:
|
if self.etiquetage == COORD:
|
||||||
lines[line].append(ws.make_cell(etud[1][0], self.styles["2m2"]))
|
lines[line].append(ws.make_cell(etud[1][1], self.styles["2m2"]))
|
||||||
lines[line].append(ws.make_cell(etud[1][1], self.styles["2r"]))
|
lines[line].append(ws.make_cell(etud[1][0], self.styles["2r"]))
|
||||||
else:
|
else:
|
||||||
lines[line].append(ws.make_cell(etud[1], self.styles["2r"]))
|
lines[line].append(ws.make_cell(etud[1], self.styles["2r"]))
|
||||||
line = line + 1
|
line = line + 1
|
||||||
@ -586,7 +590,6 @@ class PlacementRunner:
|
|||||||
lines: liste de tuples
|
lines: liste de tuples
|
||||||
(etudid, nom, prenom, etat, groupe, val, explanation)
|
(etudid, nom, prenom, etat, groupe, val, explanation)
|
||||||
"""
|
"""
|
||||||
breakpoint()
|
|
||||||
sem_preferences = sco_preferences.SemPreferences()
|
sem_preferences = sco_preferences.SemPreferences()
|
||||||
space = sem_preferences.get("feuille_placement_emargement")
|
space = sem_preferences.get("feuille_placement_emargement")
|
||||||
maxlines = sem_preferences.get("feuille_placement_positions")
|
maxlines = sem_preferences.get("feuille_placement_positions")
|
||||||
|
@ -28,7 +28,7 @@
|
|||||||
{{ render_field(form.etiquetage) }}
|
{{ render_field(form.etiquetage) }}
|
||||||
{% if form.has_groups %}
|
{% if form.has_groups %}
|
||||||
{{ render_field(form.groups) }}
|
{{ render_field(form.groups) }}
|
||||||
<!--
|
<!-- Tentative de recréer le choix des groupes sous forme de cases à cocher // demande à créer des champs wtf dynamiquement
|
||||||
{% for partition in form.groups_tree %}
|
{% for partition in form.groups_tree %}
|
||||||
<tr>
|
<tr>
|
||||||
{% if partition == 'Tous' %}
|
{% if partition == 'Tous' %}
|
||||||
@ -60,6 +60,7 @@
|
|||||||
<li>continue suppose que les tables ont toutes un numéro unique;</li>
|
<li>continue suppose que les tables ont toutes un numéro unique;</li>
|
||||||
<li>coordonnées localise chaque table via un numéro de colonne et un numéro de ligne (ou rangée).</li>
|
<li>coordonnées localise chaque table via un numéro de colonne et un numéro de ligne (ou rangée).</li>
|
||||||
</ul></li>
|
</ul></li>
|
||||||
|
<li>il est possible de choisir un ou plusieurs groupes (shift/ctrl click) ou de choisir 'tous'.</li>
|
||||||
<li>Choisir le format du fichier résultat :
|
<li>Choisir le format du fichier résultat :
|
||||||
<ul>
|
<ul>
|
||||||
<li>le format pdf consiste en un tableau précisant pour chaque étudiant la localisation de sa table;</li>
|
<li>le format pdf consiste en un tableau précisant pour chaque étudiant la localisation de sa table;</li>
|
Loading…
Reference in New Issue
Block a user