A welcome addition to borrowers-force-messaging-defaults.pl would be to allow adding the messaging defaults only to patrons without such preferences. This will be made possible with the empty_only option. It copies the prefs only when the borrower prefs are empty (read: are not present).
Renaming empty_only to no_overwrite which might be better understood.
Created attachment 67989 [details] [review] Bug 19451: Add no_overwrite option to borrowers-force-messaging-defaults.pl This option allows you to add preferences only when they are not yet present. In other words: skip patrons that already set their prefs. Test plan: [1] Delete all borrower messaging prefs for a patron. [2] Run borrowers-force-messaging-defaults.pl -no_overwrite -doit Verify that the patron now has default msg preferences. [3] Change his settings and make them non-default. For instance, increase days in advance. [4] Run borrowers-force-messaging-defaults.pl -no_overwrite -doit Verify that the patron still has the non-default settings. [5] Run borrowers-force-messaging-defaults.pl -doit Verify that the patron msg prefs have been overwritten. Signed-off-by: Marcel de Rooy <m.de.rooy@rijksmuseum.nl>
Created attachment 68200 [details] [review] Bug 19451: Add no_overwrite option to borrowers-force-messaging-defaults.pl This option allows you to add preferences only when they are not yet present. In other words: skip patrons that already set their prefs. Test plan: [1] Delete all borrower messaging prefs for a patron. [2] Run borrowers-force-messaging-defaults.pl -no_overwrite -doit Verify that the patron now has default msg preferences. [3] Change his settings and make them non-default. For instance, increase days in advance. [4] Run borrowers-force-messaging-defaults.pl -no_overwrite -doit Verify that the patron still has the non-default settings. [5] Run borrowers-force-messaging-defaults.pl -doit Verify that the patron msg prefs have been overwritten. Signed-off-by: Marcel de Rooy <m.de.rooy@rijksmuseum.nl>
Rebased
Created attachment 68844 [details] [review] Bug 19451: Add no_overwrite option to borrowers-force-messaging-defaults.pl This option allows you to add preferences only when they are not yet present. In other words: skip patrons that already set their prefs. Test plan: [1] Delete all borrower messaging prefs for a patron. [2] Run borrowers-force-messaging-defaults.pl -no_overwrite -doit Verify that the patron now has default msg preferences. [3] Change his settings and make them non-default. For instance, increase days in advance. [4] Run borrowers-force-messaging-defaults.pl -no_overwrite -doit Verify that the patron still has the non-default settings. [5] Run borrowers-force-messaging-defaults.pl -doit Verify that the patron msg prefs have been overwritten. Signed-off-by: Marcel de Rooy <m.de.rooy@rijksmuseum.nl> Signed-off-by: Owen Leonard <oleonard@myacpl.org>
Created attachment 71327 [details] [review] Bug 19451: Add no_overwrite option to borrowers-force-messaging-defaults.pl This option allows you to add preferences only when they are not yet present. In other words: skip patrons that already set their prefs. Test plan: [1] Delete all borrower messaging prefs for a patron. [2] Run borrowers-force-messaging-defaults.pl -no-overwrite -doit Verify that the patron now has default msg preferences. [3] Change his settings and make them non-default. For instance, increase days in advance. [4] Run borrowers-force-messaging-defaults.pl -no-overwrite -doit Verify that the patron still has the non-default settings. [5] Run borrowers-force-messaging-defaults.pl -doit Verify that the patron msg prefs have been overwritten. Signed-off-by: Marcel de Rooy <m.de.rooy@rijksmuseum.nl> Signed-off-by: Owen Leonard <oleonard@myacpl.org> Signed-off-by: Josef Moravec <josef.moravec@gmail.com>
Created attachment 71328 [details] [review] Bug 19451: (QA follow-up) Change parameter name no_overwrite to no-overwrite for consistency Signed-off-by: Josef Moravec <josef.moravec@gmail.com>
+ if( $no_overwrite ) { + $sql .= " AND (SELECT COUNT(*) FROM borrower_message_preferences mp WHERE mp.borrowernumber=bo.borrowernumber) = 0" + } This is weird, I think you want to add a join here instead.
Created attachment 71367 [details] [review] Bug 19451: (QA follow-up) Replace weird subquery As requested, we add a JOIN and make the SELECT distinct. Signed-off-by: Marcel de Rooy <m.de.rooy@rijksmuseum.nl> Tested that no-overwrite still works as expected.
Pushed to master for 18.05, thanks to everybody involved!
Awesome work all! Enhancement, not backported to stable.