Commit Graph

135 Commits (91483d76944cf462d59381f9825fc39eae378b1d)

Author SHA1 Message Date
Maxime Quandalle 2c980869c8
👽 Tri des clés dans externalized.yaml
L'ordre persisté n'était parfois pas déterministe ce qui générait du
bruit dans les diff.

Ajout de `note` dans la liste des attributs à traduire.
2020-01-23 13:35:30 +01:00
Johan Girod cc7356c1aa 👽 ajoute la traduction automatique des contrôles et des suggestions' 2020-01-22 18:58:07 +01:00
Johan Girod ef90d6af68 🐛 corrige la conversion d'unité en anglais 2020-01-22 17:33:53 +01:00
Johan Girod d74b625be3 👽 Vérifie que tous les éléments d'ui sont traduits
Tous les éléments à traduire (via la balise <Trans> ou la fonction 't')
sont analysé statiquement. Si il manque une traduction, la PR est bloquée

Ajoute un script de traduction automatique via `yarn run i18n:ui:translate`

Met à jour CONTRIBUTING.md avec les infos sur la traduction
2020-01-22 15:10:46 +01:00
Johan Girod 4749727938 🔨 ⚙️ ajoute un mécanisme durée pour la proratisation de l'ACRE :wip: 2020-01-07 15:53:33 +01:00
Johan Girod ff80f442c1 🔨 ajoute les conjoints collaborateurs 2020-01-07 15:53:32 +01:00
Maxime Quandalle 1b963b8bbe Ajout de l'option "allowJs" dans tsconfig.js
Cela permet l'inférence de type à partir des fichiers js qui ne sont pas
encore convertis en TypeScript.
Par ailleurs suppression des dernières traces de Flow.
Ajout d'options plus strictes pour dans la config tsconfig.js
2019-12-17 11:34:12 +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
Johan Girod 53f67bb329 🔨 debug les règles pour les sportifs 2019-11-11 18:46:41 +01:00
Johan Girod ccb8f47a83 ⚙️ ajoute la possibilité de desactiver une branche via un booléen 2019-11-11 18:45:11 +01:00
Johan Girod a63d02601f ⚙️ ajoute la gestion des filtre pour les variables remplacée 2019-11-11 18:44:34 +01:00
Johan Girod db3b2a514c ⚙️ ajoute un mécanisme de remplacement de règle
Co-authored-by: Maxime Quandalle <maxime.quandalle@beta.gouv.fr>
2019-11-11 18:44:34 +01: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 3fbd94bc65
🔥 Suppression de redux-form
Supprime aussi redux-batched-action. Le code résultant est plus concis
(alors que l'on supprime une dépendance !), et plus clair car il y a moins
d'indirections pour se conformer aux API de redux-form.
2019-09-17 12:54:18 +02:00
Johan Girod 28d70b44d2
🔨 remplace 'auto entrepreneur' par 'auto-entrepreneur' 2019-09-13 10:23:55 +02:00
Maxime Quandalle a1b99fdc64 Suppression des do-expression
Il s'agit d'une fonctionnalité non standard de JavaScript qui est peu
utilisée dans la base de code. Ajoute de la complexité pour les nouveaux
développeurs (configuration spécifique de l'environnement de dév) pour
trop peu de bénéfices.
2019-09-11 11:17:23 +02:00
Maxime Quandalle 01bb90e61f 🔨 Amélioration du support des stages
- Ajout d'un avertissement (le stage n'est pas un contrat de travail)
- Ajout des traductions
- D'avantage d'utilisation de "rend non applicable"
- Une modification de parentDependency pour prendre un compte que
  "contrat stage" est maintenant un enum CDI | CDD | Stage plutôt qu'un
  boolean true | false.
2019-09-09 11:33:47 +02:00
Maxime Quandalle aa36b1c481 🔨 Type de contrat à choix multiple
Pour l'instant les choix sont CDI, CDD, ou Stage.

Modification du moteur concernant la désactivations des règles spécifiques
au CDD (la logique précédente nécessitait que `contrat . salarié . cdd`
soit une question, elle fonctionne maintenant avec une formule)
2019-09-09 11:33:47 +02:00
Maxime Quandalle 3ea46f5d54 Suppression des sous-questions
Fonctionnalité inutilisée
2019-07-16 17:21:54 +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 e1c6483481 🐛 Branches de situation multiples dans getRuleFromAnalysis 2019-07-12 14:33:28 +02:00
Mael 4785155f25 Correction des tests 2019-07-12 10:33:02 +02:00
Mael ab8c4b9b2c Déplacement de getRuleFromAnalysis dans le moteur 2019-07-12 10:33:02 +02:00
Mael 9b4a3b9e57 ⚙️ parsedRules passe d'une liste à un object
Comme pendant l'évaluation et son objet cache, parsedRules est construit
au fur et à mesure du parsing sous la forme [dottedName]: parsedRule

Cela nous permet pendant le parsing de faire l'annotation de type et de
faire moins de boulot lors de l'évaluation

Problème :
- (presque fixé) dans l'inversion on produisait des références de variables pour le JSX
=> boucle infinie
- dans chiffre d'affaire, notre implé un peu bizarre fait une référence
de variables a priori circulaire, mais gérée par les variations. Or
pendant le parsing on parcourt évidemment toutes les branches sans les
évaluer. Sachant qu'on implémente ce cache parsedRules surtout pour les
unités, peut on garder la formule ainsi et simplement stocker 'chiffre
d'affaires': 'currently being parsed' pour éviter la boucle infinie ?
2019-07-12 10:33:02 +02:00
Mael 6154419250 Changement de programme : tentative d'implé de l'unité dans l'eval
Car quand on parse et qu'on tombe sur une variable, on ne rentre pas
dans cette variable. Elle sera traitée par la suite dans le parseAll.
Ainsi on ne peut pas connaître son unité si elle a une formule

A = B * C
B = D / E

C unité km
D unité €
E unité km

Quand on tombe sur B dans A, B n'est pas encore parsée, et donc on ne
peut pas savoir que B est en € / km.

Il faudrait parser B, ce qui serait trop couteux. On pourrait
implémenter un cache au parsing, implémenter les unités comme des fonctions, ou encore gérer les unités lors de l'éval (ce qui est bête, car on n'a pas besoin des valeurs pour inférer les unités)
2019-07-12 10:33:02 +02:00
Mael a7c6cb25fa Première unité affichée sur la page règle 2019-07-12 10:33:02 +02:00
Mael a75b22d083 Début de l'implémentation des unités 2019-07-12 10:33:02 +02:00
Mael bd13767f1c On évite d'injecter dans la règle enrichie la règle brute
L'objet en mémoire en sera d'autant plus léger, et le contenu des règles
utilisées dans l'application sera moins imprévisible
2019-07-12 10:33:02 +02:00
Mael 761fa8eb14 Réforme de la gestion des valeurs
Première version qui fonctionne...
... sans le composant PaySlip
2019-07-12 10:33:02 +02:00
Johan Girod 70205d5ab8
👽 traductions 2019-06-12 13:56:51 +02:00
Johan Girod 87837ee2a3 Ajoute un test pour le bug de cotisations 2019-04-12 10:47:56 +02:00
Johan Girod 10525bf0a6 👽 ajoute la traduction des contrôles 2019-04-10 15:41:56 +02:00
Mael 45d1c5ca12 🔥 Optimisations de performance 2019-04-09 15:26:13 +02:00
Mael bef7f2dbdd 🔥 Au revoir la verrue données versement transport 2019-04-09 11:01:07 +02:00
Johan Girod 11ec962754 Change le chemin des règles vers "documentation" 2019-01-14 14:28:30 +01:00
Johan Girod 9ba4a57139 Merge remote-tracking branch 'origin/master' into indeps2 2019-01-08 18:22:44 +01:00
Johan Girod cb0bdcbdd8 :engine: Ajoute les dernières branches manquante et leurs
traductions.

