Metadata-Version: 1.0
Name: collective.saconnect
Version: 1.4
Summary: A Plone control panel for SQL Alchemy connection strings
Home-page: http://pypi.python.org/pypi/collective.saconnect
Author: Jarn AS
Author-email: info@jarn.com
License: GPL
Description: Introduction
        ============
        
        This package provides a simple control panel and storage for SQLAlchemy
        connection strings. It presents a form where one can add and remove named
        connections, and a GS import and export step to manage these.
        
        This package does *not* provide SQLAlchemy integration itself; use a
        library like zope.sqlalchemy or collective.lead instead.
        
        Example usage::
        
            from zope.app.component.hooks import getSite
            from collective.saconnect.interfaces import ISQLAlchemyConnectionStrings
            
            saconnect = ISQLAlchemyConnectionStrings(getSite())
            myconnection = saconnect['myidentifier']
        
        ISQLAlchemyConnectionStrings acts as a simple dictionary, although it's keys 
        and values must be simple strings.
        
        To import connection strings through GenericSetup, simply include a file named
        saconnections.xml in your profile, with a top-level 'connections' element and
        one 'connection' element per connection, with name and string attributes::
        
            <?xml version="1.0"?>
            <connections>
             <connection name="bar" string="sqlite:////path/to/bar.sqlite"/>
             <connection name="foo" string="oracle://username:password/tnsnamethere"/>
            </connections>
        
        To remove any of the connections, use the 'remove' attribute::
        
            <?xml version="1.0"?>
            <connections>
              <connection name="bar" remove=""/>
            </connections>
        
        If you cache your SQLAlchemy connections, you may want to listen for the
        IObjectModifiedEvent for ISQLAlchemyConnectionStrings; the event includes
        the key of the modified string, so you can easily refresh your database
        connections::
        
            <subscriber 
                handler=".mymodule.saconnectionUpdated"
                for="collective.saconnect.interfaces.ISQLAlchemyConnectionStrings
                     zope.lifecycleevent.interfaces.IObjectModifiedEvent"
                />
            def saconnectionUpdated(connections, event):
                if 'myconnectionstring' in event.descriptions:
                    getUtility(IDatabase, u'myconnection').invalidate()
        
        
        Credits
        -------
        
        Development sponsored by
            Elkjøp Nordic AS
        
        Design and development
            `Martijn Pieters`_ at Jarn_
        
        .. _Martijn Pieters: mailto:mj@jarn.com
        .. _Jarn: http://www.jarn.com/
        
        Changelog
        =========
        
        1.4 - 2011-10-06
        ----------------
        
        * Include CMFCore's permissions.zcml under Plone 4, so the `cmf.ManagePortal`
          permission is known.
          [hannosch]
        
        * Fix typo that prevented z3c.saconfig support from ever being enabled.
          [elro]
        
        1.3 - 2009-05-28
        ----------------
        
        * Update z3cform dependency to plone.app.z3cform, and add include it's 
          configuration in configure.zcml.
          [mj]
        
        * Added optional support for z3c.saconfig connections; each connection
          string in collective.saconnect automatically is registered as a z3c.saconfig
          scoped session utility.
          [elro, mj]
        
        1.2 - 2009-03-20
        ----------------
        
        * Fixed adding new entries after the editing fix.
          [mj]
        
        1.1 - 2009-03-17
        ----------------
        
        * Fixed editing existing entries.
          [mj]
        
        1.0 - 2009-03-17
        ----------------
        
        * Initial release
          [mj]
        
        
Platform: UNKNOWN
Classifier: Programming Language :: Python
