Support Local Sites in search.

Review Request #7062 — Created March 14, 2015 and submitted — Latest diff uploaded

Information

Review Board
release-2.0.x
cc05769...

Reviewers

Review requests and users on Local Sites are now indexed. When
searching, the Local Site (or lack thereof) is taken into account, and
only the appropriate results will be returned.

There's a BaseSearchIndex that all other search indexes must subclass.
This takes care of storing information on the associated local site(s)
in a consistent manner, to ease search queries. If no local sites are
associated with the object being indexed, the list will consist of a
single item: 0. This value indicates no local sites, and is easy to
query. This replaces the need for a separate boolean field. Empty lists
cannot be used, since there's no way to filter on these in any
consistent way across search backends.

As part of this, I had to remove usage of Haystack's
search_view_factory, which doesn't accept URL arguments. We now have our
own wrapper view that constructs the RBSearchView.

This requires a full re-index.

On a non-local site, I tried searching for both non-local site review requests
and local site review requests. Only the ones not on a local site were returned.

I repeated the same test when searching on a local site. Only the ones on that
local site were returned.