Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

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

Open
XCarrel opened this issue Jun 24, 2019 · 1 comment
Open

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

XCarrel opened this issue Jun 24, 2019 · 1 comment

Comments

@XCarrel
Copy link

XCarrel commented Jun 24, 2019

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
Copy link
Owner

QuentinNev commented Jun 24, 2019

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"

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants