cone.app 1.1.0
Web application stub
License: Simplified BSD
Requires Python: >=3.10
Keywords: cone, node, pyramid, web

**``cone.app`` - Build Web Applications on top of the pyramid framework.**

.. image:: https://img.shields.io/pypi/v/cone.app.svg
    :target: https://pypi.python.org/pypi/cone.app
    :alt: Latest PyPI version

.. image:: https://img.shields.io/pypi/dm/cone.app.svg
    :target: https://pypi.python.org/pypi/cone.app
    :alt: Number of PyPI downloads

.. image:: https://github.com/conestack/cone.app/actions/workflows/test.yml/badge.svg
    :target: https://github.com/conestack/cone.app/actions/workflows/test.yml
    :alt: Test cone.app


Detailed Documentation
======================

The detailed ``cone.app`` documentation is available 
`here <https://coneapp.readthedocs.io>`_.


Source Code
===========

The sources are in a GIT DVCS with its main branches at 
`github <http://github.com/conestack/cone.app>`_.


Copyright
=========

- Copyright (c) 2009-2025 Cone Contributors


Contributors
============

- Robert Niederreiter (Author)
- Jens Klein
- Georg Gogo. BERNHARD
- Phil Auersperg
- Florian Friesdorf
- Attila Olah
- Peter Holzer
- Johannes Raggam


Changes
=======

1.1.0 (2026-02-03)
------------------

- Refactor package layout to use ``pyproject.toml`` and implicit namespace packages.
  [rnix]


1.1rc1 (2024-05-23)
-------------------

- ``node_info`` decorator stores name on node info instance.
  [rnix]

- ``node_info`` decorator accepts additional keyword arguments to add custom
  properties.
  [rnix]

- Add ``node_available`` callback to check whether node is allowed to be
  used in application.
  [rnix]


1.1a2 (2024-02-12)
------------------

- Introduce ``cone.app.browser.form.``,
  ``cone.app.browser.form.FormTarget``,
  ``cone.app.browser.form.AddFormTarget``,
  ``cone.app.browser.form.EditFormTarget``,
  ``cone.app.browser.form.YAMLAddFormTarget`` and
  ``cone.app.browser.form.YAMLEditFormTarget``.
  [rnix]

- ``editform`` tile gets rendered by ``cone.app.browser.authoring.edit`` view
  in directly. ``overlayeditform`` tile gets rendered by
  ``cone.app.browser.authoring.overlayedit`` view directly.
  [rnix]

- Add ``cone.app.browser.form.FormTarget`` to base classes of
  ``cone.app.browser.authoring.ContentAddForm``,
  ``cone.app.browser.authoring.ContentEditForm`` and
  ``cone.app.browser.authoring.OverlayForm``.
  [rnix]

- Remove ``cone.app.browser.authoring.OverlayFormTile``. ``overlayform`` tile
  gets rendered by ``cone.app.browser.authoring.overlayform`` view directly.
  [rnix]

- Deprecate ``form_flavor`` and ``form_action`` in
  ``cone.app.browser.form.YAMLForm``.
  [rnix]

- Deprecate ``cone.app.browser.authoring.EditTile``,
  ``cone.app.browser.authoring.OverlayEditTile`` and
  ``cone.app.browser.authoring._FormRenderingTile``.
  [rnix]

- Refactor settings UI. Introduce ``cone.app.model.SettingsNode`` as base class
  for plugin related settings application models. Introduce
  ``cone.app.browser.settings.SettingsForm`` plumbing behavior and
  ``cone.app.browser.settings.settings_form`` decorator for implementing
  settings forms. Allow access to settings UI for users without ``manager``
  permission.
  [rnix]

- Fix reading search term in ``BatchedItemsSearch``.
  [rnix]


1.1a1 (2023-05-15)
------------------

- JavaScript rewrite. Update ``Bootstrap`` and ``jQuery``. Drop ``jquery-ui``.
  [rnix]

- Use ``webresource`` for resource registration.
  [rnix]

- Drop ``bdajax``. Use ``treibstoff`` instead.
  [rnix]

- Add ``contents`` tile for ``AppRoot``.
  [rnix]

- Default layout ``mainmenu_fluid`` setting is now ``True`` by default.
  [rnix]


1.0.8 (2025-10-25)
------------------

- Pin upper versions of dependencies.
  [rnix]


1.0.7 (2023-05-15)
------------------

- Check breakpoint against node path in ``PathBar.items_for`` instead of using
  ``is`` and check for referencable root against node path in
  ``ReferenceBrowserModelMixin.referencebrowser_model`` instead of checking
  node containment with ``LocationIterator``. Application nodes might not be
  cached in tree so comparison with ``is`` not works.
  [rnix]

- Fix plus and minus icon CSS classes in referencebrowser.
  [rnix]


1.0.6 (2022-12-05)
------------------

- Consider ``ugm.user_expires_attr`` setting in application configuration
  ini file and pass it to ``cone.ugm.file.Ugm``.
  [rnix]

- Introduce ``OwnerSupport.owner_attribute_name`` which defines the
  attribute name on which the owner is stored.
  [rnix]

