Django-haystack

Latest version: v3.2.1

Safety actively analyzes 627655 Python packages for vulnerabilities to keep your Python projects secure.

Scan your dependencies

Page 2 of 4

2.5.0

-------------------

New
~~~
- SearchQuerySet.set_spelling_query for custom spellcheck. [Chris Adams]

This makes it much easier to customize the text sent to the
backend search engine for spelling suggestions independently
from the actual query being executed.
- Support ManyToManyFields in model_attr lookups. [Arjen Verstoep]

Thanks to Terr for the patch
- `update_index` will retry after backend failures. [Gilad Beeri]

Now `update_index` will retry failures multiple times before aborting
with a progressive time delay.

Thanks to Gilad Beeri (giladbeeri) for the patch
- `highlight()` accepts custom values on Solr and ES. [Chris Adams]

This allows the default values to be overriden and arbitrary
backend-specific parameters may be provided to Solr or ElasticSearch.

Thanks to tymofij for the patch

Closes 1334
- Allow Routers to return multiple indexes. [Chris Adams]

Thanks to Hugo Chargois (hchargois) for the patch

Closes 1337
Closes 934
- Support for newer versions of Whoosh. [Chris Adams]
- Split SearchView.create_response into get_context. [Chris Adams]

This makes it easy to override the default `create_response` behaviour
if you don't want a standard HTML response.

Thanks seocam for the patch

Closes 1338
- Django 1.9 support thanks to Claude Paroz. [Chris Adams]
- Create a changelog using gitchangelog. [Chris Adams]

This uses `gitchangelog <https://github.com/vaab/gitchangelog>`_ to
generate docs/changelog.rst from our Git commit history using the tags
for each version. The configuration is currently tracking upstream
exactly except for our version tags being prefixed with "v".

Changes
~~~~~~~
- Support for Solr 5+ spelling suggestion format. [Chris Adams]
- Set install requirements for Django versions. [Chris Adams]

This will prevent accidentally breaking apps when Django 1.10 is
released.

Closes 1375
- Avoid double-query for queries matching no results. [Chris Adams]
- Update supported/tested Django versions. [Chris Adams]

* setup.py install_requires uses `>=1.8` to match our current test
matrix
* Travis allows failures for Django 1.10 so we can start tracking the
upcoming release
- Make backend subclassing easier. [Chris Adams]

This change allows the backend build_search_kwargs to
accept arbitrary extra arguments, making life easier for authors of `SearchQuery` or `SearchBackend` subclasses when they can directly pass a value which is directly supported by the backend search client.
- Update_index logging & multiprocessing improvements. [Chris Adams]

* Since older versions of Python are no longer supported we no
longer conditionally import multiprocessing (see 1001)
* Use multiprocessing.log_to_stderr for all messages
* Remove previously-disabled use of the multiprocessing workers for index removals, allowing the worker code to be simplified
- Moved signal processor loading to app_config.ready. [Chris Adams]

Thanks to claudep for the patch

Closes 1260
- Handle `__in=[]` gracefully on Solr. [Chris Adams]

This commit avoids the need to check whether a list is empty to avoid an
error when using it for an `__in` filter.

Closes 358
Closes 1311

Fix
~~~
- Attribute resolution on models which have a property named `all`
(1405) [Henrique Chehad]

Thanks to Henrique Chehad (henriquechehad) for the patch

Closes 1404
- Tests will fall back to the Apache archive server. [Chris Adams]

The Apache 4.10.4 release was quietly removed from the mirrors without a
redirect. Until we have time to add newer Solr releases to the test
suite we'll download from the archive and let the Travis build cache
store it.
- Whoosh backend support for RAM_STORE (closes 1386) [Martin Owens]

Thanks to doctormo for the patch
- Unsafe update_worker multiprocessing sessions. [Chris Adams]

The `update_index` management command does not handle the
`multiprocessing` environment safely. On POSIX systems,
`multiprocessing` uses `fork()` which means that when called in a
context such as the test suite where the connection has already been
used some backends like pysolr or ElasticSearch may have an option
socket connected to the search server and that leaves a potential race
condition where HTTP requests are interleaved, producing unexpected
errors.

