Reopening Your Library

Reopening Your Library

While we can very quickly sum up what you need to do for your ILS (change all the settings in Koha back to what they were before you closed), there’s a bit more to it. This article will help guide you through the process. If you contacted us to change settings, cron jobs, etc, take a look through all your tickets - this will help you remember all the changes you made or asked us to make.

If you didn’t contact us, and made changes to your site yourself, hopefully you wrote everything down that you changed. Try to recall what you changed, and what behaviors you want restored. These blog posts may help you recall all those too.

In very broad strokes, the process will be:
  1. Update system preferences
  2. Update circulation and fine rules
  3. Clean up message queue
  4. Enable cron jobs
  5. Send out notices as needed
  6. Test everything on your site to make sure it is working as expected

Circulation

We’ll cover the parts of the reopening process that relate to your circulation and fines rules. Where possible, we worked with our partners to find ways to reach their desired ends without changes to their circ rules, but this wasn’t always possible. We tried to avoid changes to circ rules because those changes are not logged anywhere. That means we’re largely dependent upon your memories of what your circ rules were before changes were made. That’s not ideal, but it’s workable.

System Preferences

Before we dive into circ rules proper, there are a couple of related system preferences that you may have changed. UseDaysMode asks how to use the Koha calendar when working out due dates. Some libraries changed this to make sure nothing came due while they were closed. FinesCalendar asks how to use the Koha calendar when calculating fines. Some libraries changed this to make sure fines weren’t assessed while they were closed.

Changes to your system preferences are recorded in your action logs. If you’re uncertain about whether or not you changed these preferences, head to Tools > Log Viewer and perform a search in the System Preferences module. We’re happy to help if you’re unsure how to do so.

Circulation Rules

As we move into the circ rules page, remember that this page contains a set of default rules for all libraries and another set of rules for each individual library in your system. You’ll want to go through your default rules as well as the rules for each library. This is especially important for multi-branch or multi-library systems, but even single-library systems have a page for default rules and a page for library-specific rules. Koha will always use library-specific rules before the default all libraries rules, so it’s easy for single-library systems to get confused about which rules are getting used.

To pick your rule set, use the Select a library dropdown just above the rules matrix:


Remember that the system preferences CircControl, HomeOrHoldingBranch, and ReservesControlBranch determine which library’s rules apply to a given checkout or hold, and your settings on these system preferences can have a lot of impact on how your circ rules are interpreted.

Circulation Matrix

The rules matrix is what we call the large table that contains the bulk of your circ rules, defined by combinations of patron category and item type. While it’s never a bad idea to give your whole matrix a once-over to make sure it’s doing what you want, there are a few fields that are most likely to have gotten change as part of your closure:
  1. Fine amount and Fine charging interval: If you wanted just some patrons or items to go fine-free while you were closed, you might have set these to 0 or just emptied them out. Changing these values will change the fine behavior for all current and future checkouts.
  2. Renewals allowed and renewal period: If you wanted patrons with existing patrons to get the option of more time, you might have changed these values. Changing these values will change the renewal behavior for all current and future checkouts.
  3. Automatic renewal: Several libraries made changes here, but I’ll discuss it in its own section below.
  4. Holds allowed: If you wanted to change holds behavior for just some patrons or items, you might have changed this value. Changing this value will not impact existing holds.

Checkout, hold, and return policy


These settings enforce broad limits on how many checkouts and holds a patron may have and also some behavior around whether or not items move between branches. In multi-branch systems where some branches closed and others did not, Hold policy may have been set to “No holds allowed” for those branches that closed. In systems that wanted to curtail the movement of items between libraries, Hold pickup library match and Return policy may have been altered either for specific libraries or for all libraries.

Default holds policy by item type


These settings also enforce limits on what can be held or transferred, but do so by item type. You may have changed these if you had specific types of items for which you wanted to prevent holds or transfers.

Automatic renewal

Changes to the automatic renewal behavior of existing checkouts is complicated because whether or not an item will auto-renew is set based on the circ rules as they exist when the item is checked out. Each rule in the circ matrix includes a yes or no in the Automatic renewal column. At the time of checkout, this rule is consulted to determine whether or not this item will be eligible for auto-renew for the entirety of its loan period. Changing this rule does not change whether or not existing checkouts are eligible for auto-renew; it only changes whether or not future checkouts will be eligible for auto-renew. For more detail about auto-renew setup, see Jessie’s recent blog post on the subject.

We enabled auto-renewal for a lot of libraries who wanted to make things as simple as possible for their patrons while the library was closed. If we turned on auto-renew for you and you love it, that’s great! We’ll leave it on. If you’d like to turn it off now, we have a little work to do.