- Introduce ``UUIDAttributeAware.uuid_attribute_name`` which defines the
  attribute name on which the UUID is stored.
  [rnix]

- Use ``get`` instead of ``__getitem__`` in ``UUIDAttributeAware.uuid`` to
  lookup UUID from attributes to prevent ``KeyError`` due to behavioral
  change in ``node.behaviors.UUIDAware.__init__`` in ``node`` 1.2.
  [rnix]

- Add support for defining ``navigable`` types in referencebrowser.
  [rnix]

- Introduce ``cone.app.interfaces.ILeafNode`` and ``cone.app.model.LeafNode``.
  [rnix]

- Assing bottom space CSS to prevent fixed footer oberlap to layout container.
  [rnix]

- Add ``contents`` tile for application root. Does not display settings and
  resources nodes.
  [rnix]


1.0.5 (2022-10-06)
------------------

- Extend ``yafowil.referencebrowser`` JS by ``register_array_hooks``,
  ``array_add``, ``array_index`` methods to enable usage in
  ``yafowil.widget.array``.
  [lenadax]

- Use ``get_root`` in ``register_config`` and ``register_entry``.
  [rnix]

- Remove usage of ``Nodespaces`` behavior.
  [rnix]

- Replace deprecated use of ``Nodify`` by ``MappingNode``.
  [rnix]

- Replace deprecated use of ``NodeChildValidate`` by ``MappingConstraints``.
  [rnix]

- Replace deprecated use of ``Adopt`` by ``MappingAdopt``.
  [rnix]

- Replace deprecated use of ``allow_non_node_childs`` by ``child_constraints``.
  [rnix]


1.0.4 (2021-11-21)
------------------

- Visual padding for footer on sidebar and content instead of body.
  [rnix]

- Introduce ``cone.app.import_from_string``.
  [rnix]

- Fix execution order of main hooks. They get now executed in plugin loading
  order.
  [rnix]

- Custom application root node factory can be set via ``cone.root.node_factory``
  property in application config file.
  [rnix]

- Introduce ``cone.app.browser.actions.ButtonAction``.
  [rnix]

- Introduce ``cone.app.thread_shutdown_hook``.
  [rnix]

- Introduce ``cone.app.security.AdapterACL`` plumbing behavior.
  [rnix]

- Prevent auto persistence of generated language child widgets in translation
  widget.
  [rnix]

- Add ``canonical_value`` to ``cone.app.model.Translation``.
  [rnix]


1.0.3 (2021-11-08)
------------------

- Add ``translation`` YAFOWIL blueprint.
  [rnix]

- Provide dedicated forbidden and not found views for request types `text/html`
  and `application/json`.
  [rnix]

- Implement move actions for changing order of children within it's container.
  [rnix]

- Move ``cone.app.browser.utils.node_path`` to ``cone.app.browser.node_path``.
  Import from old location is deprecated.
  [rnix]

- Introduce ``cone.app.NodeTraverser``. It ensures only ``IApplicationNode``
  implementing children get traversed.
  [rnix]

- Ignore children which not implements ``IApplicationNode`` in ``navtree``,
  ``mainmenu`` and ``listing`` tiles.
  [rnix]

- Consider ``INavigationLeaf`` interface in ``navtree`` tile.
  [rnix]

- Introduce ``cone.app.model.AppEnvironment`` behavior.
  [rnix]

- Introduce ``cone.app.model.Translation`` behavior.
  [rnix]

- Add language selection dropdown.
  [rnix]

**Breaking changes:**

- Change signature of internal ``MainMenu.ignore_node`` and
  ``MainMenu.create_item``. They do not expect the ``props`` argument any more.


1.0.2 (2021-10-21)
------------------

- Workflow transition title is taken from zcml transition title if no
  translation factory is defined.
  [rnix, 2021-08-06]

- Workflow state title is taken from zcml state title if no translation factory
  is defined.
  [rnix, 2021-08-06]

- Main template can be defined in the application ini config file.
  [rnix, 2021-08-06]

- Get label ``lookup`` function in reference browser widget directly from widget
  instance instead of using ``attr_value``. Lookup function is expected to be a
  callable accepting a uuid as argument while ``attr_value`` tries to invoke
  callables with widget and data as arguments. The code worked due to a B/C
  fallback behavior in ``attr_value`` which was dropped in yafowil 3.0.
  [rnix, 2021-07-08]

- Deliver CSS before Javascript in HTML head.
  [rnix, 2021-06-30]


1.0.1 (2021-05-17)
------------------

- Use ``safe_encode`` and ``safe_decode`` from ``node.utils``.
  [rnix, 2021-05-17]


1.0 (2021-02-07)
----------------

- Introduce ``cone.app.browser.content.content_view_tile`` decorator.
  [rnix, 2021-02-05]

- Introduce ``cone.app.browser.content.content_view_action`` decorator.
  [rnix, 2021-02-05]

- Introduce ``cone.app.browser.layout.personal_tools_action`` decorator.
  [rnix, 2021-02-04]

