@@ -, +, @@ --- C4/Circulation.pm | 6 +++++- Koha/Schema/Result/CheckoutRenewal.pm | 14 ++++++++++++-- api/v1/swagger/definitions/renewal.yaml | 4 ++++ .../atomicupdate/bug_30642-add_renewal_type.pl | 18 ++++++++++++++++++ installer/data/mysql/kohastructure.sql | 1 + .../prog/en/includes/str/checkout_renewals.inc | 1 + .../prog/js/checkout_renewals_modal.js | 2 +- 7 files changed, 42 insertions(+), 4 deletions(-) create mode 100644 installer/data/mysql/atomicupdate/bug_30642-add_renewal_type.pl --- a/C4/Circulation.pm +++ a/C4/Circulation.pm @@ -3048,6 +3048,9 @@ sub AddRenewal { my $issue = $item_object->checkout; my $item_unblessed = $item_object->unblessed; + my ($package, $filename, $line) = caller; + my $renewal_type = $filename eq "automatic_renewals.pl" ? "Automatic" : "Manual"; + my $dbh = C4::Context->dbh; return unless $issue; @@ -3185,7 +3188,8 @@ sub AddRenewal { checkout_id => $issue->issue_id, renewer_id => C4::Context->userenv ? C4::Context->userenv->{'number'} : undef, seen => $seen, - interface => C4::Context->interface + interface => C4::Context->interface, + renewal_type => $renewal_type } )->store(); --- a/Koha/Schema/Result/CheckoutRenewal.pm +++ a/Koha/Schema/Result/CheckoutRenewal.pm @@ -69,6 +69,14 @@ the interface this renewal took place on the date and time the renewal took place +=head2 renewal_type + + data_type: 'varchar' + is_nullable: 0 + size: 9 + +whether the renewal was an automatic or manual renewal + =cut __PACKAGE__->add_columns( @@ -89,6 +97,8 @@ __PACKAGE__->add_columns( default_value => \"current_timestamp", is_nullable => 0, }, + "renewal_type", + { data_type => "varchar", is_nullable => 0, size => 9 }, ); =head1 PRIMARY KEY @@ -126,8 +136,8 @@ __PACKAGE__->belongs_to( ); -# Created by DBIx::Class::Schema::Loader v0.07049 @ 2022-04-27 19:43:17 -# DO NOT MODIFY THIS OR ANYTHING ABOVE! md5sum:7mjiEx634L5FZyjroACUkg +# Created by DBIx::Class::Schema::Loader v0.07049 @ 2022-12-06 16:44:53 +# DO NOT MODIFY THIS OR ANYTHING ABOVE! md5sum:BcbN0Iceh09H2DWEA6CDwA =head2 checkout --- a/api/v1/swagger/definitions/renewal.yaml +++ a/api/v1/swagger/definitions/renewal.yaml @@ -28,6 +28,10 @@ properties: timestamp: type: string description: Last update time + renewal_type: + type: + - string + - "null" renewer: type: - object --- a/installer/data/mysql/atomicupdate/bug_30642-add_renewal_type.pl +++ a/installer/data/mysql/atomicupdate/bug_30642-add_renewal_type.pl @@ -0,0 +1,18 @@ +use Modern::Perl; + +return { + bug_number => "BUG_30642", + description => "Record whether a renewal has been done manually or automatically.", + up => sub { + my ($args) = @_; + my ($dbh, $out) = @$args{qw(dbh out)}; + + if( !column_exists( 'checkout_renewals', 'renewal_type' ) ) { + $dbh->do(q{ + ALTER TABLE checkout_renewals ADD COLUMN `renewal_type` varchar(9) NOT NULL AFTER `timestamp` + }); + + say $out "Added column 'checkout_renewals.column_name'"; + } + }, +}; --- a/installer/data/mysql/kohastructure.sql +++ a/installer/data/mysql/kohastructure.sql @@ -1711,6 +1711,7 @@ CREATE TABLE `checkout_renewals` ( `seen` tinyint(1) DEFAULT 0 COMMENT 'boolean denoting whether the item was present or not', `interface` varchar(16) NOT NULL COMMENT 'the interface this renewal took place on', `timestamp` timestamp NOT NULL DEFAULT current_timestamp() COMMENT 'the date and time the renewal took place', + `renewal_type` varchar(9) NOT NULL COMMENT 'whether the renewal was an automatic or manual renewal', PRIMARY KEY (`renewal_id`), KEY `renewer_id` (`renewer_id`), CONSTRAINT `renewals_renewer_id` FOREIGN KEY (`renewer_id`) REFERENCES `borrowers` (`borrowernumber`) ON DELETE SET NULL ON UPDATE CASCADE --- a/koha-tmpl/intranet-tmpl/prog/en/includes/str/checkout_renewals.inc +++ a/koha-tmpl/intranet-tmpl/prog/en/includes/str/checkout_renewals.inc @@ -2,4 +2,5 @@ --- a/koha-tmpl/intranet-tmpl/prog/js/checkout_renewals_modal.js +++ a/koha-tmpl/intranet-tmpl/prog/js/checkout_renewals_modal.js @@ -20,6 +20,6 @@ $(document).ready(function(){ }); }); function createLi(renewal) { - return '
  • ' + $datetime(renewal.timestamp) + ' ' + renewed + ' ' + $patron_to_html(renewal.renewer) + '
  • '; + return '
  • ' + $datetime(renewal.timestamp) + ' ' + renewed + ' ' + $patron_to_html(renewal.renewer) + '' + renewed_type + ' ' + renewal.renewal_type + '
  • '; } }); --