{ "info": { "author": "4teamwork AG", "author_email": "mailto:info@4teamwork.ch", "bugtrack_url": null, "classifiers": [ "Framework :: Plone", "Framework :: Plone :: 4.3", "Framework :: Plone :: 5.1", "License :: OSI Approved :: GNU General Public License (GPL)", "Programming Language :: Python", "Programming Language :: Python :: 2.7", "Topic :: Software Development :: Libraries :: Python Modules" ], "description": ".. contents:: Table of Contents\n\n\nIntroduction\n============\n\nThis package implements some magical improvements compared to the default plone copy/move/rename implementation.\n\nAs far as we manage to get changes in to Plone/CMFCore this packages is no longer necessary.\n\n\n\nLighting fast move/rename\n--------------------------\nThis package provides a improved move/rename implementation.\nThe more files you want to move the faster it will be compared to the default Plone implementation.\n\nBasically it does not an uncatalog an afterwards a catalog of the obejct, but updates\nthe indexed data where necessary. This saves us from reindexing the whole moved\nstructure.\nThe main issue was that the searchableText from Files was indexed again.\n\n\nExample measurement with 1 Folder, which contains 1 Document and 300 Files (almost empty PDFs):\n\nPlone: approx. 80s\nWith this package: approx. 8s\n\nPR for this change is open at: XXX (Add URL to PR)\n\n\nUpdate modification date when moving\n------------------------------------\n\nWhen building cache keys based on the modification dates of objects it is\ncrucial that the modification dates are updated on any change.\nBy default, the modification date is updated when the *content* is changed,\nwhich is not the case when moving objects around.\n\nThe \"move\"-patch in this package changes the behavior so that a \"move\" will\nalso trigger a modification date update and thus give caches the chance to\ninvalidate when they are built with the modification date and need to be\ninvalidated when the path is updated.\n\n\n\nBackport of dexterity patch: set copy flags\n-------------------------------------------\n\n**Problem:**\n\nWhen copying a DX container which has AT children, the UID of the AT\nchildren was not updated.\nThe reason for the error is that the DX container copy did not have the\n`_v_is_cp` flag while the AT children were processed and thus the flag\nwas not properly delegated.\n\n**Solution:**\n\nBy copying the `_v_is_cp` and `_v_cp_refs flags` to the copy we have the\nsame behavior as it used to be with AT, which does fix the error.\n\n- Issue: https://github.com/plone/Products.CMFPlone/issues/1735\n- Plone 4 fix: https://github.com/plone/plone.dexterity/pull/60\n- Plone 5 fix: https://github.com/plone/plone.dexterity/pull/61\n\n**Fix inconsistent state:**\n\nWithout this patch, copy / paste could lead to incosinstent state.\nWhen you've installed ``ftw.copymovepatches`` on an existing installation and\nencounter issues with your catalog consistency your best shot is to try and\nresolve them with ``ftw.catalogdoctor``. See\nhttps://github.com/4teamwork/ftw.catalogdoctor/ for more information about how\nto install and run the package.\n\n\nCompatibility\n-------------\n\nPlone 4.3.x\n\n\nInstallation\n============\n\n- Add the package to your buildout configuration:\n\n::\n\n [instance]\n eggs +=\n ...\n ftw.copymovepatches\n\n\nDevelopment\n===========\n\n**Python:**\n\n1. Fork this repo\n2. Clone your fork\n3. Shell: ``ln -s development.cfg buidlout.cfg``\n4. Shell: ``python boostrap.py``\n5. Shell: ``bin/buildout``\n\nRun ``bin/test`` to test your changes.\n\nOr start an instance by running ``bin/instance fg``.\n\n\nLinks\n=====\n\n- Github: https://github.com/4teamwork/ftw.copymovepatches\n- Issues: https://github.com/4teamwork/ftw.copymovepatches/issues\n- Pypi: http://pypi.python.org/pypi/ftw.copymovepatches\n- Continuous integration: https://jenkins.4teamwork.ch/search?q=ftw.copymovepatches\n\n\nCopyright\n=========\n\nThis package is copyright by `4teamwork `_.\n\n``ftw.copymovepatches`` is licensed under GNU General Public License, version 2.\n\nChangelog\n=========\n\n\n2.0.0 (2019-07-15)\n------------------\n\n- Drop `copymovepatches-catalog-fixes` view in favour of https://github.com/4teamwork/ftw.catalogdoctor/. [deiferni]\n\n\n1.1.1 (2019-06-19)\n------------------\n\n- Also reindex Date (which defaults to modified) when moving an object. [njohner]\n- Fixed error (`issue 13 `_) when renaming Plone Site. [maurits]\n\n\n1.1.0 (2018-03-01)\n------------------\n\n- Add support for Plone 5.1. [mbaechtold]\n\n- Add support for Products.CMFCore >= 2.2.11 [avoinea]\n\n\n1.0.1 (2016-09-26)\n------------------\n\n- ZCML: Include monkeypatcher before using it. [jone]\n\n\n1.0.0 (2016-09-13)\n------------------\n\n- Fix edge case with collective.indexing and other 3rd party packages and rename a nested structure.\n [mathias.leimgruber]\n\n\n1.0.0a4 (2016-09-07)\n--------------------\n\n- Update modification date when moving an object. [jone]\n\n\n1.0.0a3 (2016-09-07)\n--------------------\n\n- Make add-on more robust by handling a special case which may happen when\n \"collective.indexing\" is installed and an object is created with \"plone.api\"\n in a subscriber listening on \"IObjectAddedEvent\".\n [mbaechtold, mathias.leimgruber]\n\n\n1.0.0a2 (2016-09-05)\n--------------------\n\n- Implement `delete`.\n [mathias.leimgruber]\n\n\n1.0.0a1 (2016-09-02)\n--------------------\n\n- Init Implementation.\n [jone & mathias.leimgruber]\n\n- Package generated using bobtemplates.4teamwork", "description_content_type": "", "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/4teamwork/ftw.copymovepatches", "keywords": "ftw copymovepatches", "license": "GPL2", "maintainer": "4teamwork", "maintainer_email": "", "name": "ftw.copymovepatches", "package_url": "https://pypi.org/project/ftw.copymovepatches/", "platform": "", "project_url": "https://pypi.org/project/ftw.copymovepatches/", "project_urls": { "Homepage": "https://github.com/4teamwork/ftw.copymovepatches" }, "release_url": "https://pypi.org/project/ftw.copymovepatches/2.0.0/", "requires_dist": null, "requires_python": "", "summary": "ftw.copymovepatches", "version": "2.0.0" }, "last_serial": 5823387, "releases": { "1.0.0": [ { "comment_text": "", "digests": { "md5": "08a02497f11843cbb7d2aec356bb62c8", "sha256": "45a3718e9a41537e965ac34af10dd11b6685383a22e820f88fc71b7deb5e10d5" }, "downloads": -1, "filename": "ftw.copymovepatches-1.0.0.tar.gz", "has_sig": false, "md5_digest": "08a02497f11843cbb7d2aec356bb62c8", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 11003, "upload_time": "2016-09-13T15:35:14", "url": "https://files.pythonhosted.org/packages/cf/87/0fea31f7c59a12e7a614d01dead4d9449ffbaf410d33967994d982c8a3f4/ftw.copymovepatches-1.0.0.tar.gz" } ], "1.0.0a1": [ { "comment_text": "", "digests": { "md5": "2ac482cd49f1de9a92c687a204c5d9d7", "sha256": "2df96eff1abfe4ff40bbe34e43a65b3194f3e673d6e64f698031e4a92d4ddc06" }, "downloads": -1, "filename": "ftw.copymovepatches-1.0.0a1.tar.gz", "has_sig": false, "md5_digest": "2ac482cd49f1de9a92c687a204c5d9d7", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 8941, "upload_time": "2016-09-02T09:02:26", "url": "https://files.pythonhosted.org/packages/59/0c/c1d0ea6b64d0e86d2d67bd19c21f16c7173f6788fbc8a184d795b38ad0b9/ftw.copymovepatches-1.0.0a1.tar.gz" } ], "1.0.0a2": [ { "comment_text": "", "digests": { "md5": "d6ed8e4b0994b9b82f1e6b37a81e45d8", "sha256": "8c03afff9957b4a3bd814a621abe5045cc30416049afb06a950b3056d534590a" }, "downloads": -1, "filename": "ftw.copymovepatches-1.0.0a2.tar.gz", "has_sig": false, "md5_digest": "d6ed8e4b0994b9b82f1e6b37a81e45d8", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 9067, "upload_time": "2016-09-05T07:45:37", "url": "https://files.pythonhosted.org/packages/4b/b7/f18f35f1537c1857fb15bc277887281986e0034c6c0d5188062dfbd3ba9d/ftw.copymovepatches-1.0.0a2.tar.gz" } ], "1.0.0a3": [ { "comment_text": "", "digests": { "md5": "6a6ae1c1d4e81ec4d0c2d1f5d7ee00d7", "sha256": "8a5c9955b460475baa108720ed263d4bbb428343a21d7210da988e5d90eb0557" }, "downloads": -1, "filename": "ftw.copymovepatches-1.0.0a3.tar.gz", "has_sig": false, "md5_digest": "6a6ae1c1d4e81ec4d0c2d1f5d7ee00d7", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 9341, "upload_time": "2016-09-07T06:11:41", "url": "https://files.pythonhosted.org/packages/31/de/52701a5ef4448b899aaafbe0c7cd8a0ab17637994b8816046b35a699a4af/ftw.copymovepatches-1.0.0a3.tar.gz" } ], "1.0.0a4": [ { "comment_text": "", "digests": { "md5": "024d3841e1f3dd63d561db75bae2e496", "sha256": "d452b8ba94200c2281e02a71ce83594594afd31a2dabe10b272c850b4470832e" }, "downloads": -1, "filename": "ftw.copymovepatches-1.0.0a4.tar.gz", "has_sig": false, "md5_digest": "024d3841e1f3dd63d561db75bae2e496", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 10329, "upload_time": "2016-09-07T12:18:29", "url": "https://files.pythonhosted.org/packages/e4/26/a649d20795369bbfaf5023526333fe7c0cf24ea3c0b7cc802d7dedb15273/ftw.copymovepatches-1.0.0a4.tar.gz" } ], "1.0.1": [ { "comment_text": "", "digests": { "md5": "1911be914151c48a3aeea88a8f76678d", "sha256": "eb529ad86e135411b3c69f06307ea251c3d4d16e51a048ebae8fee91937d1b2b" }, "downloads": -1, "filename": "ftw.copymovepatches-1.0.1.tar.gz", "has_sig": false, "md5_digest": "1911be914151c48a3aeea88a8f76678d", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 11054, "upload_time": "2016-09-26T17:33:25", "url": "https://files.pythonhosted.org/packages/20/a6/854259562a17ec668655851ab72027a316e3f90c1fe1540ba639b23fff64/ftw.copymovepatches-1.0.1.tar.gz" } ], "1.1.0": [ { "comment_text": "", "digests": { "md5": "aa04417c81a84800222add8ce5bea06d", "sha256": "e3b7614f5b8871d9fbd52c9de5595fa8f8297326b4006233963334bf752d5684" }, "downloads": -1, "filename": "ftw.copymovepatches-1.1.0.tar.gz", "has_sig": false, "md5_digest": "aa04417c81a84800222add8ce5bea06d", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 11460, "upload_time": "2018-03-01T17:37:07", "url": "https://files.pythonhosted.org/packages/b5/01/a7e40a83c47b148cbbaec927733d044b5aa5446e336a7cffcbabc14434ab/ftw.copymovepatches-1.1.0.tar.gz" } ], "1.1.1": [ { "comment_text": "", "digests": { "md5": "c7137ce05456610df13acba0a0636140", "sha256": "c98ce211ed85538e69707e867334007c52ffbfdf3b7b032b1a98c29ed9a464a8" }, "downloads": -1, "filename": "ftw.copymovepatches-1.1.1.tar.gz", "has_sig": false, "md5_digest": "c7137ce05456610df13acba0a0636140", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 12484, "upload_time": "2019-06-19T08:36:18", "url": "https://files.pythonhosted.org/packages/c1/cb/0ba8b2cf859f11700f6c08c63e4e261db2a3ad105e3376004969e87008da/ftw.copymovepatches-1.1.1.tar.gz" } ], "2.0.0": [ { "comment_text": "", "digests": { "md5": "9a608046a3684f41bc3c5f23577137df", "sha256": "a5b56a78f34d441af701a2e3b4b1bb527c0c07c8bf984432cbad86b82756e7f9" }, "downloads": -1, "filename": "ftw.copymovepatches-2.0.0.tar.gz", "has_sig": false, "md5_digest": "9a608046a3684f41bc3c5f23577137df", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 11994, "upload_time": "2019-07-15T13:55:57", "url": "https://files.pythonhosted.org/packages/b1/17/8e6450595aa0aa1e242c13997270afb9afeb14c389269ca7d7137637b8ca/ftw.copymovepatches-2.0.0.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "9a608046a3684f41bc3c5f23577137df", "sha256": "a5b56a78f34d441af701a2e3b4b1bb527c0c07c8bf984432cbad86b82756e7f9" }, "downloads": -1, "filename": "ftw.copymovepatches-2.0.0.tar.gz", "has_sig": false, "md5_digest": "9a608046a3684f41bc3c5f23577137df", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 11994, "upload_time": "2019-07-15T13:55:57", "url": "https://files.pythonhosted.org/packages/b1/17/8e6450595aa0aa1e242c13997270afb9afeb14c389269ca7d7137637b8ca/ftw.copymovepatches-2.0.0.tar.gz" } ] }