View | Details | Raw Unified | Return to bug 31224
Collapse All | Expand All

(-)a/Koha/OAI/Server/Repository.pm (-15 / +4 lines)
Lines 188-195 sub get_biblio_marcxml { Link Here
188
    eval {
188
    eval {
189
        $record = $biblio->metadata_record(
189
        $record = $biblio->metadata_record(
190
            {
190
            {
191
                embed_items => $with_items,
191
                embed_items         => $with_items,
192
                interface   => 'opac'
192
                expand_coded_values => $expanded_avs,
193
                interface           => 'opac'
193
            }
194
            }
194
        );
195
        );
195
    };
196
    };
Lines 209-227 sub get_biblio_marcxml { Link Here
209
210
210
        #TODO: Also hide record if OpacSuppression is in use
211
        #TODO: Also hide record if OpacSuppression is in use
211
    }
212
    }
212
    if ( $record && $expanded_avs ) {
213
213
        my $frameworkcode = GetFrameworkCode($biblionumber) || '';
214
        my $record_processor = Koha::RecordProcessor->new(
215
            {
216
                filters => [ 'ExpandCodedFields' ],
217
                options => {
218
                    interface     => 'opac',
219
                    frameworkcode => $frameworkcode
220
                }
221
            }
222
        );
223
        $record_processor->process($record);
224
    }
225
    return ( $record ? $record->as_xml_record( C4::Context->preference('marcflavour') ) : undef, $decoding_error );
214
    return ( $record ? $record->as_xml_record( C4::Context->preference('marcflavour') ) : undef, $decoding_error );
226
}
215
}
227
216
(-)a/t/db_dependent/OAI/Server.t (-32 / +21 lines)
Lines 106-112 foreach my $index ( 0 .. NUMBER_OF_MARC_RECORDS - 1 ) { Link Here
106
    $timestamp .= 'Z';
106
    $timestamp .= 'Z';
107
    $timestamp =~ s/ /T/;
107
    $timestamp =~ s/ /T/;
108
    my $biblio = Koha::Biblios->find($biblionumber);
108
    my $biblio = Koha::Biblios->find($biblionumber);
109
    $record = $biblio->metadata->record;
109
    $record = $biblio->metadata_record;
110
    my $record_transformed = $record->clone;
110
    my $record_transformed = $record->clone;
111
    $record_transformed->delete_fields( $record_transformed->field('952'));
111
    $record_transformed->delete_fields( $record_transformed->field('952'));
112
    $record_transformed = XMLin($record_transformed->as_xml_record);
112
    $record_transformed = XMLin($record_transformed->as_xml_record);
Lines 394-400 subtest 'Bug 19725: OAI-PMH ListRecords and ListIdentifiers should use biblio_me Link Here
394
    # Modify record to trigger auto update of timestamp
394
    # Modify record to trigger auto update of timestamp
395
    (my $biblionumber = $marcxml[0]->{header}->{identifier}) =~ s/^.*:(.*)/$1/;
395
    (my $biblionumber = $marcxml[0]->{header}->{identifier}) =~ s/^.*:(.*)/$1/;
396
    my $biblio = Koha::Biblios->find($biblionumber);
396
    my $biblio = Koha::Biblios->find($biblionumber);
397
    my $record = $biblio->metadata->record;
397
    my $record = $biblio->metadata_record;
398
    $record->append_fields(MARC::Field->new(999, '', '', z => '_'));
398
    $record->append_fields(MARC::Field->new(999, '', '', z => '_'));
399
    ModBiblio( $record, $biblionumber );
399
    ModBiblio( $record, $biblionumber );
400
    my $from_dt = dt_from_string(
400
    my $from_dt = dt_from_string(
Lines 546-553 subtest 'Tests for OpacHiddenItems' => sub { Link Here
546
                datestamp  => $utc_timestamp,
546
                datestamp  => $utc_timestamp,
547
                identifier => 'TEST:' . $item->biblionumber
547
                identifier => 'TEST:' . $item->biblionumber
548
            },
548
            },
549
            metadata =>
549
            metadata => {
550
                { record => XMLin( $biblio->metadata->record( { embed_items => 1, opac => 1 } )->as_xml_record() ) }
550
                record =>
551
                    XMLin( $biblio->metadata_record( { embed_items => 1, interface => 'opac' } )->as_xml_record() )
552
            }
551
        }
553
        }
552
    };
554
    };
