Skip to main content

Change, merge and delete keywords (subjects) in Plone.

Project description

Github Testing Badge Coveralls badge Code style: black

Plone Keyword Manager

Plone Keyword Manager allows you to change, merge and delete keywords (aka tags or subjects) in Plone and updates all corresponding objects automatically. It uses a similarity search to support you in identifying similar keywords. PloneKeywordManager helps you to build an inductive vocabulary with several people working on the same Plone site. Keywords can be cleaned up from time to time by a site-manager to create a consistent vocabulary.

Plone Keyword Manager is a quite simple solution to a major problem in the real world use of Plone: If you can’t work with restricted vocabularies, your keyword-vocabulary will get duplicate entries very quickly - depending on your authors’ interpretation of existing keywords.

Installation

In your buildout add Products.PloneKeywordManager to your instances eggs section or policy packages setup.py. If you want similarity search add Products.PloneKeywordManager[Levenshtein] instead.

Run buildout. Activate it at Site Setups Add Ons page.

Usage

After installing, you will find an entry in Site Setup a section called Keyword Manager. Inside, you will see an alphabetical listing and a selection for all keywords existing in your site.

Use the last one to see similar terms for a single keyword. Use the former one if you want to see a list of all keywords starting with letter ‘b’, click it. The Plone Keyword Manager will then search all keywords starting with ‘b’ and will also look for similar keywords. You can now select several keywords and delete them for example. If you only want to change a single keyword, select it, then enter the new keyword and click on merge. If you want to merge several keywords into one new one, select them, enter the new keyword and click on merge.

The last selected keyword is entered automatically into the textbox if JavaScript is enabled. This may be irritating at first glance, but you’ll learn to appreciate quite fast. If you use it the right way, you don’t have to copy&paste into the textbox. Try it yourself, you’ll get the idea behind it…

For developers and integrators

You can also use KeywordManager to import your keywords with GenericSetup. You must have access to the file system to do this.

  • Add a file keywords.txt to the directory Products/PloneKeywordManager/profiles/default, with one keyword per line.

  • In the ZMI, go to portal_setup, Import tab. Locate the step called Create or update keywords. Check the box next to it, then click the button Import Selected Steps.

This will add or update a Document titled Keywords (with ID keyword) in the root of the Plone site; this document will have all the listed keywords assigned to it.

Leave this document in the private state so only an administrator will be able to see and edit it.

Each time you run this import step, the Keywords document’s keywords will be completely replaced with the contents of the keywords.txt file.

Source Code

Source code and issue tracker of this project is in the Plone Collective

For instructions how to contribute please read the Collective Information Page

Further development focuses on Plone 5.2 on Python 3.7 and higher.

Credits

PloneKeywordManager was mainly coded by Maik Jablonski during the Plone Paderborn Sprint (back in September 2003), founded by the Bertelsmann Foundation. First user interface updates and setup code by Alexander Limi from Plone Solutions. Joe Geldart from Netalley Networks updated the template to Plone 2.0 format. We would also like to thank Maik for letting us put this code in the Collective - so it can be improved and expanded easily.

After this, many people updated the code, templates and setup to follow up with the Plone releases.

These days the add-on is developed within the Plone Collective by a group of volunteers.

Changelog

5.0.1 (2024-10-10)

  • Fix live search by using utility instead of former and removed tool. [ksuess]

5.0.0 (2022-10-11)

  • No change since last release.

5.0.0a1 (2022-09-23)

  • Avoid a double loop by using set operations. [gforcada]

  • Clean up old code. [gforcada]

  • Turn the tool into a utility. Fixes issue #15. [gforcada]

4.0.1 (2022-05-06)

  • Fixed issue in renaming keywords. Fixes issue #70. [flipmcf]

  • Fix Redirection after form submit Fixes issue #68. [flipmcf] Fixes issue #66. [jensens, flipmcf]

  • Fix issue with search links from related keywords Fixes issue #67. [abl123, flipmcf]

  • Plone 4 specific code removal and updating comments / docstrings [flipmcf]

