[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[GMG-Devel] [PATCH 00/83] Search plugin
From: |
Alon Levy |
Subject: |
[GMG-Devel] [PATCH 00/83] Search plugin |
Date: |
Tue, 25 Feb 2014 21:57:43 +0200 |
This is as you can see from the author breakdown below a plugin written by
Google summer of code student Praveen, I picked it up and did a few small fixes
and added front page integration, and have been using it for the last two
months on mediagoblin.tami.org.il pretty happily. I don't claim to know it's
performance (based on whoosh) or if it works with all possible plugin
combinations. It defaults for off (and tested that way too). Please review,
comment, and if there is none, push.
Note: patch 45 is at
https://gitorious.org/mediagoblin/alons-mediagoblin/commit/cb4c08409cfc38f75c8ddbd7e988f4efb42caa22
because send-email complains:
fatal:
patches.search.v1/0045-Add-jquery-ui-js-and-css-files-and-create-symlinks.patch:
26: patch contains a line longer than 998 characters
Alon Levy (7):
search: add gmg command populate_all_indices
search: fix missing template context variable for queryless query view
search: add frontpage search bar if search plugin is enabled
docs/media-types.rst: fix double 'the'
models: add accessor media_entry_state for search plugin listener
search/indices: only show processed media entry related items in
results
search/listeners: only add processed media entry related objects to
search index
Praveen Kumar (76):
Register search plugin with mediagoblin.ini
Correct indices storage dictionary in config_spec.ini
Refactor exceptions raised by the search plugin
Fix typos in search.models
Rename models.py to indices.py as these will not be stored in db.
Remove global constants from the top of indices.py
Fix imports and other bugs in indices.py
Add schemas.py which will store all index schemas.
Store also the field names in the SearchIndex object which is also
necessary while searching.
Correct the class index schema class.
Add indexer for MediaEntry objects.
Add IndexRegistry class to maintain the search indices.
Clean up plugins.search.indices
Rename base.py to registry.py and indices.py to base.py.
Add index identifier to SearchIndex.
Correct the index identifier.
Collect all indices in indices.py
Add method to create a document from a model instance
Add event listeners for tracking ORM events for indices.
Register indices and orm events for search.
Fix bugs and add search method in SearchIndex
Add ListenerRegistry class to collect all the listeners.
Add ORMEventsListener class to implement the ORM Events
Correct indentations in search.__init__
Add search forms.
Add view to handle search queries.
Add html template for search page.
Fix bugs
Add methods to interpret results by the SearchIndex object
fix parameters in search views
Refactor SearchIndex and add method to update an index.
Add event listener for model update
Add listener for model delete event.
Fix bugs in SearchIndex
Add indices for MediaEntry and MediaTag.
Add schema for MediaTag.
Register schemas for MediaEntry and MediaTag.
Add gmg command to delete all indices.
Clean up and add docstring to search methods.
Add try-except block to event listeners.
Correct method names in event listeners
Store attributes from a model only it its available.
Add field for storing search results.
Remove the field for storing search results with the index.
Add jquery-ui js and css files; and create symlinks.
Add verbose_name and css_id to search results.
Adapt results collection to change in result generation.
Modify search template to show tabbed results.
Show only unique results.
Change element ids and some template fixes.
Change view function for the search page.
Change the identifiers used by the indices.
Update the identifiers for MediaEntry and MediaTag indices.
Make index registry return indices for given identifiers.
Add a new view that handles GET search requests.
Clean search template and make it send GET form requests.
Add a constants.py file to store index identifiers.
Let index registry return an interable of search indices.
Iterate through an iterable object for search indices.
Don't pass the CSRF token as a GET parameter.
Fix bugs.
Add WhooshResultsPagination and WhooshResultsCursor classes.
Add constant that holds all the enabled indices.
Include total count of the results in the results.
Fix bug in IndexRegistry.
Add pagination to the search results.
Extend pagination class in tools.pagination.
Change search template to accomodate pagination.
Let the WhooshResultsCursor be defined in the paginator itself.
Refactor search_in_indices to make it search only in a single index.
Return no results if the category given by the client is invalid.
Add search index for MediaComment.
Add Collection to the search indices.
Allow extra parameters to be passed to a paginated page.
Display the tab a user was previously at when a page reloads.
Remove function copied from stackoverflow and fix bug.
docs/source/siteadmin/media-types.rst | 2 +-
extlib/jqueryui/jquery-ui.css | 1177 ++
extlib/jqueryui/jquery-ui.js | 15003 +++++++++++++++++++
mediagoblin.ini | 4 +-
mediagoblin/db/models.py | 6 +
mediagoblin/gmg_commands/__init__.py | 8 +
mediagoblin/gmg_commands/search.py | 19 +
mediagoblin/plugins/search/__init__.py | 86 +-
mediagoblin/plugins/search/base.py | 299 +
mediagoblin/plugins/search/config_spec.ini | 2 +-
mediagoblin/plugins/search/constants.py | 22 +
mediagoblin/plugins/search/exceptions.py | 12 +-
mediagoblin/plugins/search/forms.py | 8 +
mediagoblin/plugins/search/indexer.py | 27 +-
mediagoblin/plugins/search/indices.py | 155 +
mediagoblin/plugins/search/listeners.py | 77 +
mediagoblin/plugins/search/models.py | 101 -
mediagoblin/plugins/search/registry.py | 77 +
mediagoblin/plugins/search/schemas.py | 69 +
.../mediagoblin/plugins/search/search_form.html | 8 +
mediagoblin/plugins/search/utils.py | 39 +
mediagoblin/plugins/search/views.py | 131 +
mediagoblin/static/css/extlib/jquery-ui.css | 1 +
mediagoblin/static/js/extlib/jquery-ui.js | 1 +
mediagoblin/templates/mediagoblin/root.html | 2 +
.../templates/mediagoblin/search/results_list.html | 68 +
.../templates/mediagoblin/search/search.html | 63 +
mediagoblin/tools/pagination.py | 12 +-
28 files changed, 17359 insertions(+), 120 deletions(-)
create mode 100644 extlib/jqueryui/jquery-ui.css
create mode 100644 extlib/jqueryui/jquery-ui.js
create mode 100644 mediagoblin/gmg_commands/search.py
create mode 100644 mediagoblin/plugins/search/base.py
create mode 100644 mediagoblin/plugins/search/constants.py
create mode 100644 mediagoblin/plugins/search/forms.py
create mode 100644 mediagoblin/plugins/search/indices.py
create mode 100644 mediagoblin/plugins/search/listeners.py
delete mode 100644 mediagoblin/plugins/search/models.py
create mode 100644 mediagoblin/plugins/search/registry.py
create mode 100644 mediagoblin/plugins/search/schemas.py
create mode 100644
mediagoblin/plugins/search/templates/mediagoblin/plugins/search/search_form.html
create mode 100644 mediagoblin/plugins/search/utils.py
create mode 100644 mediagoblin/plugins/search/views.py
create mode 120000 mediagoblin/static/css/extlib/jquery-ui.css
create mode 120000 mediagoblin/static/js/extlib/jquery-ui.js
create mode 100644 mediagoblin/templates/mediagoblin/search/results_list.html
create mode 100644 mediagoblin/templates/mediagoblin/search/search.html
--
1.8.5.3
- [GMG-Devel] [PATCH 00/83] Search plugin,
Alon Levy <=
- [GMG-Devel] [PATCH 01/83] Register search plugin with mediagoblin.ini, Alon Levy, 2014/02/25
- [GMG-Devel] [PATCH 02/83] Correct indices storage dictionary in config_spec.ini, Alon Levy, 2014/02/25
- [GMG-Devel] [PATCH 03/83] Refactor exceptions raised by the search plugin, Alon Levy, 2014/02/25
- [GMG-Devel] [PATCH 04/83] Fix typos in search.models, Alon Levy, 2014/02/25
- [GMG-Devel] [PATCH 05/83] Rename models.py to indices.py as these will not be stored in db., Alon Levy, 2014/02/25
- [GMG-Devel] [PATCH 06/83] Remove global constants from the top of indices.py, Alon Levy, 2014/02/25
- [GMG-Devel] [PATCH 07/83] Fix imports and other bugs in indices.py, Alon Levy, 2014/02/25
- [GMG-Devel] [PATCH 08/83] Add schemas.py which will store all index schemas., Alon Levy, 2014/02/25
- [GMG-Devel] [PATCH 09/83] Store also the field names in the SearchIndex object which is also necessary while searching., Alon Levy, 2014/02/25
- [GMG-Devel] [PATCH 10/83] Correct the class index schema class., Alon Levy, 2014/02/25