visaplan.plone.infohubs

A mini language for reuse of information


License
CNRI-Python-GPL-Compatible
Install
pip install visaplan.plone.infohubs==1.2.0

Documentation

https://img.shields.io/badge/%20imports-isort-%231674b1?style=flat&labelColor=ef8336:target:https://pycqa.github.io/isort/

visaplan.plone.infohubs

This product establishes a "mini language" for the calculation and re-use of information in Plone instances during the processing of a single request, e.g. when creating breadcrumbs; e.g., if the login state is important for the breadcrumb for /foo, that same state might be important for the /foo/bar breadcrumb as well.

It is part of the footing of the "Unitracc family" of Plone sites which are maintained by visaplan GmbH, Bochum, Germany; the mini-language was established during the development of the now factored-out package visaplan.plone.breadcrumbs.

The purpose of this package (for now) is not to provide new functionality but to factor out existing functionality from our former monolithic Zope product. Thus, it is more likely to lose functionality during further development (as parts of it will be forked out into their own packages, or some functionality may even become obsolete because there are better alternatives in standard Plone components).

Features

  • The info dictionary holds the collected information of interest during processing of the request.

  • The hub dictionary holds the tools which were used to get those information chunks.

    For some named tools, there are abbreviations available (e.g. pc for portal_catalog), mostly for historical reasons.

Examples

This add-on can be seen in action at the following sites:

Installation and usage

Add visaplan.plone.infohubs to the requirements of your add-on.

Then, in your own code:

from visaplan.plone.infohubs import make_hubs
...
    # in some function or method where you have a meaningful context:
    hub, info = make_hubs(self.context)
    someval = info['some_known_key']

While getting the information for the given key some_known_key, the used tools will be stored in the hub dictionary, and other information found on the way will be stored in the info dictionary.

Contribute

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.