from netforce.model import Model, fields, get_model from netforce.access import get_active_company class Department(Model): _name="clinic.department" _string="Department" _key=['code'] _fields={ "name": fields.Char("Name",required=True,search=True), "code": fields.Char("Code",search=True), "parent_id": fields.Many2One("clinic.department", "Parent"), 'company_id': fields.Many2One("company","Company"), 'branch_id': fields.Many2One("clinic.branch","Branch"), "pick_out_journal_id": fields.Many2One("stock.journal","Stock Journal",required=True), 'patients': fields.One2Many("clinic.patient","department_id","Patients"), 'staffs': fields.One2Many("clinic.staff","department_id","Staffs"), 'active': fields.Boolean("Active"), } def _get_branch(self,context={}): b_ids=get_model('clinic.branch').search([]) if b_ids: return b_ids[0] _defaults={ 'company_id': lambda *a: get_active_company(), 'branch_id': _get_branch, 'active': True, } _order="code" def share_access(self,ids,context={}): obj=self.browse(ids)[0] model_name='clinic.department' model_id=None for model in get_model("model").search_read([['name',model_name]],['name']): model_id=model['id'] if not model_id: model_id=get_model("model").create({'name': model_name,'string': 'Clinic Deparment'}), share_id=None for share in get_model('share.access').search_read([['model_id','=', model_id]],['name']): share_id=share['id'] if not share_id: share_id=get_model('share.access').create({ 'model_id': model_id, 'default_accesss': 'custom', 'filter_type': 'rw', 'select_profile': [], }) return { 'next': { 'action': 'clinic_department', 'active_id': obj.id, 'mode': 'form', }, 'flash': 'Department % s is shared sucessfully'%obj.name, } Department.register()