Ajoute les liens vers les pages règles de branche depuis la
distribution et le bulletin de paie
2019-01-07 16:05:13 +01:00
Mael 87382e2725 Evolution des sélecteurs pour traiter plusieurs situations en parallèle 2019-01-07 11:35:10 +01:00
Mael 3f9b06cd0a Nouveau composant de simulation qui compare des situations 2019-01-07 11:35:10 +01:00
Mael 568768eaa8 Regroupement des règles des indépendants dans base.yaml 2019-01-07 11:35:10 +01:00
Mael 56e90b9fbe Version alpha de la simulation des indépendants
Les calculs semblent bons, mais non testés rigoureusement encore
2019-01-07 11:35:10 +01:00
Mael 8b27f2c48e Composant pour la simulation générique 2019-01-07 11:35:10 +01:00
Mael 6c6748fecb Premier résultat du calcul de la rémunération des indépendants
Premier résultat, mais résultat totalement faux
2019-01-07 11:35:10 +01:00
Mael 3bb93a462e 🐛 ⚙️ Erreur d'évaluation des variables manquantes 2019-01-07 11:35:10 +01:00
Mael 81340b4510 ⚙️ Implémentation plus simple des dépendants implicites aux parents
Plus simple que be7b2b8ac4e747b6a7cb4d56e2edc8544875f4c4

This feature was at first designed to work not only with boolean questions, but also applicability conditions and formulas. But lots of numeric formulas are also namespaces, with children in the computations themselves. Which, in the previous implementations, lead to lots of irrelevant checks. To be reintroduced better if needed
2019-01-07 11:35:10 +01:00
Mael c58a7449d0 Implémentation plus puissante de la dépendance parent
Elle est applicable à tous les parents calculables, et on fait attention
à ne pas produire de boucles infinies.
2019-01-07 11:35:10 +01:00
Mael 7a362e7e30 Implémentation des dépendances parent
un parent question booléenne rend automatiquement non applicable ses
enfants.
2019-01-07 11:35:10 +01:00
Mael 911147b899 Nouvelle fonction utilitaire pour trouver les parents d'une règle 2019-01-07 11:35:10 +01:00
Mael 6859ec4b14 On cache les suggestions quand la période est l'année 2018-11-23 16:01:45 +00:00