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: koha-bugs@lists.koha-community.org Reporter: jph.mainil@gmail.com QA Contact: testopia@bugs.koha-community.org CC: m.de.rooy@rijksmuseum.nl 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.