Set 'default_rec_name' context key when query default_get

The last searched text is used as default rec_name.

issue4136
review31261002
This commit is contained in:
Cédric Krier committed 2016-08-04 23:56:09 +02:00
1 parent ecf9704545
commit 151ccace2a
7 files changed
+13 -11

No files matched your search

+2 -2
View File
@@ -312,10 +312,10 @@ class Group(SignalEvent, list):
if changed:
self.signal('group-changed', changed)
def new(self, default=True, obj_id=None):
def new(self, default=True, obj_id=None, rec_name=None):
record = Record(self.model_name, obj_id, group=self)
if default:
record.default_get()
record.default_get(rec_name=rec_name)
record.signal_connect(self, 'record-changed', self._record_changed)
record.signal_connect(self, 'record-modified', self._record_modified)
return record
+4 -2
View File
@@ -350,11 +350,13 @@ class Record(SignalEvent):
root_group.reload(reload_ids)
return True
def default_get(self):
def default_get(self, rec_name=None):
if len(self.group.fields):
context = self.context_get()
context.setdefault('default_rec_name', rec_name)
try:
vals = RPCExecute('model', self.model_name, 'default_get',
self.group.fields.keys(), context=self.context_get())
self.group.fields.keys(), context=context)
except RPCException:
return
if (self.parent
+2 -2
View File
@@ -530,7 +530,7 @@ class Screen(SignalEvent):
return view
def new(self, default=True):
def new(self, default=True, rec_name=None):
previous_view = self.current_view
if self.current_view.view_type == 'calendar':
selected_date = self.current_view.get_selected_date()
@@ -542,7 +542,7 @@ class Screen(SignalEvent):
group = self.current_record.group
else:
group = self.group
record = group.new(default)
record = group.new(default, rec_name=rec_name)
group.add(record, self.new_model_position())
if previous_view.view_type == 'calendar':
previous_view.set_default_date(record, selected_date)
@@ -213,7 +213,7 @@ class Many2Many(Widget):
self.focus_out = False
WinForm(screen, callback, new=True, save_current=True,
title=self.attrs.get('string'))
title=self.attrs.get('string'), rec_name=self.wid_text.get_text())
def _readonly_set(self, value):
self._readonly = value
@@ -169,7 +169,7 @@ class Many2One(Widget):
screen.current_record.rec_name()))
self.focus_out = True
WinForm(screen, callback, new=True, save_current=True,
title=self.attrs.get('string'))
title=self.attrs.get('string'), rec_name=self.wid_text.get_text())
def sig_edit(self, entry=None, icon_pos=None, *args):
model = self.get_model()
@@ -609,7 +609,7 @@ class M2O(GenericText):
title=field.attrs.get('string'))
else:
WinForm(screen, open_callback, new=True, save_current=True,
title=field.attrs.get('string'))
title=field.attrs.get('string'), rec_name=text)
def search_remote(self, record, relation, text, domain=None,
context=None, callback=None):
+2 -2
View File
@@ -17,7 +17,7 @@ class WinForm(NoModal, InfoBar):
def __init__(self, screen, callback, view_type='form',
new=False, many=0, domain=None, context=None,
save_current=False, title=''):
save_current=False, title='', rec_name=None):
NoModal.__init__(self)
self.screen = screen
self.callback = callback
@@ -33,7 +33,7 @@ class WinForm(NoModal, InfoBar):
self.screen.add_view_id(None, view_type)
self.screen.switch_view(view_type=view_type)
if new:
self.screen.new()
self.screen.new(rec_name=rec_name)
self.win = gtk.Dialog(_('Link'), self.parent,
gtk.DIALOG_DESTROY_WITH_PARENT)
self.win.set_position(gtk.WIN_POS_CENTER_ON_PARENT)