本文整理汇总了Python中tryton.gui.window.view_form.screen.Screen.new方法的典型用法代码示例。如果您正苦于以下问题:Python Screen.new方法的具体用法?Python Screen.new怎么用?Python Screen.new使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类tryton.gui.window.view_form.screen.Screen
的用法示例。
在下文中一共展示了Screen.new方法的7个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。
示例1: Form
# 需要导入模块: from tryton.gui.window.view_form.screen import Screen [as 别名]
# 或者: from tryton.gui.window.view_form.screen.Screen import new [as 别名]
class Form(SignalEvent, TabContent):
"Form"
toolbar_def = [
('new', 'tryton-new', _('New'), _('Create a new record'),
'sig_new'),
('save', 'tryton-save', _('Save'), _('Save this record'),
'sig_save'),
('switch', 'tryton-fullscreen', _('Switch'), _('Switch view'),
'sig_switch'),
('reload', 'tryton-refresh', _('_Reload'), _('Reload'),
'sig_reload'),
(None,) * 5,
('previous', 'tryton-go-previous', _('Previous'),
_('Previous Record'), 'sig_previous'),
('next', 'tryton-go-next', _('Next'), _('Next Record'),
'sig_next'),
(None,) * 5,
('attach', 'tryton-attachment', _('Attachment(0)'),
_('Add an attachment to the record'), 'sig_attach'),
('note', 'tryton-note', _('Note(0)'),
_('Add a note to the record'), 'sig_note'),
]
menu_def = [
(_('_New'), 'tryton-new', 'sig_new', '<tryton>/Form/New'),
(_('_Save'), 'tryton-save', 'sig_save', '<tryton>/Form/Save'),
(_('_Switch View'), 'tryton-fullscreen', 'sig_switch',
'<tryton>/Form/Switch View'),
(_('_Reload/Undo'), 'tryton-refresh', 'sig_reload',
'<tryton>/Form/Reload'),
(_('_Duplicate'), 'tryton-copy', 'sig_copy',
'<tryton>/Form/Duplicate'),
(_('_Delete...'), 'tryton-delete', 'sig_remove',
'<tryton>/Form/Delete'),
(None,) * 4,
(_('_Previous'), 'tryton-go-previous', 'sig_previous',
'<tryton>/Form/Previous'),
(_('_Next'), 'tryton-go-next', 'sig_next', '<tryton>/Form/Next'),
(_('_Search'), 'tryton-find', 'sig_search', '<tryton>/Form/Search'),
(_('View _Logs...'), None, 'sig_logs', None),
(_('Show revisions...'), 'tryton-clock', 'revision', None),
(None,) * 4,
(_('_Close Tab'), 'tryton-close', 'sig_win_close',
'<tryton>/Form/Close'),
(None,) * 4,
(_('A_ttachments...'), 'tryton-attachment', 'sig_attach',
'<tryton>/Form/Attachments'),
(_('_Notes...'), 'tryton-note', 'sig_note', '<tryton>/Form/Notes'),
(_('_Actions...'), 'tryton-executable', 'sig_action',
'<tryton>/Form/Actions'),
(_('_Relate...'), 'tryton-go-jump', 'sig_relate',
'<tryton>/Form/Relate'),
(None,) * 4,
(_('_Report...'), 'tryton-print-open', 'sig_print_open',
'<tryton>/Form/Report'),
(_('_E-Mail...'), 'tryton-print-email', 'sig_print_email',
'<tryton>/Form/Email'),
(_('_Print...'), 'tryton-print', 'sig_print',
'<tryton>/Form/Print'),
(None,) * 4,
(_('_Export Data...'), 'tryton-save-as', 'sig_save_as',
'<tryton>/Form/Export Data'),
(_('_Import Data...'), None, 'sig_import',
'<tryton>/Form/Import Data'),
]
def __init__(self, model, res_id=False, domain=None, order=None, mode=None,
view_ids=None, context=None, name=False, limit=None,
search_value=None, tab_domain=None, context_model=None):
super(Form, self).__init__()
if not mode:
mode = ['tree', 'form']
if domain is None:
domain = []
if view_ids is None:
view_ids = []
self.model = model
self.res_id = res_id
self.domain = domain
self.mode = mode
self.context = context
self.view_ids = view_ids
self.dialogs = []
self.screen = Screen(self.model, mode=mode, context=context,
view_ids=view_ids, domain=domain, limit=limit, order=order,
search_value=search_value, tab_domain=tab_domain,
context_model=context_model)
self.screen.widget.show()
if not name:
self.name = self.screen.current_view.title
else:
self.name = name
if self.model not in common.MODELHISTORY:
self.menu_def = self.menu_def[:]
# Remove callback to revision
#.........这里部分代码省略.........
示例2: One2Many
# 需要导入模块: from tryton.gui.window.view_form.screen import Screen [as 别名]
# 或者: from tryton.gui.window.view_form.screen.Screen import new [as 别名]
class One2Many(Widget):
expand = True
def __init__(self, view, attrs):
super(One2Many, self).__init__(view, attrs)
self.widget = gtk.Frame()
self.widget.set_shadow_type(gtk.SHADOW_NONE)
self.widget.get_accessible().set_name(attrs.get("string", ""))
vbox = gtk.VBox(homogeneous=False, spacing=2)
self.widget.add(vbox)
self._readonly = True
self._position = 0
self._length = 0
self.title_box = hbox = gtk.HBox(homogeneous=False, spacing=0)
hbox.set_border_width(2)
label = gtk.Label(attrs.get("string", ""))
label.set_alignment(0.0, 0.5)
hbox.pack_start(label, expand=True, fill=True)
hbox.pack_start(gtk.VSeparator(), expand=False, fill=True)
tooltips = common.Tooltips()
self.focus_out = True
self.wid_completion = None
if attrs.get("add_remove"):
self.wid_text = PlaceholderEntry()
self.wid_text.set_placeholder_text(_("Search"))
self.wid_text.set_property("width_chars", 13)
self.wid_text.connect("focus-out-event", lambda *a: self._focus_out())
hbox.pack_start(self.wid_text, expand=True, fill=True)
if int(self.attrs.get("completion", 1)):
access = common.MODELACCESS[attrs["relation"]]
self.wid_completion = get_completion(
search=access["read"] and access["write"], create=attrs.get("create", True) and access["create"]
)
self.wid_completion.connect("match-selected", self._completion_match_selected)
self.wid_completion.connect("action-activated", self._completion_action_activated)
self.wid_text.set_completion(self.wid_completion)
self.wid_text.connect("changed", self._update_completion)
self.but_add = gtk.Button()
tooltips.set_tip(self.but_add, _("Add existing record"))
self.but_add.connect("clicked", self._sig_add)
img_add = gtk.Image()
img_add.set_from_stock("tryton-list-add", gtk.ICON_SIZE_SMALL_TOOLBAR)
img_add.set_alignment(0.5, 0.5)
self.but_add.add(img_add)
self.but_add.set_relief(gtk.RELIEF_NONE)
hbox.pack_start(self.but_add, expand=False, fill=False)
self.but_remove = gtk.Button()
tooltips.set_tip(self.but_remove, _("Remove selected record"))
self.but_remove.connect("clicked", self._sig_remove, True)
img_remove = gtk.Image()
img_remove.set_from_stock("tryton-list-remove", gtk.ICON_SIZE_SMALL_TOOLBAR)
img_remove.set_alignment(0.5, 0.5)
self.but_remove.add(img_remove)
self.but_remove.set_relief(gtk.RELIEF_NONE)
hbox.pack_start(self.but_remove, expand=False, fill=False)
hbox.pack_start(gtk.VSeparator(), expand=False, fill=True)
self.but_new = gtk.Button()
tooltips.set_tip(self.but_new, _("Create a new record <F3>"))
self.but_new.connect("clicked", self._sig_new)
img_new = gtk.Image()
img_new.set_from_stock("tryton-new", gtk.ICON_SIZE_SMALL_TOOLBAR)
img_new.set_alignment(0.5, 0.5)
self.but_new.add(img_new)
self.but_new.set_relief(gtk.RELIEF_NONE)
hbox.pack_start(self.but_new, expand=False, fill=False)
self.but_open = gtk.Button()
tooltips.set_tip(self.but_open, _("Edit selected record <F2>"))
self.but_open.connect("clicked", self._sig_edit)
img_open = gtk.Image()
img_open.set_from_stock("tryton-open", gtk.ICON_SIZE_SMALL_TOOLBAR)
img_open.set_alignment(0.5, 0.5)
self.but_open.add(img_open)
self.but_open.set_relief(gtk.RELIEF_NONE)
hbox.pack_start(self.but_open, expand=False, fill=False)
self.but_del = gtk.Button()
tooltips.set_tip(self.but_del, _("Delete selected record <Del>"))
self.but_del.connect("clicked", self._sig_remove, False)
img_del = gtk.Image()
img_del.set_from_stock("tryton-delete", gtk.ICON_SIZE_SMALL_TOOLBAR)
img_del.set_alignment(0.5, 0.5)
self.but_del.add(img_del)
self.but_del.set_relief(gtk.RELIEF_NONE)
hbox.pack_start(self.but_del, expand=False, fill=False)
self.but_undel = gtk.Button()
tooltips.set_tip(self.but_undel, _("Undelete selected record <Ins>"))
#.........这里部分代码省略.........
示例3: Preference
# 需要导入模块: from tryton.gui.window.view_form.screen import Screen [as 别名]
# 或者: from tryton.gui.window.view_form.screen.Screen import new [as 别名]
class Preference(NoModal):
"Preference window"
def __init__(self, user, callback):
NoModal.__init__(self)
self.callback = callback
self.win = gtk.Dialog(_('Preferences'), self.parent,
gtk.DIALOG_DESTROY_WITH_PARENT)
self.win.set_position(gtk.WIN_POS_CENTER_ON_PARENT)
self.win.set_has_separator(False)
self.win.set_icon(TRYTON_ICON)
self.accel_group = gtk.AccelGroup()
self.win.add_accel_group(self.accel_group)
self.but_cancel = self.win.add_button(gtk.STOCK_CANCEL,
gtk.RESPONSE_CANCEL)
self.but_ok = self.win.add_button(gtk.STOCK_OK, gtk.RESPONSE_OK)
self.but_ok.add_accelerator('clicked', self.accel_group,
gtk.keysyms.Return, gtk.gdk.CONTROL_MASK, gtk.ACCEL_VISIBLE)
self.win.set_default_response(gtk.RESPONSE_OK)
self.win.connect('response', self.response)
try:
view = RPCExecute('model', 'res.user',
'get_preferences_fields_view')
except RPCException:
self.win.destroy()
self.win = None
return
title = gtk.Label(_('Edit User Preferences'))
title.show()
self.win.vbox.pack_start(title, expand=False, fill=True)
self.screen = Screen('res.user', mode=[])
# Reset readonly set automaticly by MODELACCESS
self.screen.readonly = False
self.screen.group.readonly = False
self.screen.group.skip_model_access = True
self.screen.add_view(view)
self.screen.switch_view()
self.screen.new(default=False)
try:
preferences = RPCExecute('model', 'res.user', 'get_preferences',
False)
except RPCException:
self.win.destroy()
self.win = None
return
self.screen.current_record.set(preferences)
self.screen.current_record.id = rpc._USER
self.screen.current_record.validate(softvalidation=True)
self.screen.display(set_cursor=True)
self.screen.widget.show()
self.win.vbox.pack_start(self.screen.widget)
self.win.set_title(_('Preference'))
width, height = self.parent.get_size()
self.win.set_default_size(int(width * 0.9), int(height * 0.9))
self.register()
self.win.show()
def response(self, win, response_id):
if response_id == gtk.RESPONSE_OK:
if self.screen.current_record.validate():
vals = copy.copy(self.screen.get())
if 'password' in vals:
password = common.ask(_('Current Password:'),
visibility=False)
if not password:
return
else:
password = False
try:
RPCExecute('model', 'res.user', 'set_preferences',
vals, password)
except RPCException:
return
self.parent.present()
self.destroy()
self.callback()
def destroy(self):
self.screen.destroy()
self.win.destroy()
NoModal.destroy(self)
示例4: One2Many
# 需要导入模块: from tryton.gui.window.view_form.screen import Screen [as 别名]
# 或者: from tryton.gui.window.view_form.screen.Screen import new [as 别名]
class One2Many(WidgetInterface):
def __init__(self, field_name, model_name, attrs=None):
super(One2Many, self).__init__(field_name, model_name, attrs=attrs)
self.widget = gtk.VBox(homogeneous=False, spacing=2)
self._readonly = True
hbox = gtk.HBox(homogeneous=False, spacing=0)
hbox.set_border_width(2)
label = gtk.Label(attrs.get('string', ''))
label.set_alignment(0.0, 0.5)
hbox.pack_start(label, expand=True, fill=True)
hbox.pack_start(gtk.VSeparator(), expand=False, fill=True)
tooltips = common.Tooltips()
if attrs.get('add_remove'):
self.wid_text = gtk.Entry()
self.wid_text.set_property('width_chars', 13)
self.wid_text.connect('activate', self._sig_activate)
self.wid_text.connect('focus-out-event', self._focus_out)
hbox.pack_start(self.wid_text, expand=True, fill=True)
self.but_add = gtk.Button()
tooltips.set_tip(self.but_add, _('Add'))
self.but_add.connect('clicked', self._sig_add)
img_add = gtk.Image()
img_add.set_from_stock('tryton-list-add',
gtk.ICON_SIZE_SMALL_TOOLBAR)
img_add.set_alignment(0.5, 0.5)
self.but_add.add(img_add)
self.but_add.set_relief(gtk.RELIEF_NONE)
hbox.pack_start(self.but_add, expand=False, fill=False)
self.but_remove = gtk.Button()
tooltips.set_tip(self.but_remove, _('Remove <Del>'))
self.but_remove.connect('clicked', self._sig_remove, True)
img_remove = gtk.Image()
img_remove.set_from_stock('tryton-list-remove',
gtk.ICON_SIZE_SMALL_TOOLBAR)
img_remove.set_alignment(0.5, 0.5)
self.but_remove.add(img_remove)
self.but_remove.set_relief(gtk.RELIEF_NONE)
hbox.pack_start(self.but_remove, expand=False, fill=False)
hbox.pack_start(gtk.VSeparator(), expand=False, fill=True)
self.but_new = gtk.Button()
tooltips.set_tip(self.but_new, _('Create a new record <F3>'))
self.but_new.connect('clicked', self._sig_new)
img_new = gtk.Image()
img_new.set_from_stock('tryton-new', gtk.ICON_SIZE_SMALL_TOOLBAR)
img_new.set_alignment(0.5, 0.5)
self.but_new.add(img_new)
self.but_new.set_relief(gtk.RELIEF_NONE)
hbox.pack_start(self.but_new, expand=False, fill=False)
self.but_open = gtk.Button()
tooltips.set_tip(self.but_open, _('Edit selected record <F2>'))
self.but_open.connect('clicked', self._sig_edit)
img_open = gtk.Image()
img_open.set_from_stock('tryton-open', gtk.ICON_SIZE_SMALL_TOOLBAR)
img_open.set_alignment(0.5, 0.5)
self.but_open.add(img_open)
self.but_open.set_relief(gtk.RELIEF_NONE)
hbox.pack_start(self.but_open, expand=False, fill=False)
self.but_del = gtk.Button()
tooltips.set_tip(self.but_del, _('Delete selected record <Del>'))
self.but_del.connect('clicked', self._sig_remove, False)
img_del = gtk.Image()
img_del.set_from_stock('tryton-delete', gtk.ICON_SIZE_SMALL_TOOLBAR)
img_del.set_alignment(0.5, 0.5)
self.but_del.add(img_del)
self.but_del.set_relief(gtk.RELIEF_NONE)
hbox.pack_start(self.but_del, expand=False, fill=False)
self.but_undel = gtk.Button()
tooltips.set_tip(self.but_undel, _('Undelete selected record <Ins>'))
self.but_undel.connect('clicked', self._sig_undelete)
img_undel = gtk.Image()
img_undel.set_from_stock('tryton-undo', gtk.ICON_SIZE_SMALL_TOOLBAR)
img_undel.set_alignment(0.5, 0.5)
self.but_undel.add(img_undel)
self.but_undel.set_relief(gtk.RELIEF_NONE)
hbox.pack_start(self.but_undel, expand=False, fill=False)
hbox.pack_start(gtk.VSeparator(), expand=False, fill=True)
self.but_pre = gtk.Button()
tooltips.set_tip(self.but_pre, _('Previous'))
self.but_pre.connect('clicked', self._sig_previous)
img_pre = gtk.Image()
img_pre.set_from_stock('tryton-go-previous',
gtk.ICON_SIZE_SMALL_TOOLBAR)
img_pre.set_alignment(0.5, 0.5)
#.........这里部分代码省略.........
示例5: Preference
# 需要导入模块: from tryton.gui.window.view_form.screen import Screen [as 别名]
# 或者: from tryton.gui.window.view_form.screen.Screen import new [as 别名]
class Preference(object):
"Preference window"
def __init__(self, user):
self.parent = common.get_toplevel_window()
self.win = gtk.Dialog(_("Preferences"), self.parent, gtk.DIALOG_MODAL | gtk.DIALOG_DESTROY_WITH_PARENT)
self.win.set_position(gtk.WIN_POS_CENTER_ON_PARENT)
self.win.set_has_separator(False)
self.win.set_icon(TRYTON_ICON)
self.accel_group = gtk.AccelGroup()
self.win.add_accel_group(self.accel_group)
self.but_cancel = self.win.add_button(gtk.STOCK_CANCEL, gtk.RESPONSE_CANCEL)
self.but_ok = self.win.add_button(gtk.STOCK_OK, gtk.RESPONSE_OK)
self.but_ok.add_accelerator(
"clicked", self.accel_group, gtk.keysyms.Return, gtk.gdk.CONTROL_MASK, gtk.ACCEL_VISIBLE
)
self.win.set_default_response(gtk.RESPONSE_OK)
try:
view = RPCExecute("model", "res.user", "get_preferences_fields_view")
except RPCException:
self.win.destroy()
self.win = None
return
title = gtk.Label(_("Edit User Preferences"))
title.show()
self.win.vbox.pack_start(title, expand=False, fill=True)
self.screen = Screen("res.user", mode=[])
self.screen.add_view(view)
self.screen.new(default=False)
try:
preferences = RPCExecute("model", "res.user", "get_preferences", False)
except RPCException:
self.win.destroy()
self.win = None
return
self.screen.current_record.set(preferences)
self.screen.current_record.validate(softvalidation=True)
self.screen.screen_container.set(self.screen.current_view.widget)
self.screen.display(set_cursor=True)
self.screen.widget.show()
self.win.vbox.pack_start(self.screen.widget)
self.win.set_title(_("Preference"))
width, height = self.parent.get_size()
self.win.set_default_size(int(width * 0.9), int(height * 0.9))
self.win.show()
def run(self):
"Run the window"
if not self.win:
return False
res = False
while True:
if self.win.run() == gtk.RESPONSE_OK:
if self.screen.current_record.validate():
vals = copy.copy(self.screen.get(get_modifiedonly=True))
if "password" in vals:
password = common.ask(_("Current Password:"), visibility=False)
if not password:
break
else:
password = False
try:
RPCExecute("model", "res.user", "set_preferences", vals, password)
except RPCException:
continue
res = True
break
else:
break
self.parent.present()
self.win.destroy()
return res
示例6: One2Many
# 需要导入模块: from tryton.gui.window.view_form.screen import Screen [as 别名]
# 或者: from tryton.gui.window.view_form.screen.Screen import new [as 别名]
class One2Many(Widget):
expand = True
def __init__(self, view, attrs):
super(One2Many, self).__init__(view, attrs)
self.widget = gtk.Frame()
self.widget.set_shadow_type(gtk.SHADOW_NONE)
self.widget.get_accessible().set_name(attrs.get('string', ''))
vbox = gtk.VBox(homogeneous=False, spacing=2)
self.widget.add(vbox)
self._readonly = True
self._position = 0
self._length = 0
self.title_box = hbox = gtk.HBox(homogeneous=False, spacing=0)
hbox.set_border_width(2)
label = gtk.Label(attrs.get('string', ''))
label.set_alignment(0.0, 0.5)
hbox.pack_start(label, expand=True, fill=True)
hbox.pack_start(gtk.VSeparator(), expand=False, fill=True)
tooltips = common.Tooltips()
self.focus_out = True
self.wid_completion = None
if attrs.get('add_remove'):
self.wid_text = PlaceholderEntry()
self.wid_text.set_placeholder_text(_('Search'))
self.wid_text.set_property('width_chars', 13)
self.wid_text.connect('focus-out-event',
lambda *a: self._focus_out())
hbox.pack_start(self.wid_text, expand=True, fill=True)
if int(self.attrs.get('completion', 1)):
access = common.MODELACCESS[attrs['relation']]
self.wid_completion = get_completion(
search=access['read'] and access['write'],
create=attrs.get('create', True) and access['create'])
self.wid_completion.connect('match-selected',
self._completion_match_selected)
self.wid_completion.connect('action-activated',
self._completion_action_activated)
self.wid_text.set_completion(self.wid_completion)
self.wid_text.connect('changed', self._update_completion)
self.but_add = gtk.Button()
tooltips.set_tip(self.but_add, _('Add existing record'))
self.but_add.connect('clicked', self._sig_add)
img_add = gtk.Image()
img_add.set_from_stock('tryton-list-add',
gtk.ICON_SIZE_SMALL_TOOLBAR)
img_add.set_alignment(0.5, 0.5)
self.but_add.add(img_add)
self.but_add.set_relief(gtk.RELIEF_NONE)
hbox.pack_start(self.but_add, expand=False, fill=False)
self.but_remove = gtk.Button()
tooltips.set_tip(self.but_remove,
_('Remove selected record'))
self.but_remove.connect('clicked', self._sig_remove, True)
img_remove = gtk.Image()
img_remove.set_from_stock('tryton-list-remove',
gtk.ICON_SIZE_SMALL_TOOLBAR)
img_remove.set_alignment(0.5, 0.5)
self.but_remove.add(img_remove)
self.but_remove.set_relief(gtk.RELIEF_NONE)
hbox.pack_start(self.but_remove, expand=False, fill=False)
hbox.pack_start(gtk.VSeparator(), expand=False, fill=True)
self.but_new = gtk.Button()
tooltips.set_tip(self.but_new, _('Create a new record <F3>'))
self.but_new.connect('clicked', self._sig_new)
img_new = gtk.Image()
img_new.set_from_stock('tryton-new', gtk.ICON_SIZE_SMALL_TOOLBAR)
img_new.set_alignment(0.5, 0.5)
self.but_new.add(img_new)
self.but_new.set_relief(gtk.RELIEF_NONE)
hbox.pack_start(self.but_new, expand=False, fill=False)
self.but_open = gtk.Button()
tooltips.set_tip(self.but_open, _('Edit selected record <F2>'))
self.but_open.connect('clicked', self._sig_edit)
img_open = gtk.Image()
img_open.set_from_stock('tryton-open', gtk.ICON_SIZE_SMALL_TOOLBAR)
img_open.set_alignment(0.5, 0.5)
self.but_open.add(img_open)
self.but_open.set_relief(gtk.RELIEF_NONE)
hbox.pack_start(self.but_open, expand=False, fill=False)
self.but_del = gtk.Button()
tooltips.set_tip(self.but_del, _('Delete selected record <Del>'))
self.but_del.connect('clicked', self._sig_remove, False)
img_del = gtk.Image()
img_del.set_from_stock('tryton-delete', gtk.ICON_SIZE_SMALL_TOOLBAR)
img_del.set_alignment(0.5, 0.5)
#.........这里部分代码省略.........
示例7: Form
# 需要导入模块: from tryton.gui.window.view_form.screen import Screen [as 别名]
# 或者: from tryton.gui.window.view_form.screen.Screen import new [as 别名]
class Form(SignalEvent, TabContent):
"Form"
toolbar_def = [
('new', 'tryton-new', _('New'), _('Create a new record'),
'sig_new'),
('save', 'tryton-save', _('Save'), _('Save this record'),
'sig_save'),
('switch', 'tryton-fullscreen', _('Switch'), _('Switch view'),
'sig_switch'),
('reload', 'tryton-refresh', _('_Reload'), _('Reload'),
'sig_reload'),
(None,) * 5,
('previous', 'tryton-go-previous', _('Previous'),
_('Previous Record'), 'sig_previous'),
('next', 'tryton-go-next', _('Next'), _('Next Record'),
'sig_next'),
(None,) * 5,
('attach', 'tryton-attachment', _('Attachment(0)'),
_('Add an attachment to the record'), 'sig_attach'),
]
menu_def = [
(_('_New'), 'tryton-new', 'sig_new', '<tryton>/Form/New'),
(_('_Save'), 'tryton-save', 'sig_save', '<tryton>/Form/Save'),
(_('_Switch View'), 'tryton-fullscreen', 'sig_switch',
'<tryton>/Form/Switch View'),
(_('_Reload/Undo'), 'tryton-refresh', 'sig_reload',
'<tryton>/Form/Reload'),
(_('_Duplicate'), 'tryton-copy', 'sig_copy',
'<tryton>/Form/Duplicate'),
(_('_Delete...'), 'tryton-delete', 'sig_remove',
'<tryton>/Form/Delete'),
(None,) * 4,
(_('_Previous'), 'tryton-go-previous', 'sig_previous',
'<tryton>/Form/Previous'),
(_('_Next'), 'tryton-go-next', 'sig_next', '<tryton>/Form/Next'),
(_('_Search'), 'tryton-find', 'sig_search', '<tryton>/Form/Search'),
(_('View _Logs...'), None, 'sig_logs', None),
(None,) * 4,
(_('_Close Tab'), 'tryton-close', 'sig_win_close',
'<tryton>/Form/Close'),
(None,) * 4,
(_('A_ttachments...'), 'tryton-attachment', 'sig_attach',
'<tryton>/Form/Attachments'),
(_('_Actions...'), 'tryton-executable', 'sig_action',
'<tryton>/Form/Actions'),
(_('_Relate...'), 'tryton-go-jump', 'sig_relate',
'<tryton>/Form/Relate'),
(None,) * 4,
(_('_Report...'), 'tryton-print-open', 'sig_print_open',
'<tryton>/Form/Report'),
(_('_E-Mail...'), 'tryton-print-email', 'sig_print_email',
'<tryton>/Form/Email'),
(_('_Print...'), 'tryton-print', 'sig_print',
'<tryton>/Form/Print'),
(None,) * 4,
(_('_Export Data...'), 'tryton-save-as', 'sig_save_as',
'<tryton>/Form/Export Data'),
(_('_Import Data...'), None, 'sig_import',
'<tryton>/Form/Import Data'),
]
def __init__(self, model, res_id=False, domain=None, mode=None,
view_ids=None, context=None, name=False, limit=None,
auto_refresh=False, search_value=None, tab_domain=None):
super(Form, self).__init__()
if not mode:
mode = ['tree', 'form']
if domain is None:
domain = []
if view_ids is None:
view_ids = []
if context is None:
context = {}
self.model = model
self.res_id = res_id
self.domain = domain
self.mode = mode
self.context = context
self.auto_refresh = auto_refresh
self.view_ids = view_ids
self.dialogs = []
self.screen = Screen(self.model, mode=mode, context=self.context,
view_ids=view_ids, domain=domain, limit=limit,
readonly=bool(auto_refresh), search_value=search_value,
tab_domain=tab_domain)
self.screen.widget.show()
if not name:
self.name = self.screen.current_view.title
else:
self.name = name
self.create_tabcontent()
access = common.MODELACCESS[self.model]
for button, access_type in (
#.........这里部分代码省略.........