Compare commits

..

4 commits

Author SHA1 Message Date
db1e9fa24f [FIX] télémétrie navigation : extraire les commandes des menus « choices »
« Code » (et Update, Git, Database…) apparaissait vide : l'extracteur AST ne
comprenait que le motif « status == "N": self.methode() » (menu QEMU). Les
menus bâtis par « choices = config_file.get_config(...) » + « choices.append(
...) » avec dispatch « str(len(choices)-N) » n'exposaient aucun enfant ->
impossible d'ouvrir leurs commandes.

Ajout de l'extraction de ce motif :
- entrées de CONFIG lues depuis todo.json (rejouées via
  execute_from_configuration avec l'entrée en kwargs) ;
- entrées APPENDÉES (dict littéral OU variable menu_entry=… suivie par n° de
  ligne) mappées à leur méthode via le dispatch « str(len(choices)-K) » ;
- une entrée qui ouvre un sous-menu (ex. Update) est développée récursivement.

Validé : Code -> 7 commandes (statut/remiser/formater/SHELL/màj module/débogage
+ sous-menu Update), méthodes correctes et existantes, TUI monte sans erreur.
Les dispatches complexes (ex. « Migration BD » via TodoUpgrade) restent
visibles mais non lançables (method None).

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-07-30 23:24:40 -04:00
839ef08ea4 [IMP] script todo: icônes menus Code et Update
Icônes ajoutées aux valeurs i18n :
- Code : 🔍 statut, 📦 remiser, 🎨 formater, 🐚 SHELL, 🧩 mise à jour module,
  🐛 débogage.
- Update : 🔄 erplibre_base (test), 🚚 migration BD, 📦 dépendances Poetry.

Emojis larges -> 1 espace, alignement préservé. Valeurs i18n uniquement.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-07-30 23:20:49 -04:00
a2b507c471 [IMP] script todo: déplacer « Mise à jour » du menu Execute vers Code
L'entrée « Update - Update all developed staging source code » quitte le
menu Execute (renumérotation 9->8 … 15->14, dispatch elif mis à jour) et
rejoint le sous-menu « Code - Outil pour développeur » (dernière entrée,
appelle prompt_execute_update). Le libellé/i18n (🔃) est réutilisé.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-07-30 23:20:49 -04:00
b856548d64 [IMP] script todo: migration Odoo update all before neutralize 2026-07-30 23:20:21 -04:00

View file

@ -10,11 +10,12 @@ import shutil
import sys
import zipfile
from uuid import uuid4
from script.todo.version_manager import get_odoo_version
import click
import todo_file_browser
from script.todo.version_manager import get_odoo_version
new_path = os.path.normpath(
os.path.join(os.path.dirname(__file__), "..", "..")
)
@ -768,6 +769,28 @@ class TodoUpgrade:
print("✅ -> Restore database")
if not self.dct_progression.get("state_1_update_all"):
print(
"[1] Update all addons before neutralize (already neutralize by odoo if supported)"
)
wait_continue = (
input(
"💬 Do you need to upgrade before a database neutralization, press to ignore : "
)
.strip()
.lower()
)
if wait_continue == "1":
status, cmd_executed = self.todo_upgrade_execute(
f"./script/addons/update_addons_all.sh {database_name}",
single_source_odoo=True,
)
if not status:
self.dct_progression["state_1_update_all"] = True
self.write_config()
print("✅ -> Update database before neutralize by module")
print("✅ -> Neutralize database")
if do_neutralize:
status, cmd_executed = self.todo_upgrade_execute(
@ -793,22 +816,6 @@ class TodoUpgrade:
self.dct_progression["state_1_neutralize_database"] = True
self.write_config()
# Point de pause APRÈS la neutralisation : on propose de poursuivre la
# mise à jour maintenant, ou d'attendre. L'état est déjà sauvegardé
# (restore + neutralize) -> si on attend, relancer « Migration de base
# de données » reprendra ici sans refaire ces étapes.
ans = input(
"\n💬 Neutralisation terminée. Poursuivre la mise à jour "
"maintenant ? (o = poursuivre, n = attendre / reprendre "
"plus tard) [o] : "
).strip().lower()
if ans in ("n", "non", "no"):
print(
"⏸ Mise à jour en PAUSE après neutralisation. Relancez "
"« Migration de base de données » pour reprendre."
)
return
config_state_1_uninstall_module = self.dct_progression.get(
"config_state_1_uninstall_module"
)