clinic/netforce_clinic/models/sickbed.py

63 lines
2.0 KiB
Python

from netforce.model import Model, fields, get_model
from netforce.access import get_active_company
class SickBed(Model):
_name="clinic.sickbed"
_string="Sickbed"
def _get_all(self,ids,context={}):
res={}
for obj in self.browse(ids):
hd_case=None
patient_id=None
image=None
date=''
for hd_case in sorted(obj.hd_cases, key=lambda a: a.id):
patient=hd_case.patient_id
patient_id=patient.id
image=patient.image
date=hd_case.date
res[obj.id]={
'patient_id': patient_id,
'image': image,
'date': date,
}
return res
_fields={
"name": fields.Char("Name",required=True,search=True),
"available": fields.Boolean("Available"),
'hd_cases': fields.One2Many("clinic.hd.case",'sickbed_id','HDCases'),
'company_id': fields.Many2One("company","Company"),
'patient_id': fields.Many2One("clinic.patient","Lasted Patient",function="_get_all",function_multi=True),
'image': fields.File("Image",function="_get_all",function_multi=True),
'date': fields.Date("Date",function="_get_all",function_multi=True),
"state": fields.Selection([("available","Available"),("not_available","Not Available")],"Status"),
'sequence': fields.Integer("Sequence"),
'note': fields.Text("Note"),
}
_defaults={
'available': True,
"company_id": lambda *a: get_active_company(),
'sequence': 0,
}
_order="sequence"
def copy(self,ids,context={}):
obj=self.browse(ids)[0]
new_id=get_model("clinic.sickbed").create({
'name': '%s(copy)' % obj.name,
})
return {
'next': {
'name': 'clinic_sickbed',
'mode': 'form',
'active_id': new_id,
},
'flash': 'Copy succesfully',
}
SickBed.register()