from datetime import datetime, timedelta from netforce.model import Model, fields from netforce.access import get_active_company class Schedule(Model): _name="clinic.schedule" _string="Nurse Schedule" #_field_name="cycle_id" def _get_name(self,ids,context={}): res={} for obj in self.browse(ids): total_nurse=len(obj.nurses) res[obj.id]='%s, Nurse: %s'%(obj.cycle_id.name or "", total_nurse) return res _fields={ "name": fields.Char("Name",function="_get_name"), 'cycle_id': fields.Many2One("clinic.cycle","Cycle",required=True), "time_start": fields.DateTime("Time Start",required=True), "time_stop": fields.DateTime("Time Stop",required=True), 'company_id': fields.Many2One("company","Company"), 'nurses': fields.Many2Many('clinic.personal','Nurses'), # XXX domain 'state': fields.Selection([['draft','Draft'],['confirmed', 'Confirmed']],'State'), } _defaults={ "company_id": lambda *a: get_active_company(), 'time_start': lambda *a: datetime.now().strftime("%Y-%m-%d %H:%M:%S"), 'time_stop': lambda *a: (datetime.now()+timedelta(seconds=3600)).strftime("%Y-%m-%d %H:%M:%S"), 'state': 'draft', } def confirm(self,ids,context={}): obj=self.browse(ids)[0] obj.write({ 'state': 'confirmed', }) def to_draft(self,ids,context={}): obj=self.browse(ids)[0] obj.write({ 'state': 'draft', }) Schedule.register()