WIP: Permettre d'utiliser les données sur plusieurs mois pour générer des rapports #2
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "données-sur-plusieurs-mois"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Cette PR introduit la capacité d'indiquer plusieurs dossiers à l'outil afin qu'il puisse générer des rapports qui prennent en compte les données de plusieurs mois. Par exemple, rendre une courbe de kWh Auto-Consommés au cours des mois.
.wait()sur le processus crée pour ouvrir l'explorateur de fichiers suivant l'OS. 8c6a7fb849démarrer_générationetsuivi_générationpour séparer code « ui » et code « génération rapports ». 1f629d7990f7912563c0to12bb9cdc94dériver_infos_acc_à_partir_de_un_dossierchoisit le numero d'opération d'ACC qui apparait le plus fréquemment dans les noms des fichiers dans le dossier passé en paramètre. 60e7a988f1cargo fmt[sur les lignes d'import]. 7c59dd8c15Finalement j'inclus aussi l'utilisation de ces "données sur plusieurs mois" pour générer et placer dans les rapports mensuels des courbes montrant les valeurs de consommation/production sur les périodes connues par l'outil au moment de la génération.
J'inclus également la possibilité de choisir pour quelle "période" (i.e. quel mois) générer les rapports. Les courbes rendues dans le rapport s’arrêtent au mois choisi (et donc ne vont pas dans le "futur" de cette "période" / de ce mois).
J'inclus aussi la possibilité de suivre plusieurs opérations d'ACC et de basculer entre elles à tout instant. C'est surtout une mesure de robustesse pour traiter le cas ou l'utilisateur·ice aurait des données venant de différentes opérations sur sa machine et les importerait à tour de rôle dans l'outil. En tant qu’éditeur de l'outil, je vois 2 choix possibles pour traiter ce(s) cas :
ACC12345678) d'un nom de fichier commeACC12345678_01012026_31012026_Autoconso_ENERGIE.csv).La solution 2 a été retenue, car elle offre le plus de flexibilité à l'utilisateur·ice ; non seulement elle lui permet de gérer/suivre plusieurs opérations en parallèle mais (surtout) elle n'efface pas l'intégralité des saisies existantes suite à une fausse manip'.
7f8f36dd0dto3a3348a3c6d09867ab6dto284e35109c284e35109ctof8ba20a048Il manque une dernière fonctionnalité pour fusionner cette branche avec la branche principale ; la saisie des tarifs du kWh entre chaque producteur et chaque consommateur d'une opération d'ACC. Ce fut introduit dans la branche principale après le début du découpage
main/ui/mémoirede celle-cie, et donc a été perdu lors des rebase successifs surmain. Il faut reprendre le code d'interface utilisateur demainet l'adapter à la nouvelle « mouture » de l'interface, ainsi que de décider comment stocker l'info saisie.Pour l'instant je penche plutôt sur copier l'approche prise dans cette branche pour stocker l'info annotant quel(s) consommateur(s) est/sont en contrat heures pleines / heures creuses ; l'écrire dans un fichier à coté des fichiers venant d'Enedis (c'est-à-dire dans le même dossier, et donc avoir un fichier par période/mois connu de l'outil) en faisant porter à ce fichier un nom standardisé.
lire_fichier_consommation_consommateur). 926bdbd8b5écrire_tarifs_unitaires_entre_producteurs_et_consommateurs. Bloquer la génération de rapports pour un mois / une période donnée tant que l'ensemble des tarifs unitaires pour cette période ne sont pas saisis. 34855b4dc6dossier_de_sortiet ses tests. ed01439e6b.env. da01ddd49cÇa y est ! La grille de saisie des tarifs est implémentée et ceux-ci sont stockés dans un fichier à part, à coté des fichiers venant d'Enedis pour la période donnée.
Fonctionnellement parlant, la génération sur plusieurs mois est faite.
Pour être mergé dans la branche principale et sorti comme
v2.0, il manque maintenant une mise à jour du guide d'utilisation - qui mérite sans doute d'être sorti du README principal et relégué ailleurs. Fichier markdown dans le répo, page du wiki - à voir.Ça serait bien de laisser l'utilisateur·ice spécifier « depuis quel mois » prendre en compte les données utilisées pour générer les courbes dans les rapports. Ça peut sans doute attendre - et consister en - la
v2.1.À noter que le changement fait dans le commit
926bdbd8b5mériterait d'être back-porté sur la branche principal et sorti commev1.1.2, voirv1.2– il ne faudrait pas faire attendre lav.2.0pour générer des rapports corrects.NomFichierNestPasUtf8ValideetFichierVideà l'énumération des differentes erreurs de lecture possible. Ajouterimpl std::error::Error for ErreurLecture. Introduire la fonctionlire_flottant_français_avec_virgulepouvant être référencée comme désérializatrice d'un attribut donné d'une structure de données viaserde. Remplacer l'intégralité des.expect()dans le code métier par une remontée d'erreurs. 431dc504a6ErreurIo,ErreurDésérialisation, etErreurCsvde l'énumérationErreurLecturerespectivement enIo,Désérialisation, etCsv. 6b009aa56dErreurÉcritureen retirer leur préfixe communErreur-. ca62095a2ccrate::- des endroits où le typePériodeest référencé. 96ae0b259c.expect("…")restants qu'il s'agit de tests. b7e502fba4ErreurGénérationet remplacer les utilisations de.expect("…")sur desResultdans les fonctionsgénérer_rapportsetgénérer_pdf_*par une remontée d'erreur(s). 60ffcf1808ErreurLecture::Csv. Supprimerimpl From<csv::Error> for ErreurLecture. d2b242965cstd::io::Errorde génération venant de la préparation des graphes et de l'écriture dans un fichier sur disque. Rattacher le chemin ciblé aux erreurs de génération « d'écriture ». f4a265ab9cgénérer_rapports. 21524e3e90ErreurImportenErreurChargementMémoire. 076ab43e0eÉrreurÉcritureen une structureErreurEnregistrementMémoire, retirant les casIoetron::Erroret rattachant le chemin du fichier provoquant l'erreurcsv. c1b6326390cargo fmt. 28ed98531dOptionentourant les chemins dans les structures de donnéesFichiersProducteuret FichiersConsommateur. Introduire les variantesFichierConsommationManquant,FichierAutoConsommationManquant,FichierProductionManquant,FichierAutoConsommationPourUnProducteurManquantde l'énumérationErreurLecture`. d9f51bdceed9f51bdceeto3ac1ba0fe4View command line instructions
Checkout
From your project repository, check out a new branch and test the changes.Merge
Merge the changes and update on Forgejo.Warning: The "Autodetect manual merge" setting is not enabled for this repository, you will have to mark this pull request as manually merged afterwards.