hass-pronote icon indicating copy to clipboard operation
hass-pronote copied to clipboard

Ajout de la séléction du trimestre ? [évaluations, absences]

Open solarpush opened this issue 2 years ago • 6 comments

Bonjour, d'abord merci pour votre travail c'est top,

en regardant un peu je penssais à une erreur en voyant que les evalutions était indisponible dans la liste des sensor (présent mais indispo)

En regardant le code je pense à présent qu'il s'agit simplement d'une entré vide car nous sommes pile dans la transition du second trimestre.

J'imagine que cette fonction ne retourne que la periode courante :

def get_evaluations(client):
    evaluations = client.current_period.evaluations
    evaluations = sorted(evaluations, key=lambda evaluation: (evaluation.name))
    return sorted(evaluations, key=lambda evaluation: (evaluation.date), reverse=True)

est- il possible d'imaginer récupérer toutes les périodes non vides et les attribuer à des sous-sensor ? ou garder la structure sensor.pronote.xxx_evaluations qui reste pour le current et ajouter simplement :

  • sensor.pronote.xxx_evaluations_t1
  • sensor.pronote.xxx_evaluations_t2
  • sensor.pronote.xxx_evaluations_t3

et modifier


def get_evaluations(client, period):
    evaluations = client.[period].evaluations
    evaluations = sorted(evaluations, key=lambda evaluation: (evaluation.name))
    return sorted(evaluations, key=lambda evaluation: (evaluation.date), reverse=True)

et


try:
            self.data['evaluations'] = await self.hass.async_add_executor_job(get_evaluations, client, "current_period")
        except Exception as ex:
            _LOGGER.info("Error getting evaluations from pronote: %s", ex)

try:
            self.data['evaluations_t1'] = await self.hass.async_add_executor_job(get_evaluations, client, "trimestre1")
        except Exception as ex:
            _LOGGER.info("Error getting evaluations from pronote: %s", ex)

//etc

à noter que je ne connais pas du tout python c'est pourquoi je ne me lance pas dans une PR, je n'ai pas du tout épluché le requetes pronote et je ne comprend pas bien cette fonction non-plus : self.hass.async_add_executor_job(get_evaluations, client, "trimestre1")

Merci en tout cas cet ajout serais un plus mais c'est déjà très bien.

solarpush avatar Dec 03 '23 12:12 solarpush

Meme problème que le précédent; le trimestre n'est pas fini, mais il n'affiche plus les notes du trimestre 2

plouf34 avatar Mar 06 '24 17:03 plouf34

Il serait intéressant de pouvoir avoir tous les trimestres consultable et pas seulement le dernier. à voir si les adaptations qui sont proposés sont possible

MickaelDENIS avatar Mar 12 '24 19:03 MickaelDENIS

Hello, je crois aussi quel la logique derrière "current_period" ne fonctionne pas à tous les coups. Dans un des lycées, la notion est le semestre. Cette année le 1er semble avoir terminé mi décembre (drôle pour un semestre...), le deuxième a commencé et possède déjà une 10aines de notes. Semestre ou trimestre, pour l'instant l'intégration ne reporte pas vraiment le "courant", mais simplement le premier semestre (sept 2024 à mi décembre 2024) alors que nous sommes déjà le 18 janvier 2025

Une astuce?

r-jean-pierre avatar Jan 18 '25 16:01 r-jean-pierre

Hello, je crois aussi quel la logique derrière "current_period" ne fonctionne pas à tous les coups. Dans un des lycées, la notion est le semestre. Cette année le 1er semble avoir terminé mi décembre (drôle pour un semestre...), le deuxième a commencé et possède déjà une 10aines de notes. Semestre ou trimestre, pour l'instant l'intégration ne reporte pas vraiment le "courant", mais simplement le premier semestre (sept 2024 à mi décembre 2024) alors que nous sommes déjà le 18 janvier 2025

Une astuce?

Alors je pense qu'il y a un premier sujet lié à pronote lui même car l'application native à aussi des problèmes à ce propos. Pour l'intégration je n'ai pas inspecté depuis un moment donc je pourrai pas aider désolé.

Le truc serais sinon de faire une tache cron qui fais l'appel tout les soir depuis un mock de la requête reel avec ton token capturer depuis chrome ( la requête et le token) puis sauvegarder les données en dur dans un fichier dans le volume de home assistant. De cette manière tu évite de dépendre du bon vouloir de pronote genre le rate limit etc pendant un temps je n'avais plus d'informations du tout du fait des blocages imposé par pronotes.

solarpush avatar Jan 19 '25 08:01 solarpush

Oui je vois ce que tu dis, mais c'est tj un peu pareil: faire du wescrapping c'est à la fois dépendre des APIs de base que de toute façon le site de l'école utilise et encore en plus le layout de la page html qui lui aussi peut changer sans que l'api change... d'autant plus que c'est totalement overkill en programmation et énergie CPU à mettre en oeuvre au jour le jour pour récupérer 3 chaines et 2 floats. J'ai pas le niveau pour comprendre le code présent à 100% mais j'avais espéré que de mon coté (ou celle du dév), une variable bien placée aurait pu faire un quick-fix pour ces histoires de trimestre/semestre en cours. Si par exemple l'école "oublie" de dire trimestre 2 actif, j'aurais remplacé "à la main" cette info, plutôt de croire ce que l'école remonte comme info

r-jean-pierre avatar Jan 20 '25 09:01 r-jean-pierre

Le problème c'est que pronote ne fournisse pas d'api .. sinon c'est réglé Le taf de @delphiki est top mais l'intégration ne fonctionnera sans beaucoup de travail .. malheureusement

solarpush avatar Jan 21 '25 09:01 solarpush