0001-profile-register-users-search-engine-26261.patch
combo/profile/__init__.py | ||
---|---|---|
23 | 23 |
name = 'combo.profile' |
24 | 24 |
verbose_name = _('Profile') |
25 | 25 | |
26 |
def ready(self): |
|
27 |
from combo.apps.search import engines |
|
28 |
engines.register(self.get_search_engines) |
|
29 | ||
30 |
def get_search_engines(self): |
|
31 |
from combo.data.models import Page |
|
32 |
from django.conf import settings |
|
33 | ||
34 |
user_page = Page.objects.filter(sub_slug__contains='<name_id>').first() |
|
35 |
if not user_page: |
|
36 |
return |
|
37 |
user_page_base_url = user_page.get_online_url() |
|
38 | ||
39 |
for key, service in settings.KNOWN_SERVICES.get('authentic', {}).items(): |
|
40 |
return { |
|
41 |
'users': { |
|
42 |
'url': service['url'] + 'api/users/?q=%(q)s', |
|
43 |
'label': _('Users'), |
|
44 |
'signature': True, |
|
45 |
'data_key': 'results', |
|
46 |
'hit_url_template': user_page_base_url + '{{uuid}}/', |
|
47 |
'hit_label_template': '{{first_name}} {{last_name}}', |
|
48 |
'hit_description_template': '{% if city %}{{ address|default:"" }} {{ city }}{% endif %}' |
|
49 |
} |
|
50 |
} |
|
51 | ||
26 | 52 |
default_app_config = 'combo.profile.AppConfig' |
tests/test_search.py | ||
---|---|---|
373 | 373 |
search_engines = engines.get_engines() |
374 | 374 |
assert 'tracking-code' not in search_engines.keys() |
375 | 375 |
assert len([x for x in search_engines.keys() if x.startswith('formdata:')]) == 0 |
376 | ||
377 | ||
378 |
def test_profile_search_engines(app): |
|
379 |
search_engines = engines.get_engines() |
|
380 |
assert 'users' not in search_engines.keys() |
|
381 |
with override_settings(KNOWN_SERVICES={'authentic': {'default': {'title': 'authentic', 'url': 'https://authentic/'}}}): |
|
382 |
search_engines = engines.get_engines() |
|
383 |
assert 'users' not in search_engines.keys() |
|
384 | ||
385 |
page = Page(slug='users', title='Users', sub_slug='(?P<name_id>[a-z0-9]+)') |
|
386 |
page.save() |
|
387 |
search_engines = engines.get_engines() |
|
388 |
assert 'users' in search_engines.keys() |
|
376 |
- |