4.0.0 (2021-12-13)

  • Improvements to form performance when site has an extreme amount of keywords. Fixes issue #17. [flipmcf]

  • Improvements to UI/UX [flipmcf]

  • Filter out only None keyword values, not false values. [flipmcf]

  • Updating SearchableText index after keyword delete/rename [flipmcf]

  • Highlight Whitespace in keyword values enhancement [flipmcf]

  • Update Italian Translations [cekk]

  • Update German Translations [jensens]

  • Drop Python 2.7 support. Update code and test setup. [jensens]

3.0.3 (2021-01-27)

  • Ensure plone.app.discussion comments with acquired keywords are consistently reindexed. [alecpm]

  • Fix toggle to work with Chameleon. Fixes issue #33. [petschki]

3.0.2 (2019-10-07)

  • Added a toggle to show/hide related keywords. By default every keyword will only show once. [CorySanin]

3.0.1 (2019-10-07)

  • Filter out empty keywords before sorting. Otherwise the control panel is broken for some indexes. Fixes issue #28. [maurits]

3.0.0 (2019-03-14)

  • Fix problem with non-visible changes due to a side effect with collective.indexing beeing merged in core. [jensens]

  • Python 3, Plone 5.2 compatibility. Drop support for Plone < 5.1. [vangheem, jensens]

2.2.1 (2018-07-09)

  • Add translation to Brazilian Portuguese. [hvelarde]

  • Fix searchlink button to respect the selected index field in the query and quote the value for the search parameter [petschki]

2.2.0 (2016-03-07)

  • accessibility improvements [daniele-andreotti]

  • add compatibility with Plone 5 [cewing]

  • Drop support for Python 2.6. [hvelarde]

2.1.1 (2014-09-15)

  • Don’t break when searching encoded indexes. [davisagli]

  • Fix getSetter method in tool.py to handle also discussion items. [cekk]

2.1 (2014-04-27)

  • Enable search for values (search icon behind value). [jensens]

  • Decode values so they work with Dexterity. [davisagli]

  • Handle sets as field values. [davisagli]

  • Update Dexterity content even if it has no explicit setter. [davisagli]

  • Works when the field related to KeywordIndex is monovalued [thomasdesvenain]

  • UI and labels improvements [thomasdesvenain]
    • selected values are kept after form submission

    • change in selection lists automatically submit the form

    • keywords are clickable labels

    • added some helpers and tooltips, and improved labels

  • check for plone.app.multilingual and Products.LinguaPlone [pbauer]

  • Fixed getSetter and getListFieldValues method in tool to handle also non-default field names [cekk]

  • Removed skins and moved control panel to a browser view [cekk]

  • Added custom permission to access the view [cekk]

  • Fixed uninstall profile [cekk]

  • Moved translations from i18n to locales [cekk]

2.0 (2013-04-24)

  • take plone.app.multilingual into acount and set Language=all on change. [jensens]

  • Use png icon as gif icon has been removed. [thomasdesvenain]

  • Fix index update on keyword delete not to reindex all attributes. [leorochael]

  • Add support for dexterity (and generic DublinCoreImpl subclasses). [leorochael]

  • Tests use now plone.app.testing; test coverage improved. [hvelarde]

  • Fix package distribution. [hvelarde]

  • Do not create a keywords Document in the plone-site in case the keywords.txt file is empty. (useful for sites not having Document globally allowed) [fRiSi]

  • Allow Site Administrators too access the keyword managment [fRiSi]

  • Make installation possible for dexterity-based Documents [pysailor]

1.9 (2011-06-22)

  • Fixed critical error at index update. [thomasdesvenain]

  • Upgrade imports for Zope 2.13. Remove deprecation warnings. [toutpt]