This commit resets the backend connection inside the workers and has
been stable across hundreds of runs, unlike the current situation where
a single-digit number of runs would almost certainly have at least one
failure.

Other improvements:
* Improved sanity checks for indexed documents in management
command test suite. This wasn’t actually the cause of the
problem above but since I wrote it while tracking down the
real problem there’s no reason not to use it.
* update_index now checks that each block dispatched was
executed to catch any possible silent failures.

Closes 1376
See 1001
- Tests support PyPy. [Chris Adams]

PyPy has an optimization which causes it to call __len__ when running a
list comprehension, which is the same thing Python does for
`list(iterable)`. This commit simply changes the test code to always use
`list` the PyPy behaviour matches CPython.
- Avoid an extra query on empty spelling suggestions. [Chris Adams]

None was being used as a placeholder to test whether to run
a spelling suggestion query but was also a possible response
when the backend didn’t return a suggestion, which meant
that calling `spelling_suggestion()` could run a duplicate
query.
- MultiValueField issues with single value (1364) [Arjen Verstoep]

Thanks to terr for the patch!
- Queryset slicing and reduced code duplication. [Craig de Stigter]

Now pagination will not lazy-load all earlier pages before returning the
result.

Thanks to craigds for the patch

Closes 1269
Closes 960
- Handle negative timestamps returned from ES. [Chris Adams]

Elastic search can return negative timestamps for histograms if the
dates are pre-1970. This PR properly handles these pre-1970 dates.

Thanks to speedplane for the patch

Closes 1239
- SearchMixin allows form initial values. [Chris Adams]

Thanks to ahoho for the patch

Closes 1319
- Graceful handling of empty __in= lists on ElasticSearch. [Chris Adams]

Thanks to boulderdave for the ES version of 1311

Closes 1335

Other
~~~~~
- Docs: update unsupported backends notes. [Chris Adams]

* Officially suggest developing backends as separate projects
* Recommend Sphinx users consider django-sphinxql
- V2.5.0. [Chris Adams]
- Bump version to 2.5.dev2. [Chris Adams]
- AUTHORS. [Tim Babych]
- Expand my username into name in changelog.txt. [Tim Babych]
- Corrected non-ascii characters in comments. (1390) [Mark Walker]
- Add lower and upper bounds for django versions. [Simon Hanna]
- Convert readthedocs link for their .org -> .io migration for hosted
projects. [Adam Chainz]