553
    my $expected_hidden = {
555
    my $expected_hidden = {
Lines 648-674 subtest 'Tests for timestamp handling' => sub { Link Here
648
    my $expected = {
650
    my $expected = {
649
        record => {
651
        record => {
650
            header => {
652
            header => {
651
                datestamp => $utc_timestamp,
653
                datestamp  => $utc_timestamp,
652
                identifier => 'TEST:' . $biblio1->biblionumber
654
                identifier => 'TEST:' . $biblio1->biblionumber
653
            },
655
            },
654
            metadata => {
656
            metadata => {
655
                record => XMLin(
657
                record =>
656
                    $biblio1->metadata->record({ embed_items => 1, opac => 1})->as_xml_record()
658
                    XMLin( $biblio1->metadata_record( { embed_items => 1, interface => 'opac' } )->as_xml_record() )
657
                )
658
            }
659
            }
659
        }
660
        }
660
    };
661
    };
661
    my $expected_no_items = {
662
    my $expected_no_items = {
662
        record => {
663
        record => {
663
            header => {
664
            header => {
664
                datestamp => $utc_timestamp,
665
                datestamp  => $utc_timestamp,
665
                identifier => 'TEST:' . $biblio1->biblionumber
666
                identifier => 'TEST:' . $biblio1->biblionumber
666
            },
667
            },
667
            metadata => {
668
            metadata => { record => XMLin( $biblio1->metadata_record( { interface => 'opac' } )->as_xml_record() ) }
668
                record => XMLin(
669
                    $biblio1->metadata->record({opac => 1})->as_xml_record()
670
                )
671
            }
672
        }
669
        }
673
    };
670
    };
674
671
Lines 724-732 subtest 'Tests for timestamp handling' => sub { Link Here
724
    $sth_item->execute($timestamp, $item2->itemnumber);
721
    $sth_item->execute($timestamp, $item2->itemnumber);
725
722
726
    $expected->{record}{header}{datestamp} = $utc_timestamp;
723
    $expected->{record}{header}{datestamp} = $utc_timestamp;
727
    $expected->{record}{metadata}{record} = XMLin(
724
    $expected->{record}{metadata}{record} =
728
        $biblio1->metadata->record({ embed_items => 1, opac => 1})->as_xml_record()
725
        XMLin( $biblio1->metadata_record( { embed_items => 1, interface => 'opac' } )->as_xml_record() );
729
    );
730
726
731
    test_query(
727
    test_query(
732
        'ListRecords - biblio with two items',
728
        'ListRecords - biblio with two items',
Lines 790-798 subtest 'Tests for timestamp handling' => sub { Link Here
790
    $sth_del_item->execute($timestamp, $item1->itemnumber);
786
    $sth_del_item->execute($timestamp, $item1->itemnumber);
791
787
792
    $expected->{record}{header}{datestamp} = $utc_timestamp;
788
    $expected->{record}{header}{datestamp} = $utc_timestamp;
793
    $expected->{record}{metadata}{record} = XMLin(
789
    $expected->{record}{metadata}{record} =
794
        $biblio1->metadata->record({ embed_items => 1, opac => 1})->as_xml_record()
790
        XMLin( $biblio1->metadata_record( { embed_items => 1, interface => 'opac' } )->as_xml_record() );
795
    );
796
791
797
    test_query(
792
    test_query(
798
        'ListRecords - biblio with existing and deleted item',
793
        'ListRecords - biblio with existing and deleted item',
Lines 819-827 subtest 'Tests for timestamp handling' => sub { Link Here
819
    $item2->safe_delete({ skip_record_index =>1 });
814
    $item2->safe_delete({ skip_record_index =>1 });
820
    $sth_del_item->execute($timestamp, $item2->itemnumber);
815
    $sth_del_item->execute($timestamp, $item2->itemnumber);
821
816
822
    $expected->{record}{metadata}{record} = XMLin(
817
    $expected->{record}{metadata}{record} =
823
        $biblio1->metadata->record({ embed_items => 1, opac => 1})->as_xml_record()
818
        XMLin( $biblio1->metadata_record( { embed_items => 1, interface => 'opac' } )->as_xml_record() );
824
    );
825
819
826
    test_query(
820
    test_query(
827
        'ListRecords - biblio with two deleted items',
821
        'ListRecords - biblio with two deleted items',
Lines 898-909 subtest 'Tests for timestamp handling' => sub { Link Here
898
            $expected_header->{record},
892
            $expected_header->{record},
899
            {
893
            {
900
                header => {
894
                header => {
901
                    datestamp => $utc_timestamp,
895
                    datestamp  => $utc_timestamp,
902
                    identifier => 'TEST:' . $biblio2->biblionumber
896
                    identifier => 'TEST:' . $biblio2->biblionumber
903
                },
897
                },
904
                metadata => {
898
                metadata => {
905
                    record => XMLin(
899
                    record => XMLin(
906
                        $biblio2->metadata->record({ embed_items => 1, opac => 1})->as_xml_record()
900
                        $biblio2->metadata_record( { embed_items => 1, interface => 'opac' } )->as_xml_record()
907
                    )
901
                    )
908
                }
902
                }
909
            }
903
            }
Lines 914-927 subtest 'Tests for timestamp handling' => sub { Link Here
914
            $expected_header->{record},
908
            $expected_header->{record},
915
            {
909
            {
916
                header => {
910
                header => {
917
                    datestamp => $utc_timestamp,
911
                    datestamp  => $utc_timestamp,
918
                    identifier => 'TEST:' . $biblio2->biblionumber
912
                    identifier => 'TEST:' . $biblio2->biblionumber
919
                },
913
                },
920
                metadata => {
914
                metadata => { record => XMLin( $biblio2->metadata_record( { interface => 'opac' } )->as_xml_record() ) }
921
                    record => XMLin(
922
                        $biblio2->metadata->record->as_xml_record()
923
                    )
924
                }
925
            }
915
            }
926
        ]
916
        ]
927
    };
917
    };
928
- 

Return to bug 31224