General tools for Plone sites
Project description
visaplan.plone.tools
General tools modules for Plone.
We don’t claim ultimate Plone wisdom (yet); this package is one of the parts a big monolithic classic Zope product was split into.
It is part of the footing of the “Unitracc family” of Plone sites which are maintained by visaplan GmbH, Bochum, Germany.
Some modules of this package might still contain some resources (e.g. type names) which are specific to our “Unitracc family” of sites; this is likely to change in future releases.
Features
This add-on can be seen in action at the following sites:
Modules in version 1.1.4+:
attools module
several tools for Archetypes-based content
brains module
currently one make_collector function, e.g. for address fields
cfg module
Read “product” configuration, and detect development mode
context module
Several tools for processing the request. Some need some modernization …
forms module
Several tools for forms
functions module
Some functions, e.g. is_uid_shaped
indexes module (new in v1.1.4)
Function getSortableTitle for title conversion.
This converts umlauts etc. to sort them as equal to their corresponding base vocals, according to German lexical usage.
log module
Automatically named loggers
mock module
a few small classes for use in doctests
the same module as visaplan.tools.mock
mock_cfg module
A rudimentary mock module for cfg
search module
A few functions to support creation of ZODB catalog search queries (quite proprietary, I’m afraid; might go away in future versions)
setup module (since v1.1)
Functions for use in migration scripts
zcmlgen module (since v1.1.1)
Generates configure.zcml files, if
changes are detected, and
development mode is active, and
the source is in an development package.
decorators module (since v1.1.6)
@returns_json:
Wraps the function call and returns the JSON-encoded result, including HTTP headers.
Uses simplejson if available.
Documentation
Sorry, we don’t have real user documentation yet.
Most functions are documented by doctests, anyway; it helps to understand some German.
Installation
Since visaplan.plone.tools is a package for Plone instances, it is not normally installed using pip; instead, install it by adding it to your buildout:
[buildout] ... eggs = visaplan.plone.tools
and then running bin/buildout
Contribute
Issue Tracker: https://github.com/visaplan/plone.tools/issues
Source Code: https://github.com/visaplan/plone.tools
Support
If you are having issues, please let us know; please use the issue tracker mentioned above.
License
The project is licensed under the GPLv2.
Contributors
Tobias Herp, tobias.herp@visaplan.com
Changelog
2.0.0 (unreleased)
Breaking changes:
forms.tryagain_url:
all options (which are all arguments except the request) will need to be given by name (which is possible and recommended already).
1.3.0 (2020-12-16)
New Features:
New module groups
New .context functions
getMessenger (factory):
creates a message function which doesn’t require (nor accept) a context argument
getPath
get_parent
parents
parent_brains
make_brainGetter
make_pathByUIDGetter
make_translator
get_published_templateid
getSupportedLanguageTuples
New function setup.safe_context_id
New function search.normalizeQueryString (unicode, asterisks)
POSKeyError rescue facility, for now provided here:
Inspired by the five.grok-based @@fix-blobs view by Mikko Ohtamaa, we have two views:
@@check-blobs scans the site object tree for (Archetypes or Dexterity) objects with broken BLOB attachments (images or files) and shows them in an HTML list with checkboxes;
@@check-blobs-delete-selected allows to delete the objects found be be affected.
Note: this functionality will likely be moved to a dedicated add-on package; don’t rely on it to exist in any other release of this package!
Optional functionality, depending on
visaplan.plone.search v1.2.1+
visaplan.plone.subportals
(both currently not yet on PyPI)
Improvements:
setup module:
If the reindex function, which was created by the make_reindexer factory, was given an object both by brain and by itself, it compared those two by identity, which wouldn’t ever match. Now checking for equality.
New function clone_tree (from release 1.2.0) now works recursively
When clone_tree moves objects from one folder to another, it tries to preserve a useful order; both functions _clone_tree_inner and _move_objects use the new helper apply_move_order_options to inject a sort_on key into the query.
context module:
message function (non-generated; with context argument):
The default mapping is None now.
make_permissionChecker doesn’t require the checkperm adapter any more to be useful
make_userdetector doesn’t require the auth adapter any more to be useful
Working doctests for search module
zcmlgen module:
“Constructors” of the generator classes support an optional skip argument (keyword-only)
Hard dependencies removed:
-
if it is not installed, parts of the .attools module simply won’t work
-
If not installed, .forms.form_changes requires a form argument (but it is a stub anyway).
[tobiasherp]
1.2.0 (2020-05-13)
New utilities:
setup module:
New function clone_tree, using
function factory make_object_getter and
function factory make_subfolder_creator
Both factories have overlapping functionality and might become unified in a future version; their initial purposes were:
make_object_getter creates a function (usually called get_object) which tries to find a (possibly moved and/or renamed) object, and then is able to apply a few changes;
make_subfolder_creator creates a function (usually called new_folder) which creates a new folder (unless already present), and then is able to apply a few changes.
[tobiasherp]
1.1.6 (2019-11-27)
New modules:
decorators module:
@returns_json (uses simplejson if available)
New utilities:
context module:
function factory make_timeformatter
Bugfixes:
Typo in README corrected.
[tobiasherp]
1.1.5 (2019-07-18)
Bugfixes:
getConfiguration might fail; in such cases, log a warning and use the default
Missing requirements:
[tobiasherp]
1.1.4 (2019-05-09)
indexes module added:
Function getSortableTitle for title conversion.
This converts umlauts etc. to sort them as equal to their corresponding base vocals, according to German lexical usage.
attools module:
New function notifyedit(context)
forms module:
tryagain_url function supports var_items argument
bugfix for make_input function (suppression of type attribute)
zcmlgen module:
changes detection improved to explicitly ignore added/removed blank lines
context module:
new functions message and getbrain, as replacement for some adapters named alike
[tobiasherp]
1.1.3 (2019-01-29)
setup.make_renamer(): generated rename function improved: existing positional options default to None; instead of uid, o (object) or brain can be specified (by name).
setup.make_query_extractor(), generated extract_query function improved: don’t convert a Language string to a list if it’s value is all
zcmlgen module:
Bugfix for changes detection
If changes are found but disallowed (non-development setup), and if sys.stdout is connected to a terminal, start the debugger
[tobiasherp]
1.1.2 (2018-11-21)
Corrections for the documentation
(currently) unused dependencies removed [tobiasherp]
1.1.1 (2018-09-27)
zcmlgen module added:
Generates configure.zcml files, if
changes are detected (buggy; see v1.1.3), and
development mode is active, and
the source is in a development package.
1.1 (2018-09-17)
attools module added:
a brown bag of tools for Archetypes
brains module added:
make_collector, e.g. for address fields
forms module added:
a brown bag of modules to support forms in a Zope/Plone system
mock module added:
a few small classes for use in doctests
the same module as visaplan.tools .mock
mock_cfg module added:
accompanies cfg, for testing only
search module added:
tools for creation of catalog queries
setup module added: functions for use in migration scripts
Module changes:
context module:
new function decorated_tool
functions module:
new function looksLikeAUID (for historical reasons)
1.0 (2018-07-11)
Initial release. [tobiasherp]
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
File details
Details for the file visaplan.plone.tools-1.3.0.tar.gz
.
File metadata
- Download URL: visaplan.plone.tools-1.3.0.tar.gz
- Upload date:
- Size: 108.3 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/1.13.0 pkginfo/1.4.2 requests/2.19.0 setuptools/41.0.1 requests-toolbelt/0.8.0 tqdm/4.23.4 CPython/2.7.5
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 1d62c32f76c2bc93bab9f282df91802e924ab384cde1b265f27e49b386089077 |
|
MD5 | 6beef778945a9aa5ce0b4f2073537d97 |
|
BLAKE2b-256 | 5043a65e4c16d3ed202d980852fed6232b5247b9641b597f3744967bb7c69974 |