As per [their blog post of the 27th April](https://blog.readthedocs.com/securing-subdomains/) ‘Securing subdomains’:

> Starting today, Read the Docs will start hosting projects from subdomains on the domain readthedocs.io, instead of on readthedocs.org. This change addresses some security concerns around site cookies while hosting user generated data on the same domain as our dashboard.

Test Plan: Manually visited all the links I’ve modified.
- V2.5.dev1. [Chris Adams]
- Merge pull request 1349 from sbussetti/master. [Chris Adams]

Fix logging call in `update_index`
- Fixes improper call to logger in mgmt command. [sbussetti]
- Merge pull request 1340 from claudep/manage_commands. [Chris Adams]

chg: migrate management commands to argparse
- Updated management commands from optparse to argparse. [Claude Paroz]

This follows Django's same move and prevents deprecation warnings.
Thanks Mario César for the initial patch.
- Merge pull request 1225 from gregplaysguitar/patch-1. [Chris Adams]

fix: correct docstring for ModelSearchForm.get_models !minor
- Fix bogus docstring. [Greg Brown]
- Merge pull request 1328 from claudep/travis19. [Chris Adams]

Updated test configs to include Django 1.9
- Updated test configs to include Django 1.9. [Claude Paroz]
- Merge pull request 1313 from chrisbrooke/Fix-elasticsearch-2.0-meta-
data-changes. [Chris Adams]
- Remove boost which is now unsupported. [Chris Brooke]
- Fix concurrency issues when building UnifiedIndex. [Chris Adams]

We were getting this error a lot when under load in a multithreaded wsgi
environment:

Model '%s' has more than one 'SearchIndex`` handling it.

Turns out the connections in haystack.connections and the UnifiedIndex
instance were stored globally. However there is a race condition in
UnifiedIndex.build() when multiple threads both build() at once,
resulting in the above error.

Best fix is to never share the same engine or UnifiedIndex across
multiple threads. This commit does that.

Closes 959
Closes 615
- Load connection routers lazily. [Chris Adams]

Thanks to Tadas Dailyda (skirsdeda) for the patch

Closes 1034
Closes 1296
- DateField/DateTimeField accept strings values. [Chris Adams]

Now the convert method will be called by default when string values are
received instead of the normal date/datetime values.

Closes 1188
- Fix doc ReST warning. [Chris Adams]
- Merge pull request 1297 from martinsvoboda/patch-1. [Sam Peka]

Highlight elasticsearch 2.X is not supported yet
- Highlight in docs that elasticsearch 2.x is not supported yet. [Martin
Svoboda]
- Start updating compatibility notes. [Chris Adams]

* Deprecate versions of Django which are no longer
supported by the Django project team
* Update ElasticSearch compatibility messages
* Update Travis / Tox support matrix
- Merge pull request 1287 from ses4j/patch-1. [Sam Peka]

Remove duplicated SITE_ID from test_haystack/settings.py
- Remove redundant SITE_ID which was duplicated twice. [Scott Stafford]
- Add ``fuzzy`` operator to SearchQuerySet. [Chris Adams]

This exposes the backends’ native fuzzy query support.

Thanks to Ana Carolina (anacarolinats) and Steve Bussetti (sbussetti)
for the patch.
- Merge pull request 1281 from itbabu/python35. [Justin Caratzas]

Add python 3.5 to tests
- Add python 3.5 to tests. [Marco Badan]

ref: https://docs.djangoproject.com/en/stable/faq/install/#what-python-version-can-i-use-with-django
- SearchQuerySet: don’t trigger backend access in __repr__ [Chris Adams]

This can lead to confusing errors or performance issues by
triggering backend access at unexpected locations such as
logging.

Closes 1278
- Merge pull request 1276 from mariocesar/patch-1. [Chris Adams]

Use compatible get_model util to support new django versions

Thanks to mariocesar for the patch!
- Reuse haystack custom get model method. [Mario César Señoranis Ayala]
- Removed unused import. [Mario César Señoranis Ayala]
- Use compatible get_model util to support new django versions. [Mario
César Señoranis Ayala]
- Merge pull request 1263 from dkarchmer/patch-1. [Chris Adams]

Update views_and_forms.rst
- Update views_and_forms.rst. [David Karchmer]

After breaking my head for an hour, I realized the instructions to upgrade to class based views is incorrect. It should indicate that switch from `page` to `page_obj` and not `page_object`

2.4.1

-------------------
- V2.4.1. [Chris Adams]
- Minimal changes to the example project to allow test use. [Chris
Adams]
- Merge remote-tracking branch 'django-haystack/pr/1261' [Chris Adams]

The commit in 1252 / 1251 was based on the assumption that the
tutorial used the new generic views, which is not yet correct.

This closes 1261 by restoring the wording and adding some tests to
avoid regressions in the future before the tutorial is overhauled.
- Rename 'page_obj' with 'page' in the tutorial, section Search Template
as there is no 'page_obj' in the controller and this results giving
'No results found' in the search. [bboneva]
- Style cleanup. [Chris Adams]

* Remove duplicate & unused imports
* PEP-8 indentation & whitespace
* Use `foo not in bar` instead of `not foo in bar`
- Update backend logging style. [Chris Adams]

* Make Whoosh message consistent with the other backends
* Pass exception info to loggers in except: blocks
* PEP-8
- Avoid unsafe default value on backend clear() methods. [Chris Adams]

Having a mutable structure like a list as a default value is unsafe;
this commit changes that to the standard None.
- Merge pull request 1254 from chocobn69/master. [Chris Adams]

Update for API change in elasticsearch 1.8 (closes 1253)

Thanks to chocobn69 for the patch
- Fix 1253. [choco]
- Tests: update Solr launcher for changed mirror format. [Chris Adams]

The Apache mirror-detection script appears to have changed its response
format recently. This change handles that and makes future error
messages more explanatory.
- Bump doc version numbers - closes 1105. [Chris Adams]
- Merge pull request 1252 from rhemzo/master. [Chris Adams]

Update tutorial.rst (closes 1251)

Thanks to rhemzo for the patch
- Update tutorial.rst. [rhemzo]

change page for page_obj
- Merge pull request 1240 from speedplane/improve-cache-fill. [Chris
Adams]

Use a faster implementation of query result cache
- Use a faster implementation of this horrible cache. In my tests it
runs much faster and uses far less memory. [speedplane]
- Merge pull request 1149 from lovmat/master. [Chris Adams]

FacetedSearchMixin bugfixes and improvements

* Updated documentation & example code
* Fixed inheritance chain
* Added facet_fields

Thanks to lovmat for the patch
- Updated documentation, facet_fields attribute. [lovmat]
- Added facet_fields attribute. [lovmat]

Makes it easy to include facets into FacetedSearchVIew
- Bugfixes. [lovmat]
- Merge pull request 1232 from dlo/patch-1. [Chris Adams]

Rename elasticsearch-py to elasticsearch in docs

Thanks to dlo for the patch
- Rename elasticsearch-py to elasticsearch in docs. [Dan Loewenherz]
- Update wording in SearchIndex get_model exception. [Chris Adams]

Thanks to Greg Brown (gregplaysguitar) for the patch

Closes 1223
- Corrected exception wording. [Greg Brown]
- Allow failures on Python 2.6. [Chris Adams]

Some of our test dependencies like Mock no longer support it. Pinning
Mock==1.0.1 on Python 2.6 should avoid that failure but the days of
Python 2.6 are clearly numbered.
- Travis: stop testing unsupported versions of Django on Python 2.6.
[Chris Adams]
- Use Travis’ matrix support rather than tox. [Chris Adams]

This avoids a layer of build setup and makes the Travis
console reports more useful
- Tests: update the test version of Solr in use. [Chris Adams]

4.7.2 has disappeared from most of the Apache mirrors

2.4.0

- Bump version to 2.4.0.dev1. [Chris Adams]
- Travis: remove Django 1.8 from allow_failures. [Chris Adams]
- Tests: update test object creation for Django 1.8. [Chris Adams]

Several of the field tests previously assigned a related test model
instance before saving it::

mock_tag = MockTag(name='primary')
mock = MockModel()
mock.tag = mock_tag

Django 1.8 now validates this dodgy practice and throws an error.

This commit simply changes it to use `create()` so the mock_tag will
have a pk before assignment.
- Update AUTHORS. [Chris Adams]
- Tests: fix deprecated Manager.get_query_set call. [Chris Adams]
- Updating haystack to test against django 1.8. [Chris Adams]

Updated version of troygrosfield's patch updating the test-runner for
Django 1.8

Closes 1175
- Travis: allow Django 1.8 failures until officially supported. [Chris
Adams]

See 1175
- Remove support for Django 1.5, add 1.8 to tox/travis. [Chris Adams]

The Django project does not support 1.5 any more and it's the source of
most of our false-positive test failures
- Use db.close_old_connections instead of close_connection. [Chris
Adams]

Django 1.8 removed the `db.close_connection` method.

Thanks to Alfredo Armanini (phingage) for the patch
- Fix mistake in calling super TestCase method. [Ben Spaulding]

Oddly this caused no issue on Django <= 1.7, but it causes numerous
errors on Django 1.8.
- Correct unittest imports from commit e37c1f3. [Ben Spaulding]
- Prefer stdlib unittest over Django's unittest2. [Ben Spaulding]

There is no need to fallback to importing unittest2 because Django 1.5
is the oldest Django we support, so django.utils.unittest is guaranteed
to exist.
- Prefer stdlib OrderedDict over Django's SortedDict. [Ben Spaulding]

The two are not exactly they same, but they are equivalent for
Haystack's needs.
- Prefer stdlib importlib over Django's included version. [Ben
Spaulding]

