From 75736967efab2310f89cd7659b06304cdc1d6f12 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Consultor=C3=ADa=20Alcaraz=20Salazar?= Date: Sun, 11 Oct 2026 05:55:29 +0000 Subject: [PATCH] provisioning: alinear packs de demo con los del backend (clinica/spa/estetica/dental/custom) --- infra/provision/postinstall_clinica.py | 15 +++++++++------ infra/provision/provision_clinica.py | 4 ++-- 2 files changed, 11 insertions(+), 8 deletions(-) diff --git a/infra/provision/postinstall_clinica.py b/infra/provision/postinstall_clinica.py index dcbbf27..62144bc 100755 --- a/infra/provision/postinstall_clinica.py +++ b/infra/provision/postinstall_clinica.py @@ -32,7 +32,7 @@ import traceback # (nombre, precio, duración_min, categoría) por giro. La categoría usa la # selección de skeen.servicio: consulta | tratamiento | procedimiento | paquete. PACKS = { - 'generico': [ + 'custom': [ ('Consulta general', 600, 30, 'consulta'), ('Consulta de seguimiento', 450, 30, 'consulta'), ('Tratamiento básico', 800, 45, 'tratamiento'), @@ -68,7 +68,7 @@ PACKS = { ('Valoración preoperatoria', 1100, 45, 'consulta'), ('Paquete 10 terapias', 6500, 50, 'paquete'), ], - 'derma': [ + 'dental': [ ('Consulta dermatológica', 900, 30, 'consulta'), ('Consulta de seguimiento', 600, 20, 'consulta'), ('Limpieza facial profunda', 950, 50, 'tratamiento'), @@ -82,6 +82,9 @@ PACKS = { ], } +# 'estetica' comparte el set del spa (mismo perfil de servicios) para el demo. +PACKS['estetica'] = PACKS['spa'] + DEMO_PATIENTS = [ ('Ana López Márquez', '6681230001', 'F'), ('Carlos Ruiz Peña', '6681230002', 'M'), ('María Fernanda Soto', '6681230003', 'F'), ('Jorge Alberto Nava', '6681230004', 'M'), @@ -191,7 +194,7 @@ def seed_glossary(env, ICP, cfg, report): - llave ir.config_parameter 'skeen.glosario' ya existe -> se actualiza; - modelo 'skeen.glosario' existe -> se crea/actualiza un registro; - ninguno de los dos existe -> TODO (no aborta).""" - pack = cfg.get('pack') or 'generico' + pack = cfg.get('pack') or 'clinica' raw = ICP.get_param('skeen.glosario') if raw is not None: try: @@ -264,11 +267,11 @@ def seed_service_category(env, cfg, report): if not has_model(env, 'skeen.service.category'): report['todo'].append( "skeen.service.category: modelo ausente; cuando exista, sembrar la " - "semilla de categorías del pack '%s'" % (cfg.get('pack') or 'generico')) + "semilla de categorías del pack '%s'" % (cfg.get('pack') or 'clinica')) return Model = env['skeen.service.category'].sudo() cats = [] - for _n, _p, _d, cat in PACKS.get(cfg.get('pack') or 'generico', PACKS['generico']): + for _n, _p, _d, cat in PACKS.get(cfg.get('pack') or 'clinica', PACKS['clinica']): if cat not in cats: cats.append(cat) created = 0 @@ -292,7 +295,7 @@ def _mark(env, model, field, value, ids): def seed_demo(env, cfg, report): - pack = PACKS.get(cfg.get('pack') or 'generico', PACKS['generico']) + pack = PACKS.get(cfg.get('pack') or 'clinica', PACKS['clinica']) today = datetime.date.today() week_start = today - datetime.timedelta(days=today.weekday()) ids = {'servicio': [], 'paciente': [], 'empleado': [], 'cita': [], diff --git a/infra/provision/provision_clinica.py b/infra/provision/provision_clinica.py index 93b2cb7..0fe7b09 100755 --- a/infra/provision/provision_clinica.py +++ b/infra/provision/provision_clinica.py @@ -48,7 +48,7 @@ NGINX_AVAILABLE = '/etc/nginx/sites-available' NGINX_ENABLED = '/etc/nginx/sites-enabled' SYSTEMD_DIR = '/etc/systemd/system' REFERENCE_DB = 'skeen_odoo' # de aquí se toma la lista de módulos skeen -DEFAULT_PACK = 'generico' +DEFAULT_PACK = 'clinica' SLUG_RE = re.compile(r'^[a-z0-9-]+$') DB_RE = re.compile(r'^[a-z0-9_]+$') @@ -157,7 +157,7 @@ def parse_args(argv=None): help='rol PostgreSQL (default : rol propio con ' 'password nueva; usar "skeen" para el rol compartido)') ap.add_argument('--pack', default=DEFAULT_PACK, - choices=['generico', 'spa', 'clinica', 'derma'], + choices=['clinica', 'spa', 'estetica', 'dental', 'custom'], help='giro para glosario y datos demo') ap.add_argument('--demo', action='store_true', help='sembrar datos demo') ap.add_argument('--demo-limpia', action='store_true',