https://bugs.koha-community.org/bugzilla3/show_bug.cgi?id=42780

            Bug ID: 42780
           Summary: Problème de gestion des autorités lors de l'ajout via
                    la notice et de la recherche de celles-ci
   Initiative type: ---
        Sponsorship ---
            status:
           Product: Koha
           Version: 26.05
          Hardware: All
                OS: All
            Status: NEW
          Severity: enhancement
          Priority: P5 - low
         Component: Cataloging
          Assignee: [email protected]
          Reporter: [email protected]
        QA Contact: [email protected]
                CC: [email protected]

Created attachment 200040
  -->
https://bugs.koha-community.org/bugzilla3/attachment.cgi?id=200040&action=edit
Conversation Claude.ai

Voici ce que j'ai décodé avec l'aide du l'IA Claude.

En annexe, le log de ma "conversation"

bugs trouvés et corrigés
Bug 1 — Popup ne se ferme pas / $9 vide (chaîne de 3 bugs liés)
        • auth-finder-search.js : source absent de l'URL vers authorities.pl au
clic "Create new authority"
        • authorities.pl : source non lu et non retransmis dans le redirect
vers blinddetail-biblio-search.pl
        • blinddetail-biblio-search.tt (en + fr-FR) : authid_subfield non
déclarée quand source est absent ou vide
Bug 2 — Autorité non trouvable dans auth_finder (chaîne de 2 bugs liés)
        • QueryBuilder.pm : filtre ES sur authtype.raw alors que le mapping
définit authtype.ci_raw
        • AuthoritiesMarc.pm : $authid inséré comme entier dans le champ 001 →
ES rejette le document silencieusement

les plus importants à soumettre sont :
        • Le $authid entier dans AuthoritiesMarc.pm (crash ES silencieux)
        • Le source absent du flux de création d'autorité
        • Le authtype.raw vs authtype.ci_raw dans QueryBuilder.pm



À appliquer lors de la mise à jour de Koha si les autorités ne fonctionnent pas
correctement


Fichiers à surveiller lors des apt upgrade koha-common
/usr/share/koha/intranet/htdocs/intranet-tmpl/prog/js/auth-finder-search.js
/usr/share/koha/intranet/cgi-bin/authorities/authorities.pl
/usr/share/koha/intranet/htdocs/intranet-tmpl/prog/en/modules/authorities/blinddetail-biblio-search.tt
/usr/share/koha/intranet/htdocs/intranet-tmpl/prog/fr-FR/modules/authorities/blinddetail-biblio-search.tt
/usr/share/koha/lib/Koha/SearchEngine/Elasticsearch/QueryBuilder.pm
/usr/share/koha/lib/C4/AuthoritiesMarc.pm


script complet à copier-coller en une seule opération via Putty

#!/bin/bash
# =============================================================================
# Patches Koha 26.05 - Bugs autorités
# A relancer après chaque apt upgrade koha-common
# =============================================================================

echo "=== Sauvegarde des fichiers originaux ==="
cp /usr/share/koha/intranet/htdocs/intranet-tmpl/prog/js/auth-finder-search.js
\
  
/usr/share/koha/intranet/htdocs/intranet-tmpl/prog/js/auth-finder-search.js.bak
cp /usr/share/koha/intranet/cgi-bin/authorities/authorities.pl \
   /usr/share/koha/intranet/cgi-bin/authorities/authorities.pl.bak
cp
/usr/share/koha/intranet/htdocs/intranet-tmpl/prog/en/modules/authorities/blinddetail-biblio-search.tt
\
  
/usr/share/koha/intranet/htdocs/intranet-tmpl/prog/en/modules/authorities/blinddetail-biblio-search.tt.bak
cp
/usr/share/koha/intranet/htdocs/intranet-tmpl/prog/fr-FR/modules/authorities/blinddetail-biblio-search.tt
\
  
