Ejemplo n.º 1
0
 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()
Ejemplo n.º 2
0
 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()
Ejemplo n.º 3
0
    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
Ejemplo n.º 4
0
    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