provisioning: alinear packs de demo con los del backend (clinica/spa/estetica/dental/custom)

This commit is contained in:
2026-10-11 05:55:29 +00:00
parent 94f2045bfe
commit 75736967ef
2 changed files with 11 additions and 8 deletions

View File

@@ -32,7 +32,7 @@ import traceback
# (nombre, precio, duración_min, categoría) por giro. La categoría usa la # (nombre, precio, duración_min, categoría) por giro. La categoría usa la
# selección de skeen.servicio: consulta | tratamiento | procedimiento | paquete. # selección de skeen.servicio: consulta | tratamiento | procedimiento | paquete.
PACKS = { PACKS = {
'generico': [ 'custom': [
('Consulta general', 600, 30, 'consulta'), ('Consulta general', 600, 30, 'consulta'),
('Consulta de seguimiento', 450, 30, 'consulta'), ('Consulta de seguimiento', 450, 30, 'consulta'),
('Tratamiento básico', 800, 45, 'tratamiento'), ('Tratamiento básico', 800, 45, 'tratamiento'),
@@ -68,7 +68,7 @@ PACKS = {
('Valoración preoperatoria', 1100, 45, 'consulta'), ('Valoración preoperatoria', 1100, 45, 'consulta'),
('Paquete 10 terapias', 6500, 50, 'paquete'), ('Paquete 10 terapias', 6500, 50, 'paquete'),
], ],
'derma': [ 'dental': [
('Consulta dermatológica', 900, 30, 'consulta'), ('Consulta dermatológica', 900, 30, 'consulta'),
('Consulta de seguimiento', 600, 20, 'consulta'), ('Consulta de seguimiento', 600, 20, 'consulta'),
('Limpieza facial profunda', 950, 50, 'tratamiento'), ('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 = [ DEMO_PATIENTS = [
('Ana López Márquez', '6681230001', 'F'), ('Carlos Ruiz Peña', '6681230002', 'M'), ('Ana López Márquez', '6681230001', 'F'), ('Carlos Ruiz Peña', '6681230002', 'M'),
('María Fernanda Soto', '6681230003', 'F'), ('Jorge Alberto Nava', '6681230004', '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; - llave ir.config_parameter 'skeen.glosario' ya existe -> se actualiza;
- modelo 'skeen.glosario' existe -> se crea/actualiza un registro; - modelo 'skeen.glosario' existe -> se crea/actualiza un registro;
- ninguno de los dos existe -> TODO (no aborta).""" - 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') raw = ICP.get_param('skeen.glosario')
if raw is not None: if raw is not None:
try: try:
@@ -264,11 +267,11 @@ def seed_service_category(env, cfg, report):
if not has_model(env, 'skeen.service.category'): if not has_model(env, 'skeen.service.category'):
report['todo'].append( report['todo'].append(
"skeen.service.category: modelo ausente; cuando exista, sembrar la " "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 return
Model = env['skeen.service.category'].sudo() Model = env['skeen.service.category'].sudo()
cats = [] 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: if cat not in cats:
cats.append(cat) cats.append(cat)
created = 0 created = 0
@@ -292,7 +295,7 @@ def _mark(env, model, field, value, ids):
def seed_demo(env, cfg, report): 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() today = datetime.date.today()
week_start = today - datetime.timedelta(days=today.weekday()) week_start = today - datetime.timedelta(days=today.weekday())
ids = {'servicio': [], 'paciente': [], 'empleado': [], 'cita': [], ids = {'servicio': [], 'paciente': [], 'empleado': [], 'cita': [],

View File

@@ -48,7 +48,7 @@ NGINX_AVAILABLE = '/etc/nginx/sites-available'
NGINX_ENABLED = '/etc/nginx/sites-enabled' NGINX_ENABLED = '/etc/nginx/sites-enabled'
SYSTEMD_DIR = '/etc/systemd/system' SYSTEMD_DIR = '/etc/systemd/system'
REFERENCE_DB = 'skeen_odoo' # de aquí se toma la lista de módulos skeen 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-]+$') SLUG_RE = re.compile(r'^[a-z0-9-]+$')
DB_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 <slug>: rol propio con ' help='rol PostgreSQL (default <slug>: rol propio con '
'password nueva; usar "skeen" para el rol compartido)') 'password nueva; usar "skeen" para el rol compartido)')
ap.add_argument('--pack', default=DEFAULT_PACK, 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') help='giro para glosario y datos demo')
ap.add_argument('--demo', action='store_true', help='sembrar datos demo') ap.add_argument('--demo', action='store_true', help='sembrar datos demo')
ap.add_argument('--demo-limpia', action='store_true', ap.add_argument('--demo-limpia', action='store_true',