Bug 30642: (follow-up) Change sql and adapt for translations
authorMatt Blenkinsop <matt.blenkinsop@ptfs-europe.com>
Thu, 8 Dec 2022 14:28:49 +0000 (14:28 +0000)
committerTomas Cohen Arazi <tomascohen@theke.io>
Fri, 10 Feb 2023 14:07:58 +0000 (11:07 -0300)
New column has now been changed to an enum in line with comments and the strings have been amended to be picked up for translation. The file koha-tmpl/intranet-tmpl/prog/en/includes/str/checkout_renewals.inc has been removed as the variables can be included within the javascript file.

Test plan:
1) In the database shell run "show columns from checkout_renewals;" and observe that there is currently no column for recording the type of renewal
2) Apply patch
3) In the shell run "dbic" and "perl installer/data/mysql/updatedatabase.pl" to update the database schema with the new column.
4) Create some checkouts
5) Renew some checkouts manually and observe in the database that there is now a column called "renewal_type" that will have recorded these as "Manual"
6) Create some checkouts that can be automatically renewed
7) Run the cron script in automatic_renewals.pl and observe that there are now also entries with a renewal_type of "Automatic"
8) Send a GET request to http://localhost:8081/api/v1/checkouts/1/renewals and observe that the renewal_type is now returned in the response
9) In the Item Details tab for a record, there is the "Current renewals" option which has a button to view renewals. Click on this and observe that the modal now displays the new information.

Signed-off-by: Lucas Gass <lucas@bywatersolutions.com>
Signed-off-by: Kyle M Hall <kyle@bywatersolutions.com>
Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
Koha/Schema/Result/CheckoutRenewal.pm
installer/data/mysql/atomicupdate/bug_30642-add_renewal_type.pl
installer/data/mysql/kohastructure.sql
koha-tmpl/intranet-tmpl/prog/en/includes/str/checkout_renewals.inc [deleted file]
koha-tmpl/intranet-tmpl/prog/en/modules/catalogue/moredetail.tt
koha-tmpl/intranet-tmpl/prog/js/checkout_renewals_modal.js

index 9efbd93..569fcfc 100644 (file)
@@ -71,9 +71,10 @@ the date and time the renewal took place
 
 =head2 renewal_type
 
-  data_type: 'varchar'
+  data_type: 'enum'
+  default_value: 'Manual'
+  extra: {list => ["Automatic","Manual"]}
   is_nullable: 0
-  size: 9
 
 whether the renewal was an automatic or manual renewal
 
@@ -98,7 +99,12 @@ __PACKAGE__->add_columns(
     is_nullable => 0,
   },
   "renewal_type",
-  { data_type => "varchar", is_nullable => 0, size => 9 },
+  {
+    data_type => "enum",
+    default_value => "Manual",
+    extra => { list => ["Automatic", "Manual"] },
+    is_nullable => 0,
+  },
 );
 
 =head1 PRIMARY KEY
@@ -136,8 +142,8 @@ __PACKAGE__->belongs_to(
 );
 
 
-# Created by DBIx::Class::Schema::Loader v0.07049 @ 2022-12-06 16:44:53
-# DO NOT MODIFY THIS OR ANYTHING ABOVE! md5sum:BcbN0Iceh09H2DWEA6CDwA
+# Created by DBIx::Class::Schema::Loader v0.07049 @ 2022-12-08 10:49:16
+# DO NOT MODIFY THIS OR ANYTHING ABOVE! md5sum:Si1gkXWqpvt98YN0dO7vgw
 
 =head2 checkout
 
index cc86ed1..36290b3 100644 (file)
@@ -1,7 +1,7 @@
 use Modern::Perl;
 
 return {
-    bug_number => "BUG_30642",
+    bug_number => "30642",
     description => "Record whether a renewal has been done manually or automatically.",
     up => sub {
         my ($args) = @_;
@@ -9,7 +9,7 @@ return {
 
         if( !column_exists( 'checkout_renewals', 'renewal_type' ) ) {
           $dbh->do(q{
-              ALTER TABLE checkout_renewals ADD COLUMN `renewal_type` varchar(9) NOT NULL AFTER `timestamp`
+              ALTER TABLE checkout_renewals ADD COLUMN `renewal_type` enum('Automatic', 'Manual') NOT NULL DEFAULT 'Manual' AFTER `timestamp`
           });
 
           say $out "Added column 'checkout_renewals.column_name'";
index fbd6539..03d6cbe 100644 (file)
@@ -1714,7 +1714,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',
+  `renewal_type` enum('Automatic', 'Manual') NOT NULL DEFAULT 'Manual' 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
diff --git a/koha-tmpl/intranet-tmpl/prog/en/includes/str/checkout_renewals.inc b/koha-tmpl/intranet-tmpl/prog/en/includes/str/checkout_renewals.inc
deleted file mode 100644 (file)
index 3dc7138..0000000
+++ /dev/null
@@ -1,6 +0,0 @@
-<!-- str/checkout_renewals.inc -->
-<script>
-    var renewed_prop = _("Note: %s out of %s renewals have been logged");
-    var renewed = _("Renewed by");
-    var renewed_type = _(" Renewal type:");
-</script>
index 5ba3e48..945a1b0 100644 (file)
 [% MACRO jsinclude BLOCK %]
     [% INCLUDE 'catalog-strings.inc' %]
     [% INCLUDE 'modals/checkout_renewals.inc' %]
-    [% INCLUDE 'str/checkout_renewals.inc' %]
     [% INCLUDE 'js-date-format.inc' %]
     [% INCLUDE 'js-patron-format.inc' %]
     [% Asset.js("js/catalog.js") | $raw %]
index 4ca4c6c..f4f57c5 100644 (file)
@@ -10,7 +10,7 @@ $(document).ready(function(){
         $('#checkoutRenewals #retrieving').show();
         $.get({ 'url': '/api/v1/checkouts/'+checkoutID+'/renewals', 'headers': { 'x-koha-embed': 'renewer' } }, function(data) {
             if (data.length < renewals) {
-                $('#checkoutRenewals #incomplete').append(renewed_prop.format(data.length, renewals)).show();
+                $('#checkoutRenewals #incomplete').append(__("Note: %s out of %s renewals have been logged").format(data.length, renewals)).show();
             }
             var items = data.map(function(item) {
                 return createLi(item);
@@ -20,6 +20,10 @@ $(document).ready(function(){
         });
     });
     function createLi(renewal) {
-        return '<li><span style="font-weight:bold">' + $datetime(renewal.timestamp) + '</span> ' + renewed + ' <span style="font-weight:bold">' + $patron_to_html(renewal.renewer) + '</span>' + renewed_type + ' <span style="font-weight:bold">' + renewal.renewal_type + '</span></li>';
+        if(renewal.renewal_type === "Manual"){
+            return '<li><span style="font-weight:bold">' + $datetime(renewal.timestamp) + '</span> ' + __("Renewed by") + ' <span style="font-weight:bold">' + $patron_to_html(renewal.renewer) + " " + __("manually") + '</span></li>';
+        } else {
+            return '<li><span style="font-weight:bold">' + $datetime(renewal.timestamp) + '</span> ' + __("Renewal type:") + ' <span style="font-weight:bold">' +  __("Automatic") + '</span></li>';
+        }
     }
 });