{ "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": "ftw.gopip\n=========\n\nPlone's ``getObjPositionInParent`` catalog index is optimized for fast writing\nand for sorting *small* result sets of objects which are loaded anyway in the request.\nThe actual order is not stored in the catalog at all but only on the parent object.\nThis means that sorting a result set can only be done by loading the parent object\nand getting the object position from it.\n\nThis works well for Plone's standard use cases such as the navigation portlet\nor the portal tabs, but doing large queries with a bigger depth is very slow\nsince all container objects must be woken up.\n\nThe goal of this package is to replace the ``getObjPositionInParent`` with an actual\nindex storing the order in the catalog in a regular ``FieldIndex``.\n\n\nCompatibility\n-------------\n\nPlone 4.3.x\nPlone 5.1.x\n\n\nInstallation\n------------\n\n- Add the package to your buildout configuration:\n\n::\n\n [instance]\n eggs +=\n ...\n ftw.gopip\n\n- Install the generic setup profile ``ftw.gopip:default``.\n\n\nImplementation\n--------------\n\nThis package replaces the ``GopipIndex``, which is a fake index not storing any\ndata, with a ``FieldIndex``, which stores all positions.\n\nThe challenge is to keep the index properly up to date.\nThis is achieved by customizing the standard ``IOrdering`` adapters and tracking\nchanges there, so that we do not need to rely on other components triggering\nevents at the right moment.\n\nThe three standard ``IOrdering`` adapters are wrapped with a tracking proxy:\n\n- ``DefaultOrdering`` (providing ``IExplicitOrdering``)\n- ``PartialOrdering`` (providing ``IExplicitOrdering``)\n- ``UnorderedOrdering`` (providing ``IOrdering``)\n\nIf there are custom ``IOrdering`` or ``IExplicitOrdering`` adapters, they must\nbe tracked accordingly.\n\nThere is no ``IOrdering`` adapter for the Plone site root.\nAn ``IReorderedEvent``-subsciber takes care of tracking first level reorderings.\n\n\nDevelopment\n-----------\n\n1. Fork this repo\n2. Clone your fork\n3. Shell: ``ln -s development.cfg buildout.cfg``\n4. Shell: ``python boostrap.py``\n5. Shell: ``bin/buildout``\n6. Shell: ``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.gopip\n- Issues: https://github.com/4teamwork/ftw.gopip/issue\n- Pypi: http://pypi.python.org/pypi/ftw.gopip\n- Continuous integration: https://jenkins.4teamwork.ch/search?q=ftw.gopip\n\n\nCopyright\n---------\n\nThis package is copyright by `4teamwork `_.\n\n``ftw.gopip`` is licensed under GNU General Public License, version 2.", "description_content_type": null, "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/4teamwork/ftw.gopip", "keywords": "ftw gopip getObjPositionInParent", "license": "GPL2", "maintainer": "", "maintainer_email": "", "name": "ftw.gopip", "package_url": "https://pypi.org/project/ftw.gopip/", "platform": "", "project_url": "https://pypi.org/project/ftw.gopip/", "project_urls": { "Homepage": "https://github.com/4teamwork/ftw.gopip" }, "release_url": "https://pypi.org/project/ftw.gopip/1.1.0/", "requires_dist": null, "requires_python": "", "summary": "Speed up getObjPositionInParent index in Plone", "version": "1.1.0" }, "last_serial": 5823500, "releases": { "1.0.0": [ { "comment_text": "", "digests": { "md5": "07d5a8a0b4a77e57e882eb862c394b90", "sha256": "4c895c9a0342604b6ea038acf73d94dfd414ff839c802f63bb40987c9f18006f" }, "downloads": -1, "filename": "ftw.gopip-1.0.0.tar.gz", "has_sig": false, "md5_digest": "07d5a8a0b4a77e57e882eb862c394b90", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 6926, "upload_time": "2016-09-26T07:38:54", "url": "https://files.pythonhosted.org/packages/4b/66/35c57e990a1998ee49c03fd91a2b011a45e54cef7f111c51f083eaa005fa/ftw.gopip-1.0.0.tar.gz" } ], "1.0.1": [ { "comment_text": "", "digests": { "md5": "fbce47b876d27c837a03373d90e3dcf1", "sha256": "6ce1662b6ce11aeac7e9b78cb6adaac6d016e5f572d00aff59c880c1524d8b26" }, "downloads": -1, "filename": "ftw.gopip-1.0.1.tar.gz", "has_sig": false, "md5_digest": "fbce47b876d27c837a03373d90e3dcf1", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 7264, "upload_time": "2017-01-19T07:33:48", "url": "https://files.pythonhosted.org/packages/1d/a1/eb0c6565f17f5f44933604689f34964a6ce10e49588ec0e3044f83cd3d8f/ftw.gopip-1.0.1.tar.gz" } ], "1.1.0": [ { "comment_text": "", "digests": { "md5": "858719ed440996c9c594c2738629fa74", "sha256": "49a14c346efcf146a66e29656520940341573c17534751379f230fdd7a0c8d3a" }, "downloads": -1, "filename": "ftw.gopip-1.1.0.tar.gz", "has_sig": false, "md5_digest": "858719ed440996c9c594c2738629fa74", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 8838, "upload_time": "2017-11-28T08:59:00", "url": "https://files.pythonhosted.org/packages/8b/a1/72111d2a3c5c6c24a1db5642ea7109b779095df32e33abf2363aed070c24/ftw.gopip-1.1.0.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "858719ed440996c9c594c2738629fa74", "sha256": "49a14c346efcf146a66e29656520940341573c17534751379f230fdd7a0c8d3a" }, "downloads": -1, "filename": "ftw.gopip-1.1.0.tar.gz", "has_sig": false, "md5_digest": "858719ed440996c9c594c2738629fa74", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 8838, "upload_time": "2017-11-28T08:59:00", "url": "https://files.pythonhosted.org/packages/8b/a1/72111d2a3c5c6c24a1db5642ea7109b779095df32e33abf2363aed070c24/ftw.gopip-1.1.0.tar.gz" } ] }