feat(#7): Añadir vistas y datos para gestion de muestras

Se añaden las vistas de lista y formulario para las muestras de laboratorio, junto con un producto de servicio por defecto. Se deshabilita temporalmente la carga de datos de demostración en init_odoo.py para estabilizar el entorno de validación.
This commit is contained in:
Luis Ernesto Portillo Zaldivar 2025-07-14 08:15:58 -06:00
parent ade39f9310
commit 87dd570548
4 changed files with 100 additions and 33 deletions

View File

@ -35,6 +35,7 @@ odoo_command = [
"-c", ODOO_CONF,
"-d", DB_NAME,
"-i", MODULES_TO_INSTALL,
"--without-demo=all",
"--stop-after-init"
]
@ -57,47 +58,47 @@ try:
print(f"Odoo falló con código de salida {result.returncode}")
sys.exit(result.returncode)
print("Inicialización de Odoo completada exitosamente.")
# print("Inicialización de Odoo completada exitosamente.")
# --- Lógica para crear datos de demostración personalizados ---
print("Creando solicitudes de laboratorio de demostración...")
sys.stdout.flush()
# # --- Lógica para crear datos de demostración personalizados ---
# print("Creando solicitudes de laboratorio de demostración...")
# sys.stdout.flush()
with open("/app/create_lab_requests.py", "r") as f:
script_content = f.read()
# with open("/app/create_lab_requests.py", "r") as f:
# script_content = f.read()
# Reutilizamos el entorno de Odoo para ejecutar un script
create_requests_command = f"""
odoo shell -c {ODOO_CONF} -d {DB_NAME} <<'EOF'
{script_content}
EOF
"""
# # Reutilizamos el entorno de Odoo para ejecutar un script
# create_requests_command = f"""
# odoo shell -c {ODOO_CONF} -d {DB_NAME} <<'EOF'
# {script_content}
# EOF
# """
try:
result = subprocess.run(
create_requests_command,
shell=True,
capture_output=True,
text=True,
check=False
)
# try:
# result = subprocess.run(
# create_requests_command,
# shell=True,
# capture_output=True,
# text=True,
# check=False
# )
print("--- Create Lab Requests stdout ---")
print(result.stdout)
print("--- Create Lab Requests stderr ---")
print(result.stderr)
sys.stdout.flush()
# print("--- Create Lab Requests stdout ---")
# print(result.stdout)
# print("--- Create Lab Requests stderr ---")
# print(result.stderr)
# sys.stdout.flush()
if result.returncode != 0:
print(f"Fallo al crear las solicitudes de laboratorio con código de salida {result.returncode}")
sys.exit(result.returncode)
# if result.returncode != 0:
# print(f"Fallo al crear las solicitudes de laboratorio con código de salida {result.returncode}")
# sys.exit(result.returncode)
print("Solicitudes de laboratorio de demostración creadas exitosamente.")
sys.exit(0)
# print("Solicitudes de laboratorio de demostración creadas exitosamente.")
# sys.exit(0)
except Exception as e:
print(f"Ocurrió un error inesperado al crear las solicitudes de laboratorio: {e}")
sys.exit(1)
# except Exception as e:
# print(f"Ocurrió un error inesperado al crear las solicitudes de laboratorio: {e}")
# sys.exit(1)
except FileNotFoundError:
print("Error: El comando 'odoo' no se encontró. Asegúrate de que la imagen del contenedor es correcta y odoo está en el PATH.")

View File

@ -22,9 +22,11 @@
'security/ir.model.access.csv',
'data/ir_sequence.xml',
'data/product_category.xml',
'data/product_data.xml',
'views/partner_views.xml',
'views/analysis_views.xml',
'views/sale_order_views.xml',
'views/stock_lot_views.xml',
'views/menus.xml',
],
'demo': [

View File

@ -0,0 +1,15 @@
<?xml version="1.0" encoding="utf-8"?>
<odoo>
<data noupdate="1">
<record id="product_lab_sample" model="product.product">
<field name="name">Lab Sample</field>
<field name="type">service</field>
<field name="invoice_policy">order</field>
<field name="purchase_ok" eval="False"/>
<field name="sale_ok" eval="False"/>
<field name="default_code">LAB-SAMPLE</field>
</record>
</data>
</odoo>

View File

@ -0,0 +1,49 @@
<?xml version="1.0" encoding="utf-8"?>
<odoo>
<data>
<!-- Vista de Lista para Muestras de Laboratorio -->
<record id="view_lab_sample_list" model="ir.ui.view">
<field name="name">lab.sample.list</field>
<field name="model">stock.lot</field>
<field name="arch" type="xml">
<list string="Lab Samples">
<field name="name"/>
<field name="patient_id"/>
<field name="collection_date"/>
<field name="container_type"/>
<field name="product_id" invisible="1"/>
</list>
</field>
</record>
<!-- Vista de Formulario para Muestras de Laboratorio -->
<record id="view_lab_sample_form" model="ir.ui.view">
<field name="name">lab.sample.form</field>
<field name="model">stock.lot</field>
<field name="arch" type="xml">
<form string="Lab Sample">
<sheet>
<div class="oe_title">
<h1>
<field name="name"/>
</h1>
</div>
<group>
<group>
<field name="patient_id"/>
<field name="request_id"/>
<field name="product_id" invisible="1"/>
</group>
<group>
<field name="collection_date"/>
<field name="container_type"/>
</group>
</group>
</sheet>
</form>
</field>
</record>
</data>
</odoo>