Bugzilla – Attachment 138890 Details for
Bug 30927
Improve formatting or iCal files for checkout due dates
Home
|
New
|
Browse
|
Search
|
[?]
|
Reports
|
Help
|
New Account
|
Log In
[x]
|
Forgot Password
Login:
[x]
[patch]
Bug 30927: Improve formatting or iCal files for checkout due dates
Bug-30927-Improve-formatting-or-iCal-files-for-che.patch (text/plain), 3.69 KB, created by
Jonathan Druart
on 2022-08-09 09:55:22 UTC
(
hide
)
Description:
Bug 30927: Improve formatting or iCal files for checkout due dates
Filename:
MIME Type:
Creator:
Jonathan Druart
Created:
2022-08-09 09:55:22 UTC
Size:
3.69 KB
patch
obsolete
>From acf66f231d3a182b987dff09ff26635a2ea3cbb5 Mon Sep 17 00:00:00 2001 >From: Kyle M Hall <kyle@bywatersolutions.com> >Date: Mon, 13 Jun 2022 17:57:13 +0000 >Subject: [PATCH] Bug 30927: Improve formatting or iCal files for checkout due > dates > >We got some feedback from a patron regarding the default notifications >on the iCal export for the patron checkout summary in the OPAC. >The notifications send 1 minute before the event (the due date), which >is midnight. > >Test Plan: >0) Make sure your time zone in Koha is set correctly in koha-conf.xml >1) Apply this patch >2) Restart all the things! >3) Make a checkout due at 23:59 >4) Make a checkout due at 11:00 >5) Download the iCal file from the OPAC >6) Import this file into Calendar >7) Note the first checkout is an all day event >8) Note the second checkout is an "instantaneous" event at the date and > time the item is due > >Signed-off-by: Owen Leonard <oleonard@myacpl.org> > >Signed-off-by: Jonathan Druart <jonathan.druart@bugs.koha-community.org> >--- > opac/opac-ics.pl | 24 ++++++++++++++++++++---- > 1 file changed, 20 insertions(+), 4 deletions(-) > >diff --git a/opac/opac-ics.pl b/opac/opac-ics.pl >index 62603f3a2f4..ba1f6c63298 100755 >--- a/opac/opac-ics.pl >+++ b/opac/opac-ics.pl >@@ -47,10 +47,11 @@ my $calendar = Data::ICal->new(); > my $patron = Koha::Patrons->find( $borrowernumber ); > my $pending_checkouts = $patron->pending_checkouts; > >+my $timestamp = dt_from_string(undef,undef,"UTC"); #Get current time in UTC >+ > while ( my $c = $pending_checkouts->next ) { > my $issue = $c->unblessed_all_relateds; > my $vevent = Data::ICal::Entry::Event->new(); >- my $timestamp = dt_from_string(undef,undef,"UTC"); #Get current time in UTC > # Send some values to the template to generate summary and description > $issue->{overdue} = $c->is_overdue; > $template->param( >@@ -60,13 +61,15 @@ while ( my $c = $pending_checkouts->next ) { > ); > # Catch the result of the template and split on newline > my ($summary,$description) = split /\n/, $template->output; >- my $datestart; >+ my ( $datestart, $datestart_local ); > if ($issue->{'overdue'} && $issue->{'overdue'} == 1) { > # Not much use adding an event in the past for a book that is overdue > # so we set datestart = now >- $datestart = $timestamp; >+ $datestart = $timestamp->clone(); >+ $datestart_local = $datestart->clone(); > } else { > $datestart = dt_from_string($issue->{'date_due'}); >+ $datestart_local = $datestart->clone(); > $datestart->set_time_zone('UTC'); > } > # Create a UID that includes the issue number and the domain >@@ -80,11 +83,24 @@ while ( my $c = $pending_checkouts->next ) { > } > my $uid = 'issue-' . $issue->{'issue_id'} . '@' . $domain; > # Create the event >+ >+ my $dtstart; >+ if ($issue->{'overdue'} && $issue->{'overdue'} == 1) { >+ # It's already overdue so make it due as an all day event today >+ $dtstart = [ $datestart->ymd(q{}), { VALUE => 'DATE' } ]; >+ } elsif ( $datestart_local->hour eq '23' && $datestart_local->minute eq '59' ) { >+ # Checkouts due at 23:59 are "all day events" >+ $dtstart = [ $datestart->ymd(q{}), { VALUE => 'DATE' } ]; >+ } >+ else { # Checkouts due any other time are instantaneous events at the date and time due >+ $dtstart = DateTime::Format::ICal->format_datetime($datestart); >+ } >+ > $vevent->add_properties( > summary => $summary, > description => $description, > dtstamp => DateTime::Format::ICal->format_datetime($timestamp), >- dtstart => DateTime::Format::ICal->format_datetime($datestart), >+ dtstart => $dtstart, > uid => $uid, > ); > # Add it to the calendar >-- >2.25.1
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 30927
:
135826
|
135907
|
135910
|
136038
|
136039
|
136069
|
136070
|
136071
|
136072
|
136073
|
136074
|
136094
|
136095
| 138890