Bugzilla – Attachment 13594 Details for
Bug 9105
Moving Z3950 search code to Breeding.pm
Home
|
New
|
Browse
|
Search
|
[?]
|
Reports
|
Help
|
New Account
|
Log In
[x]
|
Forgot Password
Login:
[x]
[patch]
Bug 9105: Housekeeping followup
Bug-9105-Housekeeping-followup.patch (text/plain), 16.83 KB, created by
Jonathan Druart
on 2012-11-21 15:31:11 UTC
(
hide
)
Description:
Bug 9105: Housekeeping followup
Filename:
MIME Type:
Creator:
Jonathan Druart
Created:
2012-11-21 15:31:11 UTC
Size:
16.83 KB
patch
obsolete
>From 9a124f6de8338ec1ff28a4694580e3121ff3f8f2 Mon Sep 17 00:00:00 2001 >From: Marcel de Rooy <m.de.rooy@rijksmuseum.nl> >Date: Wed, 21 Nov 2012 14:50:10 +0100 >Subject: [PATCH] Bug 9105: Housekeeping followup > >Remove some debug warnings, fix indentation > >Signed-off-by: Jonathan Druart <jonathan.druart@biblibre.com> >--- > C4/Breeding.pm | 240 ++++++++++++++++++------------------------- > acqui/z3950_search.pl | 43 ++++---- > cataloguing/z3950_search.pl | 14 +-- > 3 files changed, 123 insertions(+), 174 deletions(-) > >diff --git a/C4/Breeding.pm b/C4/Breeding.pm >index 85a1a89..bb9054e 100644 >--- a/C4/Breeding.pm >+++ b/C4/Breeding.pm >@@ -245,28 +245,26 @@ sub Z3950Search { > my $controlnumber= $pars->{controlnumber}; > > >-my $show_next = 0; >-my $total_pages = 0; >- >-my $noconnection; >-my $attr = ''; >-my $term; >-my $host; >-my $server; >-my $database; >-my $port; >-my $marcdata; >-my @encoding; >-my @results; >-my $count; >-my $toggle; >-my $record; >-my $oldbiblio; >-my $errmsg; >-my @serverhost; >-my @servername; >-my @breeding_loop = (); >- >+ my $show_next = 0; >+ my $total_pages = 0; >+ >+ my $noconnection; >+ my $attr = ''; >+ my $term; >+ my $host; >+ my $server; >+ my $database; >+ my $port; >+ my $marcdata; >+ my @encoding; >+ my @results; >+ my $count; >+ my $toggle; >+ my $record; >+ my $oldbiblio; >+ my @serverhost; >+ my @servername; >+ my @breeding_loop = (); > > my @oConnection; > my @oResult; >@@ -315,16 +313,14 @@ my @breeding_loop = (); > $query .= " \@attr 1=12 \"$controlnumber\" "; > $nterms++; > } >-for my $i (1..$nterms-1) { >- $query = "\@and " . $query; >-} >-warn "query ".$query if $DEBUG; >+ for my $i (1..$nterms-1) { >+ $query = "\@and " . $query; >+ } > > foreach my $servid (@id) { > my $sth = $dbh->prepare("select * from z3950servers where id=?"); > $sth->execute($servid); > while ( $server = $sth->fetchrow_hashref ) { >- warn "serverinfo ".join(':',%$server) if $DEBUG; > my $option1 = new ZOOM::Options(); > $option1->option( 'async' => 1 ); > $option1->option( 'elementSetName', 'F' ); >@@ -333,13 +329,8 @@ warn "query ".$query if $DEBUG; > $option1->option( 'password', $server->{password} ) > if $server->{password}; > $option1->option( 'preferredRecordSyntax', $server->{syntax} ); >- $oConnection[$s] = create ZOOM::Connection($option1) >- || $DEBUG >- && warn( "" . $oConnection[$s]->errmsg() ); >- warn( "server data", $server->{name}, $server->{port} ) if $DEBUG; >- $oConnection[$s]->connect( $server->{host}, $server->{port} ) >- || $DEBUG >- && warn( "" . $oConnection[$s]->errmsg() ); >+ $oConnection[$s] = create ZOOM::Connection($option1); >+ $oConnection[$s]->connect( $server->{host}, $server->{port} ); > $serverhost[$s] = $server->{host}; > $servername[$s] = $server->{name}; > $encoding[$s] = ($server->{encoding}?$server->{encoding}:"iso-5426"); >@@ -350,126 +341,93 @@ warn "query ".$query if $DEBUG; > my $firstresult = 1; > > for ( my $z = 0 ; $z < $s ; $z++ ) { >- warn "doing the search" if $DEBUG; >- $oResult[$z] = $oConnection[$z]->search_pqf($query) >- || $DEBUG >- && warn( "somthing went wrong: " . $oConnection[$s]->errmsg() ); >- >- # $oResult[$z] = $oConnection[$z]->search_pqf($query); >+ $oResult[$z] = $oConnection[$z]->search_pqf($query); > } > >- warn "# nremaining = $nremaining\n" if $DEBUG; >- >- while ( $nremaining-- ) { >- >- my $k; >- my $event; >- while ( ( $k = ZOOM::event( \@oConnection ) ) != 0 ) { >- $event = $oConnection[ $k - 1 ]->last_event(); >- warn( "connection ", $k - 1, ": event $event (", >- ZOOM::event_str($event), ")\n" ) >- if $DEBUG; >- last if $event == ZOOM::Event::ZEND; >- } >+ while ( $nremaining-- ) { >+ my $k; >+ my $event; >+ while ( ( $k = ZOOM::event( \@oConnection ) ) != 0 ) { >+ $event = $oConnection[ $k - 1 ]->last_event(); >+ last if $event == ZOOM::Event::ZEND; >+ } > >- if ( $k != 0 ) { >- $k--; >- warn "event from $k server = ",$serverhost[$k] if $DEBUG; >- my ( $error, $errmsg, $addinfo, $diagset ) = >- $oConnection[$k]->error_x(); >- if ($error) { >- if ($error =~ m/^(10000|10007)$/ ) { >- push(@errconn, {'server' => $serverhost[$k]}); >+ if ( $k != 0 ) { >+ $k--; >+ my ($error, $errmsg, $addinfo, $diagset)= $oConnection[$k]->error_x(); >+ if ($error) { >+ if ($error =~ m/^(10000|10007)$/ ) { >+ push(@errconn, {'server' => $serverhost[$k]}); >+ } > } >- $DEBUG and warn "$k $serverhost[$k] error $query: $errmsg ($error) $addinfo\n"; >- } >- else { >- my $numresults = $oResult[$k]->size(); >- warn "numresults = $numresults" if $DEBUG; >- my $i; >- my $result = ''; >- if ( $numresults > 0 and $numresults >= (($page-1)*20)) { >- $show_next = 1 if $numresults >= ($page*20); >- $total_pages = int($numresults/20)+1 if $total_pages < ($numresults/20); >- for ($i = ($page-1)*20; $i < (($numresults < ($page*20)) ? $numresults : ($page*20)); $i++) { >- my $rec = $oResult[$k]->record($i); >- if ($rec) { >- my $marcrecord; >- $marcdata = $rec->raw(); >- >- my ($charset_result, $charset_errors); >- ($marcrecord, $charset_result, $charset_errors) = >- MarcToUTF8Record($marcdata, C4::Context->preference('marcflavour'), $encoding[$k]); >-####WARNING records coming from Z3950 clients are in various character sets MARC8,UTF8,UNIMARC etc >-## In HEAD i change everything to UTF-8 >-# In rel2_2 i am not sure what encoding is so no character conversion is done here >-##Add necessary encoding changes to here -TG >- >- # Normalize the record so it doesn't have separated diacritics >- SetUTF8Flag($marcrecord); >- >- my $oldbiblio = TransformMarcToKoha( $dbh, $marcrecord, "" ); >- $oldbiblio->{isbn} =~ s/ |-|\.//g if $oldbiblio->{isbn}; >- # pad | and ( with spaces to allow line breaks in the HTML >- $oldbiblio->{isbn} =~ s/\|/ \| /g if $oldbiblio->{isbn}; >- $oldbiblio->{isbn} =~ s/\(/ \(/g if $oldbiblio->{isbn}; >- >- $oldbiblio->{issn} =~ s/ |-|\.//g if $oldbiblio->{issn}; >- # pad | and ( with spaces to allow line breaks in the HTML >- $oldbiblio->{issn} =~ s/\|/ \| /g if $oldbiblio->{issn}; >- $oldbiblio->{issn} =~ s/\(/ \(/g if $oldbiblio->{issn}; >- my ( >- $notmarcrecord, $alreadyindb, $alreadyinfarm, >- $imported, $breedingid >- ) >- = ImportBreeding( $marcdata, 2, $serverhost[$k], $encoding[$k], $random, 'z3950' ); >- my %row_data; >- $row_data{server} = $servername[$k]; >- $row_data{isbn} = $oldbiblio->{isbn}; >- $row_data{lccn} = $oldbiblio->{lccn}; >- $row_data{title} = $oldbiblio->{title}; >- $row_data{author} = $oldbiblio->{author}; >- $row_data{breedingid} = $breedingid; >- $row_data{biblionumber} = $biblionumber; >- push( @breeding_loop, \%row_data ); >+ else { >+ my $numresults = $oResult[$k]->size(); >+ my $i; >+ my $result = ''; >+ if ( $numresults > 0 and $numresults >= (($page-1)*20)) { >+ $show_next = 1 if $numresults >= ($page*20); >+ $total_pages = int($numresults/20)+1 if $total_pages < ($numresults/20); >+ for ($i = ($page-1)*20; $i < (($numresults < ($page*20)) ? $numresults : ($page*20)); $i++) { >+ my $rec = $oResult[$k]->record($i); >+ if ($rec) { >+ my $marcrecord; >+ $marcdata = $rec->raw(); >+ my ($charset_result, $charset_errors); >+ ($marcrecord, $charset_result, $charset_errors)= MarcToUTF8Record($marcdata, C4::Context->preference('marcflavour'), $encoding[$k]); >+ # Normalize the record so it doesn't have separated diacritics >+ SetUTF8Flag($marcrecord); >+ my $oldbiblio = TransformMarcToKoha( $dbh, $marcrecord, "" ); >+ $oldbiblio->{isbn} =~ s/ |-|\.//g if $oldbiblio->{isbn}; >+ # pad | and ( with spaces to allow line breaks in the HTML >+ $oldbiblio->{isbn} =~ s/\|/ \| /g if $oldbiblio->{isbn}; >+ $oldbiblio->{isbn} =~ s/\(/ \(/g if $oldbiblio->{isbn}; >+ $oldbiblio->{issn} =~ s/ |-|\.//g if $oldbiblio->{issn}; >+ # pad | and ( with spaces to allow line breaks in the HTML >+ $oldbiblio->{issn} =~ s/\|/ \| /g if $oldbiblio->{issn}; >+ $oldbiblio->{issn} =~ s/\(/ \(/g if $oldbiblio->{issn}; >+ my ($notmarcrecord, $alreadyindb, $alreadyinfarm, $imported, $breedingid)= ImportBreeding( $marcdata, 2, $serverhost[$k], $encoding[$k], $random, 'z3950' ); >+ my %row_data; >+ $row_data{server} = $servername[$k]; >+ $row_data{isbn} = $oldbiblio->{isbn}; >+ $row_data{lccn} = $oldbiblio->{lccn}; >+ $row_data{title} = $oldbiblio->{title}; >+ $row_data{author} = $oldbiblio->{author}; >+ $row_data{breedingid} = $breedingid; >+ $row_data{biblionumber} = $biblionumber; >+ push( @breeding_loop, \%row_data ); >+ } >+ else { >+ push(@breeding_loop,{'server'=>$servername[$k],'title'=>join(': ',$oConnection[$k]->error_x()),'breedingid'=>-1,'biblionumber'=>-1}); >+ } >+ } >+ } #if $numresults >+ } >+ } # if $k !=0 >+ my $numberpending = $nremaining - 1; > >- } else { >- push(@breeding_loop,{'server'=>$servername[$k],'title'=>join(': ',$oConnection[$k]->error_x()),'breedingid'=>-1,'biblionumber'=>-1}); >- } # $rec >- } # upto 5 results >- } #$numresults >+ my @servers = (); >+ foreach my $id (@id) { >+ push(@servers,{id => $id}); > } >- } # if $k !=0 >- my $numberpending = $nremaining - 1; > >- my @servers = (); >- foreach my $id (@id) { >- push(@servers,{id => $id}); >- } >+ $template->param( >+ breeding_loop => \@breeding_loop, >+ server => $servername[$k], >+ numberpending => $numberpending, >+ current_page => $page, >+ servers => \@servers, >+ total_pages => $total_pages, >+ show_nextbutton => $show_next?1:0, >+ show_prevbutton => $page!=1, >+ ); >+ $firstresult++; >+ } # while nremaining > > $template->param( > breeding_loop => \@breeding_loop, >- server => $servername[$k], >- numberpending => $numberpending, >- current_page => $page, >- servers => \@servers, >- total_pages => $total_pages, >- ); >- $template->param(show_nextbutton=>1) if $show_next; >- $template->param(show_prevbutton=>1) if $page != 1; >- >- # print $template->output if $firstresult !=1; >- $firstresult++; >- >- } # while nremaining >- >- $template->param( >- breeding_loop => \@breeding_loop, >- #server => $servername[$k], > numberpending => $nremaining > 0 ? $nremaining : 0, > errconn => \@errconn > ); >- > } > > 1; >diff --git a/acqui/z3950_search.pl b/acqui/z3950_search.pl >index e266b41..37ebe2c 100755 >--- a/acqui/z3950_search.pl >+++ b/acqui/z3950_search.pl >@@ -25,27 +25,12 @@ use CGI; > > use C4::Auth; > use C4::Output; >-#use C4::Biblio; > use C4::Context; > use C4::Breeding; > use C4::Koha; >-#use C4::Charset; > use C4::Bookseller qw/ GetBookSellerFromId /; >-#use ZOOM; >- >-my $input = new CGI; >-my ( $template, $loggedinuser, $cookie ) = get_template_and_user( >- { >- template_name => "acqui/z3950_search.tmpl", >- query => $input, >- type => "intranet", >- authnotrequired => 1, >- flagsrequired => { acquisition => 'order_manage' }, >- debug => 1, >- } >-); >- > >+my $input = new CGI; > my $dbh = C4::Context->dbh; > my $biblionumber = $input->param('biblionumber')||0; > my $frameworkcode = $input->param('frameworkcode')||''; >@@ -61,7 +46,6 @@ my $controlnumber = $input->param('controlnumber'); > my $op = $input->param('op')||''; > my $booksellerid = $input->param('booksellerid'); > my $basketno = $input->param('basketno'); >- > my $page = $input->param('current_page') || 1; > $page = $input->param('goto_page') if $input->param('changepage_goto'); > >@@ -80,11 +64,22 @@ foreach my $thisframeworkcode ( keys %$frameworks ) { > } > > my $vendor = GetBookSellerFromId($booksellerid); >-$template->param( frameworkcode => $frameworkcode, >- frameworkcodeloop => \@frameworkcodeloop, >- booksellerid => $booksellerid, >- basketno => $basketno, >- name => $vendor->{'name'}, >+ >+my ( $template, $loggedinuser, $cookie ) = get_template_and_user( >+ { >+ template_name => "acqui/z3950_search.tmpl", >+ query => $input, >+ type => "intranet", >+ authnotrequired => 1, >+ flagsrequired => { acquisition => 'order_manage' }, >+ } >+); >+$template->param( >+ frameworkcode => $frameworkcode, >+ frameworkcodeloop => \@frameworkcodeloop, >+ booksellerid => $booksellerid, >+ basketno => $basketno, >+ name => $vendor->{'name'}, > isbn => $isbn, > issn => $issn, > lccn => $lccn, >@@ -95,8 +90,8 @@ $template->param( frameworkcode => $frameworkcode, > biblionumber => $biblionumber, > dewey => $dewey, > subject => $subject, >- ); >- >+); >+ > if ( $op ne "do_search" ) { > my $sth = $dbh->prepare("select id,host,name,checked from z3950servers order by host"); > $sth->execute(); >diff --git a/cataloguing/z3950_search.pl b/cataloguing/z3950_search.pl >index 8bf5792..9fc9d68 100755 >--- a/cataloguing/z3950_search.pl >+++ b/cataloguing/z3950_search.pl >@@ -24,12 +24,9 @@ use CGI; > > use C4::Auth; > use C4::Output; >-#use C4::Biblio; > use C4::Context; > use C4::Breeding; > use C4::Koha; >-#use C4::Charset; >-#use ZOOM; > > my $input = new CGI; > my $dbh = C4::Context->dbh; >@@ -44,9 +41,9 @@ my $lccn = $input->param('lccn'); > my $lccall = $input->param('lccall'); > my $subject = $input->param('subject'); > my $dewey = $input->param('dewey'); >-my $controlnumber = $input->param('controlnumber'); >-my $stdid = $input->param('stdid'); >-my $srchany = $input->param('srchany'); >+my $controlnumber = $input->param('controlnumber'); >+my $stdid = $input->param('stdid'); >+my $srchany = $input->param('srchany'); > my $op = $input->param('op')||''; > > my $page = $input->param('current_page') || 1; >@@ -58,11 +55,10 @@ my ( $template, $loggedinuser, $cookie ) = get_template_and_user({ > type => "intranet", > authnotrequired => 1, > flagsrequired => { catalogue => 1 }, >- debug => 1, > }); > >-$template->param( frameworkcode => $frameworkcode, ); > $template->param( >+ frameworkcode => $frameworkcode, > isbn => $isbn, > issn => $issn, > lccn => $lccn, >@@ -112,5 +108,5 @@ my $pars= { > stdid => 0, > srchany => 0, > }; >-Z3950Search($pars, $template); >+Z3950Search($pars, $template); > output_html_with_http_headers $input, $cookie, $template->output; >-- >1.7.10.4
You cannot view the attachment while viewing its details because your browser does not support IFRAMEs.
View the attachment on a separate page
.
View Attachment As Diff
View Attachment As Raw
Actions:
View
|
Diff
|
Splinter Review
Attachments on
bug 9105
:
13589
|
13590
|
13593
|
13594
|
13625
|
13626
|
13936
|
13937
|
13938
|
14230
|
14231
|
14232
|
14450
|
14701
|
15222