maj
This commit is contained in:
1 parent
1e3994f17f
commit
624d32ff7c
17 files changed
+2192
-1
No files matched your search
@@ -0,0 +1,53 @@
|
||||
path = "backend/src/db/index.js"
|
||||
with open(path, "r", encoding="utf-8") as f:
|
||||
content = f.read()
|
||||
|
||||
# 1) Retrait de "Gestion pilotée / mandat" du seed initial des supports (SEED_SUPPORTS) — ne
|
||||
# concerne que les installations neuves, ce bloc étant gardé par COUNT()===0.
|
||||
old_seed_line = " { nom: 'Gestion pilotée / mandat', description: 'Allocation déléguée à un gérant selon un profil de risque — mode par défaut de nombreux PER.' },\n"
|
||||
assert content.count(old_seed_line) == 1, f"old_seed_line count={content.count(old_seed_line)}"
|
||||
content = content.replace(old_seed_line, "", 1)
|
||||
|
||||
# 2) Retrait de 'Gestion pilotée / mandat' des deux listes de supports "classiques" AV/PER
|
||||
# (AV_PER_SUPPORTS et AV_PER_SUPPORTS_EXTRA) — présent dans les deux car dupliqué (la seconde
|
||||
# liste, hors de portée du bloc de seed initial, a été recopiée lors de l'extension du 29/09/26
|
||||
# pour Contrat de capitalisation / Assurance-vie luxembourgeoise).
|
||||
old_list_fragment = "'Produits structurés', 'Matières premières / métaux précieux', 'Gestion pilotée / mandat',"
|
||||
assert content.count(old_list_fragment) == 2, f"old_list_fragment count={content.count(old_list_fragment)}"
|
||||
new_list_fragment = "'Produits structurés', 'Matières premières / métaux précieux',"
|
||||
content = content.replace(old_list_fragment, new_list_fragment) # replace_all (2 occurrences)
|
||||
|
||||
# 3) Nouveau bloc toujours exécuté : supprime la ligne "Gestion pilotée / mandat" pour les
|
||||
# installations déjà seedées (le retrait du texte source ci-dessus ne corrige que les
|
||||
# installations neuves). ON DELETE CASCADE sur enveloppes_supports_disponibles nettoie
|
||||
# automatiquement les liens existants vers ce support — c'est un pur catalogue (aucune donnée
|
||||
# d'investissement réelle n'y est aujourd'hui rattachée), donc la suppression est sans risque.
|
||||
# Toujours exécuté et idempotent (DELETE sans WHERE de garde spécifique au-delà du nom — un
|
||||
# deuxième passage ne trouve simplement plus rien à supprimer).
|
||||
anchor = "\nexport default db;\n"
|
||||
assert content.count(anchor) == 1, f"anchor count={content.count(anchor)}"
|
||||
|
||||
block = '''
|
||||
// Correctif du 29/09/26 (suite) — retrait du support "Gestion pilotée / mandat" (demande
|
||||
// Olivier, à propos d'une capture d'écran distinguant "3 modes de gestion" — libre / pilotée /
|
||||
// mixte — d'un contrat d'assurance-vie) : le "mode de gestion" décrit QUI décide de l'allocation
|
||||
// (le titulaire, ou un gérant délégué selon un mandat), c'est une dimension orthogonale au
|
||||
// SUPPORT (le type d'instrument financier détenu — ETF, actions, SCPI...). Une gestion pilotée
|
||||
// s'applique justement à un panier de vrais supports (fonds euros, fonds datés, SCPI, produits
|
||||
// structurés...), elle n'en est pas un elle-même. Cette ligne datait du seed initial du 28/09/26
|
||||
// et n'aurait pas dû être modélisée comme support ; elle est retirée du référentiel et de la
|
||||
// liste de supports "classiques" AV/PER (voir plus haut). Toujours exécuté et idempotent —
|
||||
// DELETE cascade automatiquement les liens vers cette entrée (enveloppes_supports_disponibles,
|
||||
// ON DELETE CASCADE) ; aucune donnée d'investissement réelle n'est rattachée à ce catalogue à ce
|
||||
// stade, la suppression est donc sans risque de perte de données utilisateur.
|
||||
db.prepare("DELETE FROM supports_referentiel WHERE nom = 'Gestion pilotée / mandat'").run();
|
||||
|
||||
export default db;
|
||||
'''
|
||||
|
||||
content = content.replace(anchor, block, 1)
|
||||
|
||||
with open(path, "w", encoding="utf-8") as f:
|
||||
f.write(content)
|
||||
|
||||
print("Gestion pilotée / mandat removed from supports OK, new length:", len(content))
|
||||
Reference in new issue
Block a user