Bug 22700: Make biblio_metadata prefetchable from Koha::Biblio
authorTomas Cohen Arazi <tomascohen@theke.io>
Fri, 12 Apr 2019 16:46:04 +0000 (13:46 -0300)
committerNick Clemens <nick@bywatersolutions.com>
Wed, 24 Apr 2019 10:47:42 +0000 (10:47 +0000)
This patch makes $biblio->metadata be prefetchable as the Coding
guidelines require.

A new has_one relationship is added in the Biblio schema, named as the
accessor to also convey to proposed guidelines for readability.

To test:
- Apply this patch
- Run:
  $ kshell
 k$ prove t/db_dependent/Koha/Biblio.t
=> SUCCESS: No regressions!
- Sign off :-D

Signed-off-by: Michal Denar <black23@gmail.com>
Signed-off-by: Martin Renvoize <martin.renvoize@ptfs-europe.com>

Signed-off-by: Nick Clemens <nick@bywatersolutions.com>

Koha/Biblio.pm
Koha/Schema/Result/Biblio.pm

index 56f9185..48a585a 100644 (file)
@@ -74,9 +74,8 @@ Returns a Koha::Biblio::Metadata object
 sub metadata {
     my ( $self ) = @_;
 
-    $self->{_metadata} ||= Koha::Biblio::Metadatas->find( { biblionumber => $self->id } );
-
-    return $self->{_metadata};
+    my $metadata = $self->_result->metadata;
+    return Koha::Biblio::Metadata->_new_from_dbic($metadata);
 }
 
 =head3 subtitles
index 53e806b..c262326 100644 (file)
@@ -366,4 +366,11 @@ __PACKAGE__->has_many(
 # Created by DBIx::Class::Schema::Loader v0.07046 @ 2019-03-11 12:56:41
 # DO NOT MODIFY THIS OR ANYTHING ABOVE! md5sum:ebn7Szfm8/HbrdAc7ekTnA
 
+__PACKAGE__->has_one(
+  "metadata",
+  "Koha::Schema::Result::BiblioMetadata",
+  { "foreign.biblionumber" => "self.biblionumber" },
+  { cascade_copy => 0, cascade_delete => 0 },
+);
+
 1;