当前位置: 首页>>代码示例>>Python>>正文


Python Screen.save_current方法代码示例

本文整理汇总了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()
开发者ID:Ichag,项目名称:openerp-client,代码行数:70,代码来源:win_search.py

示例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)
开发者ID:kevin-garnett,项目名称:openerp-from-oneyoung,代码行数:81,代码来源:many2one.py

示例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):
开发者ID:Ichag,项目名称:openerp-client,代码行数:70,代码来源:form.py

示例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':
开发者ID:gisce,项目名称:erpclient,代码行数:70,代码来源:form.py


注:本文中的widget.screen.Screen.save_current方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。