Commit Graph

246 Commits (6424f2e197db0f64a65e381c4b9f40daaae7c645)

Author SHA1 Message Date
Maxime Quandalle 6424f2e197
Déplace les règles vers source/rules 2020-04-06 00:50:32 +02:00
Maxime Quandalle 0a03b7550c
Ajoute des types TypeScript
Transforme quelques derniers composants class en fonctions
2020-04-06 00:40:41 +02:00
Johan Girod f9d4d3ef91 Définition de nouveaux types plus précis pour les règles et le moteur 2020-04-02 14:44:06 +02:00
Johan Girod bf078b2938 🔥 change l'api du moteur 2020-03-31 17:30:05 +02:00
Johan Girod 0f1ca13b7f 🖋️ Améliore la page de documentation de publicode
- Ajoute le tuto
- Rend tous les exemples executables
2020-03-25 09:36:03 +01:00
Maxime Quandalle d997d1a336 ⚙️ Renomme le mécanisme "multiplication" en "produit"
Fixes #681
2020-03-17 15:05:37 +01:00
Mael 7a7a38077b Nouvelle page /studio. Harmonisation du 🎨 2020-03-02 17:35:23 +01:00
Johan Girod e4131eee28 ⚙️ 🔥 grosse modification des barèmes
- Il n'y a plus qu'un mécanisme barème dorénavant : c'est le barème marginal de l'impôt
- On peut utiliser des variables publicode pour chaque argument des tranches
- Le mécanisme barème linéaire est remplacé par le mécanisme "grille"
- Le mécanisme barème continu est remplacé par le mécanisme "taux progressif"
- Les vues sont unifiées et simplifiées
- Seule les tranches nécessaires sont évaluée
- Les unités fonctionnent dans les barèmes
- On précise les tranches d'un barème par leur plafond et non plus par leur plafond et seuil

fix #827
2020-02-25 11:16:36 +01:00
Maxime Quandalle ccb477f8bd Découpe base.yaml 2020-02-05 14:30:54 +01:00
Maxime Quandalle e9d5f1c62b 🔥 Rangement
* Suppression de fichiers "documentation" qui n'avaient pas été modifiés
  depuis deux ans et n'étaient plus à jour
* Déplacement de base.yaml dans un répertoire publicode de premier
  niveau. Déplacement de la traduction des règles dans le répertoire
  source/locales
* Suppression de la page /documentation/exemples qui n'était pas
  référencée sur le site, pas consultée dans nos stats, et boguée.
* Suppression de la configuration git quotepath qui ne semble plus utile
2020-02-05 14:30:54 +01:00
Maxime Quandalle 6545281f01
Suppression de liens morts dans la description SEO (#858)
* Personnalise la configuration ESLint pour les scripts

* 👽 Déplace la traduction de l'explication SEO

sur le simulateur salarié

* Ajout d'une fonction rule dans sitePaths

Permet de type-checker le nom de la règle pour éviter les liens morts

* 👽 Ajoute un test pour la traduction des unités

* 👽 Traduction BNC

* 👽 fix translations
2020-01-27 12:17:26 +01:00
Johan Girod 829ac4aa6f 🔥 remplace le composant <T> par <Trans>
Afin de faciliter l'analyse statique des clés de traduction
2020-01-21 19:15:28 +01:00
Maxime Quandalle e5b42e2321
🔥 Supprime le HOC withColours
Renomme colour en color, pour-être cohérent avec le CSS
2019-12-18 23:06:46 +01:00
Johan Girod 00b122fa97 ⚙️ ajoute la conversion d'unité
Gros changements en perspective :
- Supprime la notion de période, au bénéfice de celle d'unité
  (`période : mensuelle` devient `unité: €/mois`)
- Améliore les rapports d'erreur avec des messages plus clair
- Ajoute un avertissement lorsque des types ne sont pas compatible
- Ajoute la conversion automatique d'unité dans le moteur
- Ajoute une notion d'unité par défaut de la simulation,
  c'est l'unité vers laquelle les règles qui ne spécifient pas
  d'unité seront converties
- Ajoute une notion d'unité par défaut des règles, qui spécifie
  l'unité de la règle qui prévaut lorsque qu'il n'y a pas
  d'unité par défaut de la simulation (utile pour les question ou
  pour s'assurer du bon type d'une règle)
2019-12-16 11:34:04 +01:00
Johan Girod 41d3e17ce2 wip 2019-11-11 18:47:43 +01:00
Maxime Quandalle 7e2a4085a7 Poursuite de la migration TypeScript
* Utilisation de la version stable de TypeScript 3.7

