optimize loading speed of sickbed
							parent
							
								
									c4dc2071a2
								
							
						
					
					
						commit
						57baccb9ef
					
				| 
						 | 
					@ -3,5 +3,6 @@
 | 
				
			||||||
    <field name="view_cls">multi_view</field>
 | 
					    <field name="view_cls">multi_view</field>
 | 
				
			||||||
    <field name="model">clinic.sickbed</field>
 | 
					    <field name="model">clinic.sickbed</field>
 | 
				
			||||||
    <field name="menu">clinic_menu</field>
 | 
					    <field name="menu">clinic_menu</field>
 | 
				
			||||||
 | 
					    <field name="limit">25</field>
 | 
				
			||||||
    <field name="tabs">[["All",[]],["Archived",[["active","=",false]]],["Available",[["state","=","available"]]],["Not Available",[["state","=","not_available"]]]]</field>
 | 
					    <field name="tabs">[["All",[]],["Archived",[["active","=",false]]],["Available",[["state","=","available"]]],["Not Available",[["state","=","not_available"]]]]</field>
 | 
				
			||||||
</action>
 | 
					</action>
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -3,7 +3,6 @@
 | 
				
			||||||
    <field name="name"/>
 | 
					    <field name="name"/>
 | 
				
			||||||
    <field name="date"/>
 | 
					    <field name="date"/>
 | 
				
			||||||
    <field name="patient_id"/>
 | 
					    <field name="patient_id"/>
 | 
				
			||||||
    <!--<field name="image" preview="1"/>-->
 | 
					 | 
				
			||||||
    <field name="department_id"/>
 | 
					    <field name="department_id"/>
 | 
				
			||||||
    <field name="branch_id"/>
 | 
					    <field name="branch_id"/>
 | 
				
			||||||
    <field name="note"/>
 | 
					    <field name="note"/>
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -1,3 +1,4 @@
 | 
				
			||||||
 | 
					from netforce.database import get_connection
 | 
				
			||||||
from netforce.model import Model, fields, get_model
 | 
					from netforce.model import Model, fields, get_model
 | 
				
			||||||
