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, "-c", ODOO_CONF,
"-d", DB_NAME, "-d", DB_NAME,
"-i", MODULES_TO_INSTALL, "-i", MODULES_TO_INSTALL,
"--without-demo=all",
"--stop-after-init" "--stop-after-init"
] ]
@ -57,47 +58,47 @@ try:
print(f"Odoo falló con código de salida {result.returncode}") print(f"Odoo falló con código de salida {result.returncode}")
sys.exit(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 --- # # --- Lógica para crear datos de demostración personalizados ---
print("Creando solicitudes de laboratorio de demostración...") # print("Creando solicitudes de laboratorio de demostración...")
sys.stdout.flush() # sys.stdout.flush()
with open("/app/create_lab_requests.py", "r") as f: # with open("/app/create_lab_requests.py", "r") as f:
script_content = f.read() # script_content = f.read()
# Reutilizamos el entorno de Odoo para ejecutar un script # # Reutilizamos el entorno de Odoo para ejecutar un script
create_requests_command = f""" # create_requests_command = f"""
odoo shell -c {ODOO_CONF} -d {DB_NAME} <<'EOF' # odoo shell -c {ODOO_CONF} -d {DB_NAME} <<'EOF'
{script_content} # {script_content}
EOF # EOF
""" # """
try: # try:
result = subprocess.run( # result = subprocess.run(
create_requests_command, # create_requests_command,
shell=True, # shell=True,
capture_output=True, # capture_output=True,
text=True, # text=True,
check=False # check=False
) # )
print("--- Create Lab Requests stdout ---") # print("--- Create Lab Requests stdout ---")
print(result.stdout) # print(result.stdout)
print("--- Create Lab Requests stderr ---") # print("--- Create Lab Requests stderr ---")
print(result.stderr) # print(result.stderr)
sys.stdout.flush() # sys.stdout.flush()
if result.returncode != 0: # if result.returncode != 0:
print(f"Fallo al crear las solicitudes de laboratorio con código de salida {result.returncode}") # print(f"Fallo al crear las solicitudes de laboratorio con código de salida {result.returncode}")
sys.exit(result.returncode) # sys.exit(result.returncode)
print("Solicitudes de laboratorio de demostración creadas exitosamente.") # print("Solicitudes de laboratorio de demostración creadas exitosamente.")
sys.exit(0) # sys.exit(0)
except Exception as e: # except Exception as e:
print(f"Ocurrió un error inesperado al crear las solicitudes de laboratorio: {e}") # print(f"Ocurrió un error inesperado al crear las solicitudes de laboratorio: {e}")
sys.exit(1) # sys.exit(1)
except FileNotFoundError: 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.") 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', 'security/ir.model.access.csv',
'data/ir_sequence.xml', 'data/ir_sequence.xml',
'data/product_category.xml', 'data/product_category.xml',
'data/product_data.xml',
'views/partner_views.xml', 'views/partner_views.xml',
'views/analysis_views.xml', 'views/analysis_views.xml',
'views/sale_order_views.xml', 'views/sale_order_views.xml',
'views/stock_lot_views.xml',
'views/menus.xml', 'views/menus.xml',
], ],
'demo': [ '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>