plone.app.textfield


Nameplone.app.textfield JSON
Version 2.0.1 PyPI version JSON
download
home_pagehttps://pypi.org/project/plone.app.textfield
SummaryText field with MIME type support
upload_time2024-01-19 09:18:44
maintainer
docs_urlNone
authorMartin Aspeli
requires_python>=3.8
licenseGPL
keywords plone schema field
VCS
bugtrack_url
requirements No requirements were recorded.
Travis-CI No Travis.
coveralls test coverage No coveralls.
            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.

Basic Usage
===========

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.
    Maybe 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.


Storage
=======

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 optimize 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
==============

Transformation takes place using an ``ITransformer`` adapter.
The default implementation uses Plone's ``portal_transforms`` tool to convert from 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.


Optional Features
=================

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.


Usage with Simple TextArea
==========================

Alternatively, the RichText Field may be used without a WYSIWYG editor displaying a simple TextArea on input,
and formatted output as HTML on display.
In this example, it is expected to have the ``plone.intelligenttext`` transform available.
Also expected is ``plone.autoform`` and ``plone.app.z3cform`` to be installed.

::

    from z3c.form.browser.textarea import TextAreaFieldWidget
    from plone.autoform.directives import widget

    class ITest(Interface):

        bodyText = RichText(
                title=u"Intelligent text",
                default_mime_type='text/x-web-intelligent',
                allowed_mime_types=('text/x-web-intelligent', ),
                output_mime_type='text/x-html-safe',
                default=u"Default value"
            )
        widget(
            'bodyText',
            TextAreaFieldWidget,
        )

Input is a simple text.
At display, an HTML in rendered by the transform and shown.
To show HTML unescaped the output has to be 'text/x-html-safe'.


Further Reading
===============

See field.txt for more details about the field's behavior,
and handler.txt for more details about the plone.supermodel handler.

Issue tracker
=============

Please report issues via the `Plone issue tracker`_.

.. _`Plone issue tracker`: https://github.com/plone/plone.app.textfield/issues

Support
=======

Questions may be answered via `Plone's support channels`_.

.. _`Plone's support channels`: http://plone.org/support

Contributing
============

Sources are at the `Plone code repository hosted at Github <https://github.com/plone/plone.app.textfield>`_.

Contributors please read the document `Process for Plone core's development <https://docs.plone.org/develop/coredev/docs/index.html>`_

Changelog
=========

.. You should *NOT* be adding new change log entries to this file.
   You should create a file in the news directory instead.
   For helpful instructions, please see:
   https://github.com/plone/plone.releaser/blob/master/ADD-A-NEWS-ITEM.rst

.. towncrier release notes start

2.0.1 (2024-01-19)
------------------

Internal:


- Update configuration files.
  [plone devs] (55bda5c9)


2.0.0 (2023-03-21)
------------------

Breaking changes:


