Bug 12971 - Regression: Patron print summary doesn't show checkouts

A patron's print summary should contain a list of checked out items
as it did in 3.16.2 and earlier.

Please note, as of 3.16.2 reserves were no longer part of the print
summary and thus are not part of this bug fixing patch.

Test Plan:
1) Find a patron with checked out items
2) Choose Print -> Print summary
3) Note the lack of a list of checkouts
4) Apply this patch
5) Reload the page
5) Print the summary again
6) Note the list of checkouts

Signed-off-by: Owen Leonard <oleonard@myacpl.org>

Signed-off-by: Katrin Fischer <katrin.fischer.83@web.de>
Works as described, apart from the missing status information
that Owen already noted on the bug.
Passes tests and QA script.

Signed-off-by: Tomas Cohen Arazi <tomascohen@gmail.com>
Bug 12971: [QA Followup]

* Makes the status column display "Overdue!" if overdue
* Fixes the due date formatting
* Sorts the checkouts by date due ( oldest to newest )
  Note: I found no evidence that this data was previously sorted,
  so I kept it simple. Sorting based on system preferences could
  be a future enhancement.

Signed-off-by: Owen Leonard <oleonard@myacpl.org>

This fixes the issues described for patrons with existing checkouts.

Signed-off-by: Tomas Cohen Arazi <tomascohen@gmail.com>
Bug 12971 [QA Followup] - Fix error caused by patron not having any checkouts

Signed-off-by: Owen Leonard <oleonard@myacpl.org>

This successfully fixes the problem observed when a patron has no
checkouts.

Signed-off-by: Tomas Cohen Arazi <tomascohen@gmail.com>
Bug 13274: t/00-load.t shouldn't depend on the DB

To reproduce:
- Stop your MySQL server:
  $ sudo service mysql stop
- Run
  $ prove t/00-load.t
=> FAIL: some tests fail because of mysql stopped

To test (MySQL still stopped)
- Apply the patch
- Run
  $ prove t/00-load.t
=> SUCCESS: tests pass because the ycan be loaded regardless of
            the absence of the DB server
- Sign off :-D

NOTE: Even seems to grab more than expected, which is good.
      349 tests in master vs 364 in this branch = 16,
      but removed block is only 13 (lines 20-32).
      Also ran koha-qa test tool. :)

Signed-off-by: Mark Tompsett <mtompset@hotmail.com>

Signed-off-by: Katrin Fischer <katrin.fischer.83@web.de>
Works as described, tests passing now without database available.

Signed-off-by: Tomas Cohen Arazi <tomascohen@gmail.com>
Bug 13274: Mock new_dbh in t::lib::Mocks

This patch suggests to create a routine to mock C4::Context::_new_dbh.

NOTE: Works the same with and without this secondary patch.
      koha-qa tests fine. Less cutting and pasting in the future.

Signed-off-by: Mark Tompsett <mtompset@hotmail.com>
Signed-off-by: Tomas Cohen Arazi <tomascohen@gmail.com>
Bug 13276: t/XSLT.t shouldn't depend on the DB

To reproduce:
- Stop your MySQL server:
  $ sudo service mysql stop
- Run
  $ prove t/XSLT.t
=> FAIL: some tests fail because of mysql stopped

To test (MySQL still stopped)
- Apply the patch
- Run
  $ prove t/XSLT.t
=> SUCCESS: tests pass because the ycan be loaded regardless of
            the absence of the DB server
- Sign off :-D

Regards

Signed-off-by: Chris Cormack <chris@bigballofwax.co.nz>
Signed-off-by: Katrin Fischer <Katrin.Fischer.83@web.de>
Tests pass without db connection for me now.

Signed-off-by: Tomas Cohen Arazi <tomascohen@gmail.com>
Bug 13276: use t::lib::Mocks::mock_dbh

To use this patch, patch from bug 13274 should be applied too.

Signed-off-by: Tomas Cohen Arazi <tomascohen@gmail.com>
Bug 13242: Fix DateUtils for 'infinite' dates (ie year 9999)

TEST PLAN:

