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/