def _sig_add(self, *args): if not self.focus_out: return domain = self.field.domain_get(self.record) add_remove = self.record.expr_eval(self.attrs.get('add_remove')) if add_remove: domain = [domain, add_remove] context = self.field.get_search_context(self.record) order = self.field.get_search_order(self.record) value = self.wid_text.get_text() self.focus_out = False def callback(result): self.focus_out = True if result: ids = [x[0] for x in result] self.screen.load(ids, modified=True) self.screen.display(res_id=ids[0]) self.screen.set_cursor() self.wid_text.set_text('') win = WinSearch(self.attrs['relation'], callback, sel_multi=True, context=context, domain=domain, order=order, view_ids=self.attrs.get('view_ids', '').split(','), views_preload=self.attrs.get('views', {}), new=self.attrs.get('create', True), title=self.attrs.get('string')) win.screen.search_filter(quote(value)) if len(win.screen.group) == 1: win.response(None, gtk.RESPONSE_OK) else: win.show()
def sig_activate(self): model = self.get_model() if not model or not common.MODELACCESS[model]['read']: return if not self.focus_out or not self.field: return self.changed = False value = self.field.get(self.record) model = self.get_model() self.focus_out = False if model and not self.has_target(value): if (not self._readonly and (self.wid_text.get_text() or self.field.get_state_attrs(self.record)['required'])): domain = self.field.domain_get(self.record) context = self.field.get_search_context(self.record) order = self.field.get_search_order(self.record) text = self.wid_text.get_text() def callback(result): if result: self.field.set_client(self.record, self.value_from_id(*result[0]), force_change=True) else: self.wid_text.set_text('') self.focus_out = True self.changed = True win = WinSearch(model, callback, sel_multi=False, context=context, domain=domain, order=order, view_ids=self.attrs.get('view_ids', '').split(','), views_preload=self.attrs.get('views', {}), new=self.create_access, title=self.attrs.get('string'), exclude_field=self.attrs.get('relation_field')) win.screen.search_filter(quote(text)) if len(win.screen.group) == 1: win.response(None, Gtk.ResponseType.OK) else: win.show() return self.focus_out = True self.changed = True return
def sig_activate(self): model = self.get_model() if not model or not common.MODELACCESS[model]['read']: return if not self.focus_out or not self.field: return self.changed = False value = self.field.get(self.record) model = self.get_model() self.focus_out = False if model and not self.has_target(value): if (not self._readonly and (self.wid_text.get_text() or self.field.get_state_attrs( self.record)['required'])): domain = self.field.domain_get(self.record) context = self.field.context_get(self.record) text = self.wid_text.get_text().decode('utf-8') def callback(result): if result: self.field.set_client(self.record, self.value_from_id(*result[0]), force_change=True) else: self.set_text('') self.focus_out = True self.changed = True win = WinSearch(model, callback, sel_multi=False, context=context, domain=domain, view_ids=self.attrs.get('view_ids', '').split(','), views_preload=self.attrs.get('views', {}), new=self.create_access) win.screen.search_filter(quote(text)) if len(win.screen.group) == 1: win.response(None, gtk.RESPONSE_OK) else: win.show() return self.focus_out = True self.changed = True return