ftw.copymovepatches
Project description
Introduction
This package implements some magical improvements compared to the default plone copy/move/rename implementation.
As far as we manage to get changes in to Plone/CMFCore this packages is no longer necessary.
Lighting fast move/rename
This package provides a improved move/rename implementation. The more files you want to move the faster it will be compared to the default Plone implementation.
Basically it does not an uncatalog an afterwards a catalog of the obejct, but updates the indexed data where necessary. This saves us from reindexing the whole moved structure. The main issue was that the searchableText from Files was indexed again.
Example measurement with 1 Folder, which contains 1 Document and 300 Files (almost empty PDFs):
Plone: approx. 80s With this package: approx. 8s
PR for this change is open at: XXX (Add URL to PR)
Update modification date when moving
When building cache keys based on the modification dates of objects it is crucial that the modification dates are updated on any change. By default, the modification date is updated when the content is changed, which is not the case when moving objects around.
The “move”-patch in this package changes the behavior so that a “move” will also trigger a modification date update and thus give caches the chance to invalidate when they are built with the modification date and need to be invalidated when the path is updated.
Backport of dexterity patch: set copy flags
Problem:
When copying a DX container which has AT children, the UID of the AT children was not updated. The reason for the error is that the DX container copy did not have the _v_is_cp flag while the AT children were processed and thus the flag was not properly delegated.
Solution:
By copying the _v_is_cp and _v_cp_refs flags to the copy we have the same behavior as it used to be with AT, which does fix the error.
Issue: https://github.com/plone/Products.CMFPlone/issues/1735
Plone 4 fix: https://github.com/plone/plone.dexterity/pull/60
Plone 5 fix: https://github.com/plone/plone.dexterity/pull/61
Fix inconsistent state:
Without this patch, copy / paste could lead to incosinstent state. When you’ve installed ftw.copymovepatches on an existing installation you should visit the view copymovepatches-catalog-fixes on the site root and run the fixes when proposed.
Compatibility
Plone 4.3.x
Installation
Add the package to your buildout configuration:
[instance] eggs += ... ftw.copymovepatches
Development
Python:
Fork this repo
Clone your fork
Shell: ln -s development.cfg buidlout.cfg
Shell: python boostrap.py
Shell: bin/buildout
Run bin/test to test your changes.
Or start an instance by running bin/instance fg.
Links
Copyright
This package is copyright by 4teamwork.
ftw.copymovepatches is licensed under GNU General Public License, version 2.
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
Hashes for ftw.copymovepatches-1.0.1.tar.gz
Algorithm | Hash digest | |
---|---|---|
SHA256 | eb529ad86e135411b3c69f06307ea251c3d4d16e51a048ebae8fee91937d1b2b |
|
MD5 | 1911be914151c48a3aeea88a8f76678d |
|
BLAKE2b-256 | 20a6854259562a17ec668655851ab72027a316e3f90c1fe1540ba639b23fff64 |