First, you’ll need to set all of your circ rules to No for automatic renewal in the circ matrix. But, as mentioned above, this doesn’t change your existing auto-renewable checkouts. There is no mechanism in Koha to push the auto-renew settings from your updated rules out to your existing checkouts. Either we can let your existing auto-renew checkouts complete their natural lifecycle or we can batch edit all of your existing checkouts to no longer auto-renew. If possible, we recommend the former as minimizing the edits we make to your existing checkouts minimizing the possibility of unexpected consequences.

Fines

Did you turn off fines during your library’s closure? No? Then there’s nothing to see here. Go read something else interesting on our website. Yes? Then we need to talk.

I turned fines off

How did you turn off fines? There are two main ways to turn off fines: through changing circ rules, or through system preferences/crons. If you changed your circulation rules, you will need to go and change them all back. Nothing else is needed. When you check items in, the fines will be assessed. If you had the fines cron disabled, and/or changed the system preference FinesMode, there are a couple of scenarios to take a look at. Scenario system preference FinesMode was set to Don’t Charge. Things to consider for accruing fines:

Do you want to charge fines that existed before you changed the FinesMode preference? (for instance, an item was due on March 1, your library closed on March 15 - do you want to charge the fines for March 2-14?). If you do want to charge those fines, you will just check the items in as normal. If you want to waive the existing fines, use the “Forgive Fines” checkbox on checkin. We have some jquery that can be added to your site to have that checkbox checked by default. If you have a lot of materials to process the first couple of days, it might be helpful to have that done. To do this, add the following jquery to your intranetuserjs:

Quote
$(document).ready(function () {
if ( $('#circ_returns').length ) {
$('#exemptcheck').prop('checked' , true);
}
});

Scenario we turned off the fines cron, but the system preference was not changed

If you want to waive the fines that have accrued, click the “Forgive Fines” checkbox. If you want to charge fines, checkin as normal. Once you have turned the system preference Fines Mode back on, and the cron has been enabled, you are ready to resume regular operations.

A couple of things to be aware of

  1. We will not be able to change fines for only some patrons, or items, etc. We will be able to remove fines in a specific time period, such as March 1-30, but it would be across the board.
  2. If you have accruing fines and want to waive partial amounts, you will need to do manual writeoffs. For instance, fines were at 25 cents when you closed. Upon reopening, that fine may be $4.50. You would need to write off the $4.25 manually. There is no way for us to do this for you.
  3. Remember that fines are calculated at checkin based solely on your circ rules as they exist at that moment of checkin. Koha does not consider whether your fines were set differently for part of the checkout period. If you want to only charge fines for part of the time the item was out, you need to set that up with the calendar and the FinesCalendar system preference.
And remember, no matter what, it’s all fine!

Notices

A lot of the notices that Koha sends are sent through what is called the Process Message Queue Cron. If your library requested Item Due, Hold, Pre-due, Overdue or Membership Expiry notices to not be sent, your process message queue cron may have been stopped by our Systems Team.

If your process message queue cron was halted, a few things must be done prior to turning this back on. Once these things have been addressed, your library will be ready to have your cron re-activated. A final check of everything prior to starting your process message queue will be at the end of this blog post.

First, let’s review what other changes connected to Notices that occurred in addition to the Message Queue having been stopped.

Item Due / Advance Notices

Did your library make any adjustments to the content of these notices? If so, then these changes will need to be updated to reflect what they previously had contained.

Did your library change the messaging preferences by patron category? If so, then the changes need to be updated on those patron categories to reflect what they previously had contained and then please submit a ticket to us to have a Data Specialist to update your borrowers.

For libraries that bulk updated your patron’s due dates to a specific date, we would strongly recommend that your library hold off on running these notices until that date has passed. If these Advance Notices were to go out prior to this hard due date, it could generate a high volume of notices which could likely get your library’s email on a blacklist (spam list). A good suggestion would be to use an email marketing service such as MailChimp or Constant Contact to send out a reminder that the due date is coming and you are reopening.

If you would like to see how many advance notices might be sent the following query will show you the days that the bulk of your items are due. Advance notices would be sent a couple of days prior to this due date. Check your patron category messaging preferences to see what the bulk of you patrons have set for advance notices. i.e. notices sent out 2 days prior to being due.

Select date_due,count(*) from issues group by date_due having count(*) > 1000

Note: this query will show you days where 1000+ items are due. If you want a lower threshold - change the 1000 to the number of your choosing. If you want to see all of them dates, remove the 'having count(*) > 1000 ' from the query and run it.

