コード例 #1
0
ファイル: views.py プロジェクト: eneldoserrata/Flask-Marcos
 def __init__(self, template_name, jqgrid=None, model=None,  module_name=None, form=None):
     self.template_name = template_name
     self.jqgrid = jqgrid
     self.model = model
     self.module_name = module_name
     if form == None:
         form = GenericForm(model)
         self.form = form.create_form()
     else:
         self.form = form
コード例 #2
0
def develop_build():
    from uliweb.utils.common import pkg

    import uliweb.core.SimpleFrame as sf
    app_apps = sf.get_apps(application.apps_dir)

    contrib_path = pkg.resource_filename('uliweb.contrib', '')
    apps_dirs = [(application.apps_dir, ''), (contrib_path, 'uliweb.contrib')]

    #using entry point to find installed apps
    try:
        from pkg_resources import iter_entry_points
    except:
        iter_entry_points = None
    if iter_entry_points:
        #process apps group
        for p in iter_entry_points('uliweb_apps'):
            apps_dirs.append((os.path.join(p.dist.location,
                                           p.module_name), p.module_name))

    catalogs, apps = get_apps(application, apps_dirs, app_apps)

    if iter_entry_points:
        #proces single app
        for p in iter_entry_points('uliweb_app'):
            _get_app(os.path.join(p.dist.location, p.module_name),
                     p.module_name, apps, catalogs, app_apps)

    from forms import GenericForm

    f = GenericForm(method="post")

    if request.method == 'GET':
        #        ini = Ini(os.path.join(application.apps_dir, 'settings.ini'))
        ini_to_form(f, application.settings)

    else:
        r = f.validate(request.params)
        if r:
            ini = Ini(os.path.join(application.apps_dir, 'settings.ini'))
            flag = form_to_ini(f, ini, application.settings)
            if flag:
                ini.save()

    return {'catalogs': catalogs, 'generic_form': f}
コード例 #3
0
ファイル: views.py プロジェクト: datakungfu/uliweb
def develop_build():
    from uliweb.utils.common import pkg
    
    import uliweb.core.SimpleFrame as sf
    app_apps = sf.get_apps(application.apps_dir)
    
    contrib_path = pkg.resource_filename('uliweb.contrib', '')
    apps_dirs = [(application.apps_dir, ''), (contrib_path, 'uliweb.contrib')]
    
    #using entry point to find installed apps
    try:
        from pkg_resources import iter_entry_points
    except:
        iter_entry_points = None
    if iter_entry_points:
        #process apps group
        for p in iter_entry_points('uliweb_apps'):
            apps_dirs.append((os.path.join(p.dist.location, p.module_name), p.module_name))
            
    catalogs, apps = get_apps(application, apps_dirs, app_apps)
    
    if iter_entry_points:
        #proces single app
        for p in iter_entry_points('uliweb_app'):
            _get_app(os.path.join(p.dist.location, p.module_name), p.module_name, apps, catalogs, app_apps)
    
    from forms import GenericForm
    
    f = GenericForm(method="post")
    
    if request.method == 'GET':
#        ini = Ini(os.path.join(application.apps_dir, 'settings.ini'))
        ini_to_form(f, application.settings)
        
    else:
        r = f.validate(request.params)
        if r:
            ini = Ini(os.path.join(application.apps_dir, 'settings.ini'))
            flag = form_to_ini(f, ini, application.settings)
            if flag:
                ini.save()
        
    return {'catalogs':catalogs, 'generic_form':f}
