Locking integration for dexterity content objects.
Project description
Introduction
============
The ``plone.app.lockingbehavior`` package provides a ``plone.locking`` integration
for dexterity.
Usage
-----
Just use the behavior ``plone.app.lockingbehavior.behaviors.ILocking`` in
your dexterity content type. Also check the condition of the "edit" action
of your type, it should check if the object is locked.
In your *profiles/default/types/YOURTYPE.xml* add the behavior and the
edit action::
<?xml version="1.0"?>
<object name="example.conference.presenter" meta_type="Dexterity FTI"
i18n:domain="example.conference" xmlns:i18n="http://xml.zope.org/namespaces/i18n">
<!-- enabled behaviors -->
<property name="behaviors">
<element value="plone.app.lockingbehavior.behaviors.ILocking" />
</property>
<action action_id="edit"
visible="True"
title="Edit"
category="object"
url_expr="string:${object_url}/edit"
condition_expr="not:object/@@plone_lock_info/is_locked_for_current_user|python:True">
<permission value="Modify portal content"/>
</action>
</object>
The ILocking behavior enables locking support for your content type. This adds
the ``ITTWLockable`` interface from ``plone.locking``. The locking viewlet
from ``plone.app.layout`` is also working for the dexterity content type.
More Information
----------------
* http://pypi.python.org/pypi/plone.locking
Changelog
=========
1.0.5 (2017-02-12)
------------------
Bug fixes:
- Add coding header on python files.
[gforcada]
- Unskip test for Zope 4, as isolation problems are already fixed.
[thet]
1.0.4 (2016-05-02)
------------------
New:
- Add behavior short name.
[jensens]
1.0.3 (2016-02-20)
------------------
Fixes:
- Use a functional layer to resolve test isolation problems.
[gforcada]
- Refactor doctest to an integration test and skip it for Zope 4 due to isolation problems.
[pbauer]
- Changed i18n_domain to "plone".
Requires plone.app.locales 4.3.9 or higher.
[claytonc]
1.0.2 (2015-09-09)
------------------
- Remove superfluous 'for'.
[fulv]
- Fix tests: redirect was changed in commit e7367258.
[jone]
- If the content is locked, the redirect points to the default view and
not to the absolute_url of the object. It avoids image opening on redirect
[parruc]
1.0.1 (2011-12-06)
------------------
- Fix version requirement of plone.dexterity: 1.1 is compatible.
[jone]
1.0 (2011-11-27)
----------------
- Fixed problem: locks were not released when editing content and saving
it without changing anything. Fixed by using new IEditFinishedEvent instead
of IObjectModifiedEvent.
[jbaumann]
- Fixed problem which caused widget traversal to fail.
The edit form is now protected for non-anonymous user, since locking for
anyonmous users does not work anyway.
[jbaumann]
- Initial implementation
[jbaumann]
============
The ``plone.app.lockingbehavior`` package provides a ``plone.locking`` integration
for dexterity.
Usage
-----
Just use the behavior ``plone.app.lockingbehavior.behaviors.ILocking`` in
your dexterity content type. Also check the condition of the "edit" action
of your type, it should check if the object is locked.
In your *profiles/default/types/YOURTYPE.xml* add the behavior and the
edit action::
<?xml version="1.0"?>
<object name="example.conference.presenter" meta_type="Dexterity FTI"
i18n:domain="example.conference" xmlns:i18n="http://xml.zope.org/namespaces/i18n">
<!-- enabled behaviors -->
<property name="behaviors">
<element value="plone.app.lockingbehavior.behaviors.ILocking" />
</property>
<action action_id="edit"
visible="True"
title="Edit"
category="object"
url_expr="string:${object_url}/edit"
condition_expr="not:object/@@plone_lock_info/is_locked_for_current_user|python:True">
<permission value="Modify portal content"/>
</action>
</object>
The ILocking behavior enables locking support for your content type. This adds
the ``ITTWLockable`` interface from ``plone.locking``. The locking viewlet
from ``plone.app.layout`` is also working for the dexterity content type.
More Information
----------------
* http://pypi.python.org/pypi/plone.locking
Changelog
=========
1.0.5 (2017-02-12)
------------------
Bug fixes:
- Add coding header on python files.
[gforcada]
- Unskip test for Zope 4, as isolation problems are already fixed.
[thet]
1.0.4 (2016-05-02)
------------------
New:
- Add behavior short name.
[jensens]
1.0.3 (2016-02-20)
------------------
Fixes:
- Use a functional layer to resolve test isolation problems.
[gforcada]
- Refactor doctest to an integration test and skip it for Zope 4 due to isolation problems.
[pbauer]
- Changed i18n_domain to "plone".
Requires plone.app.locales 4.3.9 or higher.
[claytonc]
1.0.2 (2015-09-09)
------------------
- Remove superfluous 'for'.
[fulv]
- Fix tests: redirect was changed in commit e7367258.
[jone]
- If the content is locked, the redirect points to the default view and
not to the absolute_url of the object. It avoids image opening on redirect
[parruc]
1.0.1 (2011-12-06)
------------------
- Fix version requirement of plone.dexterity: 1.1 is compatible.
[jone]
1.0 (2011-11-27)
----------------
- Fixed problem: locks were not released when editing content and saving
it without changing anything. Fixed by using new IEditFinishedEvent instead
of IObjectModifiedEvent.
[jbaumann]
- Fixed problem which caused widget traversal to fail.
The edit form is now protected for non-anonymous user, since locking for
anyonmous users does not work anyway.
[jbaumann]
- Initial implementation
[jbaumann]
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Close
Hashes for plone.app.lockingbehavior-1.0.5.tar.gz
Algorithm | Hash digest | |
---|---|---|
SHA256 | b9a541cec9b05725a0b9eb897fff7149cb90b4e4150669885557320a67b52860 |
|
MD5 | 573df8fd159b868dbfdd4db53b6561ac |
|
BLAKE2b-256 | f53bf78cc16706e3919fa9de31d17c8124e0514042505b749182e4fadb355c92 |