[GeoNode-users] Extend autocomplete-light with new fields

Toni Schönbuchner toni.schoenbuchner at csgis.de
Wed Feb 22 04:26:36 PST 2017

Hi together,

this might be an easy one. In geonode 2.4 I have extended autocomplete registry to search in more fields
on layers left side title-search-input.

https://github.com/GeoNode/geonode/blob/2.4.x/geonode/base/autocomplete_light_registry.py <https://github.com/GeoNode/geonode/blob/2.4.x/geonode/base/autocomplete_light_registry.py>

	autocomplete_js_attributes={'placeholder': 'Resource name..', },)

then changed the base model to return abstract and purpose content as well:

https://github.com/GeoNode/geonode/blob/2.4.x/geonode/base/models.py#L342 <https://github.com/GeoNode/geonode/blob/2.4.x/geonode/base/models.py#L342>
    def __unicode__(self):
        return self.title + ’,’ + self.abstract + ’,’ + self.purpose

The result is a user can search f.e. for ‚dog‘ and autocomplete shows choices like:
Dog Title, Dogs Heaven, the purpose is sleep
Dogs world, Dogs Hell, the purpose is eat

All that is missing is that I do not want to show a field when the search term is not
found in it. F.e. if purpose does not has ‚dog‘ autoselect should not show it.
Dog Title, Dogs Heaven

From the documentation of DAL I assumed that the way to go is to create/register a subclass like:

class CustomResource(autocomplete_light.AutocompleteModelBase):
    search_fields = ['title', ‚abstract‘,’purpose']
    model = ResourceBase


and override the httpResponse method. Unfortunately this basic step already ends in a 404.
Maybe one could bring me on the right track how to achieve filtering the return.


-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.osgeo.org/pipermail/geonode-users/attachments/20170222/99d6c35b/attachment.html>

More information about the geonode-users mailing list