Metadata-Version: 1.1
Name: plone.app.textfield
Version: 1.2.3
Summary: Text field with MIME type support
Home-page: http://pypi.python.org/pypi/plone.app.textfield
Author: Martin Aspeli
Author-email: optilude@gmail.com
License: GPL
Description: Introduction
        ============
        
        This package provides a zope.schema style field type called RichText which
        can be used to store a value with a related MIME type. The value can be
        transformed to an output MIME type, for example to transform from structured
        text to HTML.
        
        To use the field, place it in a schema like so::
        
            from plone.app.textfield import RichText
            from zope.interface import Interface
            
            class ITest(Interface):
            
                bodyText = RichText(
                        title=u"Body text",
                        default_mime_type='text/structured',
                        output_mime_type='text/html',
                        allowed_mime_types=('text/structured', 'text/plain',),
                        default=u"Default value"
                    )
        
        This specifies the default MIME type of text content as well as the default
        output type, and a tuple of allowed types. All these values are optional.
        The default MIME type is 'text/html', and the default output type is
        'text/x-html-safe'. By default, ``allowed_mime_types`` is None, which means
        that the side-wide default set of allowable input MIME types will be permitted.
        
        Note that the default value here is set to a unicode string, which will be
        considered to be of the default MIME type. This value is converted to a
        ``RichTextValue`` object (see below) on field initialisation, so the
        ``default`` property will be an object of this type.
        
        The field actually stores an immutable object of type
        `plone.app.textfield.value.RichTextValue`. This object has the following
        attributes:
        
            raw
                The raw value as a unicode string.
            
            mimeType
                The MIME type of the raw text.
            
            output
                A unicode string that represents the value transformed to the
                default output MIME type. May be None if the transformation could
                not be completed successfully, but will be cached after it has been
                successfully transformed once.
                
            outputMimeType
                The MIME type of the output string. This is normally copied from the
                field's ``output_mime_type`` property.
        
        That the ``output``, ``mimeType`` and ``outputMimeType`` properties will be
        stored in the same _p_jar as the parent content object, whilst the ``raw``
        value is stored in a separate persistent object. This is to optimise for the
        common case where the ``output`` is frequently accessed when the object is
        viewed (and thus should avoid a separate persistent object load), whereas the
        ``raw`` value is infrequently accessed (and so should not take up memory
        unless specifically requested).
        
        Transformation takes place using an ``ITransformer`` adapter. The default
        implementation uses Plone's ``portal_transforms`` tool to convert form one
        MIME type to another. Note that ``Products.PortalTransforms`` must be installed
        for this to work, otherwise no default ITransformer adapter is registered.
        You can use the ``[portaltransforms]`` extra to add
        ``Products.PortralTransforms`` as a dependency.
        
        To invoke alternative transformations from a page template, you can use the
        following convenience syntax::
        
          <div tal:content="structure context/@@text-transform/fieldName/text/plain" />
          
        Here ``fieldName`` is the name of the field (which must be found on ``context``
        and contain a ``RichTextValue``). ``text/plain`` is the desired output MIME
        type.
        
        The package also contains a ``plone.supermodel`` export/import handler, which
        will be configured if plone.supermodel is installed. You can use the
        ``[supermodel]`` extra to add a ``plone.supermodel`` dependency.
        
        A ``z3c.form`` widget will be installed if `z3c.form`` is installed.
        The ``[widget]`` extra will pull this dependency in if nothing else does.
        
        A ``plone.rfc822`` field marshaler will be installed if ``plone.rfc822`` is
        installed. The ``[marshaler]`` extra will pull this dependency in if nothing
        else does.
        
        A ``plone.schemaeditor`` field factory will be installed if
        ``plone.schemaeditor`` is installed. The ``editor`` extra will pull this
        dependency if nothing else does.
        
        See field.txt for more details about the field's behaviour, and handler.txt
        for more details about the plone.supermodel handler.
        
        Changelog
        =========
        
        1.2.3 (2014-01-27)
        ------------------
        
        - Do not give an error when the raw value is None.  Give an empty
          unicode string as output in that case.
          [maurits]
        
        
        1.2.2 (2013-01-01)
        ------------------
        
        * Add support for collective.ckeditor.
          [tschorr]
        
        1.2.1 (2012-08-14)
        ------------------
        
        * Fix compatibility with Zope 2.12. [davisagli]
        
        
        1.2 (2012-08-14)
        ----------------
        
        * Pass field's max_length to the wysiwyg macro, if it has one.
          [davisagli]
        
        * Determine which editor's wysiwyg_support template to use from within
          widget_input.pt. Fixes support for collective.ckeditor.
          [tschorr, davisagli]
        
        * Update getSite import locations.
          [hannosch]
        
        * Make sure that the display widget absolutizes relative links relative
          to the correct context. To facilitate doing this from custom templates,
          RichTextValue now has an ``output_relative_to`` helper method which
          can be passed a context.
          [davisagli]
        
        * Fix an issue with the support for plone.schemaeditor.
          [davisagli]
        
        * Support a ``max_length`` parameter for RichText fields. Input longer
          than the max_length does not pass validation.
          [davisagli]
        
        * Pass some additional context to the wysiwyg_support macro to help with
          determining the field's mimetype.
          [davisagli]
        
        * Changed deprecated getSiteEncoding to hardcoded `utf-8`
          [tom_gross]
        
        1.1 - 2012-02-20
        ----------------
        
        * Provide a version of the RichText field schema for use with
          plone.schemaeditor. Only the ``default_mime_type`` field is exposed for
          editing through-the-web, with a vocabulary of mimetypes derived from
          the ``AllowedContentTypes`` vocabulary in ``plone.app.vocabularies``
          (which can be adjusted via Plone's markup control panel).
          [davisagli]
        
        * Log original exception when a TransformError is raised.
          [rochecompaan]
        
        1.0.2 - 2011-11-26
        ------------------
        
        * If no transform path is found: Instead of throwing an exception page
          in the face of the user, now return an empty string and log error message.
          [kleist]
        
        * Fix infinite recursion bug when source and target mimetype is the
          same. [rochecompaan]
        
        1.0.1 - 2011-09-24
        ------------------
        
        * Make sure the field constraint is validated, if specified.
          This closes http://code.google.com/p/dexterity/issues/detail?id=200
          [davisagli]
        
        * Make sure validation fails if no text is entered for a required field.
          This closes http://code.google.com/p/dexterity/issues/detail?id=199
          [davisagli]
        
        * Wrap the context in the form context, not the site, so that relative links
          are generated correctly.
          [davisagli]
        
        * Avoid duplicating the id of the textarea if the form has no prefix.
          [davisagli]
        
        * Fix case where editor did not load if the context being edited is a
          dict.
          [davisagli]
        
        * Pass through the z3c.form widget's ``rows`` and ``cols`` settings to the
          wysiwyg editor macro.
          [davisagli]
        
        1.0 - 2011-04-30
        ----------------
        
        * Fix failing test.
          [davisagli]
        
        1.0b7 - 2011-02-11
        ------------------
        
        * Don't persistently cache output. Transforms may depend on outside state
          (e.g. the uuid transform.) PortalTransform's caching is imperfect, but it is
          time limited. http://code.google.com/p/dexterity/issues/detail?id=151
          [elro]
        
        * Pass context to portal transforms.
          [elro]
        
        1.0b6 - 2010-04-18
        ------------------
        
        * Fix the field schemata so they can be used as the form schema when adding the
          field using plone.schemaeditor
          [rossp]
        
        * Remove unused lookup of the current member's editor preference. This is
          handled by the wysiwyg_support macros.
          [davisagli]
        
        1.0b5 - 2009-11-17
        ------------------
        
        * Fix an error that could occur if the user did not have an editor preference
          set.
          [optilude]
        
        * Fix tests on Plone 4.
          [optilude]
        
        * Add field factory for use with plone.schemaeditor (only configured if that
          package is installed).
          [davisagli]
        
        1.0b4 - 2009-10-12
        ------------------
        
        * Update README.txt to be in line with reality.
          [optilude]
        
        * Fix the @@text-transform view to work with path traversal.
          [optilude]
        
        1.0b3 - 2009-10-08
        ------------------
        
        * Add plone.rfc822 field marshaller. This is only configured if that package
          is installed.
          [optilude]
        
        1.0b2 - 2009-09-21
        ------------------
        
        * Store the raw value in a separate persistent object in the ZODB instead of
          in a BLOB. This avoids potential problems with having thousands of small
          BLOB files, which would not be very space efficient on many filesystems.
          [optilude]
        
        * Make the RichTextValue immutable. This greatly simplifies the code and
          avoids the need to keep track of the parent object.
          [optilude]
        
        1.0b1 - 2009-09-17
        ------------------
        
        * Initial release
        
Keywords: plone schema field
Platform: UNKNOWN
Classifier: Framework :: Plone
Classifier: Programming Language :: Python
Classifier: Topic :: Software Development :: Libraries :: Python Modules