- Introduce ``cone.app.browser.contextmenu.context_menu_group`` and
  ``cone.app.browser.contextmenu.context_menu_item`` decorators.
  [rnix, 2021-02-04]

- Introduce ``cone.app.interfaces.IAuthenticator`` utility.
  [rnix, zworkb, 2021-02-02]


1.0rc3 (2020-10-12)
-------------------

- ``cone.app.browser.ajax.AjaxEvent`` supports optional ``data`` argument
  supported as of ``bdajax`` 1.13.
  [rnix, 2020-09-29]


1.0rc2 (2020-08-12)
-------------------

- Fix print CSS.
  [rnix, 2020-08-12]

- Fix case when pasting to empty folder in copysupport JS.
  [rnix, 2020-08-12]

- Remove ``col-xs-4`` CSS class from ``h4`` headings in panel headers.
  [rnix, 2020-08-12]


1.0rc1 (2020-07-09)
-------------------

- Implement ``__copy__`` and ``__deepcopy__`` on ``Properties``,
  ``ProtectedProperties``, ``XMLProperties`` and ``ConfigProperties`` in
  ``cone.app.model``.
  [rnix, 2020-06-30]

- Overhaul copy support. ``paste`` action triggers ``contextchanged`` event to
  ``#layout`` instead of ``.contextsensitiv`` selector. Paste action considers
  ``action_paste_tile`` model property for customizing rerendering after paste.
  Move JS copysupport logic from ``cone.copysupportbinder`` to
  ``cone.CopySupport``. Do not unselect items if mouse click outside selectable
  listing. Preselect items on page and tile load.
  [rnix, 2020-06-28]

- Rename JS ``cone.selectable`` to ``cone.Selectable``. It is now a class and
  each selectable listing gets it's own instance. No longer automatically binds
  to table with selectable rows.
  [rnix, 2020-06-28]

- Do not check 'delete' permission on parent node in
  ``cona.app.browser.actions.ActionDelete.display``.
  [rnix, 2020-06-27]

- Add ``ProtectedContentTile.content_permission``. If this permission is not
  granted on model node, ``insufficient_privileges`` tile gets rendered.
  [rnix, 2020-06-25]

- Remove ``cone.app.security.DEFAULT_NODE_PROPERTY_PERMISSIONS``.
  [rnix, 2020-06-25]

- Fix CSS for selected items in dropdown menues.
  [rnix, 2020-06-25]

- Improve layout configuration handling. Rename ``cone.app.interfaces.ILayout``
  to ``cone.app.interfaces.ILayoutConfig`` and ``cone.app.model.Layout`` to
  ``cone.app.model.LayoutConfig``. Remove ``layout`` property from application
  model. Introduce ``cone.app.layout_config`` decorator which is used to register
  concrete ``LayoutConfig`` implementations for model nodes.
  [rnix, 2020-06-22]

- Fix asking for interface implementations via ``Interface.providedBy`` on
  subclasses of ``cone.app.model.Properties``.
  [rnix, 2020-06-22]

- Fix workflow state styles if no transitions are available.
  [rnix, 2020-06-15]

- Introduce ``cone.app.workflow.lookup_workflow`` and use it internally to get
  workflow. Fixes issue with interface bound workflows.
  [rnix, 2020-06-15]

- Fix principal name displaying. Fall back to principal id if configured display
  name attribute returns empty value.
  [rnix, 2020-06-14]

- Introduce ``cone.app.ugm.ugm_backend.user_display_attr`` and
  ``cone.app.ugm.ugm_backend.group_display_attr`` for configuring user and
  group display names in the UI. The config values can be customized in the
  application config file via ``ugm.user_display_attr`` and
  ``ugm.group_display_attr`` settings. This settings supersede
  ``cone.app.browser.sharing.GROUP_TITLE_ATTR`` and
  ``cone.app.browser.sharing.USER_TITLE_ATTR``.
  [rnix, 2020-06-14]


1.0b3 (2020-05-30)
------------------

- Improve multivalued handling of reference browser. Instead of passing
  ``vocabulary`` property, a ``lookup`` function gets passed which is used
  for looking up labels for currently selected references.
  [rnix, 2020-05-13]

- Proper required handling in reference browser.
  [rnix, 2020-05-13]

- Add ``form-control`` CSS class to referencebrowser input and select tags.
  [rnix, 2020-05-06]

- Fix reference browser no referencable restrictions.
  [rnix, 2020-05-06]

- Implement ``cone.app.model.NamespaceUUID``.
  [rnix, 2020-05-06]

- Expect ``node.interfaces.IUUID`` instead of ``node.interfaces.IUUIDAware`` in
  reference browser for referencable nodes.
  [rnix, 2020-05-06]

- Fix reference browser widget rendering ``target`` handling.
  [rnix, 2020-05-06]


1.0b2 (2020-03-30)
------------------

- Adopt ``cone.app.model.UUIDAware`` to use ``uuid.factory`` introduced in
  ``node`` 0.9.25.
  [rnix, 2020-03-01]

