Metadata-Version: 1.0
Name: yafowil.plone
Version: 1.3
Summary: Plone Integration with YAFOWIL
Home-page: http://packages.python.org/yafowil.plone
Author: BlueDynamics Alliance
Author-email: dev@bluedynamics.com
License: Simplified BSD
Description: This is the **Zope2 integration** for `YAFOWIL
        <http://pypi.python.org/pypi/yafowil>`_
        
        
        Functionality
        =============
        
        Browser Resources
        -----------------
        
        Plugins may provide custom javascript, css, images (and so on). This package
        registers the directory containing them as a resource-directory. Thus they can
        be accessed from the webbrowser. The schema is
        ``+++resource++MODULENAME/filename.ext``. I.e. if
        ``yafowil.widget.autocomplete`` is available its javascript can be accessed
        with
        ``http://localhost:8080/Plone/++resource++yafowil.widget.autocomplete/widget.js``.
        
        
        Integration with Plone and GenericSetup
        ---------------------------------------
        
        There is a profile ``YAFOWIL`` available registering all browser resources in
        css and javascript registries.
        
        The resources are registred without any thridparty dependencies (i.e. dependend
        javascript libraries).
        
        
        Integration with Translation
        ----------------------------
        
        The package adds an translation method for Zope2 i18n messages. Its added using
        a global preprocessor
        
        
        Request wrapper
        ---------------
        
        This package registers a global preprocessor for YAFOWIL. It wraps the Zope2
        request by an own request instance providing the behavior expected by YAFOWIL.
        Spezial behaviors:
        
        - File Uploads provided by Zope2 as ``ZPublisher.HTTPRequest.Fileupload``
          objects are turned into Dicts with the keys:
        
          file
              file-like object to read data from
        
          filename
              submitted name of the upload
        
          mimetype
              type of the upload
        
          headers
              all headers
        
          original
              keeps the original ``ZPublisher.HTTPRequest.Fileupload`` object
        
        
        Base Forms
        ----------
        
        This package ships with base forms to be extended.
        
        Concrete implementation may look like::
            
            >>> from yafowil.base import factory
            >>> from yafowil.plone.form import Form
            
            >>> class MyForm(Form):
            ...     action_resource = '@@view_name_callable_by_browser'
            ...     
            ...     def prepare(self):
            ...         form = factory(
            ...             'form',
            ...             name='myform',
            ...             props={
            ...                 'action': self.form_action,
            ...             })
            ... 
            ...         # form field manufactoring here...
            ... 
            ...         self.form = form
        
        Convenience for creating YAML forms::
        
            >>> from zope.i18nmessageid import MessageFactory
            >>> from yafowil.plone.form import YAMLForm
            
            >>> class MyYAMLForm(YAMLForm):
            ...     action_resource = '@@view_name_callable_by_browser'
            ...     form_template = 'package.name:forms/myform.yaml'
            ...     message_factory = MessageFactory('package.name')
        
        Both base form classes inherit from ``Products.Five.BrowserPage``, thus they
        must be registered via ZCML ``browser:page`` directive::
        
            <browser:page
              for="*"
              name="form_registration_name"
              class=".forms.MyYAMLForm"
              permission="cmf.ModifyPortalContent"
            />
        
        Forms build with this base form classes are rendered without any wrapper, in
        order to insert such a form in a layout it must be called inside a
        wrapper template (plone example)::
        
            <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en"
                  xmlns:tal="http://xml.zope.org/namespaces/tal"
                  xmlns:metal="http://xml.zope.org/namespaces/metal"
                  xmlns:i18n="http://xml.zope.org/namespaces/i18n"
                  lang="en"
                  metal:use-macro="context/main_template/macros/master"
                  i18n:domain="package.name">
              <body>
                <metal:content-core fill-slot="content-core">
                  <metal:block define-macro="content-core">
                    <tal:form replace="structure context/@@form_registration_name" />
                  </metal:block>
                </metal:content-core>
              </body>
            </html>
        
        
        Source Code
        ===========
        
        The sources are in a GIT DVCS with its main branches at
        `github <http://github.com/bluedynamics/yafowil.plone>`_.
        
        
        Contributors
        ============
        
        - Jens W. Klein <jens [at] bluedynamics [dot] com>
        
        - Peter Holzer <hpeter [at] agitator [dot] com>
        
        - Benjamin Stefaner <bs [at] kleinundpartner [dot] at>
        
        - Robert Niederreiter <rnix [at] squarewave [dot] at>
        
        History
        =======
        
        1.3
        ---
        
        - GS profile marker - fix wrong filename.
          [rnix, 2012-04-11]
        
        - Add ``yafowil.plone.form`` module containing base classes.
          [rnix, 2012-04-11]
        
        
        1.2
        ---
        
        - Rename to yafowil.plone - seems a 2 at the end of a package name confuses 
          easy_install. wtf!?
          [jensens, 2012-03-20]
        
        
        1.1
        ---
        
        - Depend on yafowil 1.3 in setup.py and bump version.
          [jensens, 2012-03-20]
        
        
        1.0
        ---
        
        - Resources are registered using the new plugin infrastructure.
          Theres now an import step for generic setup registering all javascripts and
          stylesheets provided by the plugins. They are registred without any 
          thirdparty dependencies. If a resource is already registered its registration 
          is skipped. Such its possible to register or overide the defaults using xml
          files.
          [jensens, 2012-02-01]
        
        - Automatic browserresources for plugins.
          [jensens, 2012-02-16]
        
        - Depends on yafowil 1.3 plugin infrastucture.
          [jensens, 2012-02-15]
        
        - Example form and senseful default-classes and plans for plone.
          [hpeter, bennyboy, 2012-02-15]
        
        
        1.0-beta
        --------
        
        - Made it work.
          [jensens, rnix, et al, 2010-12-27]
        
        License
        =======
        
        Copyright (c) 2010-2012, BlueDynamics Alliance, Austria
        All rights reserved.
        
        Redistribution and use in source and binary forms, with or without
        modification, are permitted provided that the following conditions are met:
        
        * Redistributions of source code must retain the above copyright notice, this 
          list of conditions and the following disclaimer.
        * Redistributions in binary form must reproduce the above copyright notice, this 
          list of conditions and the following disclaimer in the documentation and/or 
          other materials provided with the distribution.
        * Neither the name of the BlueDynamics Alliance nor the names of its 
          contributors may be used to endorse or promote products derived from this 
          software without specific prior written permission.
              
        THIS SOFTWARE IS PROVIDED BY BlueDynamics Alliance ``AS IS`` AND ANY
        EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
        WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
        DISCLAIMED. IN NO EVENT SHALL BlueDynamics Alliance BE LIABLE FOR ANY
        DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
        (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
        LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
        ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
        (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
        SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
        
Keywords: zope2 plone request response html input widgets
Platform: UNKNOWN
Classifier: Development Status :: 5 - Production/Stable
Classifier: Operating System :: OS Independent
Classifier: Programming Language :: Python
Classifier: Topic :: Software Development
Classifier: Topic :: Internet :: WWW/HTTP :: Dynamic Content
Classifier: Framework :: Zope2
Classifier: Framework :: Plone
Classifier: License :: OSI Approved :: BSD License
