Koha/t/db_dependent
Lari Taskula b5b88b053d
Bug 17499: Add Koha-objects for messaging preferences
This patch adds Koha-objects for messaging preferences.

Adds simple validation for messaging preferences.

The validation includes
- throw exception if both borrowernumber or categorycode is given for a new pref
- throw exception if patron for the given borrowernumber is not found
- throw exception if category for the given categorycode is not found
- throw exception if days in advance cannot be configured but is given
- throw exception if days in advance configuration is invalid (value between 0-30)
- throw exception if digest is not available but attempted to set on
- throw exception if digest must be enabled but attempted to set off
- throw exception on duplicate messaging preference

Adds a method for getting available messaging options.

Adds a method for setting default messaging preferenes.
  $patron->set_default_messaging_preferences (where $patron is a Koha::Patron)
  ...or...
  Koha::Patron::Message::Preference->new_from_default({
    borrowernumber => 123,
    categorycode => "ABC",
    message_attribute_id => 1,
  });

Since messaging preference is a feature that has multiple related database tables,
usage via Koha-objects is sometimes frustrating. This patch adds easy access to
message transport types via
  $preference->message_transport_types                              (for getting)
  $preference->set({ message_transport_types => ['email', 'sms'] }) (for setting)
  (also supports other calling conventions, see documentation for more)

Adds optional parameter message_name for Koha::Patron::Message::Preferences->find
and ->search. Simplifies the Koha-object usage by allowing developer to skip joins
and / or querying the message name via attribute_id from message_attributes table.

Includes test coverage for basic usage.

