{ "info": { "author": "Keryn Knight", "author_email": "python-package@kerynknight.com", "bugtrack_url": null, "classifiers": [ "Development Status :: 4 - Beta", "Environment :: Web Environment", "Framework :: Django", "Framework :: Django :: 1.4", "Framework :: Django :: 1.5", "Framework :: Django :: 1.6", "Framework :: Django :: 1.7", "Framework :: Django :: 1.8", "Intended Audience :: Developers", "License :: OSI Approved :: BSD License", "Natural Language :: English", "Operating System :: OS Independent", "Programming Language :: Python :: 2.6", "Programming Language :: Python :: 2.7", "Programming Language :: Python :: 3.3", "Programming Language :: Python :: 3.4", "Programming Language :: Python :: 3.5", "Topic :: Database :: Front-Ends", "Topic :: Internet :: WWW/HTTP :: Site Management" ], "description": ".. _Django: https://www.djangoproject.com/\n.. _Haystack: http://www.haystacksearch.org/\n.. _Django administration: https://docs.djangoproject.com/en/dev/ref/contrib/admin/\n.. _GitHub: https://github.com/\n.. _PyPI: http://pypi.python.org/pypi\n.. _kezabelle/django-haystackbrowser: https://github.com/kezabelle/django-haystackbrowser/\n.. _master: https://github.com/kezabelle/django-haystackbrowser/tree/master\n.. _issue tracker: https://github.com/kezabelle/django-haystackbrowser/issues/\n.. _my Twitter account: https://twitter.com/kezabelle/\n.. _FreeBSD: http://en.wikipedia.org/wiki/BSD_licenses#2-clause_license_.28.22Simplified_BSD_License.22_or_.22FreeBSD_License.22.29\n.. _Ben Hastings: https://twitter.com/benjhastings/\n.. _David Novakovic: http://blog.dpn.name/\n.. _Francois Lebel: http://flebel.com/\n.. _Jussi R\u00e4s\u00e4nen: http://skyred.fi/\n.. _Micha\u00ebl Krens: https://github.com/michi88/\n.. _REPL to inspect the SearchQuerySet: http://django-haystack.readthedocs.org/en/latest/debugging.html#no-results-found-on-the-web-page\n.. _ticket 21056: https://code.djangoproject.com/ticket/21056\n.. _tagged on GitHub: https://github.com/kezabelle/django-haystackbrowser/tags\n.. _my laziness: https://github.com/kezabelle/django-haystackbrowser/issues/6\n.. _Anton Shurashov: https://github.com/Sinkler/\n\n.. title:: About\n\ndjango-haystackbrowser\n======================\n\n:author: Keryn Knight\n\n.. |travis_stable| image:: https://travis-ci.org/kezabelle/django-haystackbrowser.svg?branch=0.6.3\n :target: https://travis-ci.org/kezabelle/django-haystackbrowser/branches\n\n.. |travis_master| image:: https://travis-ci.org/kezabelle/django-haystackbrowser.svg?branch=master\n :target: https://travis-ci.org/kezabelle/django-haystackbrowser/branches\n\n============== ======\nRelease Status\n============== ======\nstable (0.6.3) |travis_stable|\nmaster |travis_master|\n============== ======\n\n.. contents:: Sections\n :depth: 2\n\nIn brief\n--------\n\nA plug-and-play `Django`_ application for viewing, browsing and debugging data\ndiscovered in your `Haystack`_ Search Indexes.\n\n\nWhy I wrote it\n--------------\n\nI love `Haystack`_ but I'm sometimes not sure what data I have in it. When a\nquery isn't producing the result I'd expect, debugging it traditionally involves\nusing the Python `REPL to inspect the SearchQuerySet`_, and while I'm not allergic\nto doing that, it can be inconvenient, and doesn't scale well when you need to\nmake multiple changes.\n\nThis application, a minor abuse of the `Django administration`_, aims to solve that\nby providing a familiar interface in which to query and browse the data, in a\ndeveloper-friendly way.\n\n.. _requirements:\n\nRequirements and dependencies\n-----------------------------\n\ndjango-haystackbrowser should hopefully run on:\n\n * **Django 1.3.1** or higher;\n * **Haystack 1.2** or higher (including **2.x**)\n\nIt additionally depends on ``django-classy-tags``, though only to use the provided\ntemplate tags, which are entirely optional.\n\nSupported versions\n^^^^^^^^^^^^^^^^^^\n\nIn theory, the below should work, based on a few minimal sanity-checking\ntests; if any of them don't, please open a ticket on the `issue tracker`_.\n\n+--------+-------------------------------------+\n| Django | Python |\n+--------+-------+-----+-------+-------+-------+\n| | 2.7 | 3.3 | 3.4 | 3.5 | 3.6 |\n+--------+-------+-----+-------+-------+-------+\n| 1.3.x | Yup | | | | |\n+--------+-------+-----+-------+-------+-------+\n| 1.4.x | Yup | | | | |\n+--------+-------+-----+-------+-------+-------+\n| 1.5.x | Yup | Yup | | | |\n+--------+-------+-----+-------+-------+-------+\n| 1.6.x | Yup | Yup | Yup | | |\n+--------+-------+-----+-------+-------+-------+\n| 1.7.x | Yup | Yup | Yup | | |\n+--------+-------+-----+-------+-------+-------+\n| 1.8.x | Yup | Yup | Yup | Yup | |\n+--------+-------+-----+-------+-------+-------+\n| 1.9.x | Yup | | Yup | Yup | |\n+--------+-------+-----+-------+-------+-------+\n| 1.10.x | Maybe | | Maybe | Yup | Maybe |\n+--------+-------+-----+-------+-------+-------+\n| 1.11.x | Maybe | | Maybe | Yup | Maybe |\n+--------+-------+-----+-------+-------+-------+\n| 2.0.x | | | Maybe | Maybe | Yup |\n+--------+-------+-----+-------+-------+-------+\n\nAny instances of **Maybe** are because I haven't personally used it on that,\nversion, nor have I had anyone report problems with it which would indicate a\nlack of support.\n\nWhat it does\n------------\n\nAny staff user with the correct permission (currently, ``request.user.is_superuser``\nmust be ``True``) has a new application available in the standard admin index.\n\nThere are two views, an overview for browsing and searching, and another for\ninspecting the data found for an individual object.\n\nList view\n^^^^^^^^^\n\nThe default landing page, the list view, shows the following fields:\n\n * model verbose name;\n * the `Django`_ app name, with a link to that admin page;\n * the `Django`_ model name, linking to the admin changelist for that model, if\n it has been registered via ``admin.site.register``;\n * the database primary key for that object, linking to the admin change view for\n that specific object, if the app and model are both registered via\n ``admin.site.register``;\n * The *score* for the current query, as returned by `Haystack`_ - when no\n query is given, the default score of **1.0** is used;\n * The primary content field for each result;\n * The first few words of that primary content field, or a relevant snippet\n with highlights, if searching by keywords.\n\nIt also allows you to perform searches against the index, optionally filtering\nby specific models or faceted fields. That's functionality `Haystack`_ provides\nout of the box, so should be familiar.\n\nIf your `Haystack`_ configuration includes multiple connections, you can pick\nand choose which one to use on a per-query basis.\n\nStored data view\n^^^^^^^^^^^^^^^^\n\nFrom the list view, clicking on ``View stored data`` for any result will bring\nup the stored data view, which is the most useful part of it.\n\n * Shows all ``stored`` fields defined in the SearchIndex, and their values;\n * Highlights which of the stored fields is the primary content field\n (usually, ``text``);\n * Shows all additional fields;\n * Strips any HTML tags present in the raw data when displaying, with an\n option to display raw data on hover.\n * Shows any `Haystack`_ specific settings in the settings module.\n * Shows up to **5** similar objects, if the backend supports it.\n\nThe stored data view, like the list view, provides links to the relevant admin\npages for the app/model/instance if appropriate.\n\nInstallation\n------------\n\nIt's taken many years of `my laziness`_ to get around to it, but it is now\npossible to get the package from `PyPI`_.\n\nUsing pip\n^^^^^^^^^\n\nThe best way to grab the package is using ``pip`` to grab latest release from\n`PyPI`_::\n\n pip install django-haystackbrowser==0.6.3\n\nThe alternative is to use ``pip`` to install the master branch in ``git``::\n\n pip install git+https://github.com/kezabelle/django-haystackbrowser.git#egg=django-haystackbrowser\n\nAny missing dependencies will be resolved by ``pip`` automatically.\n\nIf you want the last release (0.6.3), such as it is, you can do::\n\n pip install git+https://github.com/kezabelle/django-haystackbrowser.git@0.6.3#egg=django-haystackbrowser\n\nYou can find all previous releases `tagged on GitHub`_\n\nUsing git directly\n^^^^^^^^^^^^^^^^^^\n\nIf you're not using ``pip``, you can get the latest version::\n\n git clone https://github.com/kezabelle/django-haystackbrowser.git\n\nand then make sure the ``haystackbrowser`` package is on your python path.\n\nUsage\n-----\n\nOnce it's on your Python path, add it to your settings module::\n\n INSTALLED_APPS += (\n 'haystackbrowser',\n )\n\nIt's assumed that both `Haystack`_ and the `Django administration`_ are already in your\n``INSTALLED_APPS``, but if they're not, they need to be, so go ahead and add\nthem::\n\n INSTALLED_APPS += (\n 'django.contrib.admin',\n 'haystack',\n 'haystackbrowser',\n )\n\nWith the `requirements`_ met and the `installation`_ complete, the only thing that's\nleft to do is sign in to the AdminSite, and verify the new *Search results* app\nworks.\n\nExtending admin changeforms\n^^^^^^^^^^^^^^^^^^^^^^^^^^^\n\nAssuming it works, you can augment your existing ModelAdmins by using\n(or copy-pasting from) the templates available:\n\n* ``admin/haystackbrowser/change_form_with_link.html`` adds a link\n (alongside the **history** and **view on site** links) to the corresponding\n stored data view for the current object.\n* ``admin/haystackbrowser/change_form_with_data.html`` displays all\n the stored data for the current object, on the same screen, beneath the standard\n ``ModelAdmin`` submit row.\n\nBoth templates play nicely with the standard admin pages, and both ensure\nthey call their ``{% block %}``'s super context.\n\nTheir simplest usage would be::\n\n class MyModelAdmin(admin.ModelAdmin):\n change_form_template = 'admin/haystackbrowser/change_form_with_data.html'\n\nThough if you've already changed your template, either via the aforementioned attribute or\nvia admin template discovery, you can easily take the minor changes from these listed\ntemplates and adapt them for your own needs.\n\n.. note::\n Both the provided templates check that the given context has ``change=True``\n and access to the ``original`` object being edited, so nothing will appear on\n the add screens.\n\nContributing\n------------\n\nPlease do!\n\nThe project is hosted on `GitHub`_ in the `kezabelle/django-haystackbrowser`_\nrepository. The main/stable branch is `master`_.\n\nBug reports and feature requests can be filed on the repository's `issue tracker`_.\n\nIf something can be discussed in 140 character chunks, there's also `my Twitter account`_.\n\nContributors\n^^^^^^^^^^^^\n\nThe following people have been of help, in some capacity.\n\n * `Ben Hastings`_, for testing it under **Django 1.4** and subsequently forcing\n me to stop it blowing up uncontrollably.\n * `David Novakovic`_, for getting it to at least work under **Grappelli**, and\n fixing an omission in the setup script.\n * `Francois Lebel`_, for various fixes.\n * `Jussi R\u00e4s\u00e4nen`_, for various fixes.\n * Vadim Markovtsev, for minor fix related to Django 1.8+.\n * `Micha\u00ebl Krens`_, for various fixes.\n * `Anton Shurashov`_, for fixes related to Django 2.0.\n\nTODO\n----\n\n * Ensure the new faceting features work as intended (the test database I\n have doesn't *really* cover enough, yet)\n\nKnown issues\n------------\n\n * Prior to `Django`_ 1.7, the links to the app admin may not actually work,\n because the linked app may not be mounted onto the AdminSite, but passing\n pretty much anything to the AdminSite app_list urlpattern will result in\n a valid URL. The other URLs should only ever work if they're mounted, though.\n See `ticket 21056`_ for the change.\n\nThe license\n-----------\n\nIt's `FreeBSD`_. There's a ``LICENSE`` file in the root of the repository, and\nany downloads.\n\n\n----\n\nCopyright (c) 2012, Keryn Knight\nAll rights reserved.\n\nRedistribution and use in source and binary forms, with or without\nmodification, are permitted provided that the following conditions are met:\n\n1. Redistributions of source code must retain the above copyright notice, this\n list of conditions and the following disclaimer.\n2. Redistributions in binary form must reproduce the above copyright notice,\n this list of conditions and the following disclaimer in the documentation\n and/or other materials provided with the distribution.\n\nTHIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS \"AS IS\" AND\nANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED\nWARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE\nDISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR\nANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES\n(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;\nLOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND\nON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT\n(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS\nSOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n\nThe views and conclusions contained in the software and documentation are those\nof the authors and should not be interpreted as representing official policies,\neither expressed or implied, of the FreeBSD Project.\n\n\n\n", "description_content_type": "", "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/kezabelle/django-haystackbrowser/tree/master", "keywords": "django", "license": "BSD License", "maintainer": "", "maintainer_email": "", "name": "django-haystackbrowser", "package_url": "https://pypi.org/project/django-haystackbrowser/", "platform": "OS Independent", "project_url": "https://pypi.org/project/django-haystackbrowser/", "project_urls": { "Homepage": "https://github.com/kezabelle/django-haystackbrowser/tree/master" }, "release_url": "https://pypi.org/project/django-haystackbrowser/0.6.3/", "requires_dist": [ "django-classy-tags (>=0.3.4.1)", "django-haystack (>=1.2.0)" ], "requires_python": "", "summary": "A reusable Django application for viewing and debugging all the data that has been pushed into Haystack", "version": "0.6.3" }, "last_serial": 4019955, "releases": { "0.6.1": [ { "comment_text": "", "digests": { "md5": "77471bb11bd8dd0b565393fa31f7f50b", "sha256": "c35018319babd4d01fedbcbbd4914a328750ae86b88b12c35251f4512cc745e0" }, "downloads": -1, "filename": "django_haystackbrowser-0.6.1-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "77471bb11bd8dd0b565393fa31f7f50b", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 37335, "upload_time": "2016-04-25T11:17:11", "url": "https://files.pythonhosted.org/packages/ba/2c/d42bc4a8a2b267e29fbb81b323151c1f02686a74311edffe6d2a3fe1e5b1/django_haystackbrowser-0.6.1-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "6824667426bf4d6cf9ebef4d9adcaced", "sha256": "d8a905087534826a68847f78424a15a44814f11563c66a5391af72713cdd2d46" }, "downloads": -1, "filename": "django-haystackbrowser-0.6.1.tar.gz", "has_sig": false, "md5_digest": "6824667426bf4d6cf9ebef4d9adcaced", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 38143, "upload_time": "2016-04-25T11:17:40", "url": "https://files.pythonhosted.org/packages/32/37/93d24a81c0092c3b61d4d5f2ba2ab04b92e9a643b918895e20c2230069a3/django-haystackbrowser-0.6.1.tar.gz" } ], "0.6.2": [ { "comment_text": "", "digests": { "md5": "227f2dcf97c3444435d79c4a2f9497c6", "sha256": "577a21b75007d90e69b169d0fb966b43872afeb05e94f2a5830fdae5c59efa33" }, "downloads": -1, "filename": "django_haystackbrowser-0.6.2-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "227f2dcf97c3444435d79c4a2f9497c6", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 40229, "upload_time": "2017-02-27T19:36:34", "url": "https://files.pythonhosted.org/packages/81/72/3b03e01d231b144ede8ba26efe07fbead7b5271c46743b71158fd051bf7c/django_haystackbrowser-0.6.2-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "a66591fde5e89401e71d0c24e544112b", "sha256": "27bafd474decb177c93b164ab431bbc8eea8b9d93e05c72c4bf0d68e957addb2" }, "downloads": -1, "filename": "django-haystackbrowser-0.6.2.tar.gz", "has_sig": false, "md5_digest": "a66591fde5e89401e71d0c24e544112b", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 41063, "upload_time": "2017-02-27T19:36:37", "url": "https://files.pythonhosted.org/packages/e7/6c/96c1df9e22fc520b4c1f89b2f3cca94264031ece5699b26aac6edd4e699a/django-haystackbrowser-0.6.2.tar.gz" } ], "0.6.3": [ { "comment_text": "", "digests": { "md5": "08c22dbb2c83b269e6689a869fe9d0b5", "sha256": "4f4594a7849acab1475fb55fca8b4affb46c1fec4db7003a67759e63faa147da" }, "downloads": -1, "filename": "django_haystackbrowser-0.6.3-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "08c22dbb2c83b269e6689a869fe9d0b5", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 34784, "upload_time": "2018-07-01T10:41:11", "url": "https://files.pythonhosted.org/packages/b1/96/a9e6e42f832b971b8177c294196249a93fb5a0cc539abacbd8b2196fbcdc/django_haystackbrowser-0.6.3-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "b539228d4bfe2a28e948e793b4416079", "sha256": "24110f2c15e6998079a2b3104b5a2e78985624235013f8423a967fbc5327f2c0" }, "downloads": -1, "filename": "django-haystackbrowser-0.6.3.tar.gz", "has_sig": false, "md5_digest": "b539228d4bfe2a28e948e793b4416079", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 44537, "upload_time": "2018-07-01T10:41:13", "url": "https://files.pythonhosted.org/packages/48/90/9f44b2e6738bc026870db3d36771d117ca3ce4b2e619e0ddd9635a1bfa05/django-haystackbrowser-0.6.3.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "08c22dbb2c83b269e6689a869fe9d0b5", "sha256": "4f4594a7849acab1475fb55fca8b4affb46c1fec4db7003a67759e63faa147da" }, "downloads": -1, "filename": "django_haystackbrowser-0.6.3-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "08c22dbb2c83b269e6689a869fe9d0b5", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 34784, "upload_time": "2018-07-01T10:41:11", "url": "https://files.pythonhosted.org/packages/b1/96/a9e6e42f832b971b8177c294196249a93fb5a0cc539abacbd8b2196fbcdc/django_haystackbrowser-0.6.3-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "b539228d4bfe2a28e948e793b4416079", "sha256": "24110f2c15e6998079a2b3104b5a2e78985624235013f8423a967fbc5327f2c0" }, "downloads": -1, "filename": "django-haystackbrowser-0.6.3.tar.gz", "has_sig": false, "md5_digest": "b539228d4bfe2a28e948e793b4416079", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 44537, "upload_time": "2018-07-01T10:41:13", "url": "https://files.pythonhosted.org/packages/48/90/9f44b2e6738bc026870db3d36771d117ca3ce4b2e619e0ddd9635a1bfa05/django-haystackbrowser-0.6.3.tar.gz" } ] }