1.8 (2011-04-08)

  • Add tests related to skins-directories. [WouterVH]

  • remove old-style Install.py. [WouterVH]

  • Add uninstall-profile. [WouterVH]

  • Fix marker-file for setuphandlers.py. [WouterVH]

  • Add MANIFEST.in to include docs in release. [WouterVH]

  • Upgrade imports for Zope 2.13. Remove deprecation warnings. [thomasdesvenain]

  • Manage python-Levenshtein dependency as a setuptools extras_require. [thomasdesvenain]

  • French translation. [thomasdesvenain]

  • Internationalization fixes. [thomasdesvenain]

  • Added the z3c.autoinclude entry point so this package is automatically loaded on Plone 3.3 and above. [WouterVH]

  • Remove the old-style refresh.txt and version.txt. Version is now specified in setup.py [WouterVH]

  • Cleanup install-instructions. [WouterVH]

1.7 (20/08/2010)

  • Added ability to mix unicode and non-unicode keywords and changes. Fixes a bug with collective.dancing (and plone.z3cform) upgrading form inputs to unicode automagically. [dunlapm]

  • Restify the CHANGES.txt file. [toutpt]

  • Add keywords import through genericsetup. [toutpt]

  • Add a default profile based on Extensions/Install.py. [toutpt]

  • remove zope2 interface. [toutpt]

1.6 (19/03/2009)

  • Fixed handling of non-ASCII Keywords in Controller Python Scripts prefs_keywords_action_change.cpy and prefs_keywords_action_delete.cpy [disko]

  • Added tests for the above mentioned bugfixes. [disko]

  • Added German translation. [disko]

1.6b2 (15-11-2008)

  • No longer assumes that the index name is the same as the name of the underlying schema field. [jessesnyder]

1.6b1 (09-09-2008)

  • Eggification from PloneKeywordManager into Products.PloneKeywordManager. This package is only supported for Plone 3 now. It may or may not work in Plone 2.5. [dunlapm]

  • Added support for multiple keyword indexes. If you have more than one keyword field on your content type(s) then you will still be able to manage all of your keywords. If you only use the single default field then you will get the normal interface.

1.5-alpha1 (28-11-2007)

  • Plone 2.5 and Plone 3 compatibility for product PloneKeywordManager. [glenfant]

0.4 (unknown)

0.3 (05-04-2005)

  • Refactored code to run from a portal tool.

  • Minor clean ups.

  • Introduced the permission “Manage Keywords” to have better control about who can manage keywords.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

Products.PloneKeywordManager-5.0.1.tar.gz (90.2 kB view details)

Uploaded Source

Built Distribution

File details

Details for the file Products.PloneKeywordManager-5.0.1.tar.gz.

File metadata

  • Download URL: Products.PloneKeywordManager-5.0.1.tar.gz
  • Upload date:
  • Size: 90.2 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.3.0 pkginfo/1.8.3 requests/2.28.1 setuptools/65.7.0 requests-toolbelt/0.10.1 tqdm/4.64.1 CPython/3.8.19

File hashes

Hashes for Products.PloneKeywordManager-5.0.1.tar.gz
Algorithm Hash digest
SHA256 e38102d23a455c92ad76944039f594d4e0d195b0e26faeda1fbd581d2208e50c
MD5 d178931cabf71cfec74ea12defcc12cb
BLAKE2b-256 6db41bd2725ea21e5123c869266c99244606b7989e6ec4a881fc4b13d6f078ea

See more details on using hashes here.

File details

Details for the file Products.PloneKeywordManager-5.0.1-py3-none-any.whl.

File metadata

  • Download URL: Products.PloneKeywordManager-5.0.1-py3-none-any.whl
  • Upload date:
  • Size: 101.7 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.3.0 pkginfo/1.8.3 requests/2.28.1 setuptools/65.7.0 requests-toolbelt/0.10.1 tqdm/4.64.1 CPython/3.8.19

File hashes

Hashes for Products.PloneKeywordManager-5.0.1-py3-none-any.whl
Algorithm Hash digest
SHA256 78812143d9260261074e6b592941d9f2c951d3cde0e237d58666e5bb899d0236
MD5 27b3cd7205116dca2d6944b4af076a64
BLAKE2b-256 6c7a9a55454f5900a53acf6fa066f1870de7271ef439ff05b396dc2c1c6e6a48

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page