- Add ``cone.app.browser.table.Table.table_css`` for rendering additinal
  CSS classes to table wrapper.
  [rnix, 2020-02-27]


1.0b1 (2019-11-06)
------------------

- Fix ``DatetimeHelper.r_value`` and ``DatetimeHelper.w_value`` handling
  non string data types.
  [rnix, 2019-04-30]

- Only execute main hooks contained in defined plugins names from application
  config file.
  [rnix, 2019-03-31]

- Ignore commented out plugin names from application config file on startup
  [rnix, 2019-03-31]

- Remove ``cone.auth_impl`` setting from application config ini file. Use
  ``ugm.backend`` instead.
  [rnix, 2019-03-29]

- Move ``cone.app.utils.principal_data`` to ``cone.app.ugm.principal_data``.
  [rnix, 2019-03-28]

- Remove ``cone.app.cfg.auth``. The corresponding UGM implementation is now
  at ``cone.app.ugm.ugm_backend.ugm``.
  [rnix, 2019-03-28]

- Introduce ``cone.app.ugm.UGMFactory`` contract and implement
  ``cone.app.FileUGMFactory`` and ``BCFileUGMFactory``.
  [rnix, 2019-03-27]

- Introduce ``cone.app.ugm.ugm_backend`` decorator for registering and
  accessing ``UGMFactory`` objects.
  [rnix, 2019-03-27]

- Add ``cone.app.utils.format_traceback``.
  [rnix, 2019-03-27]

- Python 3 support.
  [rnix, 2019-03-25]

- Drop support for pyramid < 1.5.
  [rnix, 2019-03-25]

- Remove ``request`` from ``cone.app.browser.utils.node_icon`` signature.
  It was never used.
  [rnix, 2019-03-25]

- Make ``configure.zcml`` file in plugins optional.
  [rnix, 2019-03-24]

- Introduce ``cone.app.browser.sharing.GROUP_TITLE_ATTR`` and
  ``cone.app.browser.sharing.USER_TITLE_ATTR``.
  [rnix, 2019-03-24]

- Add content type header to merged js file.
  [rnix, 2019-03-24]

- Change signature of referencebrowser yafowil widget callable attributes. Gets
  passed ``widget`` and ``data`` as common in yafowil.
  [rnix, 2019-03-24]

- Prevent ``ComponentLookupError`` in
  ``cone.app.browser.form.Form._process_form`` if ``controller.next`` returns
  ``HTTPFound`` instance. This never had any effect due to a redirect, we want
  to avoid the error anyway.
  [rnix, 2019-03-22]

- Add ``cone.app.main_hook`` decorator. ``cone.app.register_main_hook`` is
  deprecated and will be removed as of ``cone.app`` version 1.1.
  [rnix, 2019-03-21]

- Add ``cone.app.workflow.permission_checker`` for use with ``repoze.workflow``
  to make it wirk with pyramid >= 1.8.
  [rnix, 2019-03-21]

- Use ``request.has_permission`` instead of deprecated
  ``pyramid.security.has_permission``.
  [rnix, 2019-03-21]

- Use ``request.authenticated_userid`` instead of deprecated
  ``pyramid.security.authenticated_userid``.
  [rnix, 2019-03-21]

- Add ``cone.app.main_hook`` decorator. ``cone.app.register_main_hook`` is
  deprecated and will be removed as of ``cone.app`` version 1.1.
  [rnix, 2019-03-21]

- Convert doctests to unittests.
  [rnix, 2019-03-21]

- Do not use ``cone.tile.register_tile`` any more. Create dedicated tile
  classes and use ``cone.tile.tile`` all over the place.
  [rnix, 2017-02-21]


1.0a12 (2018-11-20)
-------------------

- Introduce ``show_confirm_deleted`` on
  ``cone.app.browser.authoring.DeleteAction`` which can be used to prevent
  "Item has been deleted" ajax continuation message.
  [rnix, 2018-11-20]

- Add default favicon.ico.
  [rnix, 2018-11-19]


1.0a11 (2018-11-07)
-------------------

- Add ``cone.light.browser.exception.not_found_view`` and ``not_found`` tile.
  [rnix, 2018-09-11]

- Move ``cone.light.browser.login.forbidden_view`` to
  ``cone.app.browser.exception``.
  [rnix, 2018-09-11]

- Move registration of ``unauthorized`` tile from ``cone.app.browser.layout``
  to ``cone.app.browser.exception``.
  [rnix, 2018-09-11]

- Move ``cone.app.browser.exception.format_traceback`` to
  ``cone.app.browser.utils``.
  [rnix, 2018-09-11]


1.0a10 (2018-07-17)
-------------------

- Modify response body of ``request.response`` and return this one instead of
  creating a new response in ``cone.app.browser.render_ajax_form`` to ensure
  response header modifications gets delivered properly.
  [rnix, 2018-07-12]

- Batched items filter input fields may provide a prefilled text which gets
  emptied on first focus. Use ``empty_filter`` CSS class on input field for
  this.
  [rnix, 2017-12-20]