/usr/share/koha/intranet/htdocs/intranet-tmpl/prog/fr-FR/modules/authorities/blinddetail-biblio-search.tt.bak
cp /usr/share/koha/lib/Koha/SearchEngine/Elasticsearch/QueryBuilder.pm \
   /usr/share/koha/lib/Koha/SearchEngine/Elasticsearch/QueryBuilder.pm.bak
cp /usr/share/koha/lib/C4/AuthoritiesMarc.pm \
   /usr/share/koha/lib/C4/AuthoritiesMarc.pm.bak

echo "=== Patch 1 : auth-finder-search.js - transmettre source à authorities.pl
==="
python3 -c "
content =
open('/usr/share/koha/intranet/htdocs/intranet-tmpl/prog/js/auth-finder-search.js').read()
old = '            \"authorities.pl?index=\" + index + \"&authtypecode=\" +
authtypecode,'
new = '            \"authorities.pl?index=\" + index + \"&authtypecode=\" +
authtypecode + \"&source=\" + \$(\"input[name=source]\").val(),'
if old in content:
    print('  OK - patch applique')
   
open('/usr/share/koha/intranet/htdocs/intranet-tmpl/prog/js/auth-finder-search.js',
'w').write(content.replace(old, new, 1))
else:
    print('  ATTENTION - pattern non trouve, patch non applique')
"

echo "=== Patch 2 : authorities.pl - lire et retransmettre source dans le
redirect ==="
python3 -c "
content =
open('/usr/share/koha/intranet/cgi-bin/authorities/authorities.pl').read()
old = \"my \\\$myindex      = \\\$input->param('index');\"
new = \"my \\\$myindex      = \\\$input->param('index');\\nmy \\\$mysource    
= \\\$input->param('source') // '';\"
if old in content:
    print('  OK step 1 - myindex trouve')
    content = content.replace(old, new, 1)
else:
    print('  ATTENTION step 1 - pattern non trouve')
    exit()
old2 = '            print
\$input->redirect(\"blinddetail-biblio-search.pl?authid=\$authid&index=\$myindex\");'
new2 = '            print
\$input->redirect(\"blinddetail-biblio-search.pl?authid=\$authid&index=\$myindex&source=\$mysource\");'
if old2 in content:
    print('  OK step 2 - redirect trouve')
    open('/usr/share/koha/intranet/cgi-bin/authorities/authorities.pl',
'w').write(content.replace(old2, new2, 1))
else:
    print('  ATTENTION step 2 - pattern non trouve')
"

echo "=== Patch 3 : blinddetail-biblio-search.tt EN - authid_subfield toujours
definie ==="
python3 -c "
content =
open('/usr/share/koha/intranet/htdocs/intranet-tmpl/prog/en/modules/authorities/blinddetail-biblio-search.tt').read()
old = \"\"\"                            [% IF ( source == 'auth' ) %]
                                var authid_subfield = \"3\";
                            [% ELSIF ( source == 'biblio' ) %]
                                var authid_subfield = \"9\";
                            [% END %]\"\"\"
new = \"\"\"                            [% IF ( source == 'auth' ) %]
                                var authid_subfield = \"3\";
                            [% ELSE %]
                                var authid_subfield = \"9\";
                            [% END %]\"\"\"
if old in content:
    print('  OK - patch applique')
   
open('/usr/share/koha/intranet/htdocs/intranet-tmpl/prog/en/modules/authorities/blinddetail-biblio-search.tt',
'w').write(content.replace(old, new, 1))
else:
    print('  ATTENTION - pattern non trouve, patch non applique')
"

echo "=== Patch 4 : blinddetail-biblio-search.tt FR - authid_subfield toujours
definie ==="
python3 -c "
content =
open('/usr/share/koha/intranet/htdocs/intranet-tmpl/prog/fr-FR/modules/authorities/blinddetail-biblio-search.tt').read()
old = \"\"\"                            [% IF ( source == 'auth' ) %]
                                var authid_subfield = \"3\";
                            [% ELSIF ( source == 'biblio' ) %]
                                var authid_subfield = \"9\";
                            [% END %]\"\"\"
new = \"\"\"                            [% IF ( source == 'auth' ) %]
                                var authid_subfield = \"3\";
                            [% ELSE %]
                                var authid_subfield = \"9\";
                            [% END %]\"\"\"
if old in content:
    print('  OK - patch applique')
   
open('/usr/share/koha/intranet/htdocs/intranet-tmpl/prog/fr-FR/modules/authorities/blinddetail-biblio-search.tt',
'w').write(content.replace(old, new, 1))
else:
    print('  ATTENTION - pattern non trouve, patch non applique')
"

echo "=== Patch 5 : QueryBuilder.pm - authtype.raw -> authtype.ci_raw ==="
python3 -c "
content =
open('/usr/share/koha/lib/Koha/SearchEngine/Elasticsearch/QueryBuilder.pm').read()
old = '\"authtype.raw\"'
new = '\"authtype.ci_raw\"'
if old in content:
    print('  OK - patch applique')
    open('/usr/share/koha/lib/Koha/SearchEngine/Elasticsearch/QueryBuilder.pm',
'w').write(content.replace(old, new, 1))
else:
    print('  ATTENTION - pattern non trouve, patch non applique')
"

echo "=== Patch 6 : AuthoritiesMarc.pm - stringifier authid dans champ 001 ==="
python3 -c "
content = open('/usr/share/koha/lib/C4/AuthoritiesMarc.pm').read()
old = \"\\\$record->insert_fields_ordered( MARC::Field->new( '001', \\\$authid
) );\"
new = \"\\\$record->insert_fields_ordered( MARC::Field->new( '001',
\\\"\\\$authid\\\" ) );\"
if old in content:
    print('  OK - patch applique')
    open('/usr/share/koha/lib/C4/AuthoritiesMarc.pm',
'w').write(content.replace(old, new, 1))
else:
    print('  ATTENTION - pattern non trouve, patch non applique')