The app_loading module had to shuffle things a bit. When it was
importing the function it raised a [RuntimeError][]. Simply importing
the module resolved that.

[RuntimeError]: https://gist.github.com/benspaulding/f36eaf483573f8e5f777
- Docs: explain how field boosting interacts with filter. [Chris Adams]

Thanks to amjoconn for contributing a doc update to help newcomers

Closes 1043
- Add tests for values/values_list slicing. [Chris Adams]

This confirms that 1019 is fixed
- Update_index: avoid gaps in removal logic. [Chris Adams]

The original logic did not account for the way removing records
interfered with the pagination logic.

Closes 1194
- Update_index: don't use workers to remove stale records. [Chris Adams]

There was only minimal gain to this because, unlike indexing, removal is
a simple bulk operation limited by the search engine.

See 1194
See 1201
- Remove lxml dependency. [Chris Adams]

pysolr 3.3.2+ no longer requires lxml, which saves a significant install
dependency
- Allow individual records to be skipped while indexing. [Chris Adams]

Previously there was no easy way to skip specific objects other than
filtering the queryset. This change allows a prepare method to raise
`SkipDocument` after calling methods or making other checks which cannot
easily be expressed as database filters.

Thanks to Felipe Prenholato (chronossc) for the patch

Closes 380
Closes 1191
- Update_index: avoid "MySQL has gone away error" with workers. [Eric
Bressler (Platform)]

