Projet

Général

Profil

Bug #59408

recherche: sur une recherche d'usager, si la page cible "fiche utilisateur" change d'URL, les URL cibles restent sur l'ancienne

Ajouté par Thomas Noël il y a plus de 2 ans. Mis à jour il y a plus de 2 ans.

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)

Formats disponibles : Atom PDF