Bugzilla – Attachment 187789 Details for
Bug 40517
Allow grouping existing holds
Home
|
New
|
Browse
|
Search
|
[?]
|
Reports
|
Help
|
New Account
|
Log In
[x]
|
Forgot Password
Login:
[x]
[patch]
Bug 40517: Add hold groups relationship to patron
Bug-40517-Add-hold-groups-relationship-to-patron.patch (text/plain), 6.61 KB, created by
Pedro Amorim
on 2025-10-13 08:34:31 UTC
(
hide
)
Description:
Bug 40517: Add hold groups relationship to patron
Filename:
MIME Type:
Creator:
Pedro Amorim
Created:
2025-10-13 08:34:31 UTC
Size:
6.61 KB
patch
obsolete
>From 420f8f41475f36ba67149b3fbc083c9ce4896cc4 Mon Sep 17 00:00:00 2001 >From: Pedro Amorim <pedro.amorim@openfifth.co.uk> >Date: Wed, 16 Jul 2025 10:59:18 +0000 >Subject: [PATCH] Bug 40517: Add hold groups relationship to patron > >Signed-off-by: Anneli <anneli.osterman@koha-suomi.fi> >Signed-off-by: Andrew Fuerste Henry <andrew@bywatersolutions.com> >--- > Koha/Patron.pm | 15 ++++++++ > Koha/Schema/Result/Borrower.pm | 19 +++++++++-- > Koha/Schema/Result/HoldGroup.pm | 34 +++++++++++++++++-- > .../bug_40517_-_hold_group_table_updates.pl | 31 +++++++++++++++++ > installer/data/mysql/kohastructure.sql | 3 ++ > 5 files changed, 98 insertions(+), 4 deletions(-) > create mode 100755 installer/data/mysql/atomicupdate/bug_40517_-_hold_group_table_updates.pl > >diff --git a/Koha/Patron.pm b/Koha/Patron.pm >index 4d94d0b765e..85ac7b67f74 100644 >--- a/Koha/Patron.pm >+++ b/Koha/Patron.pm >@@ -46,6 +46,7 @@ use Koha::Encryption; > use Koha::Exceptions; > use Koha::Exceptions::Password; > use Koha::Holds; >+use Koha::HoldGroups; > use Koha::ILL::Requests; > use Koha::ItemTypes; > use Koha::Old::Checkouts; >@@ -1847,6 +1848,20 @@ sub old_holds { > return Koha::Old::Holds->_new_from_dbic($old_holds_rs); > } > >+=head3 hold_groups >+ >+my $hold_groups = $patron->hold_groups >+ >+Return all of this patron's hold groups >+ >+=cut >+ >+sub hold_groups { >+ my ($self) = @_; >+ my $hold_group_rs = $self->_result->hold_groups->search( {}, { order_by => 'hold_group_id' } ); >+ return Koha::HoldGroups->_new_from_dbic($hold_group_rs); >+} >+ > =head3 curbside_pickups > > my $curbside_pickups = $patron->curbside_pickups; >diff --git a/Koha/Schema/Result/Borrower.pm b/Koha/Schema/Result/Borrower.pm >index 1e1fa11cd42..4ea0800ab83 100644 >--- a/Koha/Schema/Result/Borrower.pm >+++ b/Koha/Schema/Result/Borrower.pm >@@ -1391,6 +1391,21 @@ __PACKAGE__->has_many( > { cascade_copy => 0, cascade_delete => 0 }, > ); > >+=head2 hold_groups >+ >+Type: has_many >+ >+Related object: L<Koha::Schema::Result::HoldGroup> >+ >+=cut >+ >+__PACKAGE__->has_many( >+ "hold_groups", >+ "Koha::Schema::Result::HoldGroup", >+ { "foreign.borrowernumber" => "self.borrowernumber" }, >+ { cascade_copy => 0, cascade_delete => 0 }, >+); >+ > =head2 housebound_profile > > Type: might_have >@@ -2197,8 +2212,8 @@ Composing rels: L</user_permissions> -> permission > __PACKAGE__->many_to_many("permissions", "user_permissions", "permission"); > > >-# Created by DBIx::Class::Schema::Loader v0.07051 @ 2025-07-10 07:11:31 >-# DO NOT MODIFY THIS OR ANYTHING ABOVE! md5sum:XFOe2X4k2DUziaNS5pWd/Q >+# Created by DBIx::Class::Schema::Loader v0.07051 @ 2025-07-16 10:57:50 >+# DO NOT MODIFY THIS OR ANYTHING ABOVE! md5sum:1mCQb2VuHB10JWtlJXTBWw > > __PACKAGE__->belongs_to( > "library", >diff --git a/Koha/Schema/Result/HoldGroup.pm b/Koha/Schema/Result/HoldGroup.pm >index ee15da9c5d0..ac2c9ffdbbf 100644 >--- a/Koha/Schema/Result/HoldGroup.pm >+++ b/Koha/Schema/Result/HoldGroup.pm >@@ -30,6 +30,14 @@ __PACKAGE__->table("hold_groups"); > is_auto_increment: 1 > is_nullable: 0 > >+=head2 borrowernumber >+ >+ data_type: 'integer' >+ is_foreign_key: 1 >+ is_nullable: 1 >+ >+foreign key, linking this to the borrowers table >+ > =cut > > __PACKAGE__->add_columns( >@@ -40,6 +48,8 @@ __PACKAGE__->add_columns( > is_auto_increment => 1, > is_nullable => 0, > }, >+ "borrowernumber", >+ { data_type => "integer", is_foreign_key => 1, is_nullable => 1 }, > ); > > =head1 PRIMARY KEY >@@ -56,6 +66,26 @@ __PACKAGE__->set_primary_key("hold_group_id"); > > =head1 RELATIONS > >+=head2 borrowernumber >+ >+Type: belongs_to >+ >+Related object: L<Koha::Schema::Result::Borrower> >+ >+=cut >+ >+__PACKAGE__->belongs_to( >+ "borrowernumber", >+ "Koha::Schema::Result::Borrower", >+ { borrowernumber => "borrowernumber" }, >+ { >+ is_deferrable => 1, >+ join_type => "LEFT", >+ on_delete => "CASCADE", >+ on_update => "RESTRICT", >+ }, >+); >+ > =head2 old_reserves > > Type: has_many >@@ -87,8 +117,8 @@ __PACKAGE__->has_many( > ); > > >-# Created by DBIx::Class::Schema::Loader v0.07051 @ 2025-09-03 17:08:22 >-# DO NOT MODIFY THIS OR ANYTHING ABOVE! md5sum:m3/7K38O11278k5glHlXAA >+# Created by DBIx::Class::Schema::Loader v0.07051 @ 2025-07-16 10:57:50 >+# DO NOT MODIFY THIS OR ANYTHING ABOVE! md5sum:Y1eP6naEI2vi94gTHqtubw > > > # You can replace this text with custom code or comments, and it will be preserved on regeneration >diff --git a/installer/data/mysql/atomicupdate/bug_40517_-_hold_group_table_updates.pl b/installer/data/mysql/atomicupdate/bug_40517_-_hold_group_table_updates.pl >new file mode 100755 >index 00000000000..e520c378a40 >--- /dev/null >+++ b/installer/data/mysql/atomicupdate/bug_40517_-_hold_group_table_updates.pl >@@ -0,0 +1,31 @@ >+use Modern::Perl; >+use Koha::Installer::Output qw(say_warning say_success say_info); >+ >+return { >+ bug_number => "40517", >+ description => "Add 'borrower' column to hold_groups", >+ up => sub { >+ my ($args) = @_; >+ my ( $dbh, $out ) = @$args{qw(dbh out)}; >+ >+ unless ( column_exists( 'hold_groups', 'borrowernumber' ) ) { >+ $dbh->do( >+ q{ALTER TABLE hold_groups ADD COLUMN borrowernumber int(11) DEFAULT NULL COMMENT 'foreign key, linking this to the borrowers table' AFTER hold_group_id} >+ ); >+ $dbh->do( >+ q{ >+ ALTER TABLE hold_groups ADD KEY `hold_groups_borrowernumber` (`borrowernumber`) >+ } >+ ); >+ $dbh->do( >+ q{ >+ ALTER TABLE hold_groups ADD CONSTRAINT hold_groups_ibfk_1 >+ FOREIGN KEY(`borrowernumber`) >+ REFERENCES `borrowers` (`borrowernumber`) >+ ON DELETE CASCADE; >+ } >+ ); >+ say_success( $out, "Added column 'borrowernumber' to hold_groups" ); >+ } >+ }, >+}; >diff --git a/installer/data/mysql/kohastructure.sql b/installer/data/mysql/kohastructure.sql >index fe7454cfe2f..c6fc8abd9e9 100644 >--- a/installer/data/mysql/kohastructure.sql >+++ b/installer/data/mysql/kohastructure.sql >@@ -3551,6 +3551,9 @@ DROP TABLE IF EXISTS `hold_groups`; > /*!40101 SET character_set_client = utf8mb4 */; > CREATE TABLE `hold_groups` ( > `hold_group_id` int(10) unsigned NOT NULL AUTO_INCREMENT, >+ `borrowernumber` int(11) DEFAULT NULL COMMENT 'foreign key, linking this to the borrowers table', >+ KEY `hold_groups_borrowernumber` (`borrowernumber`), >+ CONSTRAINT `hold_groups_ibfk_1` FOREIGN KEY (`borrowernumber`) REFERENCES `borrowers` (`borrowernumber`) ON DELETE CASCADE, > PRIMARY KEY (`hold_group_id`) > ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci; > /*!40101 SET character_set_client = @saved_cs_client */; >-- >2.39.5
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 40517
:
184640
|
184641
|
184642
|
184643
|
184644
|
184645
|
184646
|
184729
|
184732
|
184733
|
184734
|
184735
|
184736
|
184737
|
184738
|
184739
|
185217
|
186672
|
186673
|
186674
|
186675
|
186676
|
186677
|
186678
|
186679
|
186680
|
186745
|
186746
|
186747
|
186748
|
186749
|
186750
|
186751
|
186752
|
186753
|
187789
|
187790
|
187791
|
187792
|
187793
|
187794
|
187795
|
187796
|
187797
|
187801
|
187802
|
187803
|
187804
|
187805
|
187806
|
187807
|
187808
|
187809
|
187810
|
187811
|
187812
|
187965
|
187966
|
187967
|
187968
|
187969
|
187970
|
187971
|
187972
|
187973
|
187974
|
187975
|
187976
|
188293
|
188294
|
188343
|
188422