feat(#31): Implementar ciclo de vida de muestras
This commit is contained in:
parent
80323a38b9
commit
4510ba27c7
|
@ -33,3 +33,27 @@ class StockLot(models.Model):
|
|||
string='Collected by',
|
||||
default=lambda self: self.env.user
|
||||
)
|
||||
|
||||
state = fields.Selection([
|
||||
('collected', 'Recolectada'),
|
||||
('received', 'Recibida en Laboratorio'),
|
||||
('in_process', 'En Proceso'),
|
||||
('analyzed', 'Analizada'),
|
||||
('stored', 'Almacenada'),
|
||||
('disposed', 'Desechada')
|
||||
], string='Estado', default='collected', tracking=True)
|
||||
|
||||
def action_receive(self):
|
||||
self.write({'state': 'received'})
|
||||
|
||||
def action_start_analysis(self):
|
||||
self.write({'state': 'in_process'})
|
||||
|
||||
def action_complete_analysis(self):
|
||||
self.write({'state': 'analyzed'})
|
||||
|
||||
def action_store(self):
|
||||
self.write({'state': 'stored'})
|
||||
|
||||
def action_dispose(self):
|
||||
self.write({'state': 'disposed'})
|
||||
|
|
|
@ -14,6 +14,7 @@
|
|||
<field name="collection_date"/>
|
||||
<field name="collector_id"/>
|
||||
<field name="container_type"/>
|
||||
<field name="state" decoration-success="state == 'analyzed'" decoration-info="state == 'in_process'" decoration-muted="state == 'stored' or state == 'disposed'" widget="badge"/>
|
||||
</list>
|
||||
</field>
|
||||
</record>
|
||||
|
@ -24,6 +25,14 @@
|
|||
<field name="model">stock.lot</field>
|
||||
<field name="arch" type="xml">
|
||||
<form string="Lab Sample">
|
||||
<header>
|
||||
<button name="action_receive" string="Recibir" type="object" class="oe_highlight" invisible="state != 'collected'"/>
|
||||
<button name="action_start_analysis" string="Iniciar Análisis" type="object" class="oe_highlight" invisible="state != 'received'"/>
|
||||
<button name="action_complete_analysis" string="Completar Análisis" type="object" class="oe_highlight" invisible="state != 'in_process'"/>
|
||||
<button name="action_store" string="Almacenar" type="object" invisible="state == 'stored' or state == 'disposed'"/>
|
||||
<button name="action_dispose" string="Desechar" type="object" invisible="state == 'disposed'"/>
|
||||
<field name="state" widget="statusbar" statusbar_visible="collected,received,in_process,analyzed,stored"/>
|
||||
</header>
|
||||
<sheet>
|
||||
<div class="oe_title">
|
||||
<h1>
|
||||
|
@ -32,17 +41,20 @@
|
|||
</div>
|
||||
<group>
|
||||
<group>
|
||||
<field name="patient_id"/>
|
||||
<field name="request_id"/>
|
||||
<field name="patient_id" readonly="state != 'collected'"/>
|
||||
<field name="request_id"
|
||||
readonly="state != 'collected'"
|
||||
domain="[('is_lab_request', '=', True), '|', ('partner_id', '=', False), ('partner_id', '=', patient_id)]"/>
|
||||
<field name="product_id"
|
||||
string="Sample Type"
|
||||
domain="[('is_sample_type', '=', True)]"
|
||||
options="{'no_create': True, 'no_create_edit': True}"/>
|
||||
options="{'no_create': True, 'no_create_edit': True}"
|
||||
readonly="state != 'collected'"/>
|
||||
</group>
|
||||
<group>
|
||||
<field name="collection_date"/>
|
||||
<field name="collector_id"/>
|
||||
<field name="container_type"/>
|
||||
<field name="collection_date" readonly="state != 'collected'"/>
|
||||
<field name="collector_id" readonly="state != 'collected'"/>
|
||||
<field name="container_type" readonly="state != 'collected'"/>
|
||||
</group>
|
||||
</group>
|
||||
</sheet>
|
||||
|
|
Loading…
Reference in New Issue
Block a user