- Drop Python 2 support. [jensens] (#48)


Bug fixes:


- Depend on plone.base and remove implicit circular dependency on Products.CMFPlone.
  [jensens] (#48)


Internal:


- Update configuration files.
  [plone devs] (80cf330f)


1.3.7 (2023-02-08)
------------------

Bug fixes:


- Remove dependency on ZODB3, use ZODB instead.
  Add troove classifiers for Plone 6 and newer Python.
  [jensens] (#47)


1.3.6 (2021-11-25)
------------------

Bug fixes:


- Fix usage of wysiwyg editor settings from portal_properties to registry
  [duchenean, gotcha] (#45)


1.3.5 (2020-09-26)
------------------

Bug fixes:


- Fixed deprecation warning for ``zope.component.interfaces.ComponentLookupError``.
  [maurits] (#43)


1.3.4 (2020-04-20)
------------------

Bug fixes:


- Minor packaging updates. (#1)


1.3.3 (2020-03-09)
------------------

Bug fixes:


- Black-en & isort code.
  [thet] (#39)


1.3.2 (2019-09-13)
------------------

Bug fixes:


- Check if transform output is actual string on Python 2.
  [agitator] (#37)


1.3.1 (2019-03-21)
------------------

Bug fixes:


- fix python 3 issue when checking referenced images in transform
  [petschki] (#34)
- Initialize towncrier.
  [gforcada] (#2548)


1.3.0 (2018-10-31)
------------------

New features:

- Python 3 fixes, needs plone.rfc822>=2.0b1.
  [jensens]

- Add getSize method to get the size of a RichTextValue in bytes
  [davisagli]

Bug fixes:

- Fix doctests tests in py3
  [pbauer]


1.2.12 (unreleased)
-------------------

Bug fixes:

- purge transform cache when a uid referenced image
  gets updated. this fixes `issue CMFPLone#2465 <https://github.com/plone/Products.CMFPlone/issues/2465>`_
  [petschki]


1.2.11 (2018-04-08)
-------------------

Bug fixes:

- Python 3 fixes
  [pbauer]


1.2.10 (2018-01-30)
-------------------

Bug fixes:

- Imports are Python3 compatible
  [b4oshany]


1.2.9 (2017-07-18)
------------------

Bug fixes:

- Made sure the new simple textarea template is not used for rich text widgets,
  but only for simple textarea widgets.  Otherwise you see this in the display:
  ``RichTextValue object. (Did you mean .raw or .output?)``.
  Fixes `issue 22 <https://github.com/plone/plone.app.textfield/issues/22>`_.
  [maurits]


1.2.8 (2017-02-05)
------------------

New features:

- Enable the ``RichText`` field to work together with a simple ``ITextAreaWidget``.
  [jensens]


Bug fixes:

- Cleanup:
  Use more zope.interface decorators,
  add utf8 headers,
  isort imports,
  zcml conditions are enough.
  [jensens]


1.2.7 (2016-08-10)
------------------

Fixes:

- Use zope.interface decorator.
  [gforcada]


1.2.6 (2015-05-31)
------------------

- Fix negative equality bug RawValueHolder and RichTextValue introduced in 1.2.5.
  [jone]


1.2.5 (2015-03-26)
------------------

- Add equality check (`__eq__`) for RawValueHolder and RichTextValue;
  [davisagli]

- Fix marshaler decode to always decode raw value into unicode
  [datakurre]

- Remove utils.getSiteEncoding, which was deprecated and not used anywhere.
  [thet]

- For Plone 5, support getting markup control panel settings from the registry,
  while still supporting normal portal_properties access for Plone < 5.
  [thet]

- Resolved an interesting circular import case, which wasn't effective because
  of sort order of imports
  [thet]


1.2.4 (2014-10-20)
------------------

* Force WYSIWYG, so when we start with 'text/plain' (or another MIME),
  selecting 'text/html' will cause TinyMCE to spring into life.
  [lentinj]

* Tell Products.TinyMCE what the MIME type is, so it doesn't have to work it out.
  [lentinj]

- Use closest_content to navigate through the sea of subforms to
  find something that we can use portal_url on.
  [lentinj]

- Do not give an error when the raw value is not unicode and isn't
  ascii. In that case, encode as unicode then decode as the proper
  string, bang head on desk.
  [eleddy]

- Internationalization.
  [thomasdesvenain]


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

            

Raw data

            {
    "_id": null,
    "home_page": "https://pypi.org/project/plone.app.textfield",
    "name": "plone.app.textfield",
    "maintainer": "",
    "docs_url": null,
    "requires_python": ">=3.8",
    "maintainer_email": "",
    "keywords": "plone schema field",
    "author": "Martin Aspeli",
    "author_email": "optilude@gmail.com",
    "download_url": "https://files.pythonhosted.org/packages/89/5a/10b10c70b440e47cf3fdf46cf6c47230acbe1aa7c4df5905d266719d7b59/plone.app.textfield-2.0.1.tar.gz",
    "platform": null,
    "description": "Introduction\n============\n\nThis package provides a ``zope.schema`` style field type called ``RichText`` which can be used to store a value with a related MIME type.\nThe value can be transformed to an output MIME type, for example to transform from structured text to HTML.\n\nBasic Usage\n===========\n\nTo use the field, place it in a schema like so::\n\n    from plone.app.textfield import RichText\n    from zope.interface import Interface\n\n    class ITest(Interface):\n\n        bodyText = RichText(\n            title=u\"Body text\",\n            default_mime_type='text/structured',\n            output_mime_type='text/html',\n            allowed_mime_types=('text/structured', 'text/plain',),\n            default=u\"Default value\"\n        )\n\nThis specifies the default MIME type of text content as well as the default output type,\nand a tuple of allowed types.\nAll these values are optional.\nThe default MIME type is 'text/html', and the default output type is 'text/x-html-safe'.\nBy default, ``allowed_mime_types`` is None,\nwhich means that the side-wide default set of allowable input MIME types will be permitted.\n\nNote that the default value here is set to a Unicode string,\nwhich will be considered to be of the default MIME type.\nThis value is converted to a ``RichTextValue`` object (see below) on field initialisation,\nso the ``default`` property will be an object of this type.\n\nThe field actually stores an immutable object of type `plone.app.textfield.value.RichTextValue`.\nThis object has the following attributes:\n\nraw\n    The raw value as a Unicode string.\n\nmimeType\n    The MIME type of the raw text.\n\noutput\n    A Unicode string that represents the value transformed to the default output MIME type.\n    Maybe None if the transformation could not be completed successfully,\n    but will be cached after it has been successfully transformed once.\n\noutputMimeType\n    The MIME type of the output string.\n    This is normally copied from the field's ``output_mime_type`` property.\n\n\nStorage\n=======\n\nThe ``output``, ``mimeType`` and ``outputMimeType`` properties will be stored in the same _p_jar as the parent content object,\nwhilst the ``raw`` value is stored in a separate persistent object.\nThis is to optimize for the common case where the ``output`` is frequently accessed when the object is viewed\n(and thus should avoid a separate persistent object load),\nwhereas the ``raw`` value is infrequently accessed\n(and so should not take up memory unless specifically requested).\n\n\nTransformation\n==============\n\nTransformation takes place using an ``ITransformer`` adapter.\nThe default implementation uses Plone's ``portal_transforms`` tool to convert from one MIME type to another.\nNote that ``Products.PortalTransforms`` must be installed for this to work,\notherwise, no default ITransformer adapter is registered.\nYou can use the ``[portaltransforms]`` extra to add ``Products.PortralTransforms`` as a dependency.\n\nTo invoke alternative transformations from a page template,\nyou can use the following convenience syntax::\n\n  <div tal:content=\"structure context/@@text-transform/fieldName/text/plain\" />\n\nHere ``fieldName`` is the name of the field\n(which must be found on ``context`` and contain a ``RichTextValue``).\n``text/plain`` is the desired output MIME type.\n\n\nOptional Features\n=================\n\nThe package also contains a ``plone.supermodel`` export/import handler,\nwhich will be configured if plone.supermodel is installed.\nYou can use the ``[supermodel]`` extra to add a ``plone.supermodel`` dependency.\n\nA ``z3c.form`` widget will be installed if `z3c.form`` is installed.\nThe ``[widget]`` extra will pull this dependency in if nothing else does.\n\nA ``plone.rfc822`` field marshaler will be installed if ``plone.rfc822`` is installed.\nThe ``[marshaler]`` extra will pull this dependency in if nothing else does.\n\nA ``plone.schemaeditor`` field factory will be installed if ``plone.schemaeditor`` is installed.\nThe ``editor`` extra will pull this\ndependency if nothing else does.\n\n\nUsage with Simple TextArea\n==========================\n\nAlternatively, the RichText Field may be used without a WYSIWYG editor displaying a simple TextArea on input,\nand formatted output as HTML on display.\nIn this example, it is expected to have the ``plone.intelligenttext`` transform available.\nAlso expected is ``plone.autoform`` and ``plone.app.z3cform`` to be installed.\n\n::\n\n    from z3c.form.browser.textarea import TextAreaFieldWidget\n    from plone.autoform.directives import widget\n\n    class ITest(Interface):\n\n        bodyText = RichText(\n                title=u\"Intelligent text\",\n                default_mime_type='text/x-web-intelligent',\n                allowed_mime_types=('text/x-web-intelligent', ),\n                output_mime_type='text/x-html-safe',\n                default=u\"Default value\"\n            )\n        widget(\n            'bodyText',\n            TextAreaFieldWidget,\n        )\n\nInput is a simple text.\nAt display, an HTML in rendered by the transform and shown.\nTo show HTML unescaped the output has to be 'text/x-html-safe'.\n\n\nFurther Reading\n===============\n\nSee field.txt for more details about the field's behavior,\nand handler.txt for more details about the plone.supermodel handler.\n\nIssue tracker\n=============\n\nPlease report issues via the `Plone issue tracker`_.\n\n.. _`Plone issue tracker`: https://github.com/plone/plone.app.textfield/issues\n\nSupport\n=======\n\nQuestions may be answered via `Plone's support channels`_.\n\n.. _`Plone's support channels`: http://plone.org/support\n\nContributing\n============\n\nSources are at the `Plone code repository hosted at Github <https://github.com/plone/plone.app.textfield>`_.\n\nContributors please read the document `Process for Plone core's development <https://docs.plone.org/develop/coredev/docs/index.html>`_\n\nChangelog\n=========\n\n.. You should *NOT* be adding new change log entries to this file.\n   You should create a file in the news directory instead.\n   For helpful instructions, please see:\n   https://github.com/plone/plone.releaser/blob/master/ADD-A-NEWS-ITEM.rst\n\n.. towncrier release notes start\n\n2.0.1 (2024-01-19)\n------------------\n\nInternal:\n\n\n- Update configuration files.\n  [plone devs] (55bda5c9)\n\n\n2.0.0 (2023-03-21)\n------------------\n\nBreaking changes:\n\n\n- Drop Python 2 support. [jensens] (#48)\n\n\nBug fixes:\n\n\n- Depend on plone.base and remove implicit circular dependency on Products.CMFPlone.\n  [jensens] (#48)\n\n\nInternal:\n\n\n- Update configuration files.\n  [plone devs] (80cf330f)\n\n\n1.3.7 (2023-02-08)\n------------------\n\nBug fixes:\n\n\n- Remove dependency on ZODB3, use ZODB instead.\n  Add troove classifiers for Plone 6 and newer Python.\n  [jensens] (#47)\n\n\n1.3.6 (2021-11-25)\n------------------\n\nBug fixes:\n\n\n- Fix usage of wysiwyg editor settings from portal_properties to registry\n  [duchenean, gotcha] (#45)\n\n\n1.3.5 (2020-09-26)\n------------------\n\nBug fixes:\n\n\n- Fixed deprecation warning for ``zope.component.interfaces.ComponentLookupError``.\n  [maurits] (#43)\n\n\n1.3.4 (2020-04-20)\n------------------\n\nBug fixes:\n\n\n- Minor packaging updates. (#1)\n\n\n1.3.3 (2020-03-09)\n------------------\n\nBug fixes:\n\n\n- Black-en & isort code.\n  [thet] (#39)\n\n\n1.3.2 (2019-09-13)\n------------------\n\nBug fixes:\n\n\n- Check if transform output is actual string on Python 2.\n  [agitator] (#37)\n\n\n1.3.1 (2019-03-21)\n------------------\n\nBug fixes:\n\n\n- fix python 3 issue when checking referenced images in transform\n  [petschki] (#34)\n- Initialize towncrier.\n  [gforcada] (#2548)\n\n\n1.3.0 (2018-10-31)\n------------------\n\nNew features:\n\n- Python 3 fixes, needs plone.rfc822>=2.0b1.\n  [jensens]\n\n- Add getSize method to get the size of a RichTextValue in bytes\n  [davisagli]\n\nBug fixes:\n\n- Fix doctests tests in py3\n  [pbauer]\n\n\n1.2.12 (unreleased)\n-------------------\n\nBug fixes:\n\n- purge transform cache when a uid referenced image\n  gets updated. this fixes `issue CMFPLone#2465 <https://github.com/plone/Products.CMFPlone/issues/2465>`_\n  [petschki]\n\n\n1.2.11 (2018-04-08)\n-------------------\n\nBug fixes:\n\n- Python 3 fixes\n  [pbauer]\n\n\n1.2.10 (2018-01-30)\n-------------------\n\nBug fixes:\n\n- Imports are Python3 compatible\n  [b4oshany]\n\n\n1.2.9 (2017-07-18)\n------------------\n\nBug fixes:\n\n- Made sure the new simple textarea template is not used for rich text widgets,\n  but only for simple textarea widgets.  Otherwise you see this in the display:\n  ``RichTextValue object. (Did you mean .raw or .output?)``.\n  Fixes `issue 22 <https://github.com/plone/plone.app.textfield/issues/22>`_.\n  [maurits]\n\n\n1.2.8 (2017-02-05)\n------------------\n\nNew features:\n\n- Enable the ``RichText`` field to work together with a simple ``ITextAreaWidget``.\n  [jensens]\n\n\nBug fixes:\n\n- Cleanup:\n  Use more zope.interface decorators,\n  add utf8 headers,\n  isort imports,\n  zcml conditions are enough.\n  [jensens]\n\n\n1.2.7 (2016-08-10)\n------------------\n\nFixes:\n\n- Use zope.interface decorator.\n  [gforcada]\n\n\n1.2.6 (2015-05-31)\n------------------\n\n- Fix negative equality bug RawValueHolder and RichTextValue introduced in 1.2.5.\n  [jone]\n\n\n1.2.5 (2015-03-26)\n------------------\n\n- Add equality check (`__eq__`) for RawValueHolder and RichTextValue;\n  [davisagli]\n\n- Fix marshaler decode to always decode raw value into unicode\n  [datakurre]\n\n- Remove utils.getSiteEncoding, which was deprecated and not used anywhere.\n  [thet]\n\n- For Plone 5, support getting markup control panel settings from the registry,\n  while still supporting normal portal_properties access for Plone < 5.\n  [thet]\n\n- Resolved an interesting circular import case, which wasn't effective because\n  of sort order of imports\n  [thet]\n\n\n1.2.4 (2014-10-20)\n------------------\n\n* Force WYSIWYG, so when we start with 'text/plain' (or another MIME),\n  selecting 'text/html' will cause TinyMCE to spring into life.\n  [lentinj]\n\n* Tell Products.TinyMCE what the MIME type is, so it doesn't have to work it out.\n  [lentinj]\n\n- Use closest_content to navigate through the sea of subforms to\n  find something that we can use portal_url on.\n  [lentinj]\n\n- Do not give an error when the raw value is not unicode and isn't\n  ascii. In that case, encode as unicode then decode as the proper\n  string, bang head on desk.\n  [eleddy]\n\n- Internationalization.\n  [thomasdesvenain]\n\n\n1.2.3 (2014-01-27)\n------------------\n\n- Do not give an error when the raw value is None.  Give an empty\n  unicode string as output in that case.\n  [maurits]\n\n\n1.2.2 (2013-01-01)\n------------------\n\n* Add support for collective.ckeditor.\n  [tschorr]\n\n1.2.1 (2012-08-14)\n------------------\n\n* Fix compatibility with Zope 2.12. [davisagli]\n\n\n1.2 (2012-08-14)\n----------------\n\n* Pass field's max_length to the wysiwyg macro, if it has one.\n  [davisagli]\n\n* Determine which editor's wysiwyg_support template to use from within\n  widget_input.pt. Fixes support for collective.ckeditor.\n  [tschorr, davisagli]\n\n* Update getSite import locations.\n  [hannosch]\n\n* Make sure that the display widget absolutizes relative links relative\n  to the correct context. To facilitate doing this from custom templates,\n  RichTextValue now has an ``output_relative_to`` helper method which\n  can be passed a context.\n  [davisagli]\n\n* Fix an issue with the support for plone.schemaeditor.\n  [davisagli]\n\n* Support a ``max_length`` parameter for RichText fields. Input longer\n  than the max_length does not pass validation.\n  [davisagli]\n\n* Pass some additional context to the wysiwyg_support macro to help with\n  determining the field's mimetype.\n  [davisagli]\n\n* Changed deprecated getSiteEncoding to hardcoded `utf-8`\n  [tom_gross]\n\n1.1 - 2012-02-20\n----------------\n\n* Provide a version of the RichText field schema for use with\n  plone.schemaeditor. Only the ``default_mime_type`` field is exposed for\n  editing through-the-web, with a vocabulary of mimetypes derived from\n  the ``AllowedContentTypes`` vocabulary in ``plone.app.vocabularies``\n  (which can be adjusted via Plone's markup control panel).\n  [davisagli]\n\n* Log original exception when a TransformError is raised.\n  [rochecompaan]\n\n1.0.2 - 2011-11-26\n------------------\n\n* If no transform path is found: Instead of throwing an exception page\n  in the face of the user, now return an empty string and log error message.\n  [kleist]\n\n* Fix infinite recursion bug when source and target mimetype is the\n  same. [rochecompaan]\n\n1.0.1 - 2011-09-24\n------------------\n\n* Make sure the field constraint is validated, if specified.\n  This closes http://code.google.com/p/dexterity/issues/detail?id=200\n  [davisagli]\n\n* Make sure validation fails if no text is entered for a required field.\n  This closes http://code.google.com/p/dexterity/issues/detail?id=199\n  [davisagli]\n\n* Wrap the context in the form context, not the site, so that relative links\n  are generated correctly.\n  [davisagli]\n\n* Avoid duplicating the id of the textarea if the form has no prefix.\n  [davisagli]\n\n* Fix case where editor did not load if the context being edited is a\n  dict.\n  [davisagli]\n\n* Pass through the z3c.form widget's ``rows`` and ``cols`` settings to the\n  wysiwyg editor macro.\n  [davisagli]\n\n1.0 - 2011-04-30\n----------------\n\n* Fix failing test.\n  [davisagli]\n\n1.0b7 - 2011-02-11\n------------------\n\n* Don't persistently cache output. Transforms may depend on outside state\n  (e.g. the uuid transform.) PortalTransform's caching is imperfect, but it is\n  time limited. http://code.google.com/p/dexterity/issues/detail?id=151\n  [elro]\n\n* Pass context to portal transforms.\n  [elro]\n\n1.0b6 - 2010-04-18\n------------------\n\n* Fix the field schemata so they can be used as the form schema when adding the\n  field using plone.schemaeditor\n  [rossp]\n\n* Remove unused lookup of the current member's editor preference. This is\n  handled by the wysiwyg_support macros.\n  [davisagli]\n\n1.0b5 - 2009-11-17\n------------------\n\n* Fix an error that could occur if the user did not have an editor preference\n  set.\n  [optilude]\n\n* Fix tests on Plone 4.\n  [optilude]\n\n* Add field factory for use with plone.schemaeditor (only configured if that\n  package is installed).\n  [davisagli]\n\n1.0b4 - 2009-10-12\n------------------\n\n* Update README.txt to be in line with reality.\n  [optilude]\n\n* Fix the @@text-transform view to work with path traversal.\n  [optilude]\n\n1.0b3 - 2009-10-08\n------------------\n\n* Add plone.rfc822 field marshaller. This is only configured if that package\n  is installed.\n  [optilude]\n\n1.0b2 - 2009-09-21\n------------------\n\n* Store the raw value in a separate persistent object in the ZODB instead of\n  in a BLOB. This avoids potential problems with having thousands of small\n  BLOB files, which would not be very space efficient on many filesystems.\n  [optilude]\n\n* Make the RichTextValue immutable. This greatly simplifies the code and\n  avoids the need to keep track of the parent object.\n  [optilude]\n\n1.0b1 - 2009-09-17\n------------------\n\n* Initial release\n",
    "bugtrack_url": null,
    "license": "GPL",
    "summary": "Text field with MIME type support",
    "version": "2.0.1",
    "project_urls": {
        "Homepage": "https://pypi.org/project/plone.app.textfield"
    },
    "split_keywords": [
        "plone",
        "schema",
        "field"
    ],
    "urls": [
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "8be863ed2ee5d62116604ce4397de5bb458b3881c56e607b437297459b01bed7",
                "md5": "13f1ee5da4ff2b26ba6687d5cea6bfcc",
                "sha256": "1aaee997b0fc949ad41eb31772a76b228a1be6a056b1b55f6302c3e2a0daa58d"
            },
            "downloads": -1,
            "filename": "plone.app.textfield-2.0.1-py3-none-any.whl",
            "has_sig": false,
            "md5_digest": "13f1ee5da4ff2b26ba6687d5cea6bfcc",
            "packagetype": "bdist_wheel",
            "python_version": "py3",
            "requires_python": ">=3.8",
            "size": 31824,
            "upload_time": "2024-01-19T09:18:41",
            "upload_time_iso_8601": "2024-01-19T09:18:41.923640Z",
            "url": "https://files.pythonhosted.org/packages/8b/e8/63ed2ee5d62116604ce4397de5bb458b3881c56e607b437297459b01bed7/plone.app.textfield-2.0.1-py3-none-any.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "895a10b10c70b440e47cf3fdf46cf6c47230acbe1aa7c4df5905d266719d7b59",
                "md5": "284e919d53dcafe3a056c007c910e4b7",
                "sha256": "a6882a30f67ce6a1c072e54f5164f5fccd88f4bdaf36706ffe876a3a1da4d510"
            },
            "downloads": -1,
            "filename": "plone.app.textfield-2.0.1.tar.gz",
            "has_sig": false,
            "md5_digest": "284e919d53dcafe3a056c007c910e4b7",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": ">=3.8",
            "size": 36683,
            "upload_time": "2024-01-19T09:18:44",
            "upload_time_iso_8601": "2024-01-19T09:18:44.174881Z",
            "url": "https://files.pythonhosted.org/packages/89/5a/10b10c70b440e47cf3fdf46cf6c47230acbe1aa7c4df5905d266719d7b59/plone.app.textfield-2.0.1.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2024-01-19 09:18:44",
    "github": false,
    "gitlab": false,
    "bitbucket": false,
    "codeberg": false,
    "lcname": "plone.app.textfield"
}
        
Elapsed time: 0.24671s