Hold Notices

Did your library edit your Hold notice? If so, please edit this notice to enter the information your library was previously using prior to this closure.

Did you continue to check-in items and trigger holds without Hold notices going out? Did your library shut down completely and the holds are still waiting to be picked up (waiting on your Holds awaiting pickup shelf?). In both cases, your library may want to re-send notification to the patrons that they have item/s on the hold shelf. Koha can’t re-generate Hold notices nor do we want to turn on the Process Message Queue and run that as this will contain a lot of notices!

Notes
For smaller libraries or libraries with a manageable number of triggered holds, you do have the ability to go into the Patron’s account and “resend” the notice if they have email notifications set up. For larger libraries or for libraries with a lot of holds to resend notifications, this process may be a bit tedious.

QUERY to find all Holds on the shelf awaiting pickup:

SELECT p.surname, p.firstname, p.email, p.cardnumber,
h.waitingdate AS 'hold date', i.barcode, b.title
FROM reserves h
LEFT JOIN borrowers p USING (borrowernumber)
LEFT JOIN items i USING (itemnumber)
LEFT JOIN biblio b ON (i.biblionumber=b.biblionumber)
WHERE h.waitingdate IS NOT NULL AND h.branchcode=YOURBRANCHCODEHERE

Verify that this query contains all the items that are on your “Holds Awaiting Pickup Tab” and you would like to send an email notification to the patron about the hold.

Once this report has been created on your system and you have verified that these items are waiting for the patrons, your library can send a notice through an email marketing service such as Mail Chimp or Constant Contact. 

If your library continued to check-in items but “ignored” the hold, wait to trigger these holds after you activate the Process Message Queue. These items will then show on your Holds Queue or Holds to Pull, whichever one you use.

Overdue Notices

If your library adjusted Overdue Notices or the Triggers itself, please adjust them back as your library had them. Your library may have also opted to stop sending Overdue notices out or adjusted the Overdue Notice status and Triggers.

The Overdue Notice cron will be re-activated when your library re-starts the Process Message Queue**. This process will strictly follow your library’s triggers and will not capture anything that falls outside of these triggers. For example, if you have Triggers set a 7, 14, and 21 days, the only Overdue notices that will be sent are for items that are 7, 14, or 21 days overdue.

Here is a report that can gather all the information:

SELECT borrowernumber, cardnumber, email, firstname, surname, group_concat(items_content separator '|') as items_content_list

FROM borrowers LEFT JOIN

(SELECT borrowernumber, concat('"',b.title,'" by ',author,', Due: ',date(date_due),' Barcode: ',Barcode) as items_content

FROM issues left join items using (itemnumber) left join biblio b using (biblionumber) left join borrowers using (borrowernumber)

WHERE date(date_due) < curdate()

GROUP BY issue_id) ic

USING (borrowernumber)

WHERE items_content is not null

GROUP BY borrowernumber

Membership Expiry Notices

Expiration Notices also would have been stopped if your library stopped the Process Message Queue**. Did you adjust the content of the Membership Expiry notice? If so, please make the necessary changes. Once the Process Message Queue has been enabled, this will start sending notices again. Much like the Overdue notices, it will only send out a notice to patrons whose expiry dates matches the number in your system preferences. For instance, if you have the system preference set to 30 days, only patrons whose expiration date is 30 days from today will receive the notice. Anyone whose expiration date is less than 30 days will not get a notice.

SELECT letter_code, borrowernumber

FROM message_queue

WHERE status='pending' and message_transport_type='email' AND letter_code='MEMBERSHIP_EXPIRY'

If your library would like to send out these older Membership Expiry notices, you can use a third-party service.

**Before activating the Process Message Queue con: ByWater needs to clean out the message queue! We recommend doing this a couple of days prior to opening, so your library is ready to start sending regular notices again soon after you open.

Cleaning out the Message Queue

Before you can start your Process Message Queue cron**, we will need to clean out the message queue. To do this, please send a ticket to ByWater Solutions to do this.

We will change all your notice statuses from Pending to Failed, with a note that the notice was failed due to a closure. We are adding the note in case there are questions in the future about why a notice was not sent.

Once your message queue has been cleaned out, you can run this report to see which current notices are being sent out:

SELECT message_transport_type, letter_code, count(message_id), min(time_queued), max(time_queued)

FROM message_queue

WHERE status=’pending’ and message_transport_type in ('sms',’email’)

GROUP BY letter_code

Holds

