Bugzilla – Attachment 186257 Details for
Bug 37661
Disable/Enable Bookings
Home
|
New
|
Browse
|
Search
|
[?]
|
Reports
|
Help
|
New Account
|
Log In
[x]
|
Forgot Password
Login:
[x]
[patch]
Bug 37661: [24.11.x] Add a new syspref EnableBooking
Bug-37661-2411x-Add-a-new-syspref-EnableBooking.patch (text/plain), 18.77 KB, created by
Fridolin Somers
on 2025-09-08 12:26:15 UTC
(
hide
)
Description:
Bug 37661: [24.11.x] Add a new syspref EnableBooking
Filename:
MIME Type:
Creator:
Fridolin Somers
Created:
2025-09-08 12:26:15 UTC
Size:
18.77 KB
patch
obsolete
>From ed32f5fa66246fc03b7a7fc394eed4399c1dadf8 Mon Sep 17 00:00:00 2001 >From: Baptiste <baptiste.wojtkowski@biblibre.com> >Date: Wed, 23 Jul 2025 15:39:03 +0200 >Subject: [PATCH] Bug 37661: [24.11.x] Add a new syspref EnableBooking > >This patch makes the Booking module dependant of a new YesNo syspref: EnableBooking > >To do this, I tried and get all changes using the graph of Bug 29002 and >got interrested in every tt change to make changes on this depend on the >new syspref. File inside the booking module should not be amended. > >Here are the files I found relevant for each patch >Bug 37737: >- koha-tmpl/intranet-tmpl/prog/en/includes/patron-detail-tabs.inc >- koha-tmpl/intranet-tmpl/prog/en/modules/members/moremember.tt >Bug 37736: >- koha-tmpl/intranet-tmpl/prog/en/modules/circ/circulation-home.tt >Bug 29002: >- koha-tmpl/intranet-tmpl/prog/en/includes/cat-toolbar.inc >- koha-tmpl/intranet-tmpl/prog/en/modules/catalogue/ISBDdetail.tt >- koha-tmpl/intranet-tmpl/prog/en/modules/catalogue/MARCdetail.tt >- koha-tmpl/intranet-tmpl/prog/en/modules/catalogue/detail.tt >- koha-tmpl/intranet-tmpl/prog/en/modules/catalogue/imageviewer.tt >- koha-tmpl/intranet-tmpl/prog/en/modules/catalogue/labeledMARCdetail.tt >- koha-tmpl/intranet-tmpl/prog/en/modules/catalogue/moredetail.tt > >TEST PLAN: >1 - Set "Bookable = 1" on a given item >2 - Make sure you know where are located > - The field bookable on exemplaries > - The button "Place booking" in item toolbae > - The link "Bookings (0)" in item menu >3 - Apply patch and update database >4 - Check that every field listed in 2 - is still present >5 - Set the syspref "EnableBooking" to "Disable" >6 - Check that every field listed in 2 - is still present >7 - Browse Norme, ISBD, Marc, Items tabs + pages imageviewer.pl, labeledMARCdetail.pl and check that nothing is broken > >Signed-off-by: Martin Renvoize <martin.renvoize@openfifth.co.uk> >Signed-off-by: Lucas Gass <lucas@bywatersolutions.com> >--- > .../bug_37661-EnableBooking_syspref.pl | 17 +++++++++++++++++ > installer/data/mysql/mandatory/sysprefs.sql | 1 + > .../prog/en/includes/biblio-view-menu.inc | 2 +- > .../prog/en/includes/cat-toolbar.inc | 2 +- > .../prog/en/includes/patron-detail-tabs.inc | 4 ++++ > .../modules/admin/preferences/circulation.pref | 8 ++++++++ > .../prog/en/modules/catalogue/ISBDdetail.tt | 10 +++++++--- > .../prog/en/modules/catalogue/MARCdetail.tt | 10 +++++++--- > .../prog/en/modules/catalogue/detail.tt | 11 ++++++++--- > .../prog/en/modules/catalogue/imageviewer.tt | 10 +++++++--- > .../en/modules/catalogue/labeledMARCdetail.tt | 10 +++++++--- > .../prog/en/modules/catalogue/moredetail.tt | 13 ++++++++++--- > .../prog/en/modules/circ/circulation-home.tt | 4 +++- > .../prog/en/modules/members/moremember.tt | 10 +++++++--- > 14 files changed, 88 insertions(+), 24 deletions(-) > create mode 100755 installer/data/mysql/atomicupdate/bug_37661-EnableBooking_syspref.pl > >diff --git a/installer/data/mysql/atomicupdate/bug_37661-EnableBooking_syspref.pl b/installer/data/mysql/atomicupdate/bug_37661-EnableBooking_syspref.pl >new file mode 100755 >index 00000000000..1fd8bb1796b >--- /dev/null >+++ b/installer/data/mysql/atomicupdate/bug_37661-EnableBooking_syspref.pl >@@ -0,0 +1,17 @@ >+use Modern::Perl; >+use Koha::Installer::Output qw(say_warning say_success say_info); >+ >+return { >+ bug_number => "37661", >+ description => "Add a way to enable/disable bookings", >+ up => sub { >+ my ($args) = @_; >+ my ( $dbh, $out ) = @$args{qw(dbh out)}; >+ >+ $dbh->do( >+ q{INSERT IGNORE INTO systempreferences (variable,value,options,explanation,type) VALUES ('EnableBooking','1',NULL,'If enabled, activate every functionalities related with Bookings module','YesNo')} >+ ); >+ >+ say_success( $out, "Added new system preference 'EnableBooking'" ); >+ }, >+}; >diff --git a/installer/data/mysql/mandatory/sysprefs.sql b/installer/data/mysql/mandatory/sysprefs.sql >index de6f70ed6fc..f940022abbf 100644 >--- a/installer/data/mysql/mandatory/sysprefs.sql >+++ b/installer/data/mysql/mandatory/sysprefs.sql >@@ -246,6 +246,7 @@ INSERT INTO systempreferences ( `variable`, `value`, `options`, `explanation`, ` > ('EmailPurchaseSuggestions','0','0|EmailAddressForSuggestions|BranchEmailAddress|KohaAdminEmailAddress','Choose email address that new purchase suggestions will be sent to: ','Choice'), > ('EmailSMSSendDriverFromAddress', '', '', 'Email SMS send driver from address override', 'Free'), > ('EnableAdvancedCatalogingEditor','0','','Enable the Rancor advanced cataloging editor','YesNo'), >+('EnableBooking','1',NULL,'If enabled, activate every functionnalities related with Bookings module','YesNo'), > ('EnableBorrowerFiles','0',NULL,'If enabled, allows librarians to upload and attach arbitrary files to a borrower record.','YesNo'), > ('EnableExpiredPasswordReset', '0', NULL, 'Enable ability for patrons with expired password to reset their password directly', 'YesNo'), > ('EnableItemGroupHolds','0','','Enable item groups holds feature','YesNo'), >diff --git a/koha-tmpl/intranet-tmpl/prog/en/includes/biblio-view-menu.inc b/koha-tmpl/intranet-tmpl/prog/en/includes/biblio-view-menu.inc >index 3e5625eff0a..98310cf2b80 100644 >--- a/koha-tmpl/intranet-tmpl/prog/en/includes/biblio-view-menu.inc >+++ b/koha-tmpl/intranet-tmpl/prog/en/includes/biblio-view-menu.inc >@@ -50,7 +50,7 @@ > <a href="/cgi-bin/koha/catalogue/moredetail.pl?biblionumber=[% biblio_object_id | url %]">Items</a> > </li> > >- [% IF ( CAN_user_circulate_manage_bookings && biblio.items.filter_by_bookable.count ) %] >+ [% IF ( Koha.Preference('EnableBooking') && CAN_user_circulate_manage_bookings && biblio.items.filter_by_bookable.count ) %] > [%- IF ( bookingsview ) -%] > <li class="active"> > [%- ELSE -%] >diff --git a/koha-tmpl/intranet-tmpl/prog/en/includes/cat-toolbar.inc b/koha-tmpl/intranet-tmpl/prog/en/includes/cat-toolbar.inc >index 41b07daa093..ce2822cb08f 100644 >--- a/koha-tmpl/intranet-tmpl/prog/en/includes/cat-toolbar.inc >+++ b/koha-tmpl/intranet-tmpl/prog/en/includes/cat-toolbar.inc >@@ -273,7 +273,7 @@ > [% END %] > [% END %] > >-[% IF ( CAN_user_circulate_manage_bookings && biblio.items.filter_by_bookable.count ) %] >+[% IF ( Koha.Preference('EnableBooking') && CAN_user_circulate_manage_bookings && biblio.items.filter_by_bookable.count ) %] > <div class="btn-group"><button id="placbooking" class="btn btn-default" data-bs-toggle="modal" data-bs-target="#placeBookingModal" data-biblionumber="[% biblionumber | html %]"><i class="fa fa-calendar"></i> Place booking</button></div> > [% END %] > >diff --git a/koha-tmpl/intranet-tmpl/prog/en/includes/patron-detail-tabs.inc b/koha-tmpl/intranet-tmpl/prog/en/includes/patron-detail-tabs.inc >index 45567cb972f..71181ac6042 100644 >--- a/koha-tmpl/intranet-tmpl/prog/en/includes/patron-detail-tabs.inc >+++ b/koha-tmpl/intranet-tmpl/prog/en/includes/patron-detail-tabs.inc >@@ -23,11 +23,13 @@ > [% WRAPPER tab_item tabname= "holds" %] > <span>Holds</span> ([% holds_count || 0 | html %]) > [% END %] >+ [% IF Koha.Preference('EnableBooking') %] > [% WRAPPER tab_item tabname="bookings" %] > [% SET bookings_count = patron.bookings.filter_by_active.count %] > [% SET expired_bookings_count = patron.bookings.count - bookings_count %] > <span class="bookings_count">Bookings ([% bookings_count || 0 | html %])</span> > [% END %] >+ [% END %] > [% END %] > > [% IF Koha.Preference('UseRecalls') %] >@@ -215,6 +217,7 @@ > [% END %] > [% END # /tab_panel#holds %] > >+ [% IF Koha.Preference('EnableBooking') %] > [% WRAPPER tab_panel tabname="bookings" %] > [% IF ( bookings_count ) %] > <fieldset class="action filters" style="cursor:pointer;"> >@@ -230,6 +233,7 @@ > <p>Patron has nothing booked.</p> > [% END %] > [% END %] >+ [% END %] > [% END %] > > [% IF Koha.Preference('UseRecalls') %] >diff --git a/koha-tmpl/intranet-tmpl/prog/en/modules/admin/preferences/circulation.pref b/koha-tmpl/intranet-tmpl/prog/en/modules/admin/preferences/circulation.pref >index e6169464f6e..3841418bee4 100644 >--- a/koha-tmpl/intranet-tmpl/prog/en/modules/admin/preferences/circulation.pref >+++ b/koha-tmpl/intranet-tmpl/prog/en/modules/admin/preferences/circulation.pref >@@ -1515,3 +1515,11 @@ Circulation: > 1: Enable > 0: Disable > - "the curbside pickup module." >+ >+ Booking module: >+ - >+ - pref: EnableBooking >+ choices: >+ 1: Enable >+ 0: Disable >+ - "the booking module." >diff --git a/koha-tmpl/intranet-tmpl/prog/en/modules/catalogue/ISBDdetail.tt b/koha-tmpl/intranet-tmpl/prog/en/modules/catalogue/ISBDdetail.tt >index 4beb9846405..3e5819e7ed5 100644 >--- a/koha-tmpl/intranet-tmpl/prog/en/modules/catalogue/ISBDdetail.tt >+++ b/koha-tmpl/intranet-tmpl/prog/en/modules/catalogue/ISBDdetail.tt >@@ -91,10 +91,14 @@ > [% Asset.js("lib/dayjs/plugin/isSameOrBefore.js") | $raw %] > <script>dayjs.extend(window.dayjs_plugin_isSameOrAfter)</script> > <script>dayjs.extend(window.dayjs_plugin_isSameOrBefore)</script> >- [% INCLUDE 'calendar.inc' %] >- [% INCLUDE 'select2.inc' %] > [% Asset.js("js/catalog.js") | $raw %] >- [% Asset.js("js/modals/place_booking.js") | $raw %] >+ >+ [% IF Koha.Preference('EnableBooking') %] >+ [% INCLUDE 'calendar.inc' %] >+ [% INCLUDE 'select2.inc' %] >+ [% Asset.js("js/modals/place_booking.js") | $raw %] >+ [% END %] >+ > [% Asset.js("js/browser.js") | $raw %] > [% IF ( Koha.Preference('CatalogConcerns') ) %] > <script> >diff --git a/koha-tmpl/intranet-tmpl/prog/en/modules/catalogue/MARCdetail.tt b/koha-tmpl/intranet-tmpl/prog/en/modules/catalogue/MARCdetail.tt >index 7ea162a6a08..4954aa4c66b 100644 >--- a/koha-tmpl/intranet-tmpl/prog/en/modules/catalogue/MARCdetail.tt >+++ b/koha-tmpl/intranet-tmpl/prog/en/modules/catalogue/MARCdetail.tt >@@ -217,10 +217,14 @@ > [% Asset.js("lib/dayjs/plugin/isSameOrBefore.js") | $raw %] > <script>dayjs.extend(window.dayjs_plugin_isSameOrAfter)</script> > <script>dayjs.extend(window.dayjs_plugin_isSameOrBefore)</script> >- [% INCLUDE 'calendar.inc' %] >- [% INCLUDE 'select2.inc' %] > [% Asset.js("js/catalog.js") | $raw %] >- [% Asset.js("js/modals/place_booking.js") | $raw %] >+ >+ [% IF Koha.Preference('EnableBooking') %] >+ [% INCLUDE 'calendar.inc' %] >+ [% INCLUDE 'select2.inc' %] >+ [% Asset.js("js/modals/place_booking.js") | $raw %] >+ [% END %] >+ > [% Asset.js("js/browser.js") | $raw %] > [% IF ( Koha.Preference('CatalogConcerns') ) %] > <script> >diff --git a/koha-tmpl/intranet-tmpl/prog/en/modules/catalogue/detail.tt b/koha-tmpl/intranet-tmpl/prog/en/modules/catalogue/detail.tt >index aa76805c26b..42f6bb99a0b 100644 >--- a/koha-tmpl/intranet-tmpl/prog/en/modules/catalogue/detail.tt >+++ b/koha-tmpl/intranet-tmpl/prog/en/modules/catalogue/detail.tt >@@ -1210,10 +1210,12 @@ > [% END %] > > [% MACRO jsinclude BLOCK %] >- [% INCLUDE 'calendar.inc' %] > [% INCLUDE 'catalog-strings.inc' %] >- [% INCLUDE 'select2.inc' %] >- [% INCLUDE 'js-date-format.inc' %] >+ [% IF Koha.Preference('EnableBooking') %] >+ [% INCLUDE 'calendar.inc' %] >+ [% INCLUDE 'select2.inc' %] >+ [% INCLUDE 'js-date-format.inc' %] >+ [% END %] > [% Asset.js("js/catalog.js") | $raw %] > [% Asset.js("js/recalls.js") | $raw %] > [% Asset.js("js/coce.js") | $raw %] >@@ -1671,7 +1673,10 @@ > [% INCLUDE 'js-patron-format.inc' %] > [% INCLUDE 'js-biblio-format.inc' %] > [% Asset.js("js/browser.js") | $raw %] >+ >+ [% IF Koha.Preference('EnableBooking') %] > [% Asset.js("js/modals/place_booking.js") | $raw %] >+ [% END %] > <script> > var browser; > browser = KOHA.browser("[% searchid | html %]", parseInt(biblionumber, 10)); >diff --git a/koha-tmpl/intranet-tmpl/prog/en/modules/catalogue/imageviewer.tt b/koha-tmpl/intranet-tmpl/prog/en/modules/catalogue/imageviewer.tt >index 9b7bd7e967b..6936e334141 100644 >--- a/koha-tmpl/intranet-tmpl/prog/en/modules/catalogue/imageviewer.tt >+++ b/koha-tmpl/intranet-tmpl/prog/en/modules/catalogue/imageviewer.tt >@@ -145,10 +145,14 @@ > [% Asset.js("lib/dayjs/plugin/isSameOrBefore.js") | $raw %] > <script>dayjs.extend(window.dayjs_plugin_isSameOrAfter)</script> > <script>dayjs.extend(window.dayjs_plugin_isSameOrBefore)</script> >- [% INCLUDE 'calendar.inc' %] >- [% INCLUDE 'select2.inc' %] > [% Asset.js("js/catalog.js") | $raw %] >- [% Asset.js("js/modals/place_booking.js") | $raw %] >+ >+ [% IF Koha.Preference('EnableBooking') %] >+ [% INCLUDE 'calendar.inc' %] >+ [% INCLUDE 'select2.inc' %] >+ [% Asset.js("js/modals/place_booking.js") | $raw %] >+ [% END %] >+ > [% IF ( Koha.Preference('CatalogConcerns') ) %] > <script> > /* Set a variable needed by add_catalog_concern.js */ >diff --git a/koha-tmpl/intranet-tmpl/prog/en/modules/catalogue/labeledMARCdetail.tt b/koha-tmpl/intranet-tmpl/prog/en/modules/catalogue/labeledMARCdetail.tt >index 9e560acc6fe..b7233601272 100644 >--- a/koha-tmpl/intranet-tmpl/prog/en/modules/catalogue/labeledMARCdetail.tt >+++ b/koha-tmpl/intranet-tmpl/prog/en/modules/catalogue/labeledMARCdetail.tt >@@ -105,11 +105,15 @@ > [% Asset.js("lib/dayjs/plugin/isSameOrBefore.js") | $raw %] > <script>dayjs.extend(window.dayjs_plugin_isSameOrAfter)</script> > <script>dayjs.extend(window.dayjs_plugin_isSameOrBefore)</script> >- [% INCLUDE 'calendar.inc' %] >- [% INCLUDE 'select2.inc' %] > [% Asset.js("js/catalog.js") | $raw %] >- [% Asset.js("js/modals/place_booking.js") | $raw %] > [% Asset.js("js/browser.js") | $raw %] >+ >+ [% IF Koha.Preference('EnableBooking') %] >+ [% INCLUDE 'calendar.inc' %] >+ [% INCLUDE 'select2.inc' %] >+ [% Asset.js("js/modals/place_booking.js") | $raw %] >+ [% END %] >+ > [% IF ( Koha.Preference('CatalogConcerns') ) %] > <script> > /* Set a variable needed by add_catalog_concern.js */ >diff --git a/koha-tmpl/intranet-tmpl/prog/en/modules/catalogue/moredetail.tt b/koha-tmpl/intranet-tmpl/prog/en/modules/catalogue/moredetail.tt >index f49977e3954..200593107c0 100644 >--- a/koha-tmpl/intranet-tmpl/prog/en/modules/catalogue/moredetail.tt >+++ b/koha-tmpl/intranet-tmpl/prog/en/modules/catalogue/moredetail.tt >@@ -342,6 +342,8 @@ > <input type="submit" name="submit" class="btn btn-primary btn-xs" value="Update" /> > </form> > </li> >+ >+ [% IF Koha.Preference('EnableBooking') %] > <li class="bookable"> > <span class="label"> > Bookable: >@@ -375,6 +377,7 @@ > [% END %] > <span class="hint"> Item type bookable: [% IF ITEM_DAT.effective_itemtype.bookable == 1 %]Yes[% ELSE %]No[% END %]</span> > </li> >+ [% END %] > > </ol> <!-- /.bibliodetails --> > </div> <!-- /.rows --> >@@ -527,12 +530,16 @@ > <script>dayjs.extend(window.dayjs_plugin_isSameOrAfter)</script> > <script>dayjs.extend(window.dayjs_plugin_isSameOrBefore)</script> > [% INCLUDE 'js-patron-format.inc' %] >- [% INCLUDE 'calendar.inc' %] >- [% INCLUDE 'select2.inc' %] > [% Asset.js("js/catalog.js") | $raw %] >- [% Asset.js("js/modals/place_booking.js") | $raw %] > [% Asset.js("js/browser.js") | $raw %] > [% Asset.js("js/checkout_renewals_modal.js") | $raw %] >+ >+ [% IF Koha.Preference('EnableBooking') %] >+ [% INCLUDE 'calendar.inc' %] >+ [% INCLUDE 'select2.inc' %] >+ [% Asset.js("js/modals/place_booking.js") | $raw %] >+ [% END %] >+ > [% IF ( Koha.Preference('CatalogConcerns') ) %] > <script> > /* Set a variable needed by add_catalog_concern.js */ >diff --git a/koha-tmpl/intranet-tmpl/prog/en/modules/circ/circulation-home.tt b/koha-tmpl/intranet-tmpl/prog/en/modules/circ/circulation-home.tt >index 656dfd4d1fe..deef140890d 100644 >--- a/koha-tmpl/intranet-tmpl/prog/en/modules/circ/circulation-home.tt >+++ b/koha-tmpl/intranet-tmpl/prog/en/modules/circ/circulation-home.tt >@@ -78,7 +78,7 @@ > </div> > > <div class="col-12 col-sm-4"> >- <h3>Holds and bookings</h3> >+ <h3>Holds [% IF Koha.Preference('EnableBooking') %]and bookings[% END %]</h3> > > <ul class="buttons-list"> > <li> >@@ -98,9 +98,11 @@ > <li> > <a class="circ-button" href="/cgi-bin/koha/circ/reserveratios.pl"><i class="fa-solid fa-chart-line"></i> Hold ratios</a> > </li> >+ [% IF Koha.Preference('EnableBooking') %] > <li> > <a class="circ-button" href="/cgi-bin/koha/circ/pendingbookings.pl"><i class="fa-solid fa-calendar-days"></i> Bookings to collect</a> > </li> >+ [% END %] > </ul> > > [% IF Koha.Preference('UseRecalls') and CAN_user_recalls %] >diff --git a/koha-tmpl/intranet-tmpl/prog/en/modules/members/moremember.tt b/koha-tmpl/intranet-tmpl/prog/en/modules/members/moremember.tt >index f72f254ea4f..d988bd2bdb1 100644 >--- a/koha-tmpl/intranet-tmpl/prog/en/modules/members/moremember.tt >+++ b/koha-tmpl/intranet-tmpl/prog/en/modules/members/moremember.tt >@@ -739,7 +739,9 @@ > [% INCLUDE 'modals/resolve_return_claim.inc' %] > [% END %] > >- [% INCLUDE modals/cancel_booking.inc %] >+ [% IF Koha.Preference('EnableBooking') %] >+ [% INCLUDE modals/cancel_booking.inc %] >+ [% END %] > > [% MACRO jsinclude BLOCK %] > [% INCLUDE 'datatables.inc' %] >@@ -774,7 +776,10 @@ > [% END %] > [% Asset.js("js/holds.js") | $raw %] > [% INCLUDE 'calendar.inc' %] >- [% Asset.js("js/cancel_booking_modal.js") | $raw %] >+ [% IF Koha.Preference('EnableBooking') %] >+ [% Asset.js("js/cancel_booking_modal.js") | $raw %] >+ [% Asset.js("js/tables/bookings.js") | $raw %] >+ [% END %] > [% Asset.js("js/combobox.js") | $raw %] > [% INCLUDE 'js-biblio-format.inc' %] > [% INCLUDE 'str/members-menu.inc' %] >@@ -843,7 +848,6 @@ > }); > </script> > [% Asset.js("js/checkouts.js") | $raw %] >- [% Asset.js("js/tables/bookings.js") | $raw %] > [% END %] > > [% INCLUDE 'intranet-bottom.inc' %] >-- >2.43.0
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 37661
:
184558
|
184559
|
184560
|
184561
|
184565
|
184566
|
184578
|
184579
|
184580
|
184581
|
184582
|
185150
|
185151
|
185152
|
185153
|
185154
|
185325
|
185326
|
185327
|
185329
|
185331
|
185333
|
185710
|
185711
|
185712
|
185713
|
185714
|
185715
|
185716
|
185728
|
185881
|
186137
| 186257