* Début de migration du State Redux. Plutôt que de redéfinir les types
  en doublon par rapport aux actions et reducers, on utilise les valeurs
  retournées par ces fonctions comme source pour les types globaux.

* Modification de tsconfig pour meilleur typage dans VS Code

* Meilleur typage de l'environnement : suppression de @types/node qui
  était trop large (contient tout l'environnement serveur), et
  remplacement par @types/webpack-env. Par ailleurs typage des variables
  d'environnement utilisées.

* Début de migration de l'économie collaborative

* Migration de nombreux composants UI

* Mise à jour de dépendances pour récupérer un meilleur typage

* Ajout d'un hook pour configurer les simulateurs

* Suppression du higher-order component "withSitePaths", on utilise
  systématiquement le hook useContext.

L'essentiel de l'application est maintenant migré, reste le moteur !
2019-11-11 11:33:38 +01:00
Mael 57b5818b44
Console.log qui traîne 2019-11-06 17:08:08 +01:00
Mael c3094019e4 🔥 React-Select ATMP et du coup 🔥 react-select partout 2019-11-05 18:06:56 +01:00
Maxime Quandalle 6de970f0e3 🔥 Migration vers TypeScript
Outils
======

Ce commit retire le tooling de Flow, et ajoute le support de TypeScript
pour les fichiers .ts et .tsx. Il n'est pas nécessaire de tout migrer
d'un coup ce qui facilite la transition. On garde en effet le
compilateur Babel avec un preset TypeScript (ce qui permet donc de
retirer à la fois les types Flow et TypeScript) plutôt que d'utiliser le
compilateur standard pour la conversion du code. Cela permet aussi de
mieux s'intégrer avec d'autres outils, notamment les test-runners.

Ajout d'une nouvelle commande `yarn run type-check`, intégrée dans
CircleCI.

Par ailleurs ajout du support de l'opérateur ?? pour donner des valeurs
par défaut (nullish-coalescing-operator).

Typage des libraires tierces
============================

Les principales libraires que nous utilisons ont un typage TypeScript de
bon niveau, ce qui facilite l'intégration. J'ai mis à jour react-i18next
et i18next afin de corriger un problème de typage.

Typage du code
==============

Le typage est loin d'être complet dans ce commit, en particulier il
manque les types relatifs au state Redux, ainsi qu'au moteur (règle,
explication). Néanmoins le typage des contextes fonctionne, en
particulier sitePaths (avec un type récursif non trivial !) qui a déjà
permis de détecter un lien mort.

Le typage des "paths" (Components/, Règles/, etc.) fonctionne bien, y
compris avec l'auto-complétion automatique des import par Typescript.

TypeScript se révèle déjà bien agréable dans VSCode (auto-complétion,
refacto, etc.) ! Reste à migrer progressivement le reste du code !
2019-10-30 10:20:48 +01:00
Johan Girod 73c79e4b81 ajoute un nouveau parcours gérer mon entreprise 2019-10-23 12:21:48 +02:00
Maxime Quandalle bcb251923c
🎨 Meilleur affichage des multiplicateurs
Affichage des multiplicateurs directement au niveau des tranches et
supprime l'affichage du label "multiplicateur" qui était difficile à
comprendre.

Ajout d'un attribut de règle "acronyme", utilisé pour afficher un nom de
règle plus court au niveau des tranches d'un barème.
2019-10-17 09:33:00 +02:00
Maxime Quandalle c088d4c5df
🐛 Ré-affiche le fil d'ariane sur la documentation
Corrige une régression de 1ccaf94
2019-10-16 12:12:10 +02:00
Maxime Quandalle 7ea385cb80
🐛 Corrige l'affichage de l'image des références
Regression de 6ea5dd087
2019-10-13 20:15:53 +02:00
Maxime Quandalle 1ccaf94a1c
⚙️ Nouvelle syntaxe de définition publicodes
* Définition à partir du nom complet en notation pointée (plutôt que
  comme deux attributs indépendants "name" et "espace")
* Structure de données de premier niveau "dictionnaire" plutôt que liste,
  s'aligne mieux avec notre contrainte d'unicité des noms
* Possibilité de définir les règles à partir d'une liste dans les tests,
  dans ce cas il ne faut plus utiliser l'attribut "espace" mais renseigner
  directement la notation pointée dans le "nom".
