Bug 17094: Make Koha::Virtualshelf methods return Koha::Objects-based objects
authorJonathan Druart <jonathan.druart@bugs.koha-community.org>
Tue, 9 Aug 2016 15:26:07 +0000 (16:26 +0100)
committerBrendan Gallagher <brendan@bywatersolutions.com>
Tue, 11 Oct 2016 13:14:46 +0000 (13:14 +0000)
Instead of DBIx::Class objects.

Test plan:
1/ Add content to a list and share it with another patron
2/ Try to view the list with the other patron
3/ download and send a shelf and check if the biblio list is correct
4/ prove t/db_dependent/Virtualshelves.t should return green

Signed-off-by: Aleisha Amohia <aleishaamohia@hotmail.com>
Signed-off-by: Martin Renvoize <martin.renvoize@ptfs-europe.com>

Signed-off-by: Brendan Gallagher <brendan@bywatersolutions.com>

Koha/Virtualshelf.pm
opac/opac-downloadshelf.pl
opac/opac-sendshelf.pl
opac/opac-shelves.pl
virtualshelves/downloadshelf.pl
virtualshelves/sendshelf.pl
virtualshelves/shelves.pl

index a693eba..4e45c31 100644 (file)
@@ -28,6 +28,7 @@ use Koha::Exceptions;
 use Koha::Virtualshelfshare;
 use Koha::Virtualshelfshares;
 use Koha::Virtualshelfcontent;
+use Koha::Virtualshelfcontents;
 
 use base qw(Koha::Object);
 
