Bug 17168 - Add a command line script for updating patron category based on status
Summary: Add a command line script for updating patron category based on status
Status: Failed QA
Alias: None
Product: Koha
Classification: Unclassified
Component: Command-line Utilities (show other bugs)
Version: master
Hardware: All All
: P5 - low enhancement (vote)
Assignee: Nick Clemens
QA Contact: Testopia
URL:
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2016-08-23 15:20 UTC by Nick Clemens
Modified: 2018-10-05 13:42 UTC (History)
9 users (show)

See Also:
Change sponsored?: Sponsored
Patch complexity: Small patch
Bot Control: ---
When did the bot last check this:
Who signed the patch off:
Text to go in the release notes:


Attachments
Bug 17168 - Add a command line script for updating patron category based on status (10.86 KB, patch)
2017-02-15 16:43 UTC, Nick Clemens
Details | Diff | Splinter Review
Bug 17168 - Add a command line script for updating patron category based on status (11.04 KB, patch)
2017-02-15 17:03 UTC, Nick Clemens
Details | Diff | Splinter Review
Bug 17168 - Add a command line script for updating patron category based on status (11.37 KB, patch)
2017-02-24 22:21 UTC, Nick Clemens
Details | Diff | Splinter Review
Bug 17168 - Add a command line script for updating patron category based on status (20.90 KB, patch)
2018-01-25 19:26 UTC, Nick Clemens
Details | Diff | Splinter Review
Bug 17168 - Add a command line script for updating patron category based on status (20.95 KB, patch)
2018-03-16 10:16 UTC, Jesse Maseto
Details | Diff | Splinter Review
Bug 17168 - Add a command line script for updating patron category based on status (20.95 KB, patch)
2018-04-30 11:25 UTC, Nick Clemens
Details | Diff | Splinter Review
Bug 17168: (follow-up) Tidy, clean params/options, use date tools (15.51 KB, patch)
2018-05-31 10:56 UTC, Nick Clemens
Details | Diff | Splinter Review
Bug 17168: Add a command line script for updating patron category based on status (20.95 KB, patch)
2018-07-16 11:06 UTC, Nick Clemens
Details | Diff | Splinter Review
Bug 17168: (follow-up) Tidy, clean params/options, use date tools (15.51 KB, patch)
2018-07-16 11:06 UTC, Nick Clemens
Details | Diff | Splinter Review
Bug 17168: (follow-up) Clean up QA errors (1.05 KB, patch)
2018-07-16 11:06 UTC, Nick Clemens
Details | Diff | Splinter Review

Note You need to log in before you can comment on or make changes to this bug.
Description Nick Clemens 2016-08-23 15:20:04 UTC
Work to be done:
* Create a script to run on a regular basis that updates patrons from one category to another based on parameters passed in as defined below
* checks fine amount
* checks registration date
* checks patron fields for specific value
Comment 1 Nick Clemens 2017-02-15 16:43:39 UTC
Created attachment 60279 [details] [review]
Bug 17168 - Add a command line script for updating patron category based on status

This patch adds a new script update_patrons_category.pl which allows for
updating patron categories in a batch upon meeting provided criteria.
This script additionally can replace j2a.pl.

To test:
1 - perl update_patrons_category.pl -h
2 - Ensure help text makes sense and covers all options
3 - Test converting patrons supplying only fromcat and tocat
    perl update_patrons_category.pl -f PT -t J -v
    perl update_patrons_category.pl -f PT -t J -v
4 - All patrons should have been switched to and from Juveniles
5 - Try with -n switch
    perl update_patrons_category.pl -f PT -t J -v -n
6 - Should list all patrons but not update
7 - Set the age for juvenile patrons to be outside the range provided in
categories (or set the upper age limit for juveniles to '2')
8 - Test with verbosity and with without -n
    perl update_patrons_category.pl -f J -a -t PT -v -n
    perl update_patrons_category.pl -f J -a -t PT -v
9 - Repeat above and verify linked/unlinked guarantors are removed in above scenario
10 - Test various fine and registration limits
11 - Test matching on specific fields i.e. --field surname=acosta
12 - Sign off
Comment 2 Nick Clemens 2017-02-15 17:03:06 UTC
Created attachment 60280 [details] [review]
Bug 17168 - Add a command line script for updating patron category based on status

