Bug 11592: MARCView and ISBD followup
[koha.git] / catalogue / ISBDdetail.pl
index 4e64484..02c06a9 100755 (executable)
@@ -48,6 +48,7 @@ use C4::Members; # to use GetMember
 use C4::Serials;    # CountSubscriptionFromBiblionumber
 use C4::Search;                # enabled_staff_search_views
 use C4::Acquisition qw(GetOrdersByBiblionumber);
+use Koha::RecordProcessor;
 
 
 #---- Internal function
@@ -70,16 +71,41 @@ my ( $template, $loggedinuser, $cookie ) = get_template_and_user(
     }
 );
 
-my $res = GetISBDView($biblionumber, "intranet");
-if ( not defined $res ) {
+if ( not defined $biblionumber ) {
        # biblionumber invalid -> report and exit
        $template->param( unknownbiblionumber => 1,
-                               biblionumber => $biblionumber
+                                biblionumber => $biblionumber
        );
        output_html_with_http_headers $query, $cookie, $template->output;
        exit;
 }
 
+my $record_unfiltered = GetMarcBiblio($biblionumber,1);
+my $record_processor = Koha::RecordProcessor->new({
+    filters => 'ViewPolicy',
+    options => {
+        interface => 'intranet',
+    },
+});
+my $record_filtered  = $record_unfiltered->clone();
+my $record           = $record_processor->process($record_filtered);
+
+if ( not defined $record ) {
+       # biblionumber invalid -> report and exit
+       $template->param( unknownbiblionumber => 1,
+                                biblionumber => $biblionumber
+       );
+       output_html_with_http_headers $query, $cookie, $template->output;
+       exit;
+}
+
+my $framework = GetFrameworkCode( $biblionumber );
+my $res = GetISBDView({
+    'record'    => $record,
+    'template'  => 'intranet',
+    'framework' => $framework,
+});
+
 if($query->cookie("holdfor")){ 
     my $holdfor_patron = GetMember('borrowernumber' => $query->cookie("holdfor"));
     $template->param(
@@ -103,7 +129,6 @@ if ($subscriptionsnumber) {
         subscriptiontitle   => $subscriptiontitle,
     );
 }
-my $record = GetMarcBiblio($biblionumber);
 
 $template->param (
     ISBD                => $res,