To test:
1. prove t/db_dependent/Koha/Patron/Message/*

Following Bug 17499, check also Bug 18595 that replaces C4::Members::Messaging
with these new Koha-objects.

Signed-off-by: Dominic Pichette <dominic@inlibro.com>
Signed-off-by: David Nind <david@davidnind.com>
Signed-off-by: Martin Renvoize <martin.renvoize@ptfs-europe.com>

Signed-off-by: Katrin Fischer <katrin.fischer.83@web.de>

Signed-off-by: Michal Denar <black23@gmail.com>
Signed-off-by: Sam Lau <samalau@gmail.com>

Signed-off-by: Marcel de Rooy <m.de.rooy@rijksmuseum.nl>
Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
2023-09-12 10:16:06 -03:00
..
Acquisition Bug 34043: Remove incorrect spaces 2023-09-04 09:30:18 -03:00
api/v1 Bug 34313: Unit tests 2023-08-29 14:59:01 -03:00
Auth Bug 24387: Rename "News" with "Additional contents" 2021-08-16 11:55:55 +02:00
AuthoritiesMarc
Authority Bug 19693: Add test sub to Merge.t 2022-10-24 17:20:25 -03:00
Biblio Bug 30358: Strip leading/trailing whitespace characters from input fields when cataloguing 2023-05-16 15:17:26 -03:00
Budgets Bug 27550: Add unit test for CloneBudgetHierarchy 2022-09-22 08:18:43 -03:00
Circulation Bug 34279: Don't enforce overduefinescap unless it is greater than 0 2023-07-19 13:00:41 -03:00
CourseReserves Bug 32351: Fix CourseItems.t 2022-11-30 15:58:18 -03:00
Creators Bug 17600: Standardize our EXPORT_OK 2021-07-16 08:58:47 +02:00
cronjobs Bug 28931: Use EXPORT_OK from Koha::DateUtils 2021-10-07 11:01:05 +02:00
data Bug 29697: Fix t/db_dependent/Search.t 2022-07-25 10:16:48 -03:00
Exporter Bug 25503: Add failing test for _get_biblio_for_export 2023-05-10 15:26:19 -03:00
Holds Bug 34178: (QA follow-up) Tidy 2023-07-19 13:00:44 -03:00
Illrequest Bug 32911: (QA follow-up) Adjust tests 2023-09-04 08:51:01 -03:00
Items Bug 31196: Remove 'default_value_for_mod_marc-' clear_from_cache calls 2022-10-25 11:16:57 -03:00
Koha Bug 17499: Add Koha-objects for messaging preferences 2023-09-12 10:16:06 -03:00
Labels Bug 24001: (follow-up) Fix t_Profile.t 2022-04-28 20:26:20 -10:00
LDAP
Letters Bug 33029: Add wrapper method for dt_from_string to KohaDates template toolkit plugin 2023-07-06 12:24:17 -03:00
Members Bug 17600: Standardize our EXPORT_OK 2021-07-16 08:58:47 +02:00
misc/translator
OAI Bug 29697: Replace some missing occurrences 2022-07-25 09:30:30 -03:00
Patron Bug 14251: Allow use of CSS in discharge letter 2023-03-27 11:53:16 +02:00
Record Bug 29697: Use flag embed_items 2022-07-22 15:24:11 -03:00
Reports Bug 26669: Last Run if report not always updated 2022-04-04 16:23:46 +02:00
Reserves Bug 33210: Add unit test 2023-04-21 10:36:26 -03:00
Search Bug 28931: Use EXPORT_OK from Koha::DateUtils 2021-10-07 11:01:05 +02:00
selenium Bug 34345: (QA follow-up) Fix some more occurrences 2023-08-15 11:25:50 +03:00
Serials Bug 23775: Claiming a serial issue doesn't create the next one 2023-07-03 10:35:09 -03:00
SIP Bug 23548: (QA follow-up) tidy up code 2023-09-06 09:57:05 -03:00
Template/Plugin Bug 29691: Unit tests 2023-06-15 08:48:14 -03:00
Utils Bug 30063: Remove occurrences of C4::Utils::DataTables::Members 2022-04-04 09:47:01 +02:00
www Bug 33020: (QA follow-up) POD and chmod 2023-02-27 11:33:50 -03:00
00-strict.t Bug 28617: Remove kohalib.pl and rely on PERL5LIB 2021-12-07 12:16:28 -10:00
01-test_dbic.t Bug 26384: Fix executable flags 2020-09-11 09:56:56 +02:00
Accounts.t Bug 32450: (QA follow-up) Fix QA test errors 2023-05-17 10:25:07 -03:00
Acquisition.t Bug 25655: Store invoice price and currency even if no currency change 2023-03-06 13:57:53 -03:00
Amazon.t Bug 17600: Standardize our EXPORT_OK 2021-07-16 08:58:47 +02:00
ArticleRequests.t Bug 29182: (follow-up) Fix ArticleRequests.t 2021-10-07 15:49:01 +02:00
AudioAlerts.t Bug 29844: Fix ->search occurrences 2022-02-09 15:36:23 -10:00
Auth.t Bug 30524: (QA follow-up) Fix tests 2023-08-07 21:00:07 -03:00
Auth_with_cas.t Bug 17600: Standardize our EXPORT_OK 2021-07-16 08:58:47 +02:00
Auth_with_ldap.t Bug 30646: Unit tests for Auth_with_ldap 2022-10-03 14:02:40 -03:00
Auth_with_shibboleth.t Bug 33778: (QA follow-up) Update for master 2023-06-29 11:11:10 -03:00
AuthorisedValues.t Bug 32997: Add tests 2023-03-02 12:00:16 -03:00
AuthoritiesMarc.t Bug 17600: Standardize our EXPORT_OK 2021-07-16 08:58:47 +02:00
AuthoritiesMarc_GetTagsLabels.t Bug 30446: Add a test for GetTagsLabels 2022-04-21 21:01:09 -10:00
AuthUtils.t Bug 26384: (QA follow-up) Fix two exceptions 2020-09-11 09:56:56 +02:00
Barcodes.t Bug 17600: Standardize our EXPORT_OK 2021-07-16 08:58:47 +02:00
Barcodes_ValueBuilder.t Bug 26328: Add test 2022-03-23 10:50:51 -10:00
Biblio.t Bug 31185: Unit test 2023-06-21 13:20:33 -03:00
Biblio_holdsqueue.t Bug 30728: Add unit tests 2022-05-12 22:17:46 -10:00
Breeding.t Bug 33404: Add unit tests 2023-07-05 12:17:22 -03:00
Breeding_Auth.t Bug 33404: Add unit tests 2023-07-05 12:17:22 -03:00
Budgets.t Bug 32351: Fix Budgets.t 2022-11-30 15:58:15 -03:00
Cache.t
Calendar.t Bug 33727: (QA follow-up) perl tidy whole file 2023-07-14 12:14:37 -03:00
Charset.t Bug 17600: Standardize our EXPORT_OK 2021-07-16 08:58:47 +02:00
check_kohastructure.t Bug 26384: Fix executable flags 2020-09-11 09:56:56 +02:00
check_sysprefs.t Bug 23895: Fix check_sysprefs.t 2020-10-14 15:52:29 +02:00
Circulation.t Bug 30362: Fix GetSoonestRenewDate to really return soonest renew date 2023-08-30 09:02:43 -03:00
Circulation_holdsqueue.t Bug 30728: Add unit tests 2022-05-12 22:17:46 -10:00
Clubs.t Bug 29736: (QA follow-up) No need to delete all clubs 2022-01-13 16:37:33 -10:00
Context.t Bug 32687: Get server version in Context::get_versions 2023-02-24 17:52:28 -03:00
Contract.t Bug 28931: Use EXPORT_OK from Koha::DateUtils 2021-10-07 11:01:05 +02:00
CourseReserves.t Bug 17600: Standardize our EXPORT_OK 2021-07-16 08:58:47 +02:00
db_structure.t
DecreaseLoanHighHolds.t Bug 29102: Do not count patron's own hold against limits 2022-11-04 19:20:24 -03:00
Filter_MARC_ViewPolicy.t Bug 32648: Clear cache in Filter_MARC_ViewPolicy.t 2023-05-16 11:24:26 +02:00
Fines.t Bug 28931: Use EXPORT_OK from Koha::DateUtils 2021-10-07 11:01:05 +02:00
FrameworkPlugin.t Bug 28769: Remove tabloop from cataloguing plugins 2021-10-18 11:28:40 +02:00
Heading.t Bug 33557: Add LinkerConsiderThesaurus system preference 2023-05-10 15:26:26 -03:00
Heading_MARC21.t Bug 33277: Do not search using thesaurus when linking non 6XX fields 2023-05-10 15:26:22 -03:00
Hold.t Bug 14783: (QA follow-up) Rename method and move tests 2022-10-17 15:43:22 -03:00
Holds.t Bug 32894: (QA follow-up) Fix tests 2023-06-07 16:44:05 -03:00
HoldsQueue.t Bug 28966: Prefetch patron data for holds queue viewer 2023-07-25 16:25:38 -03:00
Holidays.t Bug 28931: Use EXPORT_OK from Koha::DateUtils 2021-10-07 11:01:05 +02:00
Illcomments.t
Illrequestattributes.t
Illrequests.t Bug 27542: (follow-up) Fix unit test 2023-09-01 12:08:41 -03:00
ILSDI_Services.t Bug 29924: Update ILSDI to be aware of expired passwords 2022-05-06 10:33:09 -10:00
ImportBatch.t Bug 32804: (QA follow-up) Typo ahs and fix ImportBatch.t 2023-03-17 09:59:12 -03:00
ImportExportFramework.t Bug 13952: (follow-up) Tests 2022-04-04 16:23:45 +02:00
Installer.t Bug 26326: (follow-up) Add ability to check for existence of any primary key 2021-11-03 15:40:52 +01:00
Items.t Bug 32456: Unit tests 2022-12-27 10:42:19 -03:00
Koha.t Bug 30870: Don't skip tests if Test::Deep if not installed 2022-06-01 13:40:26 -03:00
Koha_Database.t Bug 26384: Fix executable flags 2020-09-11 09:56:56 +02:00
Koha_Elasticsearch.t Bug 26384: Fix executable flags 2020-09-11 09:56:56 +02:00
Koha_ExternalContent_OverDrive.t Bug 25527: Add logger to Koha::ExternalContent 2020-05-18 15:25:03 +01:00
Koha_MetadataRecord_Authority.t Bug 30756: Rename to Koha_MetadataRecord_Authority 2022-06-02 13:53:39 -03:00
Koha_Misc_Files.t Bug 22001: Remove the RaiseError occurrences from tests 2020-03-27 08:52:56 +00:00
Languages.t Bug 32775: (QA follow-up) remove useless empty line 2023-05-15 18:23:54 -03:00
Letters.t Bug 34731: Throw exception if SendQueuedMessages is passed a bad message_id 2023-09-12 09:44:58 -03:00
LibraryGroups.t Bug 29844: Fix ->search occurrences 2022-02-09 15:36:23 -10:00
Linker_Default.t Bug 30280: Add Unit tests 2022-10-03 10:00:12 -03:00
Linker_FirstMatch.t Bug 17600: Standardize our EXPORT_OK 2021-07-16 08:58:47 +02:00
Log.t Bug 32057: (QA follow-up) Add a simple test 2023-03-14 08:49:34 -03:00
MarcModificationTemplates.t Bug 31644: (QA follow-up) Add two missing shebang lines 2022-10-24 11:53:19 -03:00
Matcher.t Bug 33869: Move Matcher.t to t/db_dependent 2023-09-01 11:07:45 -03:00
Members.t Bug 32426: (follow-up) Fix for Members.t / Patrons.t 2023-03-28 14:54:03 +02:00
Message.t Bug 33192: (QA follow-up) Fix it-IT sample data and unit tests 2023-04-14 11:35:40 -03:00
MungeMarcPrice.t Bug 17600: Standardize our EXPORT_OK 2021-07-16 08:58:47 +02:00
Overdues.t Bug 29844: Fix ->search occurrences 2022-02-09 15:36:23 -10:00
Passwordrecovery.t Bug 31739: Password recovery from staff fails if previous expired reset-entry exists. 2022-10-24 14:12:16 -03:00
Patroncards.t Bug 17600: Standardize our EXPORT_OK 2021-07-16 08:58:47 +02:00
PatronLists.t Bug 16446: Add ability to add patrons to list by borrowernumber 2021-10-21 12:24:04 +02:00
Patrons.t Bug 12446: (QA follow-up) Rename canbeguarantee => can_be_guarantee 2022-06-23 13:34:05 -03:00
Record.t Bug 17600: Standardize our EXPORT_OK 2021-07-16 08:58:47 +02:00
RecordProcessor_EmbedSeeFromHeadings.t Bug 25898: Prohibit indirect object notation 2020-10-15 12:56:30 +02:00
Reports.t Bug 17600: Standardize our EXPORT_OK 2021-07-16 08:58:47 +02:00
Reserves.t Bug 34666: Tidy 2023-09-08 11:54:54 -03:00
rollingloans.t Bug 28931: Use EXPORT_OK from Koha::DateUtils 2021-10-07 11:01:05 +02:00
RotatingCollections.t Bug 29144: Remove opac_info from a few tests 2022-09-16 09:55:20 -03:00
Search.t Bug 33719: Silence warnings on ContentWarningField in Search.t 2023-05-16 12:39:21 +02:00
Serials.t Bug 30718: Use flatpickr's altInput 2022-08-19 08:26:31 -03:00
Serials_2.t Bug 17600: Standardize our EXPORT_OK 2021-07-16 08:58:47 +02:00
Service.t Bug 5477 [SIGN-OFF] Fix test cases that require database access 2011-01-29 17:02:31 +13:00
ShelfBrowser.t Bug 17600: Standardize our EXPORT_OK 2021-07-16 08:58:47 +02:00
Sitemapper.t Bug 33871: Test where parameter in Sitemapper.t 2023-09-01 11:23:26 -03:00
SocialData.t Bug 33833: Move to db_dependent 2023-09-05 14:35:36 -03:00
Stats.t Bug 30928: Add tests 2023-05-10 14:19:21 -03:00
StockRotationItems.t Bug 30518: Unit test 2022-04-19 21:25:50 -10:00
StockRotationRotas.t
StockRotationStages.t Bug 29809: Fix StockRotationStages.t 2022-01-31 21:55:40 -10:00
SuggestionEngine_ExplodedTerms.t Bug 31069: Remove ExplodedTerms dependency on templates 2022-07-18 12:37:35 -03:00
Suggestions.t Bug 33236: Move NewSuggestion to Koha::Suggestion->store 2023-06-06 10:08:35 -03:00
sysprefs.t Bug 22880: (follow-up) Loose ends: Better DB update, global inclusion, etc. 2020-02-24 13:24:25 +00:00
TablesSettings.t Bug 25898: Prohibit indirect object notation 2020-10-15 12:56:30 +02:00
Tags.t Bug 31517: Remove unused get_tag function 2022-11-04 19:30:56 -03:00
Templates.t Bug 29695: Remove GetColumnDefs 2022-04-12 11:40:16 +02:00
TestBuilder.t Bug 28966: (QA follow-up) Fix failing unit tests 2023-07-26 15:41:12 -03:00
Upload.t Bug 31598: Fix random failure on Jenkins for Upload.t 2022-09-22 08:07:01 -03:00
UsageStats.t Bug 28565: Refactor tests 2021-07-26 12:46:35 +02:00
Virtualshelves.t Bug 30418: Unit tests 2023-05-15 18:23:58 -03:00
XISBN.t Bug 17600: Standardize our EXPORT_OK 2021-07-16 08:58:47 +02:00
XSLT.t Bug 33733: Move to db_dependent 2023-05-16 12:38:16 +02:00
yaml.t Bug 22824: Adjust tests to match final behaviours 2021-03-04 16:18:42 +01:00
zebra_config.pl Bug 17600: Standardize our EXPORT_OK 2021-07-16 08:58:47 +02:00