コード例 #4
0
    def __init__(self, parent, **kwargs):
        wx.Panel.__init__ (self, parent, style=wx.SUNKEN_BORDER | wx.TAB_TRAVERSAL)
        
        self.tablename = kwargs.get ( "tablename", None)
        self.table = kwargs.get ( "table", None)
        self.form = kwargs.get ( "form", None )

        if self.tablename:
            self.table = meta.Table.Get ( self.tablename )
        if self.table:
            self.tablename = self.table.name
            self.form = orm.Form ( self.table )
        if self.form:
            self.table = self.form.table
            self.tablename = self.table.name

        self.save = conditionalmethod ( self.form.save )
        self.reload = conditionalmethod ( self.form.revert )
        self.new = conditionalmethod ( self.new )
        self.delete = conditionalmethod (self.form.delete )
    
        
        self.on_toolbar_SAVE = self.save
        self.on_toolbar_NEW = self.new
        self.on_toolbar_RELOAD = self.reload
        self.on_toolbar_DEL = self.delete
        
        self.mainsizer = wx.BoxSizer (wx.VERTICAL)
        
        self.toolbarconfig = kwargs.get ( "toolbar", FormToolbar)
        
        #tool bar
        if self.toolbarconfig:
            self.toolbar = self.toolbarconfig(self, **kwargs)
            self.mainsizer.Add ( self.toolbar, flag=wx.EXPAND )
        else:
            self.toolbar = None

        self.status = wx.StaticText ( self )
        self.status.SetFont ( wx.Font ( 8, wx.FONTFAMILY_MAX, wx.FONTSTYLE_NORMAL, wx.FONTWEIGHT_BOLD ) )        
        self.status.ForegroundColour = (122,66,66)
        self.status.SetThemeEnabled (False )
        self.mainsizer.Add ( self.status, flag=wx.EXPAND | wx.ALL, border=5 )
            
        #editor
        self.editor_scrolled_window = wx.ScrolledWindow ( self, style=wx.VSCROLL | wx.TAB_TRAVERSAL )            
        self.editor = GenericForm ( self.form, self.editor_scrolled_window )  
        self.editor.create_widget()
        self.scrolledsizer = wx.BoxSizer()
        self.scrolledsizer.Add ( self.editor, flag=wx.EXPAND )        
        self.editor_scrolled_window.SetSizer ( self.scrolledsizer )
        self.editor_scrolled_window.SetScrollbars(20,20,50,50)        
        self.mainsizer.Add ( self.editor_scrolled_window, 1, flag=wx.EXPAND )
        
        #navigator
        navigator_config = kwargs.get ( "navigator", Navigator )
        navigator_options = kwargs.get ( "navigatoroptions", {} )
        if navigator_config:
            navigator = navigator_config(self, **navigator_options)
            self.recordlist = orm.RecordList (self.form.table).reload()
            navigator.set_records ( self.recordlist )
            navigator.first()
            self.mainsizer.Add ( navigator, flag=wx.EXPAND )            
        else:
            navigator = None
            
        self.SetSizer ( self.mainsizer )
        self.SetSize ( parent.GetSize() )
        #handlers
        self.editor_scrolled_window.Bind ( wx.EVT_SIZE, self.on_resize)         
        self.editor.Bind ( wx.EVT_SIZE, self.on_editor_resize )

        if navigator:
            self.set_navigator ( navigator )
            
        self.form.listenForEvent ( "request_record_change", self.before_record_change )
        self.form.listenForEvent ( "current_record_modified", self.current_record_modified )
        self.form.listenForEvent ( "current_record_deleted", self.current_record_deleted )
        self.form.listenForEvent ( "current_record_saved", self.current_record_saved )
        self.form.listenForEvent ( "data_loaded", self.data_loaded )

        self.infowindow = InfoPopup(self)
