profile: register users search engine (#26261)
This commit is contained in:
parent
2dc33daf78
commit
ceaca4edd1
|
@ -1,3 +1,5 @@
|
|||
# -*- coding: utf-8 -*-
|
||||
#
|
||||
# combo - content management system
|
||||
# Copyright (C) 2014-2018 Entr'ouvert
|
||||
#
|
||||
|
@ -23,4 +25,38 @@ class AppConfig(django.apps.AppConfig):
|
|||
name = 'combo.profile'
|
||||
verbose_name = _('Profile')
|
||||
|
||||
def ready(self):
|
||||
from combo.apps.search import engines
|
||||
engines.register(self.get_search_engines)
|
||||
|
||||
def get_search_engines(self):
|
||||
from combo.data.models import Page
|
||||
from django.conf import settings
|
||||
|
||||
user_page = Page.objects.filter(sub_slug__contains='<name_id>').first()
|
||||
if not user_page:
|
||||
return
|
||||
user_page_base_url = user_page.get_online_url()
|
||||
|
||||
# return entry using first(&only) authentic (if it exists)
|
||||
for key, service in settings.KNOWN_SERVICES.get('authentic', {}).items():
|
||||
return {
|
||||
'users': {
|
||||
'url': service['url'] + 'api/users/?q=%(q)s',
|
||||
'label': _('Users'),
|
||||
'signature': True,
|
||||
'data_key': 'results',
|
||||
'hit_url_template': user_page_base_url + '{{uuid}}/',
|
||||
'hit_label_template': '{{first_name}} {{last_name}}',
|
||||
'hit_description_template':
|
||||
'{{ email|default:"" }}'
|
||||
'{% if phone %} 📞 {{ phone }}{% endif %}'
|
||||
'{% if mobile %} 📱 {{ mobile }}{% endif %}'
|
||||
'{% if address or zipcode or city %} 📨 {% endif %}'
|
||||
'{% if address %} {{ address }}{% endif %}'
|
||||
'{% if zipcode %} {{ zipcode }}{% endif %}'
|
||||
'{% if city %} {{ city }}{% endif %}'
|
||||
}
|
||||
}
|
||||
|
||||
default_app_config = 'combo.profile.AppConfig'
|
||||
|
|
|
@ -373,3 +373,16 @@ def test_wcs_search_engines(app):
|
|||
search_engines = engines.get_engines()
|
||||
assert 'tracking-code' not in search_engines.keys()
|
||||
assert len([x for x in search_engines.keys() if x.startswith('formdata:')]) == 0
|
||||
|
||||
|
||||
def test_profile_search_engines(app):
|
||||
search_engines = engines.get_engines()
|
||||
assert 'users' not in search_engines.keys()
|
||||
with override_settings(KNOWN_SERVICES={'authentic': {'default': {'title': 'authentic', 'url': 'https://authentic/'}}}):
|
||||
search_engines = engines.get_engines()
|
||||
assert 'users' not in search_engines.keys()
|
||||
|
||||
page = Page(slug='users', title='Users', sub_slug='(?P<name_id>[a-z0-9]+)')
|
||||
page.save()
|
||||
search_engines = engines.get_engines()
|
||||
assert 'users' in search_engines.keys()
|
||||
|
|
Loading…
Reference in New Issue