Each library may have adjusted their workflow in regards to holds, here are some of the scenarios to assist your library with re-opening and handling your holds.

Did your library request us to suspend your pending holds? If we did, did we suspend them to a specific date or indefinitely?

SELECT reserve_id, borrowernumber, biblionumber, itemnumber, suspend_until

FROM reserves

WHERE suspend=1 and date(timestamp) between [date range of when we were suspending holds]

If we did suspend your holds indefinitely, please send a ticket to us and our Data Team will unsuspend them for you. A library with a small number of suspended holds can do this manually if they would prefer, however, understandably, if your library has a lot of holds, this should be done by a Data Specialist!

Warning
Make sure to complete all the cleanup required in the previous Notices section and your Process Message Queue has been turned back on. Then your hold notifications can/will send out.

More Hold Adjustments

Did you disable your Holds Queue? If so, please submit a ticket so our systems team can turn your Holds Queue back on.

Did you adjust your Hold Notices (wording) in any way? If so, please make the adjustments necessary to put the content back as you would like it to be.

Once your holds queue is enabled and the holds have been unsuspended, and your staff begins processing holds again, the holds will start rolling in!

Hold Policies

Did your library adjust your hold policies during the closure?

For example:

  1. Did you change your circulation and fine rules?
  2. Did you change an individual rule regarding Holds?
  3. Did you change your default hold policy?
  4. Did you change your branch transfer limits?
  5. Did you change your transport cost matrix?
  6. Did you change the system preference OPACHoldRequests to stop patrons from placing holds on the OPAC? 
  7. Did you change the system preference CanReserverFromOtherBranches to stop patrons from other branches placing holds?
If any of these changes were made, your library will need to make the necessary changes to revert the rules to the set up prior to the closure. After these changes have been made, verify with some test cases that holds are now allowed according to your policy. Once these changes have been, see the process above about capturing holds and starting the hold notifications again.

Expired Holds

Did you turn off the cancel_expired holds cron? This applies only if your library automatically cancels holds after a specific number of days waiting. Ask to have your Cancel_expired holds cron to be turned back on.

Do you need to extend the expiration date on the holds on your awaiting pickup shelf? If you would like to extend the holds on your “Holds Awaiting Pickup” shelf to have a new expiration date, please submit a ticket and our Data Team can assist with this. For libraries that are not automatically canceling holds, you can leave the expiration date as is, and the patron who the item is on hold for will still be able to check that item out. These items will now show in the Holds Over X Days tab.

If your library had the cancel_expired hold cron on and you didn’t know it, then these holds were canceled during your closure. To bring these holds back onto the items, you will want to manually recreate the holds that were canceled as of a specific date.

Here is the query

SELECT b.title, b.author, p.surname, p.firstname, r.reservedate,

r.cancellationdate, r.branchcode

FROM old_reserves r

LEFT JOIN biblio b USING (biblionumber)

LEFT JOIN borrowers p USING (borrowernumber)

WHERE found=‘w’ and r. Cancellationdate BETWEEN <<Cancelled BETWEEN (yyyy-mm-dd)|date>>

AND <<and (yyyy-mm-dd)|date>> AND r.branchcode =<<Branch|branches>>

Have you updated your expiration dates? If you have, would you like fresh hold slips? Simply scan the hold in again and retrieve a new hold slip. If you have NOT updated expiration dates, do not do this - the expiration date cannot be updated this way.

    • Related Articles

    • Preparing for Library Closures

      Libraries sometimes have to close for different reasons. Here are the steps to prepare Koha for a closure. Many of these questions are significantly more complicated for multi-branch or multi-library systems. We've attempted to note those areas ...
    • Using Library Groups in Koha

      Since Koha version 18.05, libraries have been able to define hierarchical groups. This will allow for grouping of libraries based on a special library branch or geographical region, for example. Staff can now set this functionality up in ...
    • Logs in Koha

      &amp;amp;lt;br&amp;amp;gt; Logs? What are those? Koha has the ability to log actions within your system. These logs are broken out into modules and libraries can pick and choose which logs are stored and for how long. Actions within the Koha system ...
    • Koha Calendar Options

      Calendars play a part in our everyday workflow. From events to who is covering the desk and more. This article covers everything from the staff interface to the OPAC. The calendar plays a centerpiece of the Koha Administration. Everything from ...
    • Ordering and Receiving with Koha's Acquisitions Module

      Broadly, the workflow for non-EDI ordering in Koha is: Create a basket Add materials to basket Close basket Receive orders Close invoice For more information about the EDI process, see EDI - Library Setup and Workflow. Placing orders Adding material ...