elefan-grenoble / gestion-compte

Gestion des membres et du bénévolat à l'éléfàn, super marché coopératif Grenoble
https://lelefan.org
GNU General Public License v3.0
44 stars 42 forks source link

[bug] mauvais calcul de la date de début de cycle #40

Closed janssens closed 6 years ago

janssens commented 6 years ago

" Bonjour, j'ai effectué un créneau de 3h samedi dernier de 12h à 15h. Or ce matin en consultant le site, voice le message" image pasted at 2018-3-5 10-06 png

museOnSite commented 6 years ago

Origine du bug probablement situé dans la fonction startOfCycle($cycleIndex) de l'entité User

janssens commented 6 years ago

Je me demande si c'était pas la volonté de la personne qui l'a codé. @christopheswe ? Est-ce que le 1er cycle commence le lendemain du tout premier créneaux, ou le jour même du 1er créneaux ? en d'autre terme, est ce que le premier créneaux appartient au premier cycle ou non ? Ce qui est certain, c'est que l'affichage avant d'avoir choisi un premier créneau doit être cohérent avec ce choix.

janssens commented 6 years ago

Non reproduit après la dernière mise en production

museOnSite commented 6 years ago

Non je pense pas que ce soit volontaire. C'est sûr que le premier créneau doit appartenir au 1er cycle.

janssens commented 6 years ago

Stephane, l'utilisateur, me dit que c'est encore le cas sur son compte.

museOnSite commented 6 years ago

Je n'arrive pas à reproduire le bug en local (voir screenshots). La seule possibilité que je vois, un problème de timezone.

capture du 2018-03-09 23-42-09 capture du 2018-03-09 23-42-42

janssens commented 6 years ago

très bonne piste la timezone, comment vérifier ?

museOnSite commented 6 years ago

Il faut changer la Timezone du système et redémarrer le navigateur. Par contre il se peut que ce soit pas testable en local vu que MySQL, Symfony et le navigateur auront la même Timezone. Il faut donc tester sur membres.lelefan.org.

museOnSite commented 6 years ago

Bon ben j'arrive non plus pas à reproduire en changeant la timezone. @janssens Tu pourrais me filer le numéro de membre de Stéphane ?

janssens commented 6 years ago

277. A noter que sur sa fiche membre on ne voit plus ces créneaux passés. sans doute une feature à développer : les afficher sous forme de liste ?

museOnSite commented 6 years ago

Il ne voit pas ses créneaux passés parce que la date de début de cycle est mauvaise. Sinon tu vois tous les créneaux du cycle en cours (passés ou pas). Exemple sur mon compte: capture du 2018-03-11 22-05-05

museOnSite commented 6 years ago

Bug reproduit chez une autre membre (clorene74@hotmail.fr):

J'étais surprise d'autant plus que j'ai fait mon créneau le 2/03 soit au début du cycle de l'ancien fonctionnement (planning mois de mars). et je me retrouve avec un nouveau cycle qui début le 3/03 soit le lendemain ? donc le cycle d'avant s'est réduit à 3 jours. Je le signale car il y a certainement plein de personnes qui ont fait leur shift la première semaine de >mars qui se retrouvent dans cette situation (on doit faire 2 créneaux sur mars ?).

janssens commented 6 years ago

image

fgougou commented 6 years ago

Et pour compléter, là c'est redevenu normal image

museOnSite commented 6 years ago

Il y a peut-être eu entre-temps une mise en prod qui a réglé le problème.

Il faudrait demander aux 2 autres personnes qui ont eu le problème de vérifier si elles l'ont encore.

christopheswe commented 6 years ago

J'ai essayé en local de reproduire le bug en modifiant la date de mon PC mais sans succès. Je suis à lelefan pour ma deuxième fermeture (après celle d'hier soir) et j'ai le même problème. Il me dit qu'il me manque 1h30 à faire en plus de ce soir. Il ne compte pas mon créneau d'hier. J'essaierai de me connecter demain matin pour voir. deepin capture-ecran_20180322192806

christopheswe commented 6 years ago

Et là c'est revenu dans l'ordre... bizarre

christopheswe commented 6 years ago

Ok bug corrigé dans la branche develop : vous pouvez tester ? Correction de la fonction startOfCycle qui calculait un modulo entre deux dates dont les champs heure, minute, seconde n'étaient pas à zéro. Du coup si mon tout premier créneau commençait à 19h30 et que ma date courante était supérieure (entre minuit et 19h30) mon modulo était faux et donc ma date de début de cycle était augmentée de 1. Entre 19h30 et minuit (période pendant lesquelles on codait et testait) le modulo est correct et tout fonctionne. J'ai donc resetter les temps avant de faire cette comparaison. Une fois que vous confirmez que vous reproduisez le bug et que mon évolution corrige le truc, on peut mettre la correction en prod

museOnSite commented 6 years ago

C'est chiant à tester, je te fais confiance perso. Par contre fait une pull-request la prochaine fois.

christopheswe commented 6 years ago

Je savais qu'il fallait en faire une mais j'en avais jamais fait donc j'ai corrigé crade comme auparavant directement en branche.

janssens commented 6 years ago

J'ai validé ton dev, ce qui est certain c'est que ça ne pouvais pas marcher sans ça. Et je me doutais bien que c'était un problème d'heure et pas de jour. Mise en prod faite ce matin