This fixes an issue with a stale database connection being passed to
a multiprocessing worker when using `--remove`

Thanks to ebressler for the patch

Closes 1201
- Depend on pysolr 3.3.1. [Chris Adams]
- Start-solr-test-server: avoid Travis dependency. [Chris Adams]

This will now fall back to the current directory when run outside of our Travis-CI environment
- Fix update_index --remove handling. [Chris Adams]

* Fix support for custom keys by reusing the stored value rather than
regenerating following the default pattern
* Batch remove operations using the total number of records
in the search index rather than the database

Closes 1185
Closes 1186
Closes 1187
- Merge pull request 1177 from paulshannon/patch-1. [Chris Adams]

Update TravisCI link in README
- Update TravisCI link. [Paul Shannon]

I think the repo got changed at some point and the old project referenced at travisci doesn't exist anymore...
- Travis: enable containers. [Chris Adams]

* Move apt-get installs to the addons/apt_packages:
http://docs.travis-ci.com/user/apt-packages/
* Set `sudo: false` to enable containers:
http://docs.travis-ci.com/user/workers/container-based-infrastructure/
- Docs: correct stray GeoDjango doc link. [Chris Adams]
- Document: remove obsolete Whoosh Python 3 warning. [Chris Adams]

Thanks to gitaarik for the pull request

Closes 1154
Fixes 1108
- Remove method_decorator backport (closes 1155) [Chris Adams]

This was no longer used anywhere in the Haystack source or documentation
- Travis: enable APT caching. [Chris Adams]
- Travis: update download caching. [Chris Adams]
- App_loading cleanup. [Chris Adams]

* Add support for Django 1.7+ AppConfig
* Rename internal app_loading functions to have haystack_ prefix to make
it immediately obvious that they are not Django utilities and start
* Add tests to avoid regressions for apps nested with multiple levels of
module hierarchy like `raven.contrib.django.raven_compat`
* Refactor app_loading logic to make it easier to remove the legacy
compatibility code when we eventually drop support for older versions
of Django

Fixes 1125
Fixes 1150
Fixes 1152
Closes 1153
- Switch defaults closer to Python 3 defaults. [Chris Adams]

* Add __future__ imports:

isort --add_import 'from __future__ import absolute_import, division, print_function, unicode_literals'

* Add source encoding declaration header
- Setup.py: use strict PEP-440 dev version. [Chris Adams]

The previous version was valid as per PEP-440 but triggers a warning in
pkg_resources
- Merge pull request 1146 from kamilmowinski/patch-1. [Chris Adams]

