BdEINSALyon / portailva

Managing platform for INSA Lyon's organizations
GNU Affero General Public License v3.0
4 stars 1 forks source link

Condition faible sur la vérification de date #73

Closed MathisHammel closed 7 years ago

MathisHammel commented 7 years ago

En lisant rapidement le code source lié à #72 je suis tombé sur un check un peu étrange sur https://github.com/BdEINSALyon/portailva/blob/d4119ee0071a94cce901de818dd723510ab035b9/portailva/association/forms.py#L61 Il semblerait que l'on puisse créer un mandat s'il est entièrement inclus dans un autre mandat, ou qu'il contient entièrement un autre mandat. Exemples: Mandat actuel 2015-2016 Mandat en cours de création 2014-2017

Mandat actuel 2014-2017 Mandat en cours de création 2015-2016

Ces deux opérations semblent ne pas poser problème alors qu'elles devraient. Je n'ai pas testé donc il est possible que j'aie manqué quelque chose et que je me trompe totalement.

Proposition de modification: if not (begins_at < ends_at <= mandate.begins_at < mandate.ends_at or mandate.begins_at < mandate.ends_at <= begins_at < ends_at): (J'aurais bien fait la PR, mais un peu la flemme de cloner et setup tout l'env pour ça)

Crocmagnon commented 7 years ago

D'après mes tests il n'y a qu'un seul souci. La condition dit qu'on ne peut pas créer un mandat si le début ou la fin d'un autre mandat est inclus dans la période du mandat en cours de création, c'est voulu. Par contre il est en effet possible de créer un mandat inclus dans un autre.

Crocmagnon commented 7 years ago

Voir c43d9c3801fbd739942ad8aa2d4c900619b47771