forked from ScoDoc/ScoDoc
Assiduite: filtrage par formsemestre: intersection dates
This commit is contained in:
parent
9ec0ef27ba
commit
8cf85f78a8
@ -68,7 +68,7 @@ class FormSemestre(db.Model):
|
||||
semestre_id = db.Column(db.Integer, nullable=False, default=1, server_default="1")
|
||||
titre = db.Column(db.Text(), nullable=False)
|
||||
date_debut = db.Column(db.Date(), nullable=False)
|
||||
date_fin = db.Column(db.Date(), nullable=False)
|
||||
date_fin = db.Column(db.Date(), nullable=False) # jour inclus
|
||||
edt_id: str | None = db.Column(db.Text(), index=True, nullable=True)
|
||||
"identifiant emplois du temps (unicité non imposée)"
|
||||
etat = db.Column(db.Boolean(), nullable=False, default=True, server_default="true")
|
||||
|
@ -499,9 +499,9 @@ def filter_by_formsemestre(
|
||||
formsemestre: FormSemestre,
|
||||
) -> Query:
|
||||
"""
|
||||
Filtrage d'une collection : conserve les élements
|
||||
- si l'étudiant est inscrit au formsemestre
|
||||
- Et que la plage de dates est complètement incluse dans le semestre (bizarre!)
|
||||
Filtrage d'une collection : conserve les élements tels que
|
||||
- l'étudiant est inscrit au formsemestre
|
||||
- et la plage de dates intersecte celle du formsemestre
|
||||
"""
|
||||
|
||||
if formsemestre is None:
|
||||
@ -520,10 +520,10 @@ def filter_by_formsemestre(
|
||||
form_date_fin = formsemestre.date_fin + timedelta(days=1)
|
||||
|
||||
collection_result = collection_result.filter(
|
||||
collection_class.date_debut >= form_date_debut
|
||||
)
|
||||
collection_class.date_debut <= form_date_fin
|
||||
).filter(collection_class.date_fin >= form_date_debut)
|
||||
|
||||
return collection_result.filter(collection_class.date_fin <= form_date_fin)
|
||||
return collection_result
|
||||
|
||||
|
||||
def filter_by_modimpls(
|
||||
|
Loading…
Reference in New Issue
Block a user