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

[Bug]: Notes qui chargent indéfiniment #301

Closed
okayhappex opened this issue Oct 22, 2024 · 23 comments
Closed

[Bug]: Notes qui chargent indéfiniment #301

okayhappex opened this issue Oct 22, 2024 · 23 comments

Comments

@okayhappex
Copy link
Contributor

Description du bug

Sur une instance ED lorsqu'on ouvre l'onglet Notes elles se mettent à charger indéfiniment

Étapes à reproduire

  1. Se connecter sur une instance ED
  2. Ouvrir l'onglet Notes
  3. Regarder en haut à gauche (attention c'est hypnotique)

Comportement attendu

Notre 20/20 de moyenne devrait s'afficher en grand

Appareil

Honor 70 Lite

Version du système d`exploitation

Android 14

Version

7.2.1

Environnement

Prébuild de développement (iOS/Android)

Source de l'application

Github

Service scolaire

🟦 EcoleDirecte

Captures d'écran / vidéo

SVID_20241022_151016_1.mp4

Contexte supplémentaire

  • Le bug est connu sur Discord depuis quelques jours mais pas répertorié sur Github

  • La vidéo provient du build de @Evorsiol mais le même comportement est observé sur ce repo via Expo Go

@Kgeek33
Copy link
Contributor

Kgeek33 commented Oct 22, 2024

Tu peux envoyer les logs stp ?

  • Paramètres
  • À propos de Papillon
  • Tout en bas, clique sur "Version des dépendances"

@okayhappex
Copy link
Contributor Author

Rien qui date d'après le 2 octobre
Screenshot_20241022_161423_xyz_getpapillon_app_MainActivity

@Kgeek33
Copy link
Contributor

Kgeek33 commented Oct 22, 2024

T'as déjà eu des notes ?

@okayhappex
Copy link
Contributor Author

5 ou 6 ouais

@Kgeek33
Copy link
Contributor

Kgeek33 commented Oct 22, 2024

Alors

  • Soit ce sont les useState qui sont mal gérées avec École Directe
  • Soit la récupération des données n'est pas fonctionnelle

Le 1er point étant le plus probable

@Kgeek33
Copy link
Contributor

Kgeek33 commented Oct 22, 2024

Mdrr je fais que des copié/collé de #300 😂

@okayhappex
Copy link
Contributor Author

Depuis taleur j'ai remarqué ouais 😂

@Evorsiooo
Copy link

Si je me souvient bien certaines personnes arrivaient a voir les notes (dont @imyanice je crois)
Une hypothèse qui avait était émise était donc que Papillon avait besoin de certaines infos (genre la note mini ou maxi d'un DS) mais que l'établisement avait fait le choix de ne pas donner l'information. Mais bon j'ai pas encore vérifé le code donc je sais pas 😆

@Gabriel29306
Copy link
Contributor

Ah, donc tu penses que Papillon est grincheux quand il n'a pas tout ce qu'il veut ?

@Kgeek33
Copy link
Contributor

Kgeek33 commented Oct 23, 2024

Non. J'ai regardé le code et voilà ce que j'en pense.

  1. Les variables suivantes permettent de récupérer les périodes et celle par défaut (en ce moment, c le trimestre 1/semestre 1)
    https://github.com/PapillonApp/Papillon/blob/main/src%2Fviews%2Faccount%2FGrades%2FGrades.tsx#L32-L33

  2. Une des 2 variables qui est définie ci-dessus est converti en useMemo
    https://github.com/PapillonApp/Papillon/blob/main/src%2Fviews%2Faccount%2FGrades%2FGrades.tsx#L38

Mais il y a un problème dans tout ça, qui amène au 3ème point ci-dessous.

  1. Le useEffect suivant permet de gérer le chargement de la page
    https://github.com/PapillonApp/Papillon/blob/main/src%2Fviews%2Faccount%2FGrades%2FGrades.tsx#L62-L74

Mais la vidéo montre un chargement un chargement infini, donc le useEffect qui ne fonctionne pas.
Et j'en reviens à ma théorie : Papillon n'arrive pas à récupérer la période actuelle, d'où le chargement infini -> https://github.com/PapillonApp/Papillon/blob/main/src%2Fviews%2Faccount%2FGrades%2FGrades.tsx#L63

@Kgeek33
Copy link
Contributor

Kgeek33 commented Oct 23, 2024

C'est très long ce que j'ai écrit, mais j'ai essayé d'être le plus clair possible 😅

@Kgeek33
Copy link
Contributor

Kgeek33 commented Oct 23, 2024

Et en plus, regardez l'énorme indice dans la video :

Screenshot_2024-10-23-22-49-40-451_com.github.android.png

La période actuelle n'est pas récupérée

@okayhappex
Copy link
Contributor Author

Et en plus, regardez l'énorme indice dans la video :

Screenshot_2024-10-23-22-49-40-451_com.github.android.png

La période actuelle n'est pas récupérée

Pas mal Inspecteur Geekjet 😌👌

@imyanice
Copy link
Contributor

Compliqué à régler tout ça, vu que ça marche chez moi 😅.

Me faudrait le notes.awp obtenable dans le menu réseau de inspecter l'élément pour faire quelque chose

@saumon-brule
Copy link

saumon-brule commented Oct 27, 2024

Au risque d'être impertinent si vous saviez déjà Ecole directe envoi pas que les périodes dans les notes, la réponse contient aussi des relevés ou d'autres trucs, je sais pas comment c'est géré ni si vous parlez de ces périodes du tout et peut-être que le problème à rien à voir mais bon on sait jamais ca pourrait poser problème 😅

@Evorsiooo
Copy link

Compliqué à régler tout ça, vu que ça marche chez moi 😅.

Me faudrait le notes.awp obtenable dans le menu réseau de inspecter l'élément pour faire quelque chose

D'ailleurs je l'avais envoyé dans tes DMs il y a une bonne semaine mais tu m'a jamais répondu...

@imyanice
Copy link
Contributor

Compliqué à régler tout ça, vu que ça marche chez moi 😅.
Me faudrait le notes.awp obtenable dans le menu réseau de inspecter l'élément pour faire quelque chose

D'ailleurs je l'avais envoyé dans tes DMs il y a une bonne semaine mais tu m'a jamais répondu...

@Evorsiooo j'étais en vacances! renvoie moi un dm et je regarde ça :)

Au risque d'être impertinent si vous saviez déjà Ecole directe envoi pas que les périodes dans les notes, la réponse contient aussi des relevés ou d'autres trucs, je sais pas comment c'est géré ni si vous parlez de ces périodes du tout et peut-être que le problème à rien à voir mais bon on sait jamais ca pourrait poser problème 😅

@saumon-brule je ne vois pas de quoi tu parles, si tu aurais un exemple, je suis preneur

@saumon-brule
Copy link

@imyanice la gestion des notes de ED est un peu bizarre (de toutes leurs API de ED il me semble que c'est vraiment la pire à parse)
La réponse ressemble en gros à ça :

{
  "code": 200,
  "token": "token",
  "host": "HTTP46",
  "data": {
    "periodes": [
      {
        "idPeriode": "A001",
        "codePeriode": "A001",
        "periode": "1er Trimestre",
        "annuel": false,
        "examenBlanc": false,
        "cloture": true,
        "ensembleMatieres": {
          "disciplines": [
            // une liste des matières de ce trimestre/semestre
            ]
        }
      },
      {
        "idPeriode": "A001R001",
        "codePeriode": "A001R001",
        "periode": "Relev\u00e9 ",
        "ensembleMatieres": {
          "disciplines": [
            // liste des matière ...
          ]
        }
      },
      {
        "idPeriode": "A002",
        "codePeriode": "A002",
        "periode": "2\u00e8me Trimestre",
        "ensembleMatieres": {
          "disciplines": [
            // ...
          ]
        }
      },
      {
        "idPeriode": "A003",
        "codePeriode": "A003",
        "periode": "3\u00e8me Trimestre",
        "ensembleMatieres": {
          "disciplines": [
            // ...
          ]
        }
      },
      {
        "idPeriode": "A999Z",
        "codePeriode": "A999Z",
        "periode": "Ann\u00e9e",
        "ensembleMatieres": {
          "disciplines": [
            // ...
          ]
        }
      }
    ],
    "notes": [
      // ... les notes
    ],
    "parametrage": {
      // ... les options en fonction des établissements
    }
  }
}

En gros dans la liste des périodes (qui comprend donc la liste des matières) il y a les codes A00X qui semblent être ceux des trimestres/semestres qui sont ce qui nous intéresse vu que les notes sont reliées à ces périodes. Mais il y a aussi d'autres "périodes", dans l'exemple que j'ai j'ai un relevé et un truc annuel, de mon côté ED n'affiche pas ça donc je ne sais pas du tout à quoi ça correspond mais peut-être qu'il y a un problème lors du parsing à cause de ça parce que le nombre de période, leur rôle et fonctionnement semble différer d'un établissement et donc d'un utilisateur à l'autre.

Btw j'ai enlevé bcp de clés et de valeurs pour que ce soit plus simple à comprendre mais la version full est dispo ici (un peu de pub pour edp au passage xD)

@imyanice
Copy link
Contributor

@imyanice la gestion des notes de ED est un peu bizarre (de toutes leurs API de ED il me semble que c'est vraiment la pire à parse)

La réponse ressemble en gros à ça :

{

  "code": 200,

  "token": "token",

  "host": "HTTP46",

  "data": {

    "periodes": [

      {

        "idPeriode": "A001",

        "codePeriode": "A001",

        "periode": "1er Trimestre",

        "annuel": false,

        "examenBlanc": false,

        "cloture": true,

        "ensembleMatieres": {

          "disciplines": [

            // une liste des matières de ce trimestre/semestre

            ]

        }

      },

      {

        "idPeriode": "A001R001",

        "codePeriode": "A001R001",

        "periode": "Relev\u00e9 ",

        "ensembleMatieres": {

          "disciplines": [

            // liste des matière ...

          ]

        }

      },

      {

        "idPeriode": "A002",

        "codePeriode": "A002",

        "periode": "2\u00e8me Trimestre",

        "ensembleMatieres": {

          "disciplines": [

            // ...

          ]

        }

      },

      {

        "idPeriode": "A003",

        "codePeriode": "A003",

        "periode": "3\u00e8me Trimestre",

        "ensembleMatieres": {

          "disciplines": [

            // ...

          ]

        }

      },

      {

        "idPeriode": "A999Z",

        "codePeriode": "A999Z",

        "periode": "Ann\u00e9e",

        "ensembleMatieres": {

          "disciplines": [

            // ...

          ]

        }

      }

    ],

    "notes": [

      // ... les notes

    ],

    "parametrage": {

      // ... les options en fonction des établissements

    }

  }

}

En gros dans la liste des périodes (qui comprend donc la liste des matières) il y a les codes A00X qui semblent être ceux des trimestres/semestres qui sont ce qui nous intéresse vu que les notes sont reliées à ces périodes. Mais il y a aussi d'autres "périodes", dans l'exemple que j'ai j'ai un relevé et un truc annuel, de mon côté ED n'affiche pas ça donc je ne sais pas du tout à quoi ça correspond mais peut-être qu'il y a un problème lors du parsing à cause de ça parce que le nombre de période, leur rôle et fonctionnement semble différer d'un établissement et donc d'un utilisateur à l'autre.

Btw j'ai enlevé bcp de clés et de valeurs pour que ce soit plus simple à comprendre mais la version full est dispo ici (un peu de pub pour edp au passage xD)

Nan mais ça je sais, les notes sont déjà implémentés et fonctionnent mais pas pour tout le monde, c'est ça le problème...
Ta période annuel est retournée par le serveur mais non affiché du aux parametrages de ton établissement

@saumon-brule
Copy link

saumon-brule commented Oct 28, 2024

mais pas pour tout le monde

Justement c'est peut-être l'origine du problème vu que le contenu des réponses d'ED est différent d'un établissement à l'autre. Et vous sembliez partir sur l'hypothèse des périodes mais je sais pas si vous parliez de ça ou pas en tout cas ça m'a fait penser à ces trucs qui pourraient facilement poser problème si le decoder que vous utilisez ne gère pas bien les différentes "périodes" de ED possibles

@saumon-brule
Copy link

Mais encore une fois je suis pas sûr de savoir de quoi vous parlez avec les périodes je drop juste l'info ici au cas où. Il vaut mieux prévenir que guérir

@imyanice
Copy link
Contributor

d'acc, merci!

@imyanice
Copy link
Contributor

imyanice commented Oct 28, 2024

resolved with LiterateInk/Pawdirecte#7

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

6 participants