def sig_new(self, *args): dia = dialog(self.get_model(), window=self._window) ok, value = dia.run() if ok: self._view.modelfield.set_client(self._view.model, (self.get_model(), value)) self.display(self._view.model, self._view.modelfield) dia.destroy()
def sig_activate(self, widget, event=None, leave=False): self.ok = False value = self._view.modelfield.get_client(self._view.model) self.wid_text.disconnect(self.wid_text_focus_out_id) if not value: model, (id, name) = self.get_model() or '', (0, '') else: model, (id, name) = value if id: if not leave: #print self._window dia = dialog(model, id, attrs=self.attrs, window=self._window) ok, id = dia.run() if ok: self._view.modelfield.set_client(self._view.model, (model, id), force_change=True) dia.destroy() else: if not self._readonly and (self.wid_text.get_text() or not leave): domain = self._view.modelfield.domain_get(self._view.model) context = self._view.modelfield.context_get(self._view.model) ids = rpc.session.rpc_exec_auth('/object', 'execute', model, 'name_search', self.wid_text.get_text(), domain, 'ilike', context) if len(ids) == 1: id, name = ids[0] self._view.modelfield.set_client(self._view.model, (model, [id, name])) self.display(self._view.model, self._view.modelfield) self.ok = True self.wid_text_focus_out_id = self.wid_text.connect_after( 'focus-out-event', self.sig_activate, True) return True win = win_search(model, sel_multi=False, ids=[x[0] for x in ids], context=context, domain=domain, parent=self._window) ids = win.go() if ids: id, name = rpc.session.rpc_exec_auth( '/object', 'execute', model, 'name_get', [ids[0]], rpc.session.context)[0] self._view.modelfield.set_client(self._view.model, (model, [id, name])) self.wid_text_focus_out_id = self.wid_text.connect_after( 'focus-out-event', self.sig_activate, True) self.display(self._view.model, self._view.modelfield) self.ok = True
def sig_activate(self, widget, event=None, leave=False): self.ok = False value = self._view.modelfield.get_client(self._view.model) self.wid_text.disconnect(self.wid_text_focus_out_id) if not value: model, (id, name) = self.get_model() or '', (0, '') else: model, (id, name) = value if id: if not leave: #print self._window dia = dialog(model, id, attrs=self.attrs, window=self._window) ok, id = dia.run() if ok: self._view.modelfield.set_client(self._view.model, (model, id), force_change=True) dia.destroy() else: if not self._readonly and ( self.wid_text.get_text() or not leave): domain = self._view.modelfield.domain_get(self._view.model) context = self._view.modelfield.context_get(self._view.model) ids = rpc.session.rpc_exec_auth('/object', 'execute', model, 'name_search', self.wid_text.get_text(), domain, 'ilike', context) if len(ids)==1: id, name = ids[0] self._view.modelfield.set_client(self._view.model, (model, [id, name])) self.display(self._view.model, self._view.modelfield) self.ok = True self.wid_text_focus_out_id = self.wid_text.connect_after( 'focus-out-event', self.sig_activate, True) return True win = win_search(model, sel_multi=False, ids=[x[0] for x in ids], context=context, domain=domain, parent=self._window) ids = win.go() if ids: id, name = rpc.session.rpc_exec_auth('/object', 'execute', model, 'name_get', [ids[0]], rpc.session.context)[0] self._view.modelfield.set_client(self._view.model, (model, [id, name])) self.wid_text_focus_out_id = self.wid_text.connect_after( 'focus-out-event', self.sig_activate, True) self.display(self._view.model, self._view.modelfield) self.ok=True