コード例 #5
0
class CompleteGenericForm(wx.Panel):
    
    def __init__(self, parent, **kwargs):
        wx.Panel.__init__ (self, parent, style=wx.SUNKEN_BORDER | wx.TAB_TRAVERSAL)
        
        self.tablename = kwargs.get ( "tablename", None)
        self.table = kwargs.get ( "table", None)
        self.form = kwargs.get ( "form", None )

        if self.tablename:
            self.table = meta.Table.Get ( self.tablename )
        if self.table:
            self.tablename = self.table.name
            self.form = orm.Form ( self.table )
        if self.form:
            self.table = self.form.table
            self.tablename = self.table.name

        self.save = conditionalmethod ( self.form.save )
        self.reload = conditionalmethod ( self.form.revert )
        self.new = conditionalmethod ( self.new )
        self.delete = conditionalmethod (self.form.delete )
    
        
        self.on_toolbar_SAVE = self.save
        self.on_toolbar_NEW = self.new
        self.on_toolbar_RELOAD = self.reload
        self.on_toolbar_DEL = self.delete
        
        self.mainsizer = wx.BoxSizer (wx.VERTICAL)
        
        self.toolbarconfig = kwargs.get ( "toolbar", FormToolbar)
        
        #tool bar
        if self.toolbarconfig:
            self.toolbar = self.toolbarconfig(self, **kwargs)
            self.mainsizer.Add ( self.toolbar, flag=wx.EXPAND )
        else:
            self.toolbar = None

        self.status = wx.StaticText ( self )
        self.status.SetFont ( wx.Font ( 8, wx.FONTFAMILY_MAX, wx.FONTSTYLE_NORMAL, wx.FONTWEIGHT_BOLD ) )        
        self.status.ForegroundColour = (122,66,66)
        self.status.SetThemeEnabled (False )
        self.mainsizer.Add ( self.status, flag=wx.EXPAND | wx.ALL, border=5 )
            
        #editor
        self.editor_scrolled_window = wx.ScrolledWindow ( self, style=wx.VSCROLL | wx.TAB_TRAVERSAL )            
        self.editor = GenericForm ( self.form, self.editor_scrolled_window )  
        self.editor.create_widget()
        self.scrolledsizer = wx.BoxSizer()
        self.scrolledsizer.Add ( self.editor, flag=wx.EXPAND )        
        self.editor_scrolled_window.SetSizer ( self.scrolledsizer )
        self.editor_scrolled_window.SetScrollbars(20,20,50,50)        
        self.mainsizer.Add ( self.editor_scrolled_window, 1, flag=wx.EXPAND )
        
        #navigator
        navigator_config = kwargs.get ( "navigator", Navigator )
        navigator_options = kwargs.get ( "navigatoroptions", {} )
        if navigator_config:
            navigator = navigator_config(self, **navigator_options)
            self.recordlist = orm.RecordList (self.form.table).reload()
            navigator.set_records ( self.recordlist )
            navigator.first()
            self.mainsizer.Add ( navigator, flag=wx.EXPAND )            
        else:
            navigator = None
            
        self.SetSizer ( self.mainsizer )
        self.SetSize ( parent.GetSize() )
        #handlers
        self.editor_scrolled_window.Bind ( wx.EVT_SIZE, self.on_resize)         
        self.editor.Bind ( wx.EVT_SIZE, self.on_editor_resize )

        if navigator:
            self.set_navigator ( navigator )
            
        self.form.listenForEvent ( "request_record_change", self.before_record_change )
        self.form.listenForEvent ( "current_record_modified", self.current_record_modified )
        self.form.listenForEvent ( "current_record_deleted", self.current_record_deleted )
        self.form.listenForEvent ( "current_record_saved", self.current_record_saved )
        self.form.listenForEvent ( "data_loaded", self.data_loaded )

        self.infowindow = InfoPopup(self)
        
    def current_record_modified(self, record, *args):
        self.status.SetLabel ( "wprowadzono zmiany do danych" )
        
    def current_record_deleted ( self, objectid, *args):        
        self.status.SetLabel ( "Rekord usunięty." )
        wx.CallLater ( 2000, lambda self=self: self.status.SetLabel ( "" ) )
        self.navigator.reload(-1)
    
    def current_record_saved ( self, record, wasnew, *args):
        self.status.SetLabel ( "Rekord zapisany." )        
        wx.CallLater ( 2000, lambda self=self: self.status.SetLabel ( "" ) )
        if record.objectid not in self.navigator.records:
            #This is possible if the record was saved in an event handler of an event
            #fired, when some parent form was navigated away this records parent.
            #In this case it is not necessary nor possible to reload the just-saved
            #record.
            return
        if wasnew:
            if self.navigator:
                self.navigator.reload(record.objectid)
        elif self.navigator:
            self.navigator.records.reloadsingle ( record.objectid )

    def data_loaded (self, record, *args):
        wx.CallLater ( 1000, lambda self=self: self.status.SetLabel ( "" ) )
    
    def before_record_change(self, record, newid):
        if record._ismodified:
            ask = wx.MessageBox ( "W aktualnym rekordzie są niezapisane dane, czy chcesz je zapisać?", "Uwaga!", wx.YES_NO | wx.CANCEL )        
            if ask == wx.YES:
                self.save()
            elif ask == wx.NO:
                return
            else:
                raise eventcancelled()                
        
    def on_editor_resize(self, event, *args):
        self.editor_scrolled_window.SetVirtualSize ( event.GetSize() )        
        event.Skip()
        
    def on_resize(self, event, *args):
        w, h = self.editor_scrolled_window.GetSize()        
        ew, eh = self.editor.GetSize()
        self.editor.SetMinSize ( ( w-20, eh ) )        
        self.editor_scrolled_window.SetVirtualSize ( (ew, eh) )
        event.Skip()
    
    def navigate (self, objectid):  
        
        if self.navigator and self.navigator.isonnew() and self.toolbar:
            self.toolbar.SetRecordLabel ( self.form.table.title + " : ** NEW RECORD ** " )
        else:
            self.form.setid ( objectid )        
            if self.toolbar:
                self.toolbar.SetRecordLabel ( self.form.table.title + " : " + str(self.form.current) )
    
    def set_navigator(self, navigator):
        self.navigator = navigator
        self.navigator.listenForEvent ( "navigate", self.navigate )                
        self.navigate ( self.navigator.currentid() )
    
    def new(self):
        self.form.new()
        ##FIXME: ugly 'NEW_RECORD' hack!
        self.navigator.navigate ( None )