- Introduce ``cone.batcheditems_size_binder`` and
  ``cone.batcheditems_filter_binder`` helper functions in ``protected.js``.
  [rnix, 2017-12-20]


1.0a9 (2017-11-13)
------------------

- Add ``quote_params`` keyword argument to ``cone.app.browser.utils.make_query``
  to control explicitely if some request paramater values should be URL quoted.
  Needed to make ``cone.app.browser.authoring.CameFromNext`` work properly if
  ``came_from`` URL contains a query on it's own.
  [rnix, 2017-11-07]


1.0a8 (2017-10-10)
------------------

- Include related view in ``cone.app.browser.contents.ContentsViewLink.target``
  if present and node is container, otherwise ``target`` of superclass.
  [rnix, 2017-10-09]

- Revert use ``urllib2.quote`` in ``cone.app.browser.utils.make_query`` to
  quote query parameter values.
  [rnix, 2017-10-09]

- ``safe_decode`` keys to check for current node in ``NavTree.fillchildren``.
  [rnix, 2017-09-27]


1.0a7 (2017-09-17)
------------------

- Update to ``bdajax`` 1.10 and adopt server side ajax form processing code.
  [rnix, 2017-09-12]


1.0a6 (2017-08-28)
------------------

- Use ``RelatedViewConsumer`` on ``cone.app.browser.batch.BatchedItems``
  and ``cone.app.browser.table.Table``.
  [rnix, 2017-07-23]

- Use ``RelatedViewProvider`` on ``listing`` and ``sharing`` tile.
  [rnix, 2017-07-23]

- Add related view support. This includes ``set_related_view``,
  ``get_related_view``, ``RelatedViewProvider`` and ``RelatedViewConsumer``
  in ``cone.app.browser``.
  [rnix, 2017-07-23]

- Introduce dedicated ``href`` and ``target`` keys for batch vocab
  pages. Makes it possible to consider view names. ``url`` key still works
  as B/C, but will be removed as of ``cone.app`` 1.1.
  [rnix, 2017-07-23]

- Copy passed ``path`` in ``cone.app.browser.utils.make_url`` to avoid
  modification of given argument.
  [rnix, 2017-07-23]

- Use ``urllib2.quote`` in ``cone.app.browser.utils.make_query`` to quote
  query parameter values.
  [rnix, 2017-07-19]

- Include query when setting browser path in ``cone.batcheditemsbinder`` JS.
  [rnix, 2017-07-19]

- Update to ``bdajax`` 1.9 and adopt bdajax binder function registration.
  [rnix, 2017-07-19]


1.0a5 (2017-05-15)
------------------

- Add ajax overlay additional CSS class support which has been introduced in
  ``bdajax`` 1.8
  [rnix, 2017-05-12]


1.0a4 (2017-03-28)
------------------

- Fix children filtering in ``cone.app.browser.contents.ContentsTile`` if
  title or creator from metadata is ``None``.
  [rnix, 2017-03-28]

- Fix ``href`` link creation of ``ActionList``, ``ActionSharing`` and
  ``ActionEdit`` in ``cone.app.browser.actions`` to ensure correct links if
  ``target`` gets overwritten on subclass.
  [rnix, 2017-03-28]

- Consolidate ``batcheditemsbinder`` and ``tabletoolbarbinder`` in
  ``protected.js``.
  [rnix, 2017-03-28]

- ``cone.app.browser.actions.ActionUp`` sets ``href`` properly.
  [rnix, 2017-03-28]

- Introduce ``logout`` tile.
  [rnix, 2017-03-23]

- Move ``login_view``, ``logout_view`` and ``forbidden_view`` from
  ``cone.app.browser`` to ``cone.app.browser.login``.
  [rnix, 2017-03-23]

- Catch ``Forbidden`` exception explicitely in ``ajaxaction`` JSON view and
  set 403 response status in order to ensure bdajax redirects to login view
  properly.
  [rnix, 2017-03-23]

- Ajax path is not longer set on server side in layout tile via ajax
  continuation but explicitely via ``ajax:path`` in markup where appropriate.
  [rnix, 2017-03-23]

- ``cone.app.browser.actions.LinkAction`` now supports ``path``,
  ``path_target``, ``path_action``, ``path_event`` and ``path_overlay``.
  [rnix, 2017-03-23]

- ``cone.app.browser.ajax.AjaxPath`` now supports ``target``, ``action``,
  ``event`` and ``overlay``.
  [rnix, 2017-03-23]

- Update to ``bdajax`` 1.7 which supports browser history handling for ajax
  actions.
  [rnix, 2017-03-23]

- Rename ``nodepath`` to ``node_path`` in ``cone.app.browser.utils``. B/C
  ``nodepath`` is suppoerted as of ``cone.app`` 1.1.
  [rnix, 2017-03-23]


1.0a3
-----

- Add ``BatchedItems`` tile to ``cone.app.browser.batch``.
  [rnix, 2017-02-21]

- Add ``trigger_event`` and ``trigger_selector`` to ``cone.app.browser.Batch``
  to make ajax JS event and selector customizble.
  [rnix, 2017-02-21]


1.0a2
-----

