forked from ScoDoc/ScoDoc
Update opolka/ScoDoc from ScoDoc/ScoDoc #2
@ -1,6 +1,6 @@
|
||||
# -*- coding: UTF-8 -*
|
||||
"""Gestion de l'assiduité (assiduités + justificatifs)
|
||||
"""
|
||||
"""Gestion de l'assiduité (assiduités + justificatifs)"""
|
||||
|
||||
from datetime import datetime
|
||||
|
||||
from flask_login import current_user
|
||||
@ -336,13 +336,19 @@ class Assiduite(ScoDocModel):
|
||||
"""
|
||||
return get_formsemestre_from_data(self.to_dict())
|
||||
|
||||
def get_module(self, traduire: bool = False) -> int | str:
|
||||
"TODO documenter"
|
||||
def get_module(self, traduire: bool = False) -> Module | str:
|
||||
"""
|
||||
Retourne le module associé à l'assiduité
|
||||
Si traduire est vrai, retourne le titre du module précédé du code
|
||||
Sinon rentourne l'objet Module ou None
|
||||
"""
|
||||
|
||||
if self.moduleimpl_id is not None:
|
||||
modimpl: ModuleImpl = ModuleImpl.query.get(self.moduleimpl_id)
|
||||
mod: Module = Module.query.get(modimpl.module_id)
|
||||
if traduire:
|
||||
modimpl: ModuleImpl = ModuleImpl.query.get(self.moduleimpl_id)
|
||||
mod: Module = Module.query.get(modimpl.module_id)
|
||||
return f"{mod.code} {mod.titre}"
|
||||
return mod
|
||||
|
||||
elif self.external_data is not None and "module" in self.external_data:
|
||||
return (
|
||||
|
@ -12,7 +12,7 @@ from sqlalchemy import desc, literal, union, asc
|
||||
|
||||
from app import db, g
|
||||
from app.auth.models import User
|
||||
from app.models import Assiduite, Identite, Justificatif
|
||||
from app.models import Assiduite, Identite, Justificatif, Module
|
||||
from app.scodoc.sco_utils import (
|
||||
EtatAssiduite,
|
||||
EtatJustificatif,
|
||||
@ -534,10 +534,45 @@ class RowAssiJusti(tb.Row):
|
||||
if self.table.options.show_module:
|
||||
if self.ligne["type"] == "assiduite":
|
||||
assi: Assiduite = Assiduite.query.get(self.ligne["obj_id"])
|
||||
mod: str = assi.get_module(True)
|
||||
self.add_cell("module", "Module", mod, data={"order": mod})
|
||||
if self.table.no_pagination:
|
||||
mod: Module = assi.get_module(False)
|
||||
code = mod.code if isinstance(mod, Module) else ""
|
||||
titre = ""
|
||||
if isinstance(mod, Module):
|
||||
titre = mod.titre
|
||||
elif isinstance(mod, str):
|
||||
titre = mod
|
||||
else:
|
||||
titre = "Non Spécifié"
|
||||
|
||||
self.add_cell(
|
||||
"code_module", "Code Module", code, data={"order": code}
|
||||
)
|
||||
self.add_cell(
|
||||
"titre_module",
|
||||
"Titre Module",
|
||||
titre,
|
||||
data={"order": titre},
|
||||
)
|
||||
else:
|
||||
mod: Module = assi.get_module(True)
|
||||
self.add_cell(
|
||||
"module",
|
||||
"Module",
|
||||
mod,
|
||||
data={"order": mod},
|
||||
)
|
||||
else:
|
||||
self.add_cell("module", "Module", "", data={"order": ""})
|
||||
if self.table.no_pagination:
|
||||
self.add_cell("module", "Module", "", data={"order": ""})
|
||||
else:
|
||||
self.add_cell("code_module", "Code Module", "", data={"order": ""})
|
||||
self.add_cell(
|
||||
"titre_module",
|
||||
"Titre Module",
|
||||
"",
|
||||
data={"order": ""},
|
||||
)
|
||||
|
||||
def _utilisateur(self) -> None:
|
||||
utilisateur: User = (
|
||||
|
Loading…
Reference in New Issue
Block a user