@@ -105,13 +106,15 @@ sub is_shelfname_valid {
 
 sub get_shares {
     my ( $self ) = @_;
-    my $shares = $self->{_result}->virtualshelfshares;
+    my $rs = $self->{_result}->virtualshelfshares;
+    my $shares = Koha::Virtualshelfshares->_new_from_dbic( $rs );
     return $shares;
 }
 
 sub get_contents {
     my ( $self ) = @_;
-    my $contents = $self->{_result}->virtualshelfcontents;
+    my $rs = $self->{_result}->virtualshelfcontents;
+    my $contents = Koha::Virtualshelfcontents->_new_from_dbic( $rs );
     return $contents;
 }
 
index 142577b..51769c4 100755 (executable)
@@ -70,7 +70,7 @@ if ( $shelf and $shelf->can_be_viewed( $borrowernumber ) ) {
         if ($format =~ /^\d+$/) {
             my @biblios;
             while ( my $content = $contents->next ) {
-                push @biblios, $content->biblionumber->biblionumber;
+                push @biblios, $content->biblionumber;
             }
             $output = marc2csv(\@biblios, $format);
         # Other formats
@@ -79,7 +79,7 @@ if ( $shelf and $shelf->can_be_viewed( $borrowernumber ) ) {
                 filters => 'ViewPolicy'
             });
             while ( my $content = $contents->next ) {
-                my $biblionumber = $content->biblionumber->biblionumber;
+                my $biblionumber = $content->biblionumber;
 
                 my $record = GetMarcBiblio($biblionumber, 1);
                 my $framework = &GetFrameworkCode( $biblionumber );
index a0682bc..242caca 100755 (executable)
@@ -86,7 +86,7 @@ if ( $email ) {
     my @results;
 
     while ( my $content = $contents->next ) {
-        my $biblionumber = $content->biblionumber->biblionumber;
+        my $biblionumber = $content->biblionumber;
         my $fw               = GetFrameworkCode($biblionumber);
         my $dat              = GetBiblioData($biblionumber);
         my $record           = GetMarcBiblio($biblionumber, 1);
index 065f517..b29ade6 100755 (executable)
@@ -28,6 +28,8 @@ use C4::Members;
 use C4::Output;
 use C4::Tags qw( get_tags );
 use C4::XSLT;
+
+use Koha::Biblioitems;
 use Koha::Virtualshelves;
 use Koha::RecordProcessor;
 
@@ -258,7 +260,7 @@ if ( $op eq 'view' ) {
             my $record_processor = Koha::RecordProcessor->new({ filters => 'ViewPolicy' });
             my @items;
             while ( my $content = $contents->next ) {
-                my $biblionumber = $content->biblionumber->biblionumber;
+                my $biblionumber = $content->biblionumber;
                 my $this_item    = GetBiblioData($biblionumber);
                 my $record = GetMarcBiblio($biblionumber);
                 my $framework = GetFrameworkCode( $biblionumber );
@@ -274,7 +276,8 @@ if ( $op eq 'view' ) {
                 }
 
                 my $marcflavour = C4::Context->preference("marcflavour");
-                my $itemtypeinfo = getitemtypeinfo( $content->biblionumber->biblioitems->first->itemtype, 'opac' );
+                my $itemtype = Koha::Biblioitems->search({ biblionumber => $content->biblionumber })->next->itemtype;
+                my $itemtypeinfo = getitemtypeinfo( $itemtype, 'opac' );
                 $this_item->{imageurl}          = $itemtypeinfo->{imageurl};
                 $this_item->{description}       = $itemtypeinfo->{description};
                 $this_item->{notforloan}        = $itemtypeinfo->{notforloan};
index d988161..5a9f440 100755 (executable)
@@ -64,13 +64,13 @@ if ($shelfid && $format) {
             if ($format =~ /^\d+$/) {
                 my @biblios;
                 while ( my $content = $contents->next ) {
-                    push @biblios, $content->biblionumber->biblionumber;
+                    push @biblios, $content->biblionumber;
                 }
                 $output = marc2csv(\@biblios, $format);
             }
             else { #Other formats
                 while ( my $content = $contents->next ) {
-                    my $biblionumber = $content->biblionumber->biblionumber;
+                    my $biblionumber = $content->biblionumber;
                     my $record = GetMarcBiblio($biblionumber, 1);
                     if ($format eq 'iso2709') {
                         $output .= $record->as_usmarc();
index 02999ea..1226d3e 100755 (executable)
@@ -77,7 +77,7 @@ if ($email) {
     my @results;
 
     while ( my $content = $contents->next ) {
-        my $biblionumber     = $content->biblionumber->biblionumber;
+        my $biblionumber     = $content->biblionumber;
         my $fw               = GetFrameworkCode($biblionumber);
         my $dat              = GetBiblioData($biblionumber);
         my $record           = GetMarcBiblio($biblionumber, 1);
index 11a90ae..691e215 100755 (executable)
@@ -27,6 +27,8 @@ use C4::Members;
 use C4::Output;
 use C4::XSLT;
 
+use Koha::Biblios;
+use Koha::Biblioitems;
 use Koha::CsvProfiles;
 use Koha::Virtualshelves;
 
@@ -223,7 +225,7 @@ if ( $op eq 'view' ) {
             my @items;
             while ( my $content = $contents->next ) {
                 my $this_item;
-                my $biblionumber = $content->biblionumber->biblionumber;
+                my $biblionumber = $content->biblionumber;
                 my $record       = GetMarcBiblio($biblionumber);
 
                 if ( $xslfile ) {
@@ -232,9 +234,11 @@ if ( $op eq 'view' ) {
                 }
 
                 my $marcflavour = C4::Context->preference("marcflavour");
-                my $itemtypeinfo = getitemtypeinfo( $content->biblionumber->biblioitems->first->itemtype, 'intranet' );
-                $this_item->{title}             = $content->biblionumber->title;
-                $this_item->{author}            = $content->biblionumber->author;
+                my $itemtype = Koha::Biblioitems->search({ biblionumber => $content->biblionumber })->next->itemtype;
+                my $itemtypeinfo = getitemtypeinfo( $itemtype, 'intranet' );
+                my $biblio = Koha::Biblios->find( $content->biblionumber );
+                $this_item->{title}             = $biblio->title;
+                $this_item->{author}            = $biblio->author;
                 $this_item->{dateadded}         = $content->dateadded;
                 $this_item->{imageurl}          = $itemtypeinfo->{imageurl};
                 $this_item->{description}       = $itemtypeinfo->{description};