Fix typo in SearchResult documentation
- Update searchresult_api.rst. [kamilmowinski]
- Merge pull request 1143 from wicol/master. [Chris Adams]

Fix deprecation warnings in Django 1.6.X (thanks wicol)
- Fix deprecation warnings in Django 1.6.X. [Wictor]

Options.model_name was introduced in Django 1.6 together with a deprecation warning:
https://github.com/django/django/commit/ec469ade2b04b94bfeb59fb0fc7d9300470be615
- Travis: move tox setup to before_script. [Chris Adams]

This should cause dependency installation problems to show up as build
errors rather than outright failures
- Update ElasticSearch defaults to allow autocompleting numbers. [Chris
Adams]

Previously the defaults for ElasticSearch used the `lowercase`
tokenizer, which prevented numbers from being autocompleted.

Thanks to Phill Tornroth (phill-tornroth) for contributing a patch
which changes the default settings to use the `standard` tokenizer
with the `lowercase` filter

Closes 1056
- Update documentation for new class-based views. [Chris Adams]

Thanks to troygrosfield for the pull-request

Closes 1139
Closes 1133
See 1130
- Added documentation for configuring facet behaviour. [Chris Adams]

Thanks to Philippe Luickx for the contribution

Closes 1111
- UnifiedIndex has a stable interface to get all indexes. [Chris Adams]

Previously it was possible for UnifiedIndexes.indexes to be empty when
called before the list had been populated. This change deprecates
accessing `.indexes` directly in favor of a `get_indexes()` accessor
which will call `self.build()` first if necessary.

Thanks to Phill Tornroth for the patch and tests.

Closes 851
- Add support for SQ in SearchQuerySet.narrow() (closes 980) [Chris
Adams]

Thanks to Andrei Fokau (andreif) for the patch and tests
- Disable multiprocessing on Python 2.6 (see 1001) [Chris Adams]

multiprocessing.Pool.join() hangs reliably on Python 2.6 but
not any later version tested. Since this is an optional
feature we’ll simply disable it
- Bump version number to 2.4.0-dev. [Chris Adams]
- Update_index: wait for all pool workers to finish. [Chris Adams]

There was a race condition where update_index() would return
before all of the workers had finished updating Solr. This
manifested itself most frequently as Travis failures
for the multiprocessing test (see 1001).
- Tests: Fix ElasticSearch index setup (see 1093) [Chris Adams]

Previously when clear_elasticsearch_index() was called to
reset the tests, this could produce confusing results
because it cleared the mappings without resetting the
backend’s setup_complete status and thus fields which were
expected to have a specific type would end up being inferred

With this changed test_regression_proper_start_offsets and
test_more_like_this no longer fail
- Update rebuild_index --nocommit handling and add tests. [Chris Adams]

rebuild_index builds its option list by combining the options from
clear_index and update_index. This previously had a manual exclude list
for options which were present in both commands to avoid conflicts but
the nocommit option wasn't in that list.

This wasn't tested because our test suite uses call_command rather than
invoking the option parser directly.

This commit also adds tests to confirm that --nocommit will actually
pass commit=False to clear_index and update_index.

Closes 1140
See 1090
- Support ElasticSearch 1.x distance filter syntax (closes 1003) [Chris
Adams]

The elasticsearch 1.0 release was backwards incompatible
with our previous usage.

Thanks to dulaccc for the patch adding support.
- Docs: add Github style guide link to pull request instructions. [Chris
Adams]

The recent Github blog post makes a number of good points:

https://github.com/blog/1943-how-to-write-the-perfect-pull-request
- Fixed exception message when resolving model_attr. [Wictor]

This fixes the error message displayed when model_attr references an
unknown attribute.

Thanks to wicol for the patch

Closes 1094
- Compatibility with Django 1.7 app loader (see 1097) [Chris Adams]

* Added wrapper around get_model, so that Django 1.7 uses the new app
loading mechanism.
* Added extra model check to prevent that a simple module is treated as
model.