- Provide ``icon`` on ``ReferencableChildrenLink`` to render node icons in
  ``referencelisting`` tile.
  [rnix, 2017-02-07]

- Fix referencebrowser navigation root lookup and render
  ``referencebrowser_pathbar`` and ``referencelisting`` tiles on proper
  context in ``referencebrowser`` tile.
  [rnix, 2017-02-07]

- Add ``cone.app.browser.referencebrowser.ReferenceBrowserModelMixin``.
  [rnix, 2017-02-07]

- Handle unicode properly in ``cone.app.model.ConfigProperties``.
  [rnix, 2017-02-07]

- Move ``safe_encode`` and ``safe_decode`` utility functions from
  ``cone.app.browser.utils`` to ``cone.app.utils``.
  [rnix, 2017-02-07]

- Section name for ``cone.app.model.ConfigProperties`` can be customized.
  [rnix, 2017-02-06]

- Check whether owner already has been set in
  ``cone.app.security.OwnerSupport.__init__`` and skip setting it if so.
  [rnix, 2017-01-29]


1.0a1
-----

- Display ``userid`` in peronal tools if ``fullname`` found but empty.
  [rnix, 2015-04-11]

- ``sort_key`` not mandatory on column definitions any longer in tables.
  [rnix, 2015-02-23]

- URL's may contain umlaute.
  [rnix, 2015-02-18]

- Application nodes can be marked as root for navigation tree by setting
  ``is_navroot`` property to True.
  [rnix, 2015-02-17]

- No default values for admin user and password from ini file if not set.
  [rnix, 2014-12-01]

- Main menu can display first level children in dropdown menu if
  ``model.properties.mainmenu_display_children`` is set to ``True``.
  [rnix, 2014-09-08]

- Add login form actions to form compound. Thus login form actions can be
  extended keeping UI rednering sane.
  [rnix, 2014-09-04]

- Default model layout lookup considers ``default_child`` property.
  [rnix, 2014-08-28]

- Remove ``yafowil.yaml`` dependency.
  [rnix, 2014-08-26]

- Refactor ``cone.app.browser.AddDropdown``. It provides now a ``make_item``
  for better customizability.
  [rnix, 2014-08-21]

- Rename ``cone.app.model.registerNodeInfo`` to
  ``cone.app.model.register_node_info``. B/C import avaiable as of ``cone.app``
  1.1.
  [rnix, 2014-08-19]

- Rename ``cone.app.model.getNodeInfo`` to ``cone.app.model.get_node_info``.
  B/C import avaiable as of ``cone.app`` 1.1.
  [rnix, 2014-08-19]

- Modify ``class_add`` instead of ``class`` property in
  ``cone.app.browser.form.Form.prepare_ajax``.
  [rnix, 2014-08-16]

- Default layout lookup mechanism is done via ZCA adapter. Provide default
  ``__init__`` function on ``cone.app.model.Layout``.
  [rnix, 2014-08-13]

- Deprecate ``cone.app.register_plugin``. Use ``cone.app.register_entry``
  instead.
  [rnix, 2014-08-13]

- Deprecate ``cone.app.register_plugin_config``. Use
  ``cone.app.register_config`` instead.
  [rnix, 2014-08-13]

- Settings link in personaltools gets skipped if there are no settings nodes
  registered.
  [rnix, 2014-08-13]

- Add example ``twisted.cfg`` buildout configuration and ``cone.tac`` twisted
  configuration file for running cone with twisted WSGI.
  [rnix, 2014-08-02]

- Adopt ``IWorkflowState`` interface. Workflow name is now set directly
  on node. Optional a trnaslation string factory can be set for workflow
  state and transision translations.
  [rnix, 2014-08-01]

- Use ``plumbing`` decorator instead of ``plumber`` metaclass.
  [rnix, 2014-08-01]

- Introduce ``list`` permission, bind ``listing`` and ``contents`` tile to it
  and adopt default ACL's.
  [rnix, 2014-07-26]

- Improve forbidden view, renders unauthorized tile in case user is
  authenticated, otherwise redirect to login form.
  [rnix, 2014-07-26]

- All Authoring forms are no longer derived from ``ProtectedContentTile``.
  [rnix, 2014-07-26]

- ``OverlayForm`` now renders by default to ``#ajax-overlay`` instead of
  ``#ajax-form``. Latter is supposed to be used if overlay form should be
  rendered above an already opened overlay.
  [rnix, 2014-07-25]

- Introduce ``OverlayAddForm`` and ``OverlayEditForm``.
  [rnix, 2014-07-24]

- ``OverlayForm`` renders ``overlayform`` form tile instead of
  ``overlayeditform``.
  [rnix, 2014-07-24]

- Authoring forms cleanup. Rename ``AddBehavior`` to ``ContentAddForm``,
  ``EditBehavior`` to ``ContentEditForm`` and ``OverlayBehavior`` to
  ``OverlayForm``.
  [rnix, 2014-07-24]

- Introduce ``ILiveSearch`` adapter interface and remove
  ``cone.app.browser.ajax.LIVESEARCH_CALLBACK``.
  [rnix, 2014-07-15]

