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, 'state': 'available', } _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()