from netforce.access import get_active_company, get_active_user, set_active_user
 | 
					from netforce.access import get_active_company, get_active_user, set_active_user
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					@ -7,36 +8,33 @@ class SickBed(Model):
 | 
				
			||||||
    _key=['name','department_id','branch_id']
 | 
					    _key=['name','department_id','branch_id']
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    def _get_all(self,ids,context={}):
 | 
					    def _get_all(self,ids,context={}):
 | 
				
			||||||
        res={}
 | 
					        vals={}
 | 
				
			||||||
 | 
					        db=get_connection()
 | 
				
			||||||
        for obj in self.browse(ids):
 | 
					        for obj in self.browse(ids):
 | 
				
			||||||
            hd_case=None
 | 
					 | 
				
			||||||
            patient_id=None
 | 
					 | 
				
			||||||
            #image=None
 | 
					            #image=None
 | 
				
			||||||
            date=''
 | 
					            patient_id=None
 | 
				
			||||||
            set_active_user(1) #FIXME permission denined because of department of patient
 | 
					            date=None
 | 
				
			||||||
            if obj.hd_cases:
 | 
					            res=db.query("select id,patient_id,date from clinic_hd_case where sickbed_id=%s order by id desc limit 1"%(obj.id))
 | 
				
			||||||
                #hd_case=sorted(obj.hd_cases, key=lambda a: a.id)[-1]
 | 
					            if res:
 | 
				
			||||||
                hd_case=obj.hd_cases[-1]
 | 
					                hdcase=res[0]
 | 
				
			||||||
                patient=hd_case.patient_id
 | 
					                patient_id=hdcase['patient_id']
 | 
				
			||||||
                patient_id=patient.id
 | 
					                date=hdcase['date']
 | 
				
			||||||
                #image=patient.image
 | 
					            vals[obj.id]={
 | 
				
			||||||
                date=hd_case.date
 | 
					 | 
				
			||||||
            res[obj.id]={
 | 
					 | 
				
			||||||
                'patient_id': patient_id,
 | 
					                'patient_id': patient_id,
 | 
				
			||||||
                #'image': image,
 | 
					 | 
				
			||||||
                'date': date,
 | 
					                'date': date,
 | 
				
			||||||
 | 
					                #'image': image,
 | 
				
			||||||
            }
 | 
					            }
 | 
				
			||||||
            set_active_user(get_active_user())
 | 
					            set_active_user(get_active_user())
 | 
				
			||||||
        return res
 | 
					        return vals
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    _fields={
 | 
					    _fields={
 | 
				
			||||||
        "name": fields.Char("Name",required=True,search=True),
 | 
					        "name": fields.Char("Name",required=True,search=True),
 | 
				
			||||||
        "available": fields.Boolean("Available"),
 | 
					        "available": fields.Boolean("Available"),
 | 
				
			||||||
        'hd_cases': fields.One2Many("clinic.hd.case",'sickbed_id','HDCases'),
 | 
					        'hd_cases': fields.One2Many("clinic.hd.case",'sickbed_id','HDCases'),
 | 
				
			||||||
        'company_id': fields.Many2One("company","Company"),
 | 
					        'company_id': fields.Many2One("company","Company"),
 | 
				
			||||||
        'patient_id': fields.Many2One("clinic.patient","Lasted Patient",function="_get_all",function_multi=True,domain=[['state','=','admit']]),
 | 
					        'patient_id': fields.Many2One("clinic.patient","Lasted Patient",function="_get_all",function_multi=True, store=True, domain=[['state','=','admit']]),
 | 
				
			||||||
 | 
					        'date': fields.Date("Lasted Date",function="_get_all",function_multi=True, store=True,),
 | 
				
			||||||
        #'image': fields.File("Image",function="_get_all",function_multi=True),
 | 
					        #'image': fields.File("Image",function="_get_all",function_multi=True),
 | 
				
			||||||
        'date': fields.Date("Lasted Date",function="_get_all",function_multi=True),
 | 
					 | 
				
			||||||
        "state": fields.Selection([("available","Available"),("not_available","Not Available")],"Status"),
 | 
					        "state": fields.Selection([("available","Available"),("not_available","Not Available")],"Status"),
 | 
				
			||||||
        'sequence': fields.Integer("Sequence"),
 | 
					        'sequence': fields.Integer("Sequence"),
 | 
				
			||||||
        'note': fields.Text("Note"),
 | 
					        'note': fields.Text("Note"),
 | 
				
			||||||
| 
						 | 
					@ -45,8 +43,6 @@ class SickBed(Model):
 | 
				
			||||||
        'active': fields.Boolean("Active"),
 | 
					        'active': fields.Boolean("Active"),
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    _order="name desc"
 | 
					 | 
				
			||||||
    
 | 
					 | 
				
			||||||
    def _get_branch(self,context={}):
 | 
					    def _get_branch(self,context={}):
 | 
				
			||||||
        user_id=get_active_user()
 | 
					        user_id=get_active_user()
 | 
				
			||||||
        staffs=get_model("clinic.staff").search_browse([['user_id','=',user_id]])
 | 
					        staffs=get_model("clinic.staff").search_browse([['user_id','=',user_id]])
 | 
				
			||||||
| 
						 | 
					@ -89,5 +85,11 @@ class SickBed(Model):
 | 
				
			||||||
            else:
 | 
					            else:
 | 
				
			||||||
                vals['state']='not_available'
 | 
					                vals['state']='not_available'
 | 
				
			||||||
        super().write(ids,vals,**kw)
 | 
					        super().write(ids,vals,**kw)
 | 
				
			||||||
 | 
					        self.function_store(ids)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    def create(self, vals, context={}):
 | 
				
			||||||
 | 
					        new_id=super().create(vals,context)
 | 
				
			||||||
 | 
					        self.function_store([new_id])
 | 
				
			||||||
 | 
					        return new_id
 | 
				
			||||||
 | 
					
 | 
				
			||||||
SickBed.register()
 | 
					SickBed.register()
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
		Loading…
	
		Reference in New Issue