Thanks to Dirk Eschler (deschler) for the patch.
- Fix index_fieldname to match documentation (closes 825) [Chris Adams]

jarig contributed a fix to ensure that index_fieldname renaming does
not interfere with using the field name declared on the index.
- Add tests for Solr/ES spatial order_by. [Chris Adams]

This exists primarily to avoid the possibility of breaking
compatibility with the inconsistent lat, lon ordering used
by Django, Solr and ElasticSearch.
- Remove undocumented `order_by_distance` [Chris Adams]

This path was an undocumented artifact of the original
geospatial feature-branch back in the 1.X era. It wasn’t
documented and is completely covered by the documented API.
- ElasticSearch tests: PEP-8 cleanup. [Chris Adams]
- Implement managers tests for spatial features. [Chris Adams]

This is largely shadowed by the actual spatial tests but it
avoids surprises on the query generation

* Minor PEP-8
- Remove unreferenced add_spatial methods. [Chris Adams]

SolrSearchQuery and ElasticsearchSearchQuery both defined
an `add_spatial` method which was neither called nor
documented.
- Remove legacy httplib/httplib2 references. [Chris Adams]

We’ve actually delegated the actual work to requests but the
docs & tests had stale references
- Tests: remove legacy spatial backend code. [Chris Adams]

This has never run since the solr_native_distance backend
did not exist and thus the check always failed silently
- ElasticSearch backend: minor PEP-8 cleanup. [Chris Adams]
- Get-solr-download-url: fix Python 3 import path. [Chris Adams]

This allows the scripts to run on systems where Python 3 is
the default version
- Merge pull request 1130 from troygrosfield/master. [Chris Adams]

Added generic class based search views

(thanks troygrosfield)
- Removed "expectedFailure". [Troy Grosfield]
- Minor update. [Troy Grosfield]
- Added tests for the generic search view. [Troy Grosfield]
- Hopefully last fix for django version checking. [Troy Grosfield]
- Fix for django version check. [Troy Grosfield]
- Adding fix for previously test for django 1.7. [Troy Grosfield]
- Adding py34-django1.7 to travis. [Troy Grosfield]
- Test for the elasticsearch client. [Troy Grosfield]
- Added unicode_literals import for py 2/3 compat. [Troy Grosfield]
- Added generic class based search views. [Troy Grosfield]
- Merge pull request 1101 from iElectric/nothandledclass. [Chris Adams]

Report correct class when raising NotHandled
- Report correct class when raising NotHandled. [Domen Kožar]
- Merge pull request 1090 from andrewschoen/feature/no-commit-flag.
[Chris Adams]

Adds a --nocommit arg to the update_index, clear_index and rebuild_index management command.
- Adds a --nocommit arg to the update_index, clear_index and
rebuild_index management commands. [Andrew Schoen]
- Merge pull request 1103 from pkafei/master. [Chris Adams]

Update documentation to reference Solr 4.x
- Changed link to official archive site. [Portia Burton]
- Added path to schema.xml. [Portia Burton]
- Added latest version of Solr to documentation example. [Portia Burton]
- Update ElasticSearch version requirements. [Chris Adams]
- Elasticsearch's python api by default has _source set to False, this
causes keyerror mentioned in bug 1019. [xsamurai]
- Solr: clear() won’t call optimize when commit=False. [Chris Adams]

An optimize will trigger a commit implicitly so we’ll avoid
calling it when the user has requested not to commit
- Bumped __version__ (closes 1112) [Dan Watson]
- Travis: allow PyPy builds to fail. [Chris Adams]

This is currently unstable and it's not a first-class supported platform
yet
- Tests: fix Solr server tarball test. [Chris Adams]

On a clean Travis instance, the tarball won't exist
- Tests: have Solr test server startup script purge corrupt tarballs.
[Chris Adams]

This avoids tests failing if a partial download is cached by Travis
- Merge pull request 1084 from streeter/admin-mixin. [Daniel Lindsley]

Document and add an admin mixin
- Document support for searching in the Django admin. [Chris Streeter]
- Add some spacing. [Chris Streeter]
- Create an admin mixin for external use. [Chris Streeter]

