forked from ScoDoc/ScoDoc
headers sans formet
This commit is contained in:
parent
ee1bb3cc27
commit
646173c9ac
@ -65,6 +65,61 @@ from app.scodoc.sco_excel import ScoExcelBook, ScoExcelSheet
|
||||
listeAnnees = ["BUT1", "BUT2", "BUT3"]
|
||||
|
||||
|
||||
class _Cell:
|
||||
def __init__(self, text=None, format=None, comment=None):
|
||||
self.text = text
|
||||
self.format = format
|
||||
self.comment = comment
|
||||
|
||||
def make_cell(self, worksheet: ScoExcelSheet):
|
||||
cell = worksheet.make_cell(self.text or "")
|
||||
return cell
|
||||
|
||||
|
||||
class _Header:
|
||||
def __init__(self):
|
||||
self.lines = []
|
||||
self.labels = [None, None, None, None]
|
||||
|
||||
@staticmethod
|
||||
def _process_item(item):
|
||||
if item is None:
|
||||
return _Cell("")
|
||||
if isinstance(item, _Cell):
|
||||
return item
|
||||
else:
|
||||
return _Cell(item)
|
||||
|
||||
def setLabel(self, rang, label):
|
||||
self.labels[rang] = self._process_item(label)
|
||||
|
||||
def add_column(self, item0=None, item1=None, item2=None, item3=None):
|
||||
items = list(map(lambda x: self._process_item(x), [item0, item1, item2, item3]))
|
||||
for rang, label in enumerate(self.labels):
|
||||
if not label is None:
|
||||
items[rang] = label
|
||||
self.labels[rang] = None
|
||||
self.lines.append(items)
|
||||
|
||||
def extend(self, header):
|
||||
self.lines.extend(header.lines)
|
||||
|
||||
def write(self, worksheet: ScoExcelSheet):
|
||||
row1 = []
|
||||
row2 = []
|
||||
row3 = []
|
||||
row4 = []
|
||||
for items in self.lines:
|
||||
row1.append(items[0].make_cell(worksheet))
|
||||
row2.append(items[1].make_cell(worksheet))
|
||||
row3.append(items[2].make_cell(worksheet))
|
||||
row4.append(items[3].make_cell(worksheet))
|
||||
worksheet.append_row(row1)
|
||||
worksheet.append_row(row2)
|
||||
worksheet.append_row(row3)
|
||||
worksheet.append_row(row4)
|
||||
|
||||
|
||||
class _Bilan:
|
||||
def __init__(self):
|
||||
self.note = 0
|
||||
@ -89,9 +144,9 @@ class _Niveau:
|
||||
|
||||
|
||||
class _Annee:
|
||||
def __init__(self, etudiant, anneeDesc):
|
||||
def __init__(self, etudiant, annee_desc):
|
||||
self.etudiant = etudiant
|
||||
self.anneeDesc = anneeDesc
|
||||
self.anneeDesc = annee_desc
|
||||
self.bilan: _Bilan = None
|
||||
self.niveaux = {}
|
||||
|
||||
@ -121,12 +176,34 @@ class _Semestre:
|
||||
# )
|
||||
|
||||
|
||||
def parite(semestre_idx):
|
||||
return (semestre_idx + 1) % 2
|
||||
|
||||
|
||||
class _NiveauDesc:
|
||||
def __init__(self, scodocNiveau):
|
||||
self.fromScodoc = scodocNiveau
|
||||
self.ues = {}
|
||||
self.ue = [None, None]
|
||||
for scodocUe in scodocNiveau.ues:
|
||||
self.ues[(scodocUe.formation_id, scodocUe.semestre_idx)] = scodocUe
|
||||
if not scodocUe.is_external:
|
||||
self.ue[parite(scodocUe.semestre_idx)] = scodocUe
|
||||
|
||||
def generate_header(self, header):
|
||||
header.setLabel(1, self.fromScodoc.competence.titre)
|
||||
for ue in self.ue:
|
||||
if ue is None:
|
||||
header.setLabel(2, "XXX")
|
||||
header.add_column(item3="Note")
|
||||
header.add_column(item3="Res.")
|
||||
else:
|
||||
header.setLabel(2, ue.acronyme)
|
||||
header.add_column(item3="Note")
|
||||
header.add_column(item3="Res.")
|
||||
header.add_column(item2="RCUE", item3="Note")
|
||||
header.add_column(item3="Res.")
|
||||
return header
|
||||
|
||||
def get_ues(self, etudiant):
|
||||
"""get list of candidates UEs for Niveau"""
|
||||
@ -167,6 +244,23 @@ class _AnneeDesc:
|
||||
for niveau in niveaux:
|
||||
self.niveaux[niveau.fromScodoc.id] = niveau
|
||||
|
||||
def generate_blank_niveau(self, header):
|
||||
header.setlabel(1, "-")
|
||||
for _ in range(3):
|
||||
header.add_column()
|
||||
|
||||
def generate_header(self, header):
|
||||
for niveau in self.niveaux.values():
|
||||
niveau.generate_header(header)
|
||||
for i in range(len(self.niveaux), 6):
|
||||
self.generate_blank_niveau(header)
|
||||
header.add_column(item1="Année", item2="Nb", item3="RCUE")
|
||||
header.add_column(item2="Res.")
|
||||
if self.codeAnnee == "BUT2":
|
||||
header.add_column(item1="DUT", item3="Rés.")
|
||||
if self.codeAnnee == "BUT3":
|
||||
header.add_column(item1="BUT", item3="Rés.")
|
||||
|
||||
|
||||
class _ParcoursDesc:
|
||||
def __init__(self, formation, scodocParcour: ApcParcours = None):
|
||||
@ -193,7 +287,6 @@ class _ParcoursDesc:
|
||||
for competence_id, competence in self.competences.items():
|
||||
anneeDesc.addNiveau(competence.getNiveaux(codeAnnee))
|
||||
self.annees[codeAnnee] = anneeDesc
|
||||
breakpoint()
|
||||
|
||||
def add_etudiant(self, etudiant):
|
||||
if not etudiant in self.etudiants:
|
||||
@ -209,39 +302,40 @@ class _ParcoursDesc:
|
||||
data.append(etudiant.getData())
|
||||
return data
|
||||
|
||||
def generate_title(self, worksheet: ScoExcelSheet):
|
||||
worksheet.append_blank_row()
|
||||
cells1 = [
|
||||
worksheet.make_cell(title)
|
||||
for title in [
|
||||
"etudid",
|
||||
"nip",
|
||||
"Civ",
|
||||
"nom",
|
||||
"prenom",
|
||||
"parcours",
|
||||
"cursus",
|
||||
"absences",
|
||||
"abs. non just.",
|
||||
]
|
||||
]
|
||||
cells2 = [ len(title) * '' ]
|
||||
cells3 = [ len(title) * '' ]
|
||||
cells4 = [ len(title) * '' ]
|
||||
worksheet.append_row(cells1)
|
||||
worksheet.append_row(cells2)
|
||||
worksheet.append_row(cells3)
|
||||
worksheet.append_row(cells4)
|
||||
for codeAnnee in listeAnnees:
|
||||
def append_title_column(self, worksheet, cells, val1, val2, val3, val4):
|
||||
cells1, cells2, cells3, cells4 = cells
|
||||
cells1.append(worksheet.make_cell(val1))
|
||||
cells2.append(worksheet.make_cell(val2))
|
||||
cells3.append(worksheet.make_cell(val3))
|
||||
cells4.append(worksheet.make_cell(val4))
|
||||
|
||||
def generate_header(self, header):
|
||||
titles_strings = [
|
||||
"etudid",
|
||||
"nip",
|
||||
"Civ",
|
||||
"nom",
|
||||
"prenom",
|
||||
"parcours",
|
||||
"cursus",
|
||||
"absences",
|
||||
"abs. non just.",
|
||||
]
|
||||
for title in titles_strings:
|
||||
header.add_column(item0=title)
|
||||
for codeAnnee in listeAnnees:
|
||||
header.setLabel(0, codeAnnee)
|
||||
self.annees[codeAnnee].generate_header(header)
|
||||
return header
|
||||
|
||||
def generate(self, workbook: ScoExcelBook):
|
||||
if self.fromScodoc:
|
||||
sheet_name = self.fromScodoc.code
|
||||
else:
|
||||
sheet_name = "TC"
|
||||
worksheet = ScoExcelSheet = workbook.create_sheet(sheet_name)
|
||||
self.generate_title(worksheet)
|
||||
worksheet: ScoExcelSheet = workbook.create_sheet(sheet_name)
|
||||
header: _Header = _Header()
|
||||
self.generate_header(header).write(worksheet)
|
||||
|
||||
|
||||
class _Etudiant:
|
||||
@ -327,7 +421,6 @@ class _Compilation:
|
||||
self.parcours[parcourCode] = parcoursDesc
|
||||
parcoursDesc.add_etudiant(etudiant)
|
||||
etudiant.fill_in(parcoursDesc, self.semestres)
|
||||
breakpoint()
|
||||
pass
|
||||
|
||||
def add_semestre(self, formsemestre_id, semestre: _Semestre = None):
|
@ -42,7 +42,7 @@ from flask_login import current_user
|
||||
from app import db
|
||||
from app import models
|
||||
from app.auth.models import User
|
||||
from app.but import apc_edit_ue
|
||||
from app.but import apc_edit_ue, sco_prepajury_but
|
||||
from app.but import jury_but, jury_but_validation_auto
|
||||
from app.but.forms import jury_but_forms
|
||||
from app.but import jury_but_pv
|
||||
@ -60,7 +60,6 @@ from app.models.moduleimpls import ModuleImpl
|
||||
from app.models.modules import Module
|
||||
from app.models.ues import DispenseUE, UniteEns
|
||||
from app.scodoc.sco_exceptions import ScoFormationConflict, ScoPermissionDenied
|
||||
from app.tables import jury_recap
|
||||
from app.views import notes_bp as bp
|
||||
|
||||
from app.decorators import (
|
||||
@ -73,7 +72,7 @@ from app.decorators import (
|
||||
|
||||
# ---------------
|
||||
|
||||
from app.scodoc import sco_bulletins_json, sco_utils as scu, sco_prepajury_but
|
||||
from app.scodoc import sco_bulletins_json, sco_utils as scu
|
||||
from app.scodoc import notesdb as ndb
|
||||
from app import log, send_scodoc_alarm
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user