本文整理汇总了Python中widget.screen.Screen.save_current方法的典型用法代码示例。如果您正苦于以下问题:Python Screen.save_current方法的具体用法?Python Screen.save_current怎么用?Python Screen.save_current使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类widget.screen.Screen
的用法示例。
在下文中一共展示了Screen.save_current方法的4个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。
示例1: dialog
# 需要导入模块: from widget.screen import Screen [as 别名]
# 或者: from widget.screen.Screen import save_current [as 别名]
class dialog(object):
def __init__(self, model, domain=None, context=None, window=None, target=False):
if domain is None:
domain = []
if context is None:
context = {}
if not window:
window = service.LocalService('gui.main').window
self.dia = gtk.Dialog(_('OpenERP - Link'), window,
gtk.DIALOG_MODAL|gtk.DIALOG_DESTROY_WITH_PARENT)
self.window = window
if not target:
self.dia.set_property('default-width', 760)
self.dia.set_property('default-height', 500)
self.dia.set_position(gtk.WIN_POS_CENTER_ON_PARENT)
self.dia.set_icon(common.OPENERP_ICON)
self.accel_group = gtk.AccelGroup()
self.dia.add_accel_group(self.accel_group)
self.but_cancel = self.dia.add_button(gtk.STOCK_CANCEL, gtk.RESPONSE_CANCEL)
self.but_cancel.add_accelerator('clicked', self.accel_group, gtk.keysyms.Escape, gtk.gdk.CONTROL_MASK, gtk.ACCEL_VISIBLE)
self.but_ok = self.dia.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)
scroll = gtk.ScrolledWindow()
scroll.set_policy(gtk.POLICY_AUTOMATIC, gtk.POLICY_AUTOMATIC)
scroll.set_placement(gtk.CORNER_TOP_LEFT)
scroll.set_shadow_type(gtk.SHADOW_NONE)
self.dia.vbox.pack_start(scroll, expand=True, fill=True)
vp = gtk.Viewport()
vp.set_shadow_type(gtk.SHADOW_NONE)
scroll.add(vp)
self.screen = Screen(model, view_ids=None, domain=domain, context=context, window=self.dia, view_type=['form'])
self.screen.new()
vp.add(self.screen.widget)
x,y = self.screen.screen_container.size_get()
width, height = window.get_size()
vp.set_size_request(min(width - 20, x + 20),min(height - 60, y + 25))
self.dia.show_all()
self.screen.display()
def run(self, datas={}):
while True:
try:
res = self.dia.run()
if res == gtk.RESPONSE_OK:
if self.screen.current_model.validate() and self.screen.save_current():
return self.screen.current_model.id
else:
self.screen.display()
self.screen.current_view.set_cursor()
else:
break
except Exception:
# Passing all exceptions, most preferably the one of sql_constraint
pass
return False
def destroy(self):
self.window.present()
self.dia.destroy()
self.screen.destroy()
示例2: dialog
# 需要导入模块: from widget.screen import Screen [as 别名]
# 或者: from widget.screen.Screen import save_current [as 别名]
class dialog(object):
def __init__(self, model, id=None, attrs=None ,domain=None, context=None, window=None, view_ids=None, target=False,view_type=['form'], help={}):
if attrs is None:
attrs = {}
if domain is None:
domain = []
if context is None:
context = {}
if not window:
window = service.LocalService('gui.main').window
self.dia = gtk.Dialog('OpenERP', window,
gtk.DIALOG_MODAL|gtk.DIALOG_DESTROY_WITH_PARENT)
self.window = window
if not target:
self.dia.set_property('default-width', 760)
self.dia.set_property('default-height', 500)
self.dia.set_position(gtk.WIN_POS_CENTER_ON_PARENT)
self.dia.set_icon(common.OPENERP_ICON)
self.accel_group = gtk.AccelGroup()
self.dia.add_accel_group(self.accel_group)
self.but_cancel = self.dia.add_button(gtk.STOCK_CANCEL, gtk.RESPONSE_CANCEL)
self.but_cancel.add_accelerator('clicked', self.accel_group, gtk.keysyms.Escape, gtk.gdk.CONTROL_MASK, gtk.ACCEL_VISIBLE)
self.but_ok = self.dia.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)
scroll = gtk.ScrolledWindow()
scroll.set_policy(gtk.POLICY_AUTOMATIC, gtk.POLICY_AUTOMATIC)
scroll.set_placement(gtk.CORNER_TOP_LEFT)
scroll.set_shadow_type(gtk.SHADOW_NONE)
self.dia.vbox.pack_start(scroll, expand=True, fill=True)
vp = gtk.Viewport()
vp.set_shadow_type(gtk.SHADOW_NONE)
scroll.add(vp)
self.screen = Screen(model, view_ids=view_ids, domain=domain, context=context, window=self.dia, view_type=view_type, help=help)
if id:
self.screen.load([id])
else:
self.screen.new()
if ('string' in attrs) and attrs['string']:
self.dia.set_title(self.dia.get_title() + ' - ' + attrs['string'])
elif self.screen.current_view:
self.dia.set_title(self.dia.get_title() + ' - ' + self.screen.current_view.title)
vp.add(self.screen.widget)
width, height = self.screen.screen_container.size_get()
window_width, window_height = window.get_size()
dia_width, dia_height = self.dia.get_size()
widget_width = min(window_width - 20, max(dia_width, width + 30))
if target:
widget_height = min(window_height - 60, height + 10)
else:
widget_height = min(window_height - 60, height + 20)
vp.set_size_request(widget_width, widget_height)
self.dia.show_all()
self.screen.display()
def run(self, datas={}):
while True:
try:
res = self.dia.run()
if res == gtk.RESPONSE_OK:
if self.screen.current_model.validate() and self.screen.save_current():
return (True, self.screen.current_model.name_get())
else:
self.screen.display()
self.screen.current_view.set_cursor()
else:
break
except Exception,e:
# Passing all exceptions, most preferably the one of sql_constraint
pass
return (False, False)
示例3: form
# 需要导入模块: from widget.screen import Screen [as 别名]
# 或者: from widget.screen.Screen import save_current [as 别名]
#.........这里部分代码省略.........
win = win_export.win_export(self.model, self.screen.ids_get(), screen_fields, fields, parent=self.window, context=self.context)
res = win.go()
def sig_new(self, widget=None, autosave=True):
if autosave:
if not self.modified_save():
return
if self.screen.current_view.view_type in ['calendar','graph']:
return
self.screen.new()
self.message_state('')
self.page_label and self.page_label.set_text(self.name)
self.page_label and self.page_label.set_tooltip_text(self.name)
def sig_copy(self, *args):
if not self.modified_save():
return
res_id = self.id_get()
ctx = self.context.copy()
ctx.update(rpc.session.context)
new_id = rpc.session.rpc_exec_auth('/object', 'execute', self.model, 'copy', res_id, {}, ctx)
if new_id:
self.screen.load([new_id])
self.screen.current_view.set_cursor()
self.message_state(_('Working now on the duplicated document !'))
self.sig_reload()
def _form_save(self, auto_continue=True):
pass
@set_tooltips
def sig_save(self, widget=None, sig_new=True, auto_continue=True):
res = self.screen.save_current()
warning = False
if isinstance(res,dict):
id = res.get('id',False)
warning = res.get('warning',False)
else:
id = res
if id:
self.message_state(_('Document Saved.'), color="darkgreen")
elif len(self.screen.models.models) and res != None and self.screen.models.mfields:
fields = common.get_invalid_field(self.screen.current_model, self.screen)
msg = ''
for req, inv in fields:
if not inv:
msg += req + ' (<b>invisible</b>) '
else:
msg += req
msg += '\n'
common.warning(_('Correct following red fields !\n\n%s') % ( msg ),_('Input Error !'), parent=self.screen.current_view.window, to_xml=False)
self.message_state(_('Invalid form, correct red fields !'), color="red")
if warning:
common.warning(warning,_('Warning !'), parent=self.screen.current_view.window)
return bool(id)
@set_tooltips
def sig_previous(self, widget=None):
if not self.modified_save():
return
self.screen.display_prev()
self.message_state('')
@set_tooltips
def sig_next(self, widget=None):
示例4: form
# 需要导入模块: from widget.screen import Screen [as 别名]
# 或者: from widget.screen.Screen import save_current [as 别名]
#.........这里部分代码省略.........
res = win.go()
def sig_save_as(self, widget=None):
fields = []
while(self.screen.view_to_load):
self.screen.load_view_to_load()
win = win_export.win_export(self.model, self.screen.ids_get(), self.screen.fields, fields, parent=self.window, context=self.context)
res = win.go()
def sig_new(self, widget=None, autosave=True):
if autosave:
if not self.modified_save():
return
self.screen.new()
self.message_state('')
def sig_copy(self, *args):
if not self.modified_save():
return
res_id = self.id_get()
ctx = self.context.copy()
ctx.update(rpc.session.context)
new_id = rpc.session.rpc_exec_auth('/object', 'execute', self.model, 'copy', res_id, {}, ctx)
if new_id:
self.screen.load([new_id])
self.screen.current_view.set_cursor()
self.message_state(_('Working now on the duplicated document !'))
self.sig_reload()
def _form_save(self, auto_continue=True):
pass
def sig_save(self, widget=None, sig_new=True, auto_continue=True):
id = self.screen.save_current()
if id:
self.message_state(_('Document Saved.'), color="darkgreen")
else:
common.warning(_('Invalid form, correct red fields !'),_('Error !'))
self.message_state(_('Invalid form, correct red fields !'), color="red")
return bool(id)
def sig_previous(self, widget=None):
if not self.modified_save():
return
self.screen.display_prev()
self.message_state('')
def sig_next(self, widget=None):
if not self.modified_save():
return
self.screen.display_next()
self.message_state('')
def sig_reload(self, test_modified=True):
if not hasattr(self, 'screen'):
return False
if test_modified and self.screen.is_modified():
res = common.sur_3b(_('This record has been modified\n' \
'do you want to save it ?'))
if res == 'ok':
self.sig_save()
elif res == 'ko':
pass
else:
return False
if self.screen.current_view.view_type == 'form':