There are cases where one might have a different base admin class, and
wants to use the search features in the admin as well. Creating a mixin
makes this a bit cleaner.

2.3.2

- Allow individual records to be skipped while indexing. [Chris Adams]

Previously there was no easy way to skip specific objects other than
filtering the queryset. This change allows a prepare method to raise
`SkipDocument` after calling methods or making other checks which cannot
easily be expressed as database filters.

Thanks to Felipe Prenholato (chronossc) for the patch

Closes 380
Closes 1191

2.3.1

-------------------
- V2.3.1. [Chris Adams]
- Tolerate non-importable apps like django-debug-toolbar. [Chris Adams]

If your installed app isn't even a valid Python module, haystack will
issue a warning but continue.

Thanks to gojomo for the patch

Closes 1074
Closes 1075
- Allow apps without models.py on Django <1.7. [Chris Adams]

This wasn't officially supported by Django prior to 1.7 but is used by
some third-party apps such as Grappelli

This commit adds a somewhat contrived test app to avoid future
regressions by ensuring that the test suite always has an application
installed which does not have models.py

See 1073

2.3.0

-------------------
- Travis: Enable IRC notifications. [Chris Adams]
- Fix app loading call signature. [Chris Adams]

Updated code from 1016 to ensure that get_models always
returns a list (previously on Django 1.7 it would return
the bare model when called with an argument of the form
`app.modelname`)

Add some basic tests
- App loading: use ImproperlyConfigured for bogus app names. [Chris
Adams]

This never worked but we’ll be more consistent and return
ImproperlyConfigured instead of a generic LookupError
- App Loading: don’t suppress app-registry related exceptions. [Chris
Adams]

This is just asking for trouble in the future. If someone comes up with
an edge case, we should add a test for it
- Remove Django version pin from install_requires. [Chris Adams]
- Django 1.7 support for app discovery. [Chris Adams]

* Refactored Xaroth’s patch from 1015 into a separate utils
module
* PEP-8 cleanup
- Start the process of updating for v2.3 release. [Chris Adams]
- Django 1.7 compatibility for model loading. [Chris Adams]

This refactors the previous use of model _meta.module_name and updates
the tests so the previous change can be tested safely.

Closes 981
Closes 982
- Update tox Django version pins. [Chris Adams]
- Mark expected failures for Django 1.7 (see 1069) [Chris Adams]
- Django 1.7: ensure that the app registry is ready before tests are
loaded. [Chris Adams]

The remaining test failures are due to some of the oddities in model
mocking, which can be solved by overhauling the way we do tests and
mocks.
- Tests: Whoosh test overhaul. [Chris Adams]

* Move repetitive filesystem reset logic into WhooshTestCase which
cleans up after itself
* Use mkdtemp instead of littering up the current directory with a
'tmp' subdirectory
* Use skipIf rather than expectFailure on test_writable to disable
it only when STORAGE=ram rather than always
- Unpin elasticsearch library version for testing. [Chris Adams]
- Tests: add MIDDLEWARE_CLASSES for Django 1.7. [Chris Adams]
- Use get_model_ct_tuple to generate template name. [Chris Adams]
- Refactor simple_backend to use get_model_ct_tuple. [Chris Adams]
- Haystack admin: refactor to use get_model_ct_tuple. [Chris Adams]
- Consolidate model meta references to use get_model_ct (see 981)
[Chris Adams]

This use of a semi-public Django interface will break in Django 1.7
and we can start preparing by using the existing
haystack.utils.get_model_ct function instead of directly accessing
it everywhere.
- Refactor get_model_ct to handle Django 1.7, add tuple version. [Chris
Adams]

We have a mix of model _meta access which usually expects strings but in
a few places needs raw values. This change adds support for Django 1.7
(see https://code.djangoproject.com/ticket/19689) and allows raw tuple
access to handle other needs in the codebase
- Add Django 1.7 warning to Sphinx docs as well. [Chris Adams]

Page 2 of 4

© 2024 Safety CLI Cybersecurity Inc. All Rights Reserved.