feat(#7): Anadir campo de recolector a muestras
- Anadido el campo 'collector_id' al modelo stock.lot. - Actualizadas las vistas de lista y formulario para incluir el nuevo campo. - Actualizados los datos de demostracion para asignar un recolector. - Actualizado el plan de desarrollo.
This commit is contained in:
parent
a047cd1a02
commit
45af1771fa
|
@ -10,11 +10,13 @@ Extender el modelo de Lotes/Números de Serie de Odoo (`stock.lot`) para represe
|
|||
- [x] Crear el archivo `lims_management/models/stock_lot.py`.
|
||||
- [x] Heredar del modelo `stock.lot`.
|
||||
- [x] Añadir campos: `is_lab_sample`, `patient_id`, `request_id`, `collection_date`, `container_type`.
|
||||
- [ ] **(Nuevo)** Añadir campo `collector_id` (Many2one a `res.users`) para registrar quién tomó la muestra.
|
||||
|
||||
- [x] **Adaptar las Vistas de Lote/Número de Serie:**
|
||||
- [x] Crear el archivo `lims_management/views/stock_lot_views.xml`.
|
||||
- [x] Crear vistas de lista y formulario para las muestras.
|
||||
- [x] Crear un producto de servicio por defecto para las muestras.
|
||||
- [ ] **(Nuevo)** Añadir el campo `collector_id` a las vistas de lista y formulario.
|
||||
|
||||
- [x] **Crear el Menú "Gestión de Muestras":**
|
||||
- [x] Modificar `lims_management/views/menus.xml`.
|
||||
|
@ -30,32 +32,26 @@ Extender el modelo de Lotes/Números de Serie de Odoo (`stock.lot`) para represe
|
|||
- [x] **Verificación Final:**
|
||||
- [x] Reiniciar y verificar la instancia de Odoo.
|
||||
|
||||
- [x] **Mejorar Modelo de Productos para Tipos de Muestra:**
|
||||
- [x] Añadir un campo booleano `is_sample_type` al modelo `product.template`.
|
||||
|
||||
- [x] **Crear Menú para "Tipos de Muestra":**
|
||||
- [x] Añadir acción de ventana y `menuitem` para los tipos de muestra.
|
||||
|
||||
- [x] **Actualizar Vista de Muestras (`stock.lot`):**
|
||||
- [x] Hacer visible y aplicar dominio al campo `product_id` (Tipo de Muestra).
|
||||
- [x] Eliminar el producto genérico y su referencia en el contexto.
|
||||
|
||||
- [x] **Crear Datos de Demostración:**
|
||||
- [x] Crear archivo `demo/z_sample_demo.xml` con tipos de muestra y muestras de ejemplo.
|
||||
- [x] Añadir el archivo de demostración al manifiesto.
|
||||
- [ ] **(Nuevo)** Actualizar los datos de demostración para incluir el `collector_id`.
|
||||
|
||||
- [x] **Verificación Final (con Demo):**
|
||||
- [x] Validar la funcionalidad completa con los datos de demostración.
|
||||
|
||||
---
|
||||
## Consideraciones Futuras (Siguientes Issues)
|
||||
|
||||
## **Nuevas Tareas (Feedback)**
|
||||
|
||||
- [ ] **Mejorar Modelo de Productos para Tipos de Muestra:**
|
||||
- [ ] Añadir un campo booleano `is_sample_type` al modelo `product.template` en `lims_management/models/product.py`.
|
||||
|
||||
- [ ] **Crear Menú para "Tipos de Muestra":**
|
||||
- [ ] En `lims_management/views/menus.xml`, añadir una nueva acción de ventana y un `menuitem` en "Configuración".
|
||||
- [ ] La acción debe mostrar los productos que tengan `is_sample_type = True`.
|
||||
- [ ] El `context` de la acción debe preestablecer `default_is_sample_type = True` y `default_type = 'service'`.
|
||||
|
||||
- [ ] **Actualizar Vista de Muestras (`stock.lot`):**
|
||||
- [ ] En `lims_management/views/stock_lot_views.xml`, hacer visible el campo `product_id` (Tipo de Muestra).
|
||||
- [ ] Aplicar un dominio al campo `product_id` para que solo muestre productos con `is_sample_type = True`.
|
||||
- [ ] Eliminar el `default_product_id` del contexto de la acción de la muestra.
|
||||
- [ ] Eliminar el producto genérico "Lab Sample" del archivo de datos.
|
||||
|
||||
- [ ] **Crear Datos de Demostración:**
|
||||
- [ ] Crear el archivo `lims_management/demo/z_sample_demo.xml`.
|
||||
- [ ] Añadir registros de `product.template` para diferentes tipos de muestra (ej. "Tubo de Suero", "Tubo EDTA").
|
||||
- [ ] Añadir registros de `stock.lot` que representen muestras reales, usando los pacientes y los nuevos tipos de muestra de demostración.
|
||||
- [ ] Añadir el nuevo archivo de demostración al `__manifest__.py`.
|
||||
|
||||
- [ ] **Verificación Final (con Demo):**
|
||||
- [ ] Reactivar temporalmente la carga de datos de demostración en `init_odoo.py`.
|
||||
- [ ] Reiniciar la instancia (`docker-compose down -v` y `docker-compose up -d`).
|
||||
- [ ] Revisar logs y verificar la funcionalidad completa en la interfaz de Odoo.
|
||||
- [ ] Desactivar nuevamente la carga de datos de demostración al finalizar.
|
||||
- **Ciclo de Vida de la Muestra:** Implementar un campo de estado (`state`) con su lógica de transiciones (ej. 'Recolectada' -> 'Recibida' -> 'En Proceso' -> 'Completada' -> 'Almacenada').
|
||||
- **Informes de Muestras:** Crear informes en PDF o vistas dinámicas sobre el estado y trazabilidad de las muestras.
|
|
@ -24,6 +24,7 @@
|
|||
<field name="product_id" model="product.product" eval="obj().env.ref('lims_management.sample_type_serum').product_variant_id.id"/>
|
||||
<field name="is_lab_sample" eval="True"/>
|
||||
<field name="patient_id" ref="lims_management.demo_patient_1"/>
|
||||
<field name="collector_id" ref="base.user_admin"/>
|
||||
<field name="collection_date" eval="(DateTime.now() - timedelta(days=2)).strftime('%Y-%m-%d %H:%M:%S')"/>
|
||||
<field name="container_type">serum_tube</field>
|
||||
</record>
|
||||
|
@ -32,6 +33,7 @@
|
|||
<field name="product_id" model="product.product" eval="obj().env.ref('lims_management.sample_type_edta').product_variant_id.id"/>
|
||||
<field name="is_lab_sample" eval="True"/>
|
||||
<field name="patient_id" ref="lims_management.demo_patient_2"/>
|
||||
<field name="collector_id" ref="base.user_admin"/>
|
||||
<field name="collection_date" eval="(DateTime.now() - timedelta(days=1)).strftime('%Y-%m-%d %H:%M:%S')"/>
|
||||
<field name="container_type">edta_tube</field>
|
||||
</record>
|
||||
|
|
Binary file not shown.
|
@ -27,3 +27,9 @@ class StockLot(models.Model):
|
|||
('urine', 'Urine Container'),
|
||||
('other', 'Other')
|
||||
], string='Container Type')
|
||||
|
||||
collector_id = fields.Many2one(
|
||||
'res.users',
|
||||
string='Collected by',
|
||||
default=lambda self: self.env.user
|
||||
)
|
||||
|
|
|
@ -12,6 +12,7 @@
|
|||
<field name="patient_id"/>
|
||||
<field name="product_id" string="Sample Type"/>
|
||||
<field name="collection_date"/>
|
||||
<field name="collector_id"/>
|
||||
<field name="container_type"/>
|
||||
</list>
|
||||
</field>
|
||||
|
@ -40,6 +41,7 @@
|
|||
</group>
|
||||
<group>
|
||||
<field name="collection_date"/>
|
||||
<field name="collector_id"/>
|
||||
<field name="container_type"/>
|
||||
</group>
|
||||
</group>
|
||||
|
|
Loading…
Reference in New Issue
Block a user