"

echo "=== Vider le cache templates ==="
find /var/cache/koha -name "blinddetail*" -delete
echo "  Cache vide"

echo "=== Redemarrage Koha ==="
systemctl restart koha-common
sleep 5
echo "  Koha redemarre"

echo "=== Verification patches appliques ==="
grep -c 'source.*val()'
/usr/share/koha/intranet/htdocs/intranet-tmpl/prog/js/auth-finder-search.js >
/dev/null && echo "  Patch 1 OK" || echo "  Patch 1 ECHEC"
grep -c 'mysource' /usr/share/koha/intranet/cgi-bin/authorities/authorities.pl
> /dev/null && echo "  Patch 2 OK" || echo "  Patch 2 ECHEC"
grep -c '\[% ELSE %\]'
/usr/share/koha/intranet/htdocs/intranet-tmpl/prog/en/modules/authorities/blinddetail-biblio-search.tt
> /dev/null && echo "  Patch 3 OK" || echo "  Patch 3 ECHEC"
grep -c '\[% ELSE %\]'
/usr/share/koha/intranet/htdocs/intranet-tmpl/prog/fr-FR/modules/authorities/blinddetail-biblio-search.tt
> /dev/null && echo "  Patch 4 OK" || echo "  Patch 4 ECHEC"
grep -c 'ci_raw'
/usr/share/koha/lib/Koha/SearchEngine/Elasticsearch/QueryBuilder.pm > /dev/null
&& echo "  Patch 5 OK" || echo "  Patch 5 ECHEC"
grep -c '"\$authid"' /usr/share/koha/lib/C4/AuthoritiesMarc.pm > /dev/null &&
echo "  Patch 6 OK" || echo "  Patch 6 ECHEC"

echo ""
echo "=== Patches termines ==="

-- 
You are receiving this mail because:
You are watching all bug changes.
You are the assignee for the bug.
_______________________________________________
Koha-bugs mailing list
[email protected]
https://lists.koha-community.org/cgi-bin/mailman/listinfo/koha-bugs
website : http://www.koha-community.org/
git : http://git.koha-community.org/
bugs : http://bugs.koha-community.org/

Reply via email to