- Method 1--with UT

  - Use the UT associated to this bug, without applying this patch, and then
    after applying this patch

- Method 2--using Koha

  - Without this patch
  - Find a borrower with several checkouts that are not overdue.
  - Debarred the borrower
  - Go on circ/circulation-home.pl page
  - Select Check in tab, and do a check in
  - It required more than 20s to display the return.pl page
  - Apply the patch, and repeat previous steps
    => return.pl is immediately displayed.

Followed method 2. Time problem no longer exists.
Signed-off-by: Marc Véron <veron@veron.ch>

Signed-off-by: Katrin Fischer <katrin.fischer.83@web.de>
Signed-off-by: Tomas Cohen Arazi <tomascohen@gmail.com>
Bug 13242: Add a UT to t/DateUtils.t for testing DateTime bug

A bug in DateTime slow down drastically date parsing when the dates are in the
far distant future:

https://metacpan.org/pod/DateTime#Determining-the-Local-Time-Zone-Can-Be-Slow

This UT tests this situation which affects Koha::DateUtils function
dt_from_string() and output_pref().

TO TEST:
- Apply the patch containing the UT
- prove -v t/DateUtils.t
- You see that parsing a 9999-01-01 that take forever (ie more than 1s)
- Apply the patch containing the fix
- prove -v t/DateUtils.t
- No more complain.

Followed test plan. Test behaves as expected.
Signed-off-by: Marc Véron <veron@veron.ch>

Signed-off-by: Katrin Fischer <katrin.fischer.83@web.de>
Works as described - check-ins are now much faster.
Passes tests and QA script.

Signed-off-by: Tomas Cohen Arazi <tomascohen@gmail.com>
Bug 13234: On-site checkouts - OPAC

This patch introduces the code lost in bug 10860 for the OPAC side.

Test plan:
Go on opac-readingrecord.pl and verify the tabs work as expected and the
"show all items" and "show 50 items" links.

Signed-off-by: Owen Leonard <oleonard@myacpl.org>

Signed-off-by: Katrin Fischer <katrin.fischer.83@web.de>
Signed-off-by: Tomas Cohen Arazi <tomascohen@gmail.com>
Bug 13234 [Follow-up] Make on-site checkouts visible in OPAC

This follow-up makes a few changes to the template:

1. The "show all" / "show 50" links have been modified to show the
   current state.
2. The tabs are only shown if the OnSiteCheckouts preference is turned
   on.
3. The DataTables configuration has been modified so that title sorting
   ignores articles, sorting on the the first column is disabled, and
   sorting by date works regardless of your dateformat preference.
4. Some indentation has been corrected and markup comments added.

To test the opacreadinghistory preference must be enabled. Log in to
the OPAC as a patron who has some on-site checkouts as well as regular
checkouts. With OnSiteCheckouts enabled, view the reading history page
and confirm that the tabs work correctly. Test the table sorting
controls.

With OnSiteCheckouts disabled, confirm that the tabs do not appear.

Test the "Show all items"/"Show last 50 items" links and confirm that
the behavior is correct.

Signed-off-by: Jonathan Druart <jonathan.druart@biblibre.com>

Signed-off-by: Katrin Fischer <katrin.fischer.83@web.de>
Works as described, passes tests and QA script.
Good addition to the new on-site feature.

Note: It would be nice to show the 'on-site' note also in the
liste of checkouts on the summary page!

Signed-off-by: Tomas Cohen Arazi <tomascohen@gmail.com>
Bug 12376 - blinking cursor not clear in larger resolutions

This patch slightly alters the padding on <input> and <textarea> so that
the cursor is more visible.

To test, apply the patch and clear your browser cache. View a variety of
pages in the staff client and confirm that the change does not adversely
affect the display of forms.

Small change that enhances user experience.
Patch behaves as expected.
Signed-off-by: Marc Véron <veron@veron.ch>

Signed-off-by: Katrin Fischer <Katrin.Fischer.83@web.de>
Works as described, small CSS change.

Signed-off-by: Tomas Cohen Arazi <tomascohen@gmail.com>