ttben / pfe-ecoknowledge

Repository of our PFE project : Ecoknowledge
http://pfe.benni.space
0 stars 0 forks source link

Que se passe-t-il avec les défis dont les durées de vies ne sont pas alignés sur les jours de la semaine ? #106

Open ttben opened 8 years ago

ttben commented 8 years ago

La question a pour but de prendre une décision concernant les défis récurrents commençant un jour qui n'est pas lundi et finissant un jour qui n'est pas vendredi.

La question n'est pas très évidente, aussi je vais l'expliciter. Prenons le cas d'un défi récurrent à la semaine dont l'intervalle de vie commence un jour qui n'est pas lundi (mettons le mercredi 2/12) et finit un jour qui n'est pas vendredi (mettons le jeudi 24/12).

Est-il possible de prendre un défi avant sa durée de vie ?

Le défi va apparaître sur la plateforme le mercredi 2/12 (ou pas, voir ce ticket). Un utilisateur relève le défi le mercredi 2/12. L'objectif qui résulte de la prise du défi démarre quand ?

  1. Lundi 30/11 ? Cela signifie qu'un objectif démarre avant le défi auquel il est rattaché
  2. Lundi 7/12 ? Cela "aligne" avec les semaines et cale tout le monde sur les mêmes conditions.

    Que se passe-t-il quand la fin de la durée de vie d'un défi n'est pas un vendredi ?

Que se passe-t-il jeudi 24/12 ?

  1. L'objectif est évalué le jeudi 24/12 ? Auquel cas on ne peut pas réellement parler de récurrence à la semaine
  2. L'objectif est évalué le vendredi 25/12 (23:59:59) ? Auquel cas il faut gérer un cas particulier d'un objectif qui a une durée de vie supérieure à celle du défi auquel il est rattaché.
ttben commented 8 years ago

Une solution, proposée par notre ami Quentin Cornevin, serait de ne jamais décaler dans le passé la date de début d'un objectif.

En d'autres termes, quand quelqu'un relève un défi (quel que soit le jour de la semaine) il se lance ... pour la semaine prochaine !

Un défi relevé générera un objectif qui aura pour date : prochain lundi -- prochain vendredi (pour un défi récurrent à la semaine)

On perd un peu l'aspect "je le prend tout de suite" mais l'approche "teasing" est intéressante : il y a "une semaine" où tout le monde voit le défi, peut le relever, en discuter, en parler avec d'autres personnes, avant même de réellement concourir pour ce défi (puisque les objectifs rattachés commenceraient le lundi d'après).

Cela résout les problèmes soulevés par les tickets 106 , 107 et 108.

Cela ne pose pas de problème pour les défis journaliers : on prend un défi au jour j, il en résulte un objectif démarrant à j+1 (sauf cas du vendredi où il démarre j+3)

Une question néanmoins se pose pour les défis récurrent au mois. _On va réellement prendre un défi et _attendre au maximum 29 jours* pour commencer à concourir pour ce défi ?!* Cela me semble énorme mais néanmoins inévitable si on veut conserver une certaine consistance dans l'application. Il pourrait être aussi envisageable de traiter le cas particulier de ce type de défi voire même de le remettre en cause.

PETILLON-Sebastien commented 8 years ago

Du coup c'est pas du tout ce qu'on fait actuellement, je me trompe ?