2019-10-13 11:46:29 +02:00
Maxime Quandalle fa5157d6ba
Ajout d'une option pour retourner seulement le taux d'un barème linéaire
Option analogue à celle déjà disponible sur "barème continu"
2019-09-27 17:04:30 +02:00
Johan Girod 28d70b44d2
🔨 remplace 'auto entrepreneur' par 'auto-entrepreneur' 2019-09-13 10:23:55 +02:00
Maxime Quandalle 0663c97204 Utilisation du hook useTranslation de react-i18next
Suppression de notre composant withLanguage qui rajoutait une abstraction
inutile.

Note: de nombreux appels à withTranslation et withLanguage était inutile
car le composant augmenté n'utilisait pas les paramètres fournis (language, t, i18n).
L'utilisation des hooks nous permet de mieux gérer le code mort, car il s'agit
de simples variables dont le non-usage est détecté par l'analyse statique.
2019-09-11 11:17:23 +02:00
Maxime Quandalle 6ea5dd0870 Migration de React "class" à "function"
Le but de la refacto est de généraliser l'utilisation des hook

Nombre de composants convertis: 52
Nombre de composants restants: 12

Il est possible de compter les composants class restants en utilisant
grep "render()"

L'occasion aussi de remplacer la dernière occurence de UNSAFE_componentWillMount
2019-09-11 11:17:23 +02:00
Maxime Quandalle 6344d2f2e1
Amélioration des pages de documentations pour rend non applicable
- ajout des traductions
- ajout d'une notice "désactivée par" quand une règle est désactivée
  par un régime d'exception actif
2019-09-04 09:14:28 +02:00
Maxime Quandalle 1ffb97c2f6
Renomme "désactive" en "rend non applicable"
Ajout de tests, amélioration de la doc
2019-09-03 22:45:54 +02:00
Maxime Quandalle 89f370b182
Ajout d'une ruleProp "désactive" 2019-09-03 22:45:48 +02:00
Mael 7ae3eaca60 🎨 Espacement sous les noms des mécanismes 2019-07-23 18:44:26 +02:00
Mael 9e80f2b36b 🔥 Type et période de l'infobox, période près de valeur 2019-07-23 18:44:26 +02:00
Mael b72ec28108 🎨 Marge inutile
Reliquat qui rendait l'affichage moche
2019-07-23 18:44:26 +02:00
Mael fb73ed5cbf 🎨 Alingement des expressions sur mobile 2019-07-23 18:44:26 +02:00
Mael 906dcf8c80 On évite de parler de règle pour la /doc, plutôt de pages 2019-07-23 17:03:00 +02:00
Mael 86a3002452 🎨 Symbole égalité pour les valeurs de méca et alignement en bas
D'après le peu de tests effectués (2) le résultat du mécanisme est mieux
en bas
2019-07-23 17:03:00 +02:00
Mael 6b2d4b8dd3 🎨 Amélioration du style des composantes 2019-07-23 17:03:00 +02:00
Mael adf556c36f 🎨 Alignement des valeurs des expressions dans /doc 2019-07-23 17:03:00 +02:00
Mael 342605e86b Unités : pourcentage et multiplication 2019-07-23 17:03:00 +02:00
Mael 1ca341a5b5 Implémentation plus générique des unités 2019-07-23 17:03:00 +02:00
Mael d2a0904c99 🎨 Déplacement et simplification des résultats des mécanismes 2019-07-23 17:03:00 +02:00
Maxime Quandalle db90552f6a Répare les liens interne dans la documentation
Les liens dans le markdown ne prenaient pas en compte le `basename`
configuré via react-router/history.

Utilisation de `react-markdown` au lieu de `marked` qui s'inter-opère
mieux avec notre UI.
2019-07-16 17:21:54 +02:00
Mael 922e4cf919 Meilleure explication des dépendances parent
Et traduction
2019-07-12 10:33:02 +02:00
Mael c21b149fe2 Meilleur affichage des valeurs par défaut 2019-07-12 10:33:02 +02:00
Mael 17b5a4d128 🐛 Problème de visualisation de l'inersion 2019-07-12 10:33:02 +02:00
Mael 633b213869 🐛 Affichage d'une valeur quand elle est nulle 2019-07-12 10:33:02 +02:00
Mael 4785155f25 Correction des tests 2019-07-12 10:33:02 +02:00
Mael ed4d4a0d7a Mutualisation de <Value>
Remplacement de Montant par Value
Rétablissement des explications simu salarié
Possibilité de définir des objegtifs secondaires qui sont calculés mais
pas affichés par targetSelectuon
2019-07-12 10:33:02 +02:00
Mael 76b60afed7 1er affichage des unités : indemnité km vélo 2019-07-12 10:33:02 +02:00