- Move over to ``typeahead.js`` for livesearch.
  [rnix, 2014-07-14]

- ``cone.app.cfg.layout`` not exists any longer. Register ``ILayout`` providing
  adapter for application nodes in order to customize layout configuration.
  [rnix, 2014-07-14]

- Add ``node_info`` decorator.
  [rnix, 2014-07-11]

- Trigger ``contextchanged`` to ``#layout`` rather than ``.contextsensitiv``
  in ``mainmenu``, ``logo``, ``pathbar``, ``navtree``.
  [rnix, 2014-07-11]

- Introduce ``layout`` tile.
  [rnix, 2014-07-11]

- Provide Layout configuration via ``AppNode``.
  [rnix, 2014-07-11]

- Remove ``cone.app.util.AppUtil``.
  [rnix, 2014-07-11]

- Workflow state only gets initialized at node creation time if not set at
  corresponding data yet. Needed for non persisting application nodes.
  [rnix, 2014-07-09]

- Content forms are now wrapped by a bs3 panel element.
  [rnix, 2014-07-09]

- Introduce ``skip_mainmenu`` in ``model.properties``. Gets considered in
  mainmenu.
  [rnix, 2014-07-09]

- Settings are displayed in personaltools menu rather than navtree and
  mainmenu.
  [rnix, 2014-07-09]

- ``personaltools`` tile now renders ``cone.app.browser.actions.LinkAction``
  based items.
  [rnix, 2014-07-09]

- Use bootstrap 3 related resources for bdajax integration.
  [rnix, 2014-07-04]

- Remove custom dropdown from ``cone.app.js``. Boostrap dropdown is used all
  over the place.
  [rnix, 2014-07-03]

- Introduce ``cone.app.browser.batch.BATCH_RANGE`` which can be used for
  default batch range configuration.
  [rnix, 2014-07-03]

- Remove ``cone.app.utils.node_icon_url``.
  [rnix, 2014-07-03]

- Include ionicons.
  [rnix, 2014-07-02]

- Introduce ``cone.app.is_remote_resource``.
  [rnix, 2014-06-27]

- CSS background image path from site root.
  [rnix, 2014-06-27]

- Fix yafowil JS resources delivery order.
  [rnix, 2014-06-19]

- Do not fail in ``cone.app.browser.actions.Action.action_scope`` if no
  ``ActionContext`` defined. Useful for testing.
  [rnix, 2014-06-18]

- Update jQuery, jQuery-UI and remove jQuery Tools.
  [rnix, 2013-08-13]

- ``cone.app.model.Properties`` now supports ``__setitem__`` and setting file
  ``path`` manually.
  [rnix, 2013-08-06]

- No more generic tabs binder, refactor settings tabs.
  [rnix, 2013-08-06]

- Change base styles to twitter bootstrap 3.
  [rnix, 2013-08-05]


0.9.5
-----

- ``lxml`` is no longer a hard dependency.
  [rnix, 2014-01-18]

- Factory node can be invalidated now.
  [rnix, 2014-01-15]

- Update jQuery, jQuery-UI and remove jQuery Tools.
  [rnix, 2013-08-13]

- ``cone.app.model.Properties`` now supports ``__setitem__`` and setting file
  ``path`` manually.
  [rnix, 2013-08-06]

- No more generic tabs binder, refactor settings tabs.
  [rnix, 2013-08-06]

- Change base styles to twitter bootstrap.
  [rnix, 2013-08-05]

- Test request can be flagged as XHR request.
  [rnix, 2013-03-23]

- Improve exception view to handle default error page and bdajax action
  requests. Move Exception code to ``cone.app.browser.exception``.
  [rnix, 2013-02-10]

- Introduce ``cone.app.browser.utils.request_property``.
  [rnix, 2013-02-05]

- Do not load ``cone.app.js`` merged, ensures to be loaded after bdajax.
  [rnix, 2013-01-20]

- Check if autocomplete plugin is available in ``cone.app.js`` when trying to
  bind livesearch.
  [rnix, 2013-01-08]

- Make yafowil resources beeing delivered public as well.
  [rnix, 2013-01-08]

- Possibility to skip yafowil resource groups, deliver yafowil resources
  before addon resources.
  [rnix, 2013-01-08]

- Remove yafowil addon widgets from default setup dependencies.
  [rnix, 2013-01-04]


0.9.4
-----

- Introduce ``Table.display_table_header`` and ``Table.display_table_footer``
  properties.
  [rnix, 2012-10-30]

- Introduce ``cone.app.browser.actions.DropdownAction``.
  [rnix, 2012-10-28]

- Introduce ``row_data`` on ``ContentsTile`` for customizing column data on
  ``ContentsTile`` deriving objects.
  [rnix, 2012-10-28]

- ``model.properties.action_delete_tile`` can be set if
  ``model.properties.action_delete`` is True. Used to define the content tile
  which gets rendered on parent of model after deleting.
  [rnix, 2012-10-26]

