Welcome, guest | Sign In | My Account | Store | Cart

Notice! PyPM is being replaced with the ActiveState Platform, which enhances PyPM’s build and deploy capabilities. Create your free Platform account to download ActivePython or customize Python with the packages you require and get automatic updates.

Download
ActivePython
INSTALL>
pypm install collective.contentrules.runscript

How to install collective.contentrules.runscript

  1. Download and install ActivePython
  2. Open Command Prompt
  3. Type pypm install collective.contentrules.runscript
 Python 2.7Python 3.2Python 3.3
Windows (32-bit)
0.4 Available View build log
0.3beta Available View build log
Windows (64-bit)
0.4 Available View build log
0.3beta Available View build log
Mac OS X (10.5+)
0.4 Available View build log
0.3beta Available View build log
Linux (32-bit)
0.4 Available View build log
0.3beta Available View build log
Linux (64-bit)
0.4 Available View build log
0.3beta Available View build log
 
License
GPL
Dependencies
Lastest release
version 0.4 on Feb 23rd, 2011

Introduction

Content rules are a powerfull feature in Plone 3. But create a filesystem product for every single little action we'd like to perform seems a little overkill. To help those integrators and administrators out there, RunScript brings the ability to register a condition that once matched will perform whatever the action you state in a script configured in the Rule configuration form.

Just to meet a few use cases, the product brings a some sample scripts that might come in handy:

tag_after_parent

Adds the parent's title as a tag to the item (appends to the subject field). E.g.:

System Message: WARNING/2 (<string>, line 16)

Literal block expected; none found.

Given the structure: Plone/Folder1/Folder2/Folder3/object >> object.Subject() () After Plone/Folder1/Folder2/Folder3/object/tag_after_parent >> object.Subject() ('Folder3',)

tag_after_parents Conditionally adds parent's title as tags to the item (appends to the subject field). Recursively tests whether title_as_tag property is set on each part of the object's parent's path and adds that part's title as a tag on the object. E.g.:

System Message: WARNING/2 (<string>, line 30)

Literal block expected; none found.

Given the structure: Plone/Folder1/Folder2/Folder3/object Plone.title_as_tag is undefined Folder1.title_as_tag is False Folder2.title_as_tag is True Folder3.title_as_tag is True >> object.Subject() () After Plone/Folder1/Folder2/Folder3/object/tag_after_parents >> object.Subject() ('Folder2','Folder3')

set_property Adds a new property to the context object or just sets an existing one. Types must be the same in the latter case. Parameters are name,value,type. E.g.:

System Message: WARNING/2 (<string>, line 47)

Literal block expected; none found.

Given the structure: Plone/Folder1/Folder2/Folder3 After Plone/Folder1/Folder2/Folder3/set_property?name=title_as_tag&value=True&type=boolean >> Plone.Folder1.Folder2.Folder3.getProperty('title_as_tag') == True True

others_might_come_in_the_future

You can give your suggestions.

One could easily write a new script that just needs to be traversable from the object that will trigger the condition.

Installation

Add collective.contentrules.runscript to your buildout as an egg or from source. No (generic setup) installation is necessary, the action is registered using ZCML. So do add the package to the zcml slug list of your [instance] section.

If you'd like to use any of the available sample scripts then you should install the product by the Addons configlet.

Usage

Go to the Plone Control Panel, select Content Rules and add a new Rule. Under 'actions' you now have a new option: Run Script.

In the 'Configure element' form, point to a script that knows how to perform the desired action upon the object that will trigger the rule.

If you installed the sample scripts, you could use the 'tag_after_parent' script and have every object matching the rule's condition categorized by their parent's title.

If the script you inform at the configuration form is not traversable from the object that triggered the rule an exception will or will not be thrown depending on the state of the 'Fail on script not found' flag.

If you set the rule to an 'add to container' event, not finding the script means not fullfilling the add.

Credits

This package has been highly based on collective.contentrules.mailtolocalrole.

Changelog

0.4 (2011-02-22)
  • Added z3c.autoinclude.plugin entry point
  • Fixed reference to .runscript.RunscriptAction factory in

System Message: WARNING/2 (<string>, line 104)

Bullet list ends without a blank line; unexpected unindent.

configure.zcml (thanks to Sascha Gresk)

0.3 (2009-07-27)
  • Added option to pass parameters to scripts
  • Added tag_after_parents and set_property sample scripts
0.2 (2009-07-23)
  • Added restricted/unrestricted traversal option
  • Fixed packaging problems
0.1.1 (2009-07-23)
  • Fixed packaging problems
0.1 (xxxx-xx-xx)
  • Initial release

Subscribe to package updates

Last updated Feb 23rd, 2011

Download Stats

Last month:2

What does the lock icon mean?

Builds marked with a lock icon are only available via PyPM to users with a current ActivePython Business Edition subscription.

Need custom builds or support?

ActivePython Enterprise Edition guarantees priority access to technical support, indemnification, expert consulting and quality-assured language builds.

Plan on re-distributing ActivePython?

Get re-distribution rights and eliminate legal risks with ActivePython OEM Edition.