QuentinNev / GlouGlou

Vine cellar management application
0 stars 1 forks source link

Evaluation: Mes vins préférés #4

Open XCarrel opened 5 years ago

XCarrel commented 5 years ago

L'utilisateur peut noter un vin (de zéro à 5 étoiles) Il peut consulter la liste de ses vins préférés (3 étoiles et plus) Il y a une page 'Urgence': elle liste tous les vins 'préférés' dont le stock est inférieur à un seuil d'alerte configurable dans les préférences Le bouton d'accès à cette page porte une pastille indiquant le nombre de vins que l'on va y trouver

QuentinNev commented 5 years ago

Pour les notes, il fallait d'abord contrôler si au moins une note était créée, puis si le vin venait de l'api (car un vin créé localement a de toute façon une note) Cela fonctionnait bien jusqu'à ce que le storage ne mette pas tout de suite à jour la valeur stockée sous "notes"

Si on met de côté ce bug et le manque de temps, j'estime mon autoévaluation à 4.5

Explications du projet :

Modèle Note.ts

Ce simple modèle représente une note attribuée à un vin et permet de gérer plus facilement les cas de vins venant de l'api.

Provider NoteProvider.ts

Ce provider fait le lien entre le modèle des notes et le storage. Quand on ajoute un vin localement, un objet note est également créé et range dans le storage. Quand le vin vient de l'api, celui-ci n'a pas de vin par défaut quand on tente d’accéder à ses détails. Le NoteProvider vérifie et crée une note si besoin est.

Page Fintests

Ici sont affiché les vins les plus "raffinées" (soit ceux qui ont une note supérieur à 2) La façon de présenter les vins est la même que sur la page home, ceux-ci sont simplement filtrés.

Problème rencontré

Lorsqu'on utilise le storage avec la clé "notes" une seconde fois (l'initialisation se déroule correctement), celui-ci semble ne pas mettre à jour directement les données. Bien que le navigateur Chrome notifie d'un changement, nous avons les mêmes données en rafraîchissant l'affichage du localStorage. Des logs ont été posés à certains endroits précis pour surveiller le déroulement de la mise à jour du storage avec la clé "notes", ce qui a amené à cette conclusion.

Travail restant

Mis à part ce problème de synchronisation (a ne pas confondre avec un problème de programmation asynchrone !) l'implémentation de la page "Urgences" aurait été similaire à celle des favoris. Un filtre supplémentaire est simplement rajouté pour générer cette liste. Du côté de la page home, la même fonction aurait été utilisé mais à la place de faire un <ion-item *ngFor="let wine of finestsWines">, un simple array.length aurait permit d'afficher le nombre dans le bouton menant à la page "Urgences"