- Available child nodes of ``ContentsTile`` can be controlled by
  ``listable_children``.
  [rnix, 2012-10-26]

- Introduce ``show_slicesize`` on tables.
  [rnix, 2012-10-19]

- PEP-8.
  [rnix, 2012-10-16]

- Python2.7 Support.
  [rnix, 2012-10-16]

- Rename parts to behaviors.
  [rnix, 2012-07-29]

- adopt to ``node`` 0.9.8
  [rnix, 2012-07-29]

- adopt to ``plumber`` 1.2
  [rnix, 2012-07-29]

- use fresh Chameleon and fix tests to recognize correct output of new Chameleon
  [jensens, 2012-07-04]


0.9.3
-----

- Add basic print CSS.
  [rnix, 2012-05-29]

- ``contextmenu`` tile got a ``bdajax`` contract.
  [rnix, 2012-05-23]

- CSS and JS can be delivered merged if desired.
  [rnix, 2012-05-22]

- Move resources rendering to seperate module.
  [rnix, 2012-05-21]

- Add ``form_flavor`` attribute to ``cone.app.browser.form.YAMLForm``.
  [rnix, 2012-05-18]

- Add ``cone.app.model.UUIDAsName`` part.
  [rnix, 2012-05-18]

- Use ``zope.interface.implementer`` instead of ``zope.interface.implements``.
  [rnix, 2012-05-18]

- Remove BBB classes ``come.app.model.BaseNodeInfo`` and
  ``cone.app.model.BaseMetadata``.
  [rnix, 2012-05-18]

- Consider ``default_content_tile`` in application ini in order to support
  configuring root content tile.
  [rnix, 2012-05-14]

- Support bdajax overlay continuation as introduced in bdajax 1.4.
  [rnix, 2012-05-04]

- Move AJAX forms related markup and javascript to bdajax.
  [rnix, 2012-05-04]

- Add property ``head_additional`` to table tile. Supposed to be used for
  hooking additional markup to table header.
  [rnix, 2012-05-03]

- Fix bug in navtree when displaying children of node with ``hide_if_default``
  property set.
  [rnix, 2012-04-26]

- Consider ``default_child`` property in UP action and action scope.
  [rnix, 2012-04-24]

- Include ``yafowil.widget.image``.
  [rnix, 2012-04-21]

- Improve ajax form rendering.
  [rnix, 2012-04-19]

- Ajaxify settings tabs.
  [rnix, 2012-04-19]

- Add resizeable plugin to jQuery UI custom built.
  [rnix, 2012-03-27]


0.9.2
-----

- Resources also can originate at a remote server.
  [rnix, 2012-03-21]


0.9.1
-----

- Better table and batch templates and styles. Table now supports slice size
  selection and filtering.
  [rnix, 2012-03-19]

- Fix default ``sort`` and ``order`` request parameters for table batch.
  [rnix, 2012-03-16]

- Cleanup self contained buidlout.
  [rnix, 2012-02-29]

- Remove ``cone.app.APP_PATH``.
  [rnix, 2012-02-29]

- Adopt YAFOWIL addon registration to YAFOWIL 1.3
  [rnix, 2012-02-29]

- Use ``node.ext.ugm.interfaces.Users.id_for_login`` contract for remembering
  User id instead of login name in authentication cookie.
  [rnix, 2012-01-18]

- Dynamic width CSS
  [rnix, 2011-12-18]

- Extend UI actions by ``selected`` property.
  [rnix, 2011-12-16]

- Add ``cone.app.model.UUIDAttributeAware``.
  [rnix, 2011-12-07]

- Add ``cone.app.security.OwnerSupport``.
  [rnix, 2011-12-07]

- Add ``cone.app.security.ACLRegistry``.
  [rnix, 2011-12-07]

- Use ``node.parts.IUUIDAware`` as dependency for node beeing referencable.
  [rnix, 2011-12-02]

- Add ``browser.actions``.
  [rnix, 2011-12-01]

- Update jQuery (1.6.4) and jQuery Tools (1.2.6).
  [rnix, 2011-11-30]

- Add copy support.
  [rnix, 2011-11-30]

- Single UGM implementation.
  [rnix, 2011-11-21]

- Add ``PrincipalACL`` part and ``sharing`` tile.
  [rnix, 2011-11-21]

- Refactor contextmenu, can now be extended.
  [rnix, 2011-11-19]

- Add margin top for sidebar and content.
  [rnix, 2011-11-18]

- ``contextmenu`` tile considers ``action_up_tile`` property now.
  [rnix, 2011-11-17]

- Add ``bda.calendar.base`` as install dependency for timezone aware 
  datetime handling.
  [rnix, 2011-11-16]

- Show error message at attempt to add reference with missing UID.
  [rnix, 2011-11-16]

- Add yafowil.widget.array to dependencies.
  [rnix]


0.9
---

- Initial work


License
=======

Copyright (c) 2009-2021, BlueDynamics Alliance, Austria
Copyright (c) 2021-2025, Cone Contributors
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.

THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "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 THE COPYRIGHT HOLDER OR CONTRIBUTORS 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.