This patch adds a new script update_patrons_category.pl which allows for
updating patron categories in a batch upon meeting provided criteria.
This script additionally can replace j2a.pl.

To test:
1 - perl update_patrons_category.pl -h
2 - Ensure help text makes sense and covers all options
3 - Test converting patrons supplying only fromcat and tocat
    perl update_patrons_category.pl -f PT -t J -v
    perl update_patrons_category.pl -f PT -t J -v
4 - All patrons should have been switched to and from Juveniles
5 - Try with -n switch
    perl update_patrons_category.pl -f PT -t J -v -n
6 - Should list all patrons but not update
7 - Set the age for juvenile patrons to be outside the range provided in
categories (or set the upper age limit for juveniles to '2')
8 - Test with verbosity and with without -n
    perl update_patrons_category.pl -f J -a -t PT -v -n
    perl update_patrons_category.pl -f J -a -t PT -v
9 - Repeat above and verify linked/unlinked guarantors are removed in above scenario
10 - Test various fine and registration limits
11 - Test matching on specific fields i.e. --field surname=acosta
12 - Sign off

Sponsored by: Round Rock Public Library
(https://www.roundrocktexas.gov/departments/library/)
Comment 3 Barton Chittenden 2017-02-17 17:01:41 UTC
update_patrons_category.pl --help shows

Usage:
    update_patrons_category.pl [ -b=<branchcode> -f=<categorycode>
    -t=<categorycode> ]

but

Options:

...

    -f      *required* defines the category to update. Expects the code from
            categories.categorycode.

    -t      *required* defines the category patrons will be converted to.
            Expects the code from categories.categorycode.

Square brackets indicate optional arguments. You don't need angle brackets surrounding <branchcode> and <categorycode>. Elipses show repeated arguments, and a pipe shows alternative arguments.

Here's what I would expect for usage, given the options:

Usage:
    update_patrons_category.pl -f=categorycode -t=categorycode 
                               [-b=branchcode] [-n] [-a] [-fo=X] [-fu=X]
                               [-rb=date] [-ra=date] [-v]
                               [--field column=value ...] 
    update_patrons_category.pl --help | --man
Comment 4 Barton Chittenden 2017-02-17 18:22:16 UTC
POD ERRORS
    Hey! The above document had some coding errors, which are explained
    below:

    Around line 94:
        '=item' outside of any '=over'

    Around line 100:
        '=item' outside of any '=over'

    Around line 106:
        '=item' outside of any '=over'

    Around line 112:
        '=item' outside of any '=over'

    Around line 118:
        '=item' outside of any '=over'

    Around line 124:
        '=item' outside of any '=over'
Comment 5 Barton Chittenden 2017-02-17 18:29:38 UTC
The use of

    -n      No Action. With this flag set, script will report changes but not
            actually execute them on the database.

matches the options of j2a.pl, but I think that the use of

 --confirm  Don't commit changes to the database unless the --confirm option is          
            used

Is preferred by the Koha community.
Comment 6 Barton Chittenden 2017-02-17 18:49:39 UTC
When -n is used, so that status is not updated, the script still prints

22 patrons updated

This is the kind of thing that makes my blood pressure go up until I double-check in the database. Yes, I see at the top of the run, 'No actions will be taken (test mode)', but I would still prefer

22 patrons would have been updated

Just for my peace of mind.
Comment 7 Nick Clemens 2017-02-24 22:21:10 UTC
Created attachment 60665 [details] [review]
Bug 17168 - Add a command line script for updating patron category based on status

This patch adds a new script update_patrons_category.pl which allows for
updating patron categories in a batch upon meeting provided criteria.
This script additionally can replace j2a.pl.

To test:
1 - perl update_patrons_category.pl -h
2 - Ensure help text makes sense and covers all options
3 - Test converting patrons supplying only fromcat and tocat
    perl update_patrons_category.pl -f PT -t J -v --confirm
    perl update_patrons_category.pl -f J -t PT -v --confirm
4 - All patrons should have been switched to and from Juveniles
5 - Try without --confirm switch
    perl update_patrons_category.pl -f PT -t J -v
6 - Should list all patrons but not update
7 - Set the age for juvenile patrons to be outside the range provided in
categories (or set the upper age limit for juveniles to '2')
8 - Test with verbosity and with without --confirm
    perl update_patrons_category.pl -f J -a -t PT -v
    perl update_patrons_category.pl -f J -a -t PT -v --confirm
9 - Repeat above and verify linked/unlinked guarantors are removed in above scenario
10 - Test various fine and registration limits
11 - Test matching on specific fields i.e. --field surname=acosta
12 - Sign off

Sponsored by: Round Rock Public Library
(https://www.roundrocktexas.gov/departments/library/)
Comment 8 Liz Rea 2017-03-02 00:33:35 UTC
Hi Nick, 

I think this exists already in the form of j2a.pl, though it may not be as extensible as this verison.
Comment 9 Nick Clemens 2017-03-02 10:32:28 UTC
(In reply to Liz Rea from comment #8)
> Hi Nick, 
> 
> I think this exists already in the form of j2a.pl, though it may not be as
> extensible as this verison.

Yup, the idea was initially to make a script to update new patrons to regular patrons after a period of time. I added as much flexibility as possible, and included the j2a functionality so we could have a single script instead of two
Comment 10 Barton Chittenden 2017-04-03 19:20:50 UTC
Per Nick 'Yes, you can mark it as assigned - it needs rewrites to respect current guidelines'
Comment 11 Nick Clemens 2017-04-10 16:00:33 UTC
To be done:
Move business/logic to a module
Add unit tests
Remove MySQLisms
Comment 12 Nick Clemens 2018-01-25 19:26:37 UTC
Created attachment 70921 [details] [review]
Bug 17168 - Add a command line script for updating patron category based on status

This patch adds a new script update_patrons_category.pl which allows for
updating patron categories in a batch upon meeting provided criteria.
This script additionally can replace j2a.pl.

To test:
1 - perl update_patrons_category.pl -h
2 - Ensure help text makes sense and covers all options
3 - Test converting patrons supplying only fromcat and tocat
    perl update_patrons_category.pl -f PT -t J -v --confirm
    perl update_patrons_category.pl -f J -t PT -v --confirm
4 - All patrons should have been switched to and from Juveniles
5 - Try without --confirm switch
    perl update_patrons_category.pl -f PT -t J -v
6 - Should list all patrons but not update
7 - Set the age for juvenile patrons to be outside the range provided in
categories (or set the upper age limit for juveniles to '2')
8 - Test with verbosity and with without --confirm
    perl update_patrons_category.pl -f J -a -t PT -v
    perl update_patrons_category.pl -f J -a -t PT -v --confirm
9 - Repeat above and verify linked/unlinked guarantors are removed in above scenario
10 - Test various fine and registration limits
11 - Test matching on specific fields i.e. --field surname=acosta
12 - Sign off

Sponsored by: Round Rock Public Library
(https://www.roundrocktexas.gov/departments/library/)
Comment 13 Jesse Maseto 2018-03-16 10:16:13 UTC
Created attachment 73012 [details] [review]
Bug 17168 - Add a command line script for updating patron category based on status

This patch adds a new script update_patrons_category.pl which allows for
updating patron categories in a batch upon meeting provided criteria.
This script additionally can replace j2a.pl.

To test:
1 - perl update_patrons_category.pl -h
2 - Ensure help text makes sense and covers all options
3 - Test converting patrons supplying only fromcat and tocat
    perl update_patrons_category.pl -f PT -t J -v --confirm
    perl update_patrons_category.pl -f J -t PT -v --confirm
4 - All patrons should have been switched to and from Juveniles
5 - Try without --confirm switch
    perl update_patrons_category.pl -f PT -t J -v
6 - Should list all patrons but not update
7 - Set the age for juvenile patrons to be outside the range provided in
categories (or set the upper age limit for juveniles to '2')
8 - Test with verbosity and with without --confirm
    perl update_patrons_category.pl -f J -a -t PT -v
    perl update_patrons_category.pl -f J -a -t PT -v --confirm
9 - Repeat above and verify linked/unlinked guarantors are removed in above scenario
10 - Test various fine and registration limits
11 - Test matching on specific fields i.e. --field surname=acosta
12 - Sign off

Sponsored by: Round Rock Public Library
(https://www.roundrocktexas.gov/departments/library/)

Signed-off-by: Jesse Maseto <jesse@bywatersolutions.com>
Comment 14 Katrin Fischer 2018-04-22 10:37:53 UTC
Patch doesn't apply, please rebase!

Apply? [(y)es, (n)o, (i)nteractive] y
Applying: Bug 17168 - Add a command line script for updating patron category based on status
Using index info to reconstruct a base tree...
M	Koha/Patrons.pm
Falling back to patching base and 3-way merge...
Auto-merging Koha/Patrons.pm
CONFLICT (content): Merge conflict in Koha/Patrons.pm
Failed to merge in the changes.
Patch failed at 0001 Bug 17168 - Add a command line script for updating patron category based on status
The copy of the patch that failed is found in:
   /home/vagrant/kohaclone/.git/rebase-apply/patch
When you have resolved this problem run "git bz apply --continue".
If you would prefer to skip this patch, instead run "git bz apply --skip".
To restore the original branch and stop patching run "git bz apply --abort".
Patch left in /tmp/Bug-17168---Add-a-command-line-script-for-updating-hwoO66.patch
Comment 15 Nick Clemens 2018-04-30 11:25:06 UTC
Created attachment 74936 [details] [review]
Bug 17168 - Add a command line script for updating patron category based on status

This patch adds a new script update_patrons_category.pl which allows for
updating patron categories in a batch upon meeting provided criteria.
This script additionally can replace j2a.pl.

To test:
1 - perl update_patrons_category.pl -h
2 - Ensure help text makes sense and covers all options
3 - Test converting patrons supplying only fromcat and tocat
    perl update_patrons_category.pl -f PT -t J -v --confirm
    perl update_patrons_category.pl -f J -t PT -v --confirm
4 - All patrons should have been switched to and from Juveniles
5 - Try without --confirm switch
    perl update_patrons_category.pl -f PT -t J -v
6 - Should list all patrons but not update
7 - Set the age for juvenile patrons to be outside the range provided in
categories (or set the upper age limit for juveniles to '2')
8 - Test with verbosity and with without --confirm
    perl update_patrons_category.pl -f J -a -t PT -v
    perl update_patrons_category.pl -f J -a -t PT -v --confirm
9 - Repeat above and verify linked/unlinked guarantors are removed in above scenario
10 - Test various fine and registration limits
11 - Test matching on specific fields i.e. --field surname=acosta
12 - Sign off

Sponsored by: Round Rock Public Library
(https://www.roundrocktexas.gov/departments/library/)

Signed-off-by: Jesse Maseto <jesse@bywatersolutions.com>
Comment 16 Jonathan Druart 2018-05-30 21:01:36 UTC
Can you refresh this script a bit please?

At first glance, at least:
1. Indentation
2. More readable options
3. More readable parameters
4. I do not think update_category should be a Koha::Patrons method, to me it belongs to Koha::Patron
5. Why?
+    my $remove_guarantor = ( $to_cat->category_type ne 'C' || $to_cat->category_type ne 'P' ) ? 1 : 0;
6. Date handling is not the way to do
Comment 17 Nick Clemens 2018-05-31 10:56:45 UTC
Created attachment 75698 [details] [review]
Bug 17168: (follow-up) Tidy, clean params/options, use date tools
Comment 18 Nick Clemens 2018-05-31 11:00:39 UTC
(In reply to Jonathan Druart from comment #16)
> 1. Indentation
Tidied

> 2. More readable options
> 3. More readable parameters
OK, longer names available

> 4. I do not think update_category should be a Koha::Patrons method, to me it
> belongs to Koha::Patron
Hmm, I don't know that it does enough to a single patron to be a method, the utility is acting on many at once. I can move if you feel strongly

> 5. Why?
> +    my $remove_guarantor = ( $to_cat->category_type ne 'C' ||
> $to_cat->category_type ne 'P' ) ? 1 : 0;
When this was written adults couldn't have guarantors and we stripped them when updating - I suppose this can be removed?

> 6. Date handling is not the way to do
OK, fixed
Comment 19 Nick Clemens 2018-05-31 11:17:29 UTC
(In reply to Nick Clemens from comment #18)
> > 5. Why?
> > +    my $remove_guarantor = ( $to_cat->category_type ne 'C' ||
> > $to_cat->category_type ne 'P' ) ? 1 : 0;
> When this was written adults couldn't have guarantors and we stripped them
> when updating - I suppose this can be removed?
Ah, j2a still does this - I think removing for children makes sense, maybe not touch otherwise so maybe:
my $remove_guarantor = ( $from_cat->category_type eq 'C');
Comment 20 Jonathan Druart 2018-05-31 15:07:32 UTC
(In reply to Nick Clemens from comment #18)
> > 4. I do not think update_category should be a Koha::Patrons method, to me it
> > belongs to Koha::Patron
> Hmm, I don't know that it does enough to a single patron to be a method, the
> utility is acting on many at once. I can move if you feel strongly

The method iterates on the patrons, so to me it should be replaced with:
    while ( my $p = $patrons->next ) {
        $p->update_category($params);
    }
and the method moved.

As the signoff comes from Jesse I would prefer to wait for another QA point of view anyway.
Comment 21 Martin Renvoize 2018-06-19 18:12:56 UTC
I intend on writing a much more generic 'filter_by' method for the Koha::Patrons class which could easily be shared between bulk deletions, bulk anonymizations and this bulk category change enhancement along with some others down the line.. it seems somewhat crazy to add a method for each type of filtering (feels like we're backing ourselves into the same position we ended up in C4)..

I'll submit that against bug 11983 which I've adopted.. and likely build a small tree of bugs hanging off it that could use this..

Obviously this is just my opinionated ramblings, but thought it worth highlighting the intention to write similar code.
Comment 22 Martin Renvoize 2018-06-19 18:21:20 UTC
As a hint at where I'm going with it.. I had to throw something together quickly for customers to satisfy GDPR https://gist.github.com/mrenvoize/a0c37b1350d1fe532143784dee124b80.. It's basically pulling out the construction of the $where and $attr 'select' clause that I'm looking to put in a `filter_by` method
Comment 23 Martin Renvoize 2018-07-11 19:21:47 UTC
Sorry Nick, although I don't like the way this is done I would Pass QA on it as there's already precedent and we can refactor it once there's been discussion on bug 11983.

Failing QA for because there's a fair number of issues reported by the QA script instead:

OK     Koha/Patrons.pm                                                                                                                                                         
 FAIL   misc/cronjobs/update_patrons_category.pl                                                                                                                                
   FAIL   critic                                                                                                                                                                
                "$min_dob" is declared but not used at line 157, column 1. Unused variables clutter code and make it harder to read.                                            
                "$au" is declared but not used at line 155, column 1. Unused variables clutter code and make it harder to read.                                                 
                "$max_dob" is declared but not used at line 158, column 1. Unused variables clutter code and make it harder to read.                                            
                "$ao" is declared but not used at line 156, column 1. Unused variables clutter code and make it harder to read.                                                 
   FAIL   forbidden patterns                                                                                                                                                    
                forbidden pattern: Data::Dumper::Dumper (line 189)                                                                                                              
   FAIL   valid                                                                                                                                                                 
                Global symbol "$ageunder" requires explicit package name (did you forget to declare "my $ageunder"?)                                                            
                Global symbol "$ageover" requires explicit package name (did you forget to declare "my $ageover"?)                                                              
                misc/cronjobs/update_patrons_category.pl had compilation errors.                                                                                                
                                                                                                                                                                                
 OK     t/db_dependent/Patrons.t                                                                                                                                                
                                                                                                                                                                                
Processing additional checks                                                                                                                                                    
                                                                                                                                                                                
        * Commit title does not start with 'Bug XXXXX: ' - a25919ad28
Comment 24 Nick Clemens 2018-07-16 11:06:17 UTC
Created attachment 76974 [details] [review]
Bug 17168: Add a command line script for updating patron category based on status

This patch adds a new script update_patrons_category.pl which allows for
updating patron categories in a batch upon meeting provided criteria.
This script additionally can replace j2a.pl.

To test:
1 - perl update_patrons_category.pl -h
2 - Ensure help text makes sense and covers all options
3 - Test converting patrons supplying only fromcat and tocat
    perl update_patrons_category.pl -f PT -t J -v --confirm
    perl update_patrons_category.pl -f J -t PT -v --confirm
4 - All patrons should have been switched to and from Juveniles
5 - Try without --confirm switch
    perl update_patrons_category.pl -f PT -t J -v
6 - Should list all patrons but not update
7 - Set the age for juvenile patrons to be outside the range provided in
categories (or set the upper age limit for juveniles to '2')
8 - Test with verbosity and with without --confirm
    perl update_patrons_category.pl -f J -a -t PT -v
    perl update_patrons_category.pl -f J -a -t PT -v --confirm
9 - Repeat above and verify linked/unlinked guarantors are removed in above scenario
10 - Test various fine and registration limits
11 - Test matching on specific fields i.e. --field surname=acosta
12 - Sign off

Sponsored by: Round Rock Public Library
(https://www.roundrocktexas.gov/departments/library/)

Signed-off-by: Jesse Maseto <jesse@bywatersolutions.com>
Comment 25 Nick Clemens 2018-07-16 11:06:21 UTC
Created attachment 76975 [details] [review]
Bug 17168: (follow-up) Tidy, clean params/options, use date tools
Comment 26 Nick Clemens 2018-07-16 11:06:24 UTC
Created attachment 76976 [details] [review]
Bug 17168: (follow-up) Clean up QA errors

Cleanup variable names
Remove Dumper
Comment 27 Martin Renvoize 2018-07-19 08:05:14 UTC
Comment on attachment 76974 [details] [review]
Bug 17168: Add a command line script for updating patron category based on status

Review of attachment 76974 [details] [review]:
-----------------------------------------------------------------

A few more QA notes.

::: Koha/Patrons.pm
@@ +209,4 @@
>      return $nb_rows;
>  }
>  
> +=head3 search_patrons_to_update

This is a very generic name for a pretty specific task.. `search_patrons_to_update_category` might be better...

@@ +210,5 @@
>  }
>  
> +=head3 search_patrons_to_update
> +
> +    my $patrons = Koha::Patrons->search_patrons_to_anonymise( {

This signature doesn't match the method name ;)

@@ +218,5 @@
> +                      au     => $au,
> +                      ao    => $ao,
> +                  });
> +
> +This method returns all patron who should be updated form one category to another meeting criteria:

Typo 'form' -> 'from'

@@ +223,5 @@
> +
> +from - original category
> +fine_min - with fines totaling at least this amount
> +fine_max - with fines above this amount
> +au - under the age limit for 'from'

Looks like you've renamed this to 'ageunder', also the description could be clearer... it's a boolean right.. not an age in years that can be passed.

I'd probably go with `under_age - boolean denoting whether to filter down to those patrons who are under the age limit as defined by their category`

I may even go so far as to say can it be 'too_young' or 'is_under_age' adding the adverb clarifies the intention and boolean requirement.

@@ +224,5 @@
> +from - original category
> +fine_min - with fines totaling at least this amount
> +fine_max - with fines above this amount
> +au - under the age limit for 'from'
> +ao - over the agelimit for 'from'

As above but for overage

@@ +254,5 @@
> +        $query{group_by} = ["borrowernumber"];
> +        $query{having}{total_fines}{'<='}=$params->{fine_max} if defined $params->{fine_max};
> +        $query{having}{total_fines}{'>='}=$params->{fine_min} if defined $params->{fine_min};
> +    }
> +    return Koha::Patrons->search($search_params,\%query);

rather than returning a new Koha::Patrons object here you should use $self->search($search_params,\%query) to allow for future chaining.

@@ +257,5 @@
> +    }
> +    return Koha::Patrons->search($search_params,\%query);
> +}
> +
> +=head3 update_category

Hmm, it actually scares me a little that this isn't handled inside the 'store' routine.  This isn't the only way to update a patrons category and as such the guarantor handling won't get triggered during over forms of the update which could lead to bad data and bugs down the line..

@@ +260,5 @@
> +
> +=head3 update_category
> +
> +    Koha::Patrons->search->update_category( {
> +            to   => $to,

feels an odd signature.. I'd suggest `->update_category_to($category_code);`
Comment 28 Martin Renvoize 2018-07-19 08:09:27 UTC
also spotted search_params is undocumented for your search_for_update method.. (personally I would chain rather than try to merge search params inside the specialised search method anyway)
Comment 29 Martin Renvoize 2018-07-19 08:21:17 UTC
Also... I don't like that we're very nearly duplicating the /misc/cronjobs/j2a.pl script.. could this not be merged into that one, act as an update to that one.?

Also, many of these sorts of scripts are entirely undocumented past the perldoc within the script.. could we have a corresponding koha-manual patch just very quickly summarising that it's there and what it's for?
Comment 30 Julian Maurice 2018-10-05 13:42:19 UTC
Changing status to Failed QA to get answers to Martin's comments