Bug #59408
recherche: sur une recherche d'usager, si la page cible "fiche utilisateur" change d'URL, les URL cibles restent sur l'ancienne
Statut:
Nouveau
Priorité:
Normal
Assigné à:
-
Version cible:
-
Début:
07 décembre 2021
Echéance:
% réalisé:
0%
Temps estimé:
Patch proposed:
Non
Planning:
Non
Description
Si on a une page "fiche-utilisateur", cela créé un moteur de recherche sur les utilisateur. Chaque résultat a une URL cible du genre .../fiche-utilisateur/{{uuid}}
Si cette page chaque de slug, alors les moteurs qui l'utilisaient continuent à pointer les utilisateurs trouvé sur l'URL .../fiche-utilisateur/{{uuid}} -- qui n'existe plus, et 404.
Cela vient a priori de la création "en dur" du schéma de l'URL cible dans combo/profile/__init__.py :
user_page = Page.objects.filter(sub_slug='name_id').first() ... user_page_base_url = user_page.get_online_url() # return entry using first(&only) authentic (if it exists) for service in settings.KNOWN_SERVICES.get('authentic', {}).values(): 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': default_description_template, } }
On pourrait permettre que hit_url_template soit de la forme « {% get_user_page_base_url %}{{uuid}}/ » et créer le templatetag get_user_page_base_url correspondant (en veillant à ce qu'il soit assez rapide, avec un cache_during_request par exemple)