X-Git-Url: https://vcs.fsf.org/?a=blobdiff_plain;f=release-notes%2F5.25.0.md;h=878bbb89803ede9af678e21f84f1cbc669e7f21a;hb=69cd824e26fc6e90a88e6cf18d9d011c1c85b94e;hp=a340d21c683ed09459274e5295fdeced7e365559;hpb=e76ac9793705c58b5885f77b3046c749e57352b9;p=civicrm-core.git diff --git a/release-notes/5.25.0.md b/release-notes/5.25.0.md index a340d21c68..878bbb8980 100644 --- a/release-notes/5.25.0.md +++ b/release-notes/5.25.0.md @@ -13,467 +13,832 @@ Released May 6, 2020 | *Does this version...?* | | |:--------------------------------------------------------------- |:-------:| -| Fix security vulnerabilities? | | -| Change the database schema? | | -| Alter the API? | | -| Require attention to configuration options? | | -| Fix problems installing or upgrading to a previous version? | | -| Introduce features? | | -| Fix bugs? | | +| Fix security vulnerabilities? | no | +| Change the database schema? | **yes** | +| Alter the API? | **yes** | +| Require attention to configuration options? | no | +| Fix problems installing or upgrading to a previous version? | **yes** | +| Introduce features? | **yes** | +| Fix bugs? | **yes** | ## Features ### Core CiviCRM -- **crm- Missing Summary ([16886](https://github.com/civicrm/civicrm-core/pull/16886))** +- **End of life plans for php 7.0 & deprecate php 7.1 + ([dev/core#1528](https://lab.civicrm.org/dev/core/issues/1528): + [16753](https://github.com/civicrm/civicrm-core/pull/16753), + [599](https://github.com/civicrm/civicrm-drupal/pull/599), + [598](https://github.com/civicrm/civicrm-drupal/pull/598), + [111](https://github.com/civicrm/civicrm-backdrop/pull/111), + [16678](https://github.com/civicrm/civicrm-core/pull/16678), + [114](https://github.com/civicrm/civicrm-backdrop/pull/114), + [187](https://github.com/civicrm/civicrm-wordpress/pull/187) and + [184](https://github.com/civicrm/civicrm-wordpress/pull/184))** -- **CRM-1367 Missing Summary ([16870](https://github.com/civicrm/civicrm-core/pull/16870))** + CiviCRM now requires PHP 7.1 at a minimum and recommends PHP 7.3. -- **CRM-20553 Missing Summary ([14667](https://github.com/civicrm/civicrm-core/pull/14667))** + In the process of making this change, the minimum PHP version is now stored in + a single place within the core codebase. CMS-specific files have this value, + too, but tests enforce that it be the same as the single core value. -## Bugs resolved +- **Replace jcalendar instances with datepicker (Continued + Work [dev/core#561](https://lab.civicrm.org/dev/core/issues/561): + [15709](https://github.com/civicrm/civicrm-core/pull/15709) and + [16863](https://github.com/civicrm/civicrm-core/pull/16863))** -### Core CiviCRM + These changes continue work to move to datepicker from jcalendar by converting + report instances from using the legacy jcalendar to using datepicker for date + fields and deprecating the `addDateRange` function used by jcalendar. -- **Revert #16947 from 5.25RC ([17108](https://github.com/civicrm/civicrm-core/pull/17108))** +- **APIv4 - Add Dashboard & DashboardContact entities + ([16867](https://github.com/civicrm/civicrm-core/pull/16867))** -- **Add release-notes/5.24.4.md ([17097](https://github.com/civicrm/civicrm-core/pull/17097))** + Adds APIv4 support for Dashboard & DashboardContact and does some cleanup in + the BAO and API layers for improved consistency. -- **Generalise typo3/phar-stream-wrapper so CiviCRM can be installed on d… ([17085](https://github.com/civicrm/civicrm-core/pull/17085))** +- **Add new language, `nl_BE` + ([17014](https://github.com/civicrm/civicrm-core/pull/17014))** -- **Fix unsubscribe regression ([17081](https://github.com/civicrm/civicrm-core/pull/17081))** + Adds a new translation option for "Dutch (Belgium)". -- **Add release-notes/5.24.2 ([17041](https://github.com/civicrm/civicrm-core/pull/17041))** +- **Add hook to alter display value or Custom field value + ([16921](https://github.com/civicrm/civicrm-core/pull/16921))** -- **Revert "temp workaround for dev/core#1675" ([17033](https://github.com/civicrm/civicrm-core/pull/17033))** + The new hook + [`hook_civicrm_alterCustomFieldDisplayValue()`](https://docs.civicrm.org/dev/en/latest/hooks/hook_civicrm_alterCustomFieldDisplayValue/) + allows modification of the displayed value for a custom field value. -- **CRM_Core_I18n - Provide a better label for new/unknown locales ([17021](https://github.com/civicrm/civicrm-core/pull/17021))** +- **APIv4 query improvements (Work towards + [dev/report#31](https://lab.civicrm.org/dev/report/issues/31): + [16917](https://github.com/civicrm/civicrm-core/pull/16917) and + [16947](https://github.com/civicrm/civicrm-core/pull/16947))** -- **Fixed fatal error for class not found when managed hook is invoked du… ([17004](https://github.com/civicrm/civicrm-core/pull/17004))** + This change builds out the APIv4 framework to support `GROUP BY` and different + types of expressions in clauses that previously only accepted the names of + fields. These expressions can now include numbers, `NULL`, strings, and + whitelisted SQL functions. The framework can in theory handle most SQL + functions, but this first PR adds support for the aggregate functions `AVG`, + `COUNT`, `MAX`, `MIN`, and `SUM`. -- **add nl_BE language ([17014](https://github.com/civicrm/civicrm-core/pull/17014))** +- **install/index.php - Fix leak which breaks compatibility with current Backdrop + ([#17249](https://github.com/civicrm/civicrm-core/pull/17249))** -- **Add release-notes/5.24.1 ([16978](https://github.com/civicrm/civicrm-core/pull/16978))** +### CiviContribute -- **dev/financial#84 - Fix upgrade failure. Thin-out activation logic for `sequentialcreditnotes`. ([16971](https://github.com/civicrm/civicrm-core/pull/16971))** +- **Partial Refunds (Work towards + [dev/financial#87](https://lab.civicrm.org/dev/financial/issues/87): + [16480](https://github.com/civicrm/civicrm-core/pull/16480))** -- **core#1688 - false positive on missing custom field check ([16961](https://github.com/civicrm/civicrm-core/pull/16961))** + The "Add Payment" form is altered to permit payments to be added even if a + contribution is fully paid. -- **dev/core#1528 - Consolidate to single constant for minimum PHP version ([16753](https://github.com/civicrm/civicrm-core/pull/16753))** +- **Add privacy fields to Contribution Detail report + ([16674](https://github.com/civicrm/civicrm-core/pull/16674))** -- **[REF] move buildQuickForm function to the trait ([16948](https://github.com/civicrm/civicrm-core/pull/16948))** + Columns for the following fields are added to the contribution detail report: + "Do Not Phone", "Do Not Mail", "Do Not SMS", "Do Not Trade". -- **Revert "APIv4 - Fix contribution create" ([16951](https://github.com/civicrm/civicrm-core/pull/16951))** + - **Add "pledge id" as column and filter in Contribution Detail report. + ([16868](https://github.com/civicrm/civicrm-core/pull/16868))** -- **Remove deprecated cleaning of money in the BAO layer ([16950](https://github.com/civicrm/civicrm-core/pull/16950))** + This change improves the Contribution Detail Report by adding "pledge id" as + a filter and column. -- **APIv4 - Support GROUP BY and aggregate functions ([16947](https://github.com/civicrm/civicrm-core/pull/16947))** +### CiviEvent -- **dev/core#1682 - Invalid currency on sending offline membership receipt. ([16943](https://github.com/civicrm/civicrm-core/pull/16943))** +- **Remove additional display of buttons for events + ([16550](https://github.com/civicrm/civicrm-core/pull/16550))** -- **dev/core#1674: fix rebuilding of container on every request ([16919](https://github.com/civicrm/civicrm-core/pull/16919))** + When viewing an event registration, this removes the Record Payment button + from the Fees section. Payments can still be recorded from the payments + section. -- **[REF] Move properties to Trait ([16940](https://github.com/civicrm/civicrm-core/pull/16940))** +### WordPress Integration -- **Follow up PR for #16845 - Fix form error when variable is NULL ([16941](https://github.com/civicrm/civicrm-core/pull/16941))** +- **Merge REST API wrapper code + ([160](https://github.com/civicrm/civicrm-wordpress/pull/160))** -- **fixes dev/core#1683 set profile frontend title ([16945](https://github.com/civicrm/civicrm-core/pull/16945))** + This merges the CiviCRM WP REST API Wrapper plugin's code into the core + WordPress integration. The result is that there are now native WordPress REST + endpoints for the REST API, email tracking, and other endpoints that had been + direct links to PHP files in the `extern` folder of the CiviCRM plugin. -- **5.24 ([16946](https://github.com/civicrm/civicrm-core/pull/16946))** +- **Add shortcodes for Personal Campaign Pages + ([185](https://github.com/civicrm/civicrm-wordpress/pull/185) and + [16695](https://github.com/civicrm/civicrm-core/pull/16695))** -- **[REF] Start transitioning EmailCommon class to a trait ([16935](https://github.com/civicrm/civicrm-core/pull/16935))** + Personal Campaign Pages are now available as a shortcode. -- **[NFC/TEST] Resurrect unfinished test for getRelatedCases() ([16885](https://github.com/civicrm/civicrm-core/pull/16885))** +## Bugs resolved -- **Add hook to alter display value or Custom field value ([16921](https://github.com/civicrm/civicrm-core/pull/16921))** +### Core CiviCRM -- **5.24 ([16938](https://github.com/civicrm/civicrm-core/pull/16938))** +- **Activity Detail report gives syntax error with force=1 if include case + activities is on + ([dev/core#1710](https://lab.civicrm.org/dev/core/issues/1710): + [17128](https://github.com/civicrm/civicrm-core/pull/17128))** -- **[REF] Remove fatal, fix some code comments ([16928](https://github.com/civicrm/civicrm-core/pull/16928))** + The case activity table wasn't properly loaded when the Activity Detail report + including case activities would go straight to displaying results. -- **[REF] extract code to getEmails ([16929](https://github.com/civicrm/civicrm-core/pull/16929))** +- **Search Builder - Activity Type search not working. + ([dev/core#1714](https://lab.civicrm.org/dev/core/issues/1714): + [17215](https://github.com/civicrm/civicrm-core/pull/17215))** -- **[REF] Minor simplification - do not use variable variables ([16927](https://github.com/civicrm/civicrm-core/pull/16927))** + In Search Builder, searching by activity type would return no results, + affecting not only direct searches but also smart groups that built with + Search Builder. This resolves the regression, which first appeared in 5.24.3. -- **Add "pledge id" as column and filter in Contribution Detail report. ([16868](https://github.com/civicrm/civicrm-core/pull/16868))** +- **Deleting entities leaves obsolete EntityTag records + ([dev/core#667](https://lab.civicrm.org/dev/core/issues/667): + [16832](https://github.com/civicrm/civicrm-core/pull/16832))** -- **5.24 to master ([16931](https://github.com/civicrm/civicrm-core/pull/16931))** + Fixes a bug where deleting a contact does not delete tags associated with the + contact. -- **[Test] Remove skip that seems no longer required ([16912](https://github.com/civicrm/civicrm-core/pull/16912))** +- **Profile Public Title (frontend_title column) is not used in profile + create/edit mode + ([dev/core#1683](https://lab.civicrm.org/dev/core/issues/1683): + [16945](https://github.com/civicrm/civicrm-core/pull/16945))** -- **Added pseudoconstant for acl_id ([16925](https://github.com/civicrm/civicrm-core/pull/16925))** + The Public Title setting that was recently added for profiles would only + replace the profile name on contribution and event forms. When the profile + was used in a standalone context, the name would always appear. -- **dev/core#1676 - E_NOTICE because of missing brackets for order of operations ([16924](https://github.com/civicrm/civicrm-core/pull/16924))** +- **Auto-complete search results not consistent with other searches + ([dev/core#787](https://lab.civicrm.org/dev/core/issues/787): + [13809](https://github.com/civicrm/civicrm-core/pull/13809))** -- **Remove deprecated function ([16907](https://github.com/civicrm/civicrm-core/pull/16907))** +- **Need to Increase Data Size for `form_values` column on + civicrm_report_instance table + ([dev/core#1569](https://lab.civicrm.org/dev/core/issues/1569): + [16836](https://github.com/civicrm/civicrm-core/pull/16836))** -- **dev/core#1366 - case audit printReport parameter is no longer used ([16670](https://github.com/civicrm/civicrm-core/pull/16670))** + This hanges the data type for the `form_values` column on the + `civicrm_report_instance` from TEXT to LONGTEXT. -- **Make api4 select query object more sane ([16889](https://github.com/civicrm/civicrm-core/pull/16889))** +- **PHP warning on Add relationship form + ([dev/core#1663](https://lab.civicrm.org/dev/core/issues/1663): + [16845](https://github.com/civicrm/civicrm-core/pull/16845) and + [16941](https://github.com/civicrm/civicrm-core/pull/16941))** -- **[NFC] APIv4 - Add test coverage for expected fields from join ([16920](https://github.com/civicrm/civicrm-core/pull/16920))** +- **Removing all the dashlets from the dashboard leads to E_NOTICE + ([dev/core#1668](https://lab.civicrm.org/dev/core/issues/1668): + [16883](https://github.com/civicrm/civicrm-core/pull/16883))** -- **[NFC] Add in unit test to ensure that APIv4 Doesn't accept an invalid… ([16893](https://github.com/civicrm/civicrm-core/pull/16893))** +- **Regression: Api4 causes container being rebuild on every request + ([dev/core#1674](https://lab.civicrm.org/dev/core/issues/1674): + [16919](https://github.com/civicrm/civicrm-core/pull/16919))** -- **APIv4 - Only adjust domain_id if required ([16917](https://github.com/civicrm/civicrm-core/pull/16917))** +- **E_NOTICE when using the New Individual popup/profile + ([dev/core#1676](https://lab.civicrm.org/dev/core/issues/1676): + [16924](https://github.com/civicrm/civicrm-core/pull/16924))** -- **[REF] Extract code used to render a pseudoconstant when a table is defined. ([16902](https://github.com/civicrm/civicrm-core/pull/16902))** +- **[regression] CiviCRM reports that smart groups won't work due to deleted + custom fields that aren't deleted + ([dev/core#1688](https://lab.civicrm.org/dev/core/issues/1688): + [16961](https://github.com/civicrm/civicrm-core/pull/16961))** -- **Remove unused code ([16914](https://github.com/civicrm/civicrm-core/pull/16914))** + A system check would mistakenly report that a smart group was based upon a + deleted custom field if it was based upon a checkbox or multi-select custom + field. -- **[REF] Move form specific handling back to the relevant form. ([16913](https://github.com/civicrm/civicrm-core/pull/16913))** +- **Fix checking permissions in api3 profile get + ([16848](https://github.com/civicrm/civicrm-core/pull/16848))** -- **Remove assigns for atypefile ([16895](https://github.com/civicrm/civicrm-core/pull/16895))** + This resolves a bug where the API would reverse the value of the option to use + a current user's permissions when retrieving the list of fields in a profile. -- **Deprecate use of in OptionGroup::add() function ([16910](https://github.com/civicrm/civicrm-core/pull/16910))** +- **APIv4 - convert Result object to array when running through json_encode + ([16828](https://github.com/civicrm/civicrm-core/pull/16828))** -- **[REF] APIv4 - Preserve order when expanding select wildcards ([16909](https://github.com/civicrm/civicrm-core/pull/16909))** +- **Api4 AJAX endpoint: change required permission to access AJAX API. + ([16705](https://github.com/civicrm/civicrm-core/pull/16705) and + [17241](https://github.com/civicrm/civicrm-core/pull/17241))** -- **dev/core#561 Add in deprecation notice on addDateRange funtion ([16863](https://github.com/civicrm/civicrm-core/pull/16863))** + The APIv4 AJAX endpoint is now open to users with either the Access CiviCRM or + the Access AJAX API permissions, matching the APIv3 behavior. -- **dev/core#1663 - Fix warning on relationship form ([16845](https://github.com/civicrm/civicrm-core/pull/16845))** +- **Improvements to APIv4 select query + ([16889](https://github.com/civicrm/civicrm-core/pull/16889) and + [16900](https://github.com/civicrm/civicrm-core/pull/16900))** -- **[NFC] Use strict comparison where possible ([16896](https://github.com/civicrm/civicrm-core/pull/16896))** +- **APIv4 - Don't advertise implicit multi-joins in Explorer + ([17205](https://github.com/civicrm/civicrm-core/pull/17205))** -- **Improve APIv4 selectUtils to handle join paths in fieldnames. ([16904](https://github.com/civicrm/civicrm-core/pull/16904))** + Implicit one-to-many joins in APIv4 have been problematic and may get removed. + As a soft deprecation, these are no longer displayed in the APIv4 explorer. -- **[NFC] Code formatting ([16906](https://github.com/civicrm/civicrm-core/pull/16906))** +- **CRM_Core_I18n - Provide a better label for new/unknown locales + ([17021](https://github.com/civicrm/civicrm-core/pull/17021))** -- **[NFC] minor form cleanup. ([16905](https://github.com/civicrm/civicrm-core/pull/16905))** + If CiviCRM finds a locale in the localization files but doesn't know what it + is, it will now display the locale code instead of just a blank option. -- **APIv4 - bugfix in select query ([16900](https://github.com/civicrm/civicrm-core/pull/16900))** +- **Fixed fatal error for class not found when managed hook is invoked during + upgrade ([17004](https://github.com/civicrm/civicrm-core/pull/17004))** -- **[REF] Remove & from before variable ([16897](https://github.com/civicrm/civicrm-core/pull/16897))** +- **Log error message instead of throwing exception + ([16880](https://github.com/civicrm/civicrm-core/pull/16880))** -- **log error message instead of throwing exception ([16880](https://github.com/civicrm/civicrm-core/pull/16880))** +- **Remove instances of fatal + ([16759](https://github.com/civicrm/civicrm-core/pull/16759))** -- **5.24 ([16898](https://github.com/civicrm/civicrm-core/pull/16898))** + This throws exceptions rather than dying when encountering problems creating + contacts. -- **Add some deprecation notices, stop calling PrevNext::cleanupCache ([16697](https://github.com/civicrm/civicrm-core/pull/16697))** +- **Fix bug where a % in a serialized array can lead to the data being broken + ([16694](https://github.com/civicrm/civicrm-core/pull/16694))** -- **Fixed fatal error for Event Participants custom search if price set f… ([16894](https://github.com/civicrm/civicrm-core/pull/16894))** +- **Fix batch contact/activity update with radio options + ([16855](https://github.com/civicrm/civicrm-core/pull/16855))** -- **APIv3 - Use new DAO::deleteRecord method ([16869](https://github.com/civicrm/civicrm-core/pull/16869))** + This fixes a failure to copy the value down a column if the field is radio + buttons and the value in the first row contains a space. -- **APIv4 - Add Dashboard & DashboardContact entities ([16867](https://github.com/civicrm/civicrm-core/pull/16867))** +- **Fix CustomDataView.tpl plain empty memo field. + ([16839](https://github.com/civicrm/civicrm-core/pull/16839))** -- **5.24 ([16892](https://github.com/civicrm/civicrm-core/pull/16892))** + Ensure note custom fields display on their own lines -- **[REF] Replace \CRM_Utils_Array::value with ?? ([16872](https://github.com/civicrm/civicrm-core/pull/16872))** +- **Fix setting outBound_option readonly in UI + ([16774](https://github.com/civicrm/civicrm-core/pull/16774))** -- **[REF] Civi/Api4 - Refactor out 'use CRM_Utils_Array' ([16873](https://github.com/civicrm/civicrm-core/pull/16873))** + If the outbound mailer option is set via the settings file, the settings form + will now disable the field. -- **[REF] BAO_Contact - Remove CRM_Utils_Array::value and other unnecessary code ([16874](https://github.com/civicrm/civicrm-core/pull/16874))** +- **Use dbAlias to generate where clause for date field in activity report + ([16689](https://github.com/civicrm/civicrm-core/pull/16689))** -- **5.24 ([16884](https://github.com/civicrm/civicrm-core/pull/16884))** + This resolves potentially ambiguous queries in the Activity Summary and Detail + reports if the activity table is joined again in the report. -- **[REF] APIv4 - Restructure the way get query objects are constucted ([16878](https://github.com/civicrm/civicrm-core/pull/16878))** +- **[REF] Use composer patches to apply CiviCRM Customisations for CRM-1367 and + CRM-5946 ([16870](https://github.com/civicrm/civicrm-core/pull/16870))** -- **dev/core#1668 - Avoid E_NOTICE when removing last dashlet ([16883](https://github.com/civicrm/civicrm-core/pull/16883))** + Migrates the patching of pear_mail from a script file to using composer + patches to ensure CiviCRM customisations for CRM-1367 and CRM-5946 are applied + consistently. -- **Alternate to #16650 - On Case Audit/Print Report richtext details field is getting escaped when system is non-english ([16659](https://github.com/civicrm/civicrm-core/pull/16659))** +### CiviCase -- **Fix use col "Soft Credit Amount Stats" and any filter of contribution… ([16591](https://github.com/civicrm/civicrm-core/pull/16591))** +- **Various errors recorded in log message on Manage Case screen -> relationship + tab. ([dev/core#1664](https://lab.civicrm.org/dev/core/issues/1664): + [16846](https://github.com/civicrm/civicrm-core/pull/16846))** -- **dev/core#1331 Add missing parameter to translation string ([16881](https://github.com/civicrm/civicrm-core/pull/16881))** + Fixes log messages generated when opening the relationship tab on the Manage + Case form. -- **[REF] Cleanup is_array(CRM_Utils_Array::value()) pattern ([16875](https://github.com/civicrm/civicrm-core/pull/16875))** +- **"Merge Case" modal not showing relevant cases + ([dev/core#1646](https://lab.civicrm.org/dev/core/issues/1646): + [16798](https://github.com/civicrm/civicrm-core/pull/16798))** -- **dev/core#667 Fix bug where entity_tags are not deleted by 'soft FK' ([16832](https://github.com/civicrm/civicrm-core/pull/16832))** + The pop-up to merge cases would only show 25 other cases. It now shows all + cases for a client. -- **dev/core#1652 - Check for change case type activity on case activity form doesn't work ([16785](https://github.com/civicrm/civicrm-core/pull/16785))** +- **Adding a timeline to a case doesn't get the last activity in the timeline + right ([dev/core#1675](https://lab.civicrm.org/dev/core/issues/1675) and + [dev/core#1695](https://lab.civicrm.org/dev/core/issues/1695): + [289](https://github.com/civicrm/civicrm-packages/pull/289))** -- **Add privacy fields to ContributionDetail report ([16674](https://github.com/civicrm/civicrm-core/pull/16674))** + Ensures case custom fields are saved when submitted via Drupal webform. + Additionally ensures that the last activity in the case timeline is set + correctly. -- **Follow up on fix on updating memberships when a contact is deceased ([16787](https://github.com/civicrm/civicrm-core/pull/16787))** +- **Check for "Change Case Type" in case activity form doesn't do anything + ([dev/core#1652](https://lab.civicrm.org/dev/core/issues/1652): + [16785](https://github.com/civicrm/civicrm-core/pull/16785))** -- **5.24 ([16879](https://github.com/civicrm/civicrm-core/pull/16879))** +- **When auditing cases on non-English deployments, richtext details + are incorrectly escaped + ([16659](https://github.com/civicrm/civicrm-core/pull/16659))** -- **Fix display of payment processor title in cancelSubscription form ([16857](https://github.com/civicrm/civicrm-core/pull/16857))** +- **Respect 'Do not notify activity type' setting + ([16800](https://github.com/civicrm/civicrm-core/pull/16800))** -- **CRM/Contribute - Cleanup boolean expressions ([16853](https://github.com/civicrm/civicrm-core/pull/16853))** + The setting to not notify assignees for certain activity types was not + respected when submitting an activity from a case. -- **dev/financial#87 make it possible to add a payment to a fully paid contribution ([16480](https://github.com/civicrm/civicrm-core/pull/16480))** +### CiviContribute -- **dev/1640 New feature - adds a checkbox to the update contribution status form to determine if a receipt is sent ([16742](https://github.com/civicrm/civicrm-core/pull/16742))** +- **Changes to "CiviContribute Component Settings" not saved + ([dev/core#1724](https://lab.civicrm.org/dev/core/issues/1724): + [17188](https://github.com/civicrm/civicrm-core/pull/17188))** -- **Civi/Test - Refactor out CRM_Utils_Array::value ([16871](https://github.com/civicrm/civicrm-core/pull/16871))** + The way that CiviContribute component settings were stored was updated for + 5.23, but the transition during the upgrade was problematic. This replaces + the transition code, resolving issues for sites upgrading directly from 5.22.x + or earlier. Sites on 5.23.x or 5.24.x should review their settings, however. -- **dev/core#1331 Don't freeze fields for auto-renew memberships ([16609](https://github.com/civicrm/civicrm-core/pull/16609))** +- **Invoice action not shown when invoicing enabled + ([17164](https://github.com/civicrm/civicrm-core/pull/17164))** -- **[TEST] Add test for to time processing ([16861](https://github.com/civicrm/civicrm-core/pull/16861))** + The "Invoices - print or email" action was not available for contribution + search results even when invoicing was enabled. -- **fix typo ([16865](https://github.com/civicrm/civicrm-core/pull/16865))** +- **Cumulative contributions not being calculated with the correct criteria + ([dev/core#1740](https://lab.civicrm.org/dev/core/issues/1740): + [17237](https://github.com/civicrm/civicrm-core/pull/17237))** + + The cumulative contributions display from a contribution page would needlessly + filter contributions by date, with the end date being midnight on the current + date. That would exclude contributions received on the current day. + +- **Updating misleading labels on buttons to confirmation pages + ([dev/core#1613](https://lab.civicrm.org/dev/core/issues/1613): + [16651](https://github.com/civicrm/civicrm-core/pull/16651))** -- **API tests - remove unnecessary check for v4 ([16866](https://github.com/civicrm/civicrm-core/pull/16866))** + Some donors and event registrants interpreted the button text "Confirm + Contribution" (on contribution pages) and "Continue" (on event registration + pages) to mean that this would complete the contribution or registration. In + fact, these would only appear when a confirmation page is used. -- **[REF] Remove redundant call to build permissions ([16862](https://github.com/civicrm/civicrm-core/pull/16862))** + The button text now appears as "Review your contribution" and "Review your + registration", respectively. -- **dev/core#561 Convert Reports from jcalender to datepicker format ([15709](https://github.com/civicrm/civicrm-core/pull/15709))** +- **Fix upgrade failure. Thin-out activation logic for `sequentialcreditnotes`. + ([16971](https://github.com/civicrm/civicrm-core/pull/16971) following + [dev/financial#84](https://lab.civicrm.org/dev/financial/issues/84))** -- **dev/core#1664 - Fix errors recorded in log message on Manage Case scr… ([16846](https://github.com/civicrm/civicrm-core/pull/16846))** + This change fixes an issue for some builds when upgrading caused by the + activation of the `sequentialcreditnotes` extension to replace core code that + generates sequential credit note identifiers. -- **Cleanup reverse boolean expressions ([16850](https://github.com/civicrm/civicrm-core/pull/16850))** +- **Fix Bug where Payment Balance is sometimes miscalculated + ([16546](https://github.com/civicrm/civicrm-core/pull/16546))** -- **CRM/Core - Cleanup boolean expressions ([16852](https://github.com/civicrm/civicrm-core/pull/16852))** + Fixes a bug where Add Refund is displayed instead of Add Payment on partially + paid event contributions. -- **5.24 to master ([16859](https://github.com/civicrm/civicrm-core/pull/16859))** +- **Stop overwriting contact name with PayPal name + ([CRM-20553](https://issues.civicrm.org/jira/browse/CRM-20553): [14667](https://github.com/civicrm/civicrm-core/pull/14667))** -- **CRM/Utils - Cleanup boolean expressions ([16851](https://github.com/civicrm/civicrm-core/pull/16851))** + When a user creates a donation via PayPal, their CiviCRM contact name should + not be overwritten to be their PayPal account name. -- **CRM - Cleanup boolean expressions ([16854](https://github.com/civicrm/civicrm-core/pull/16854))** +- **Fix use of "Soft Credit Amount Stats" and any filter of contribution… + ([16591](https://github.com/civicrm/civicrm-core/pull/16591))** -- **dev/core#1569: Increase Data Size for `form_values` column on civicrm_report_instance table ([16836](https://github.com/civicrm/civicrm-core/pull/16836))** + Ensures that one can use "Soft Credit Amount Stats" with all filters. -- **Add DAO::writeRecord and DAO::deleteRecord methods ([16856](https://github.com/civicrm/civicrm-core/pull/16856))** +- **CRM_Core_Payment_PayPalProIPN should not call getPayPalPaymentProcessorID() + if processor_id is clearly provided in URL + ([dev/core#1579](https://lab.civicrm.org/dev/core/issues/1579): + [16479](https://github.com/civicrm/civicrm-core/pull/16479))** -- **Fix checking permissions in api3 profile get ([16848](https://github.com/civicrm/civicrm-core/pull/16848))** +- **Update pending contribution status action also send email without warning + ([dev/core#1640](https://lab.civicrm.org/dev/core/issues/1640): + [16742](https://github.com/civicrm/civicrm-core/pull/16742))**] -- **Generate text for cancelSubscription form in payment class ([16715](https://github.com/civicrm/civicrm-core/pull/16715))** + When bulk updating the status of contributions, there is now a checkbox to + choose whether the contacts should be emailed. Previously, emails would be + generated without warning. -- **Fix batch contact/activity update with radio options ([16855](https://github.com/civicrm/civicrm-core/pull/16855))** +- **Fix display of payment processor title in cancelSubscription form + ([16857](https://github.com/civicrm/civicrm-core/pull/16857))** -- **dev/core#1630 Partial fix on renew membership missing ([16762](https://github.com/civicrm/civicrm-core/pull/16762))** +- **Make the checkbox, "Billing address is the same", respond to the change event + ([16496](https://github.com/civicrm/civicrm-core/pull/16496))** -- **UFMatch - deprecate unused functions ([16849](https://github.com/civicrm/civicrm-core/pull/16849))** + This makes the "billing address is the same" checkbox trigger its changes no + matter how the box is checked, not just by clicking it. -- **Remove old stuff ([16835](https://github.com/civicrm/civicrm-core/pull/16835))** +### CiviEvent -- **Fix CustomDataView.tpl plain empty memo field. ([16839](https://github.com/civicrm/civicrm-core/pull/16839))** +- **PayPal Express Checkout fails on events + ([dev/financial#119](https://lab.civicrm.org/dev/financial/issues/119): + [16692](https://github.com/civicrm/civicrm-core/pull/16692))** -- **CRM/Contact - Cleanup boolean expressions ([16844](https://github.com/civicrm/civicrm-core/pull/16844))** +- **Fixed fatal error for Event Participants custom search if price set field + option is disabled after a registrant has already selected it + ([16894](https://github.com/civicrm/civicrm-core/pull/16894))** -- **5.24 ([16843](https://github.com/civicrm/civicrm-core/pull/16843))** +### CiviMember -- **Deprecate unused/unneeded pseudoconstant functions ([16771](https://github.com/civicrm/civicrm-core/pull/16771))** +- **Don't freeze fields for auto-renew memberships + ([dev/core#1331](https://lab.civicrm.org/dev/core/issues/1331): + [16609](https://github.com/civicrm/civicrm-core/pull/16609) and + [16881](https://github.com/civicrm/civicrm-core/pull/16881))** -- **dev/report#28 - Join date field has no label on constituent detail report ([16829](https://github.com/civicrm/civicrm-core/pull/16829))** + Previously, many membership fields were frozen for administrators when the + membership was set to auto-renew with a recurring contribution. -- **5.24 ([16831](https://github.com/civicrm/civicrm-core/pull/16831))** +- **Deceased Contact via Inline doesn't update the Membership's status to + Deceased ([dev/core#1599](https://lab.civicrm.org/dev/core/issues/1599): + [16724](https://github.com/civicrm/civicrm-core/pull/16724) and + [16787](https://github.com/civicrm/civicrm-core/pull/16787))** -- **APIv4 - convert Result object to array when running through json_encode ([16828](https://github.com/civicrm/civicrm-core/pull/16828))** + When marking a contact as deceased, this simplifies the underlying process and + ensures that a message is displayed about memberships being updated to + Deceased status. -- **Fix typos in xml/dao ([16827](https://github.com/civicrm/civicrm-core/pull/16827))** +- **Invalid currency "$" on sending offline membership receipt. + ([dev/core#1682](https://lab.civicrm.org/dev/core/issues/1682): + [16943](https://github.com/civicrm/civicrm-core/pull/16943))** -- **[REF] Replace CRM_Utils_Array::value with ?? in variable assignments ([16768](https://github.com/civicrm/civicrm-core/pull/16768))** + Fixes an error when sending a receipt for a membership created from an offline + membership form. The default currency symbol was being saved as the currency + itself. -- **[REF] Replace coalesce pattern with coalesce operator ([16802](https://github.com/civicrm/civicrm-core/pull/16802))** +- **Membership auto-renew is not optional if using price set + ([dev/core#1630](https://lab.civicrm.org/dev/core/issues/1630): + [16762](https://github.com/civicrm/civicrm-core/pull/16762))** -- **[REF] Switch to using a non abandoned library for getting a mapping of mimetypes to extensions ([16436](https://github.com/civicrm/civicrm-core/pull/16436))** +- **Membership join date checkbox on constituent detail report has lost its + label ([dev/report#28](https://lab.civicrm.org/dev/report/issues/28): + [16829](https://github.com/civicrm/civicrm-core/pull/16829))** -- **Respect 'Donot notify activity type' setting ([16800](https://github.com/civicrm/civicrm-core/pull/16800))** +### Drupal Integration -- **[NFC] Use helper / api to delete contacts in tests ([16825](https://github.com/civicrm/civicrm-core/pull/16825))** +- **Address no longer available as Relationship for Views in Drupal 7 + ([dev/drupal#110](https://lab.civicrm.org/dev/drupal/issues/110): + [118](https://github.com/civicrm/civicrm-backdrop/pull/118) and + [600](https://github.com/civicrm/civicrm-drupal/pull/600))** -- **Deprecate calling contactTrashRestore function ([16824](https://github.com/civicrm/civicrm-core/pull/16824))** +- **Generalise typo3/phar-stream-wrapper so CiviCRM can be installed on D8.7 + ([17085](https://github.com/civicrm/civicrm-core/pull/17085))** -- **(NFC) Minor typo: receipients > recipients ([16810](https://github.com/civicrm/civicrm-core/pull/16810))** +- **civicrm-setup and backward slashes in file paths on windows don't play nice + together ([dev/core#1643](https://lab.civicrm.org/dev/core/issues/1643): + [16886](https://github.com/civicrm/civicrm-core/pull/16886))** -- **Remove deprecated parameter ([16813](https://github.com/civicrm/civicrm-core/pull/16813))** + Fixes installing CiviCRM on Drupal8 sites on windows using civicrm-setup / cv + core:install. -- **[NFC] Minor code cleanup ([16823](https://github.com/civicrm/civicrm-core/pull/16823))** +### WordPress Integration -- **[REF] Simplify obtuse boolean expressions ([16822](https://github.com/civicrm/civicrm-core/pull/16822))** +- **5.23 breaks WP admin menu links + ([dev/core#1637](https://lab.civicrm.org/dev/core/issues/1637): + [16713](https://github.com/civicrm/civicrm-core/pull/16713))** -- **[NFC] Deprecate passing in silly data ([16818](https://github.com/civicrm/civicrm-core/pull/16818))** +- **Set "cms.root" URL in addition to Path + ([188](https://github.com/civicrm/civicrm-wordpress/pull/188))** -- **[NFC] Test cleanup ([16817](https://github.com/civicrm/civicrm-core/pull/16817))** + This resolves a "Cannot resolve path using 'cms.root.url'" exception thrown on + the "Settings - Resource URLs" screen incorrectly on a WordPress multisite + subsite. -- **[REF] Fix PCP getPcpDashboardInfo to be tested & use sensible functions ([16790](https://github.com/civicrm/civicrm-core/pull/16790))** +## Miscellany + +- **Add recurring contribution ID to doCancelRecurring + ([16741](https://github.com/civicrm/civicrm-core/pull/16741))** -- **[REF] Replace CRM_Utils_Array::value with ?? in variable assignments ([16820](https://github.com/civicrm/civicrm-core/pull/16820))** +- **Support PropertyBag in CRM_Utils_Array + ([16699](https://github.com/civicrm/civicrm-core/pull/16699) and + [16737](https://github.com/civicrm/civicrm-core/pull/16737))** -- **[REF] cleanups on array operator ([16821](https://github.com/civicrm/civicrm-core/pull/16821))** +- **Added pseudoconstant for acl_id + ([16925](https://github.com/civicrm/civicrm-core/pull/16925))** -- **[REF] Simplify obtuse boolean expressions ([16819](https://github.com/civicrm/civicrm-core/pull/16819))** +- **Added pseudoconstant for state province + ([16799](https://github.com/civicrm/civicrm-core/pull/16799))** -- **[REF] Remove titleHeader var ([16816](https://github.com/civicrm/civicrm-core/pull/16816))** +- **Added pseudoconstant for location type + ([16758](https://github.com/civicrm/civicrm-core/pull/16758))** -- **Remove unused deprecated function ([16812](https://github.com/civicrm/civicrm-core/pull/16812))** +- **Added pseudoconstant for priceset + ([16754](https://github.com/civicrm/civicrm-core/pull/16754))** -- **Skip expensive smarty Processing when nothing to see here ([16731](https://github.com/civicrm/civicrm-core/pull/16731))** +- **Added pseudoconstant for bounce type + ([16727](https://github.com/civicrm/civicrm-core/pull/16727))** -- **Fix setting outBound_option readonly in UI ([16774](https://github.com/civicrm/civicrm-core/pull/16774))** +- **Added pseudoconstant for civicrm_tag.parent_id + ([16703](https://github.com/civicrm/civicrm-core/pull/16703))** -- **[REF] simplify references to civicrm_acl ([16671](https://github.com/civicrm/civicrm-core/pull/16671))** +- **Event Cart cleanup + ([16691](https://github.com/civicrm/civicrm-core/pull/16691))** -- **(NFC) Minor typo: contacts(s) -> contact(s) ([16804](https://github.com/civicrm/civicrm-core/pull/16804))** +- **Update cancelSubscription form to use updated methodology + ([16501](https://github.com/civicrm/civicrm-core/pull/16501) and + [16715](https://github.com/civicrm/civicrm-core/pull/16715))** -- **(NFC) Query.php / Minor typo: Genrated -> Generated ([16803](https://github.com/civicrm/civicrm-core/pull/16803))** +- **Skip expensive smarty Processing when nothing to see here + ([16731](https://github.com/civicrm/civicrm-core/pull/16731))** -- **Test for PR 13809 ([16474](https://github.com/civicrm/civicrm-core/pull/16474))** +- **UFMatch - deprecate unused functions + ([16849](https://github.com/civicrm/civicrm-core/pull/16849))** -- **(POC) Add `hook_civicrm_postCommit`, a less foot-gunny variant of `hook_civicrm_post` ([15338](https://github.com/civicrm/civicrm-core/pull/15338))** +- **Shifted UpdateMemberhsip to BAO Layer + ([16690](https://github.com/civicrm/civicrm-core/pull/16690))** -- **dev/core#1646 Merge Case Modal not showing relevant cases ([16798](https://github.com/civicrm/civicrm-core/pull/16798))** +- **Add DAO::writeRecord and DAO::deleteRecord methods + ([16856](https://github.com/civicrm/civicrm-core/pull/16856))** -- **Added pseudoconstant for state province ([16799](https://github.com/civicrm/civicrm-core/pull/16799))** +- **Add some deprecation notices, stop calling PrevNext::cleanupCache + ([16697](https://github.com/civicrm/civicrm-core/pull/16697))** -- **5.24 ([16801](https://github.com/civicrm/civicrm-core/pull/16801))** +- **Remove assigns for atypefile + ([16895](https://github.com/civicrm/civicrm-core/pull/16895))** -- **Make the 'billing address is the same' checkbox respond to the change event ([16496](https://github.com/civicrm/civicrm-core/pull/16496))** +- **Deprecate use of in OptionGroup::add() function + ([16910](https://github.com/civicrm/civicrm-core/pull/16910))** -- **(NFC) Minor string error : for for > for ([16773](https://github.com/civicrm/civicrm-core/pull/16773))** +- **Improve APIv4 selectUtils to handle join paths in fieldnames. + ([16904](https://github.com/civicrm/civicrm-core/pull/16904))** -- **dev/core#787 Auto-complete search results fixes ([13809](https://github.com/civicrm/civicrm-core/pull/13809))** +- **Upgrade jQuery validation version to v1.19.1 + ([16625](https://github.com/civicrm/civicrm-core/pull/16625))** -- **dev/core#1579 CRM_Core_Payment_PayPalProIPN should not call getPayPalPaymentProcessorID() if processor_id is clearly provided in URL ([16479](https://github.com/civicrm/civicrm-core/pull/16479))** +- **APIv3 - Use new DAO::deleteRecord method + ([16869](https://github.com/civicrm/civicrm-core/pull/16869))** -- **[NFC] Test cleanup, remove duplicate test ([16755](https://github.com/civicrm/civicrm-core/pull/16755))** +- **Improve conditional in api3 ChainSubscriber + ([16718](https://github.com/civicrm/civicrm-core/pull/16718))** -- **Fix Bug where Payment Balance is sometimes miscalculated ([16546](https://github.com/civicrm/civicrm-core/pull/16546))** +- **Mark unused function as deprecated + ([16688](https://github.com/civicrm/civicrm-core/pull/16688))** -- **5.24 ([16797](https://github.com/civicrm/civicrm-core/pull/16797))** +- **CRM/Contact - Cleanup boolean expressions + ([16844](https://github.com/civicrm/civicrm-core/pull/16844))** -- **[REF] Cleanup api3 DashboardContact ([16792](https://github.com/civicrm/civicrm-core/pull/16792))** +- **CRM/Contribute - Cleanup boolean expressions + ([16853](https://github.com/civicrm/civicrm-core/pull/16853))** -- **[REF] Fixes a bug in Message Template create API where by user permissions checks were being done on system workflow messages ([16788](https://github.com/civicrm/civicrm-core/pull/16788))** +- **Civi/Test - Refactor out CRM_Utils_Array::value + ([16871](https://github.com/civicrm/civicrm-core/pull/16871))** -- **5.24 ([16794](https://github.com/civicrm/civicrm-core/pull/16794))** +- **Cleanup reverse boolean expressions + ([16850](https://github.com/civicrm/civicrm-core/pull/16850))** -- **[REF] Remove calls to fatal() ([16746](https://github.com/civicrm/civicrm-core/pull/16746))** +- **CRM/Core - Cleanup boolean expressions + ([16852](https://github.com/civicrm/civicrm-core/pull/16852))** -- **[REF] Cleanup uses of CRM_Utils_Array::value related to numbers ([16778](https://github.com/civicrm/civicrm-core/pull/16778))** +- **CRM/Utils - Cleanup boolean expressions + ([16851](https://github.com/civicrm/civicrm-core/pull/16851))** -- **5.24 ([16786](https://github.com/civicrm/civicrm-core/pull/16786))** +- **CRM - Cleanup boolean expressions + ([16854](https://github.com/civicrm/civicrm-core/pull/16854))** -- **dev/core#1599/Deceased Contact's Membership Marked to Deceased via Inline ([16724](https://github.com/civicrm/civicrm-core/pull/16724))** +- **Fix another instance of silly use of CRM_Utils_Array::value + ([16712](https://github.com/civicrm/civicrm-core/pull/16712))** -- **5.24 to master ([16783](https://github.com/civicrm/civicrm-core/pull/16783))** +- **Fix passing a non-array to CRM_Utils_Array::value + ([16701](https://github.com/civicrm/civicrm-core/pull/16701))** -- **5.24 ([16782](https://github.com/civicrm/civicrm-core/pull/16782))** +- **Fix another instance of NULL being passed to CRM_Utils_Array::value + ([16711](https://github.com/civicrm/civicrm-core/pull/16711))** -- **[REF] cleanup financial type form - remove complex inheritence ([16777](https://github.com/civicrm/civicrm-core/pull/16777))** +- **Remove an instance of passing non-arraay to CRM_Utils_Array::value( + ([16706](https://github.com/civicrm/civicrm-core/pull/16706))** -- **Add shortcodes for Personal Campaign Pages ([16695](https://github.com/civicrm/civicrm-core/pull/16695))** +- **Remove calls & deprecate CRM_Core_BAO_PrevNextCache::setItem + ([16696](https://github.com/civicrm/civicrm-core/pull/16696))** -- **5.24 ([16767](https://github.com/civicrm/civicrm-core/pull/16767))** +- **(POC) Add `hook_civicrm_postCommit`, a less foot-gunny variant of + `hook_civicrm_post` + ([15338](https://github.com/civicrm/civicrm-core/pull/15338))** -- **Remove instances of fatal ([16759](https://github.com/civicrm/civicrm-core/pull/16759))** +- **Fix typos in xml/dao + ([16827](https://github.com/civicrm/civicrm-core/pull/16827))** -- **[NFC] cleanup in test class ([16764](https://github.com/civicrm/civicrm-core/pull/16764))** +- **Deprecate unused/unneeded pseudoconstant functions + ([16771](https://github.com/civicrm/civicrm-core/pull/16771))** -- **[REF] Use ?? operator instead of CRM_Utils_Array::value() ([16710](https://github.com/civicrm/civicrm-core/pull/16710))** +- **Deprecate calling contactTrashRestore function + ([16824](https://github.com/civicrm/civicrm-core/pull/16824))** -- **add pseudoconstant for location type ([16758](https://github.com/civicrm/civicrm-core/pull/16758))** +- **Remove old stuff + ([16835](https://github.com/civicrm/civicrm-core/pull/16835))** -- **[REF] dev/core#1116 - Remove unused misnamed activityTypeName variable ([16730](https://github.com/civicrm/civicrm-core/pull/16730))** +- **Remove deprecated cleaning of money in the BAO layer + ([16950](https://github.com/civicrm/civicrm-core/pull/16950))** -- **Added pseudoconstant for priceset ([16754](https://github.com/civicrm/civicrm-core/pull/16754))** +- **Remove unused deprecated function + ([16812](https://github.com/civicrm/civicrm-core/pull/16812))** -- **Fix bug where a % in a serialized array can lead to the data being broken ([16694](https://github.com/civicrm/civicrm-core/pull/16694))** +- **Remove deprecated function + ([16907](https://github.com/civicrm/civicrm-core/pull/16907))** -- **Event Cart cleanup ([16691](https://github.com/civicrm/civicrm-core/pull/16691))** +- **Remove unused code + ([16914](https://github.com/civicrm/civicrm-core/pull/16914))** -- **5.24 ([16749](https://github.com/civicrm/civicrm-core/pull/16749))** +- **Remove deprecated parameter + ([16813](https://github.com/civicrm/civicrm-core/pull/16813))** -- **Add recurring contribution ID to doCancelRecurring ([16741](https://github.com/civicrm/civicrm-core/pull/16741))** +- **fix typo ([16865](https://github.com/civicrm/civicrm-core/pull/16865))** -- **Bump Minimum Install version to be 7.1 (Do not merge until 5.24 RC is cut) ([16678](https://github.com/civicrm/civicrm-core/pull/16678))** +- **API tests - remove unnecessary check for v4 + ([16866](https://github.com/civicrm/civicrm-core/pull/16866))** -- **dev/core#1613/Updated Misleading labels ([16651](https://github.com/civicrm/civicrm-core/pull/16651))** +- **[NFC] APIv4 - Add test coverage for expected fields from join + ([16920](https://github.com/civicrm/civicrm-core/pull/16920))** -- **5.24 ([16744](https://github.com/civicrm/civicrm-core/pull/16744))** +- **[NFC] Add in unit test to ensure that APIv4 Doesn't accept an invalid… + ([16893](https://github.com/civicrm/civicrm-core/pull/16893))** -- **REF Switch to getter on cancelSubscription form ([16740](https://github.com/civicrm/civicrm-core/pull/16740))** +- **[NFC] Use strict comparison where possible + ([16896](https://github.com/civicrm/civicrm-core/pull/16896))** -- **[REF] Minor code simplification ([16734](https://github.com/civicrm/civicrm-core/pull/16734))** +- **[NFC] Code formatting + ([16906](https://github.com/civicrm/civicrm-core/pull/16906))** -- **Update cancelSubscription form to use updated methodology ([16501](https://github.com/civicrm/civicrm-core/pull/16501))** +- **[NFC] minor form cleanup. + ([16905](https://github.com/civicrm/civicrm-core/pull/16905))** -- **[REF] Hopefully fix regularly failing conformance test ([16732](https://github.com/civicrm/civicrm-core/pull/16732))** +- **(NFC) Minor typo: receipients > recipients + ([16810](https://github.com/civicrm/civicrm-core/pull/16810))** -- **Improve conditional in api3 ChainSubscriber ([16718](https://github.com/civicrm/civicrm-core/pull/16718))** +- **[NFC] Minor code cleanup + ([16823](https://github.com/civicrm/civicrm-core/pull/16823))** -- **CRM_Utils_Array::values follow up from #16699 ([16737](https://github.com/civicrm/civicrm-core/pull/16737))** +- **[NFC] Deprecate passing in silly data + ([16818](https://github.com/civicrm/civicrm-core/pull/16818))** -- **Support PropertyBag in CRM_Utils_Array ([16699](https://github.com/civicrm/civicrm-core/pull/16699))** +- **[NFC] Test cleanup + ([16817](https://github.com/civicrm/civicrm-core/pull/16817))** -- **[REF] Use empty() instead of CRM_Utils_Array::value() in inline conditionals ([16729](https://github.com/civicrm/civicrm-core/pull/16729))** +- **[NFC] Test cleanup, remove duplicate test + ([16755](https://github.com/civicrm/civicrm-core/pull/16755))** -- **5.24 ([16728](https://github.com/civicrm/civicrm-core/pull/16728))** +- **(NFC) Minor string error : for for > for + ([16773](https://github.com/civicrm/civicrm-core/pull/16773))** -- **pseudoconstant for bounce type ([16727](https://github.com/civicrm/civicrm-core/pull/16727))** +- **(NFC) Minor typo: contacts(s) -> contact(s) + ([16804](https://github.com/civicrm/civicrm-core/pull/16804))** -- **[REF] Use ?? operator instead of CRM_Utils_Array::value() in return statements ([16719](https://github.com/civicrm/civicrm-core/pull/16719))** +- **(NFC) Query.php / Minor typo: Genrated -> Generated + ([16803](https://github.com/civicrm/civicrm-core/pull/16803))** -- **Fix another instance of NULL being passed to CRM_Utils_Array::value ([16711](https://github.com/civicrm/civicrm-core/pull/16711))** +- **[NFC] Fix comments, use single quotes + ([16693](https://github.com/civicrm/civicrm-core/pull/16693))** -- **5.24 ([16725](https://github.com/civicrm/civicrm-core/pull/16725))** +- **[NFC] Mark unused function deprecated, fix some comments & formatting + ([16698](https://github.com/civicrm/civicrm-core/pull/16698))** -- **Fix PayPal Express on events ([16692](https://github.com/civicrm/civicrm-core/pull/16692))** +- **[NFC] cleanup in test class + ([16764](https://github.com/civicrm/civicrm-core/pull/16764))** -- **dev/core#1637 regression fix on WP urls ([16713](https://github.com/civicrm/civicrm-core/pull/16713))** +- **[NFC] Use helper / api to delete contacts in tests + ([16825](https://github.com/civicrm/civicrm-core/pull/16825))** -- **Fix another instance of silly use of CRM_Utils_Array::value ([16712](https://github.com/civicrm/civicrm-core/pull/16712))** +- **[NFC/TEST] Resurrect unfinished test for getRelatedCases() + ([16885](https://github.com/civicrm/civicrm-core/pull/16885))** -- **[NFC] Fix comments, use single quotes ([16693](https://github.com/civicrm/civicrm-core/pull/16693))** +- **[Test] Remove skip that seems no longer required + ([16912](https://github.com/civicrm/civicrm-core/pull/16912))** -- **Added pseudoconstant for civicrm_tag.parent_id ([16703](https://github.com/civicrm/civicrm-core/pull/16703))** +- **Test for PR 13809 + ([16474](https://github.com/civicrm/civicrm-core/pull/16474))** -- **5.24 ([16709](https://github.com/civicrm/civicrm-core/pull/16709))** +- **[TEST] Add test for to time processing + ([16861](https://github.com/civicrm/civicrm-core/pull/16861))** -- **Remove an instance of passing non-arraay to CRM_Utils_Array::value( ([16706](https://github.com/civicrm/civicrm-core/pull/16706))** +- **[REF] Case Activities Report includes core activities *always* + ([dev/core#1366](https://lab.civicrm.org/dev/core/issues/1366): + [16670](https://github.com/civicrm/civicrm-core/pull/16670))** -- **[REF] CRM_Utils_Array::value() -> empty() ([16704](https://github.com/civicrm/civicrm-core/pull/16704))** +- **[REF] Cleanup api3 DashboardContact + ([16792](https://github.com/civicrm/civicrm-core/pull/16792))** -- **Remove calls & deprecate CRM_Core_BAO_PrevNextCache::setItem ([16696](https://github.com/civicrm/civicrm-core/pull/16696))** +- **[REF] Fixes a bug in Message Template create API where by user permissions + checks were being done on system workflow messages + ([16788](https://github.com/civicrm/civicrm-core/pull/16788))** -- **Api4 AJAX endpoint: change required permission to access AJAX API. ([16705](https://github.com/civicrm/civicrm-core/pull/16705))** +- **[REF] Remove calls to fatal() + ([16746](https://github.com/civicrm/civicrm-core/pull/16746))** -- **Fix passing a non-array to CRM_Utils_Array::value ([16701](https://github.com/civicrm/civicrm-core/pull/16701))** +- **[REF] Cleanup uses of CRM_Utils_Array::value related to numbers + ([16778](https://github.com/civicrm/civicrm-core/pull/16778))** -- **Shifted UpdateMemberhsip to BAO Layer ([16690](https://github.com/civicrm/civicrm-core/pull/16690))** +- **[REF] cleanup financial type form - remove complex inheritence + ([16777](https://github.com/civicrm/civicrm-core/pull/16777))** -- **Use dbAlias to generate where clause for date field in activity report ([16689](https://github.com/civicrm/civicrm-core/pull/16689))** +- **[REF] Use ?? operator instead of CRM_Utils_Array::value() + ([16710](https://github.com/civicrm/civicrm-core/pull/16710))** -- **[NFC] Mark unused function deprecated, fix some comments & formatting ([16698](https://github.com/civicrm/civicrm-core/pull/16698))** +- **[REF] dev/core#1116 - Remove unused misnamed activityTypeName variable + ([16730](https://github.com/civicrm/civicrm-core/pull/16730))** -- **Remove additional display of buttons for events ([16550](https://github.com/civicrm/civicrm-core/pull/16550))** +- **REF Switch to getter on cancelSubscription form + ([16740](https://github.com/civicrm/civicrm-core/pull/16740))** -- **Upgrade jQuery validation version to v1.19.1 ([16625](https://github.com/civicrm/civicrm-core/pull/16625))** +- **[REF] Minor code simplification + ([16734](https://github.com/civicrm/civicrm-core/pull/16734))** -- **Mark unused function as deprecated ([16688](https://github.com/civicrm/civicrm-core/pull/16688))** +- **[REF] Hopefully fix regularly failing conformance test + ([16732](https://github.com/civicrm/civicrm-core/pull/16732))** -- **Fix Views relationship to addresses ([600](https://github.com/civicrm/civicrm-drupal/pull/600))** +- **[REF] Use empty() instead of CRM_Utils_Array::value() in inline conditionals + ([16729](https://github.com/civicrm/civicrm-core/pull/16729))** -- **Use new consolidated constant for minimum PHP version ([599](https://github.com/civicrm/civicrm-drupal/pull/599))** +- **[REF] Use ?? operator instead of CRM_Utils_Array::value() in return + statements ([16719](https://github.com/civicrm/civicrm-core/pull/16719))** -- **Bump minimum PHP version to be 7.1 (Do not merge until 5.24 RC is cut) ([598](https://github.com/civicrm/civicrm-drupal/pull/598))** +- **[REF] CRM_Utils_Array::value() -> empty() + ([16704](https://github.com/civicrm/civicrm-core/pull/16704))** -- **Set "cms.root" URL in addition to Path ([188](https://github.com/civicrm/civicrm-wordpress/pull/188))** +- **[REF] Cleanup is_array(CRM_Utils_Array::value()) pattern + ([16875](https://github.com/civicrm/civicrm-core/pull/16875))** -- **Merge REST API wrapper code ([160](https://github.com/civicrm/civicrm-wordpress/pull/160))** +- **[REF] Remove redundant call to build permissions + ([16862](https://github.com/civicrm/civicrm-core/pull/16862))** -- **Consolidate to single constant for minimum PHP version ([187](https://github.com/civicrm/civicrm-wordpress/pull/187))** +- **[REF] Replace CRM_Utils_Array::value with ?? in variable assignments + ([16768](https://github.com/civicrm/civicrm-core/pull/16768))** -- **Add shortcodes for Personal Campaign Pages ([185](https://github.com/civicrm/civicrm-wordpress/pull/185))** +- **[REF] Replace coalesce pattern with coalesce operator + ([16802](https://github.com/civicrm/civicrm-core/pull/16802))** -- **Bump minimum install version to be 7.1 (Do not merge until 5.24 RC is cut) ([184](https://github.com/civicrm/civicrm-wordpress/pull/184))** +- **[REF] Switch to using a non abandoned library for getting a mapping of + mimetypes to extensions + ([16436](https://github.com/civicrm/civicrm-core/pull/16436))** -- **Issue #117 fix address relationship for Views ([118](https://github.com/civicrm/civicrm-backdrop/pull/118))** +- **[REF] move buildQuickForm function to the trait + ([16948](https://github.com/civicrm/civicrm-core/pull/16948))** -- **Consolidate to single constant for minimum PHP version ([114](https://github.com/civicrm/civicrm-backdrop/pull/114))** +- **[REF] Move properties to Trait + ([16940](https://github.com/civicrm/civicrm-core/pull/16940))** -- **Bump Minimum PHP Version to be 7.1 (Do not merge until 5.24 RC is cut) ([111](https://github.com/civicrm/civicrm-backdrop/pull/111))** +- **[REF] Start transitioning EmailCommon class to a trait + ([16935](https://github.com/civicrm/civicrm-core/pull/16935))** -- **dev/core#1675 and dev/core#1695 - Revert part of DB package upgrade that is causing transaction issues ([289](https://github.com/civicrm/civicrm-packages/pull/289))** +- **[REF] Remove fatal, fix some code comments + ([16928](https://github.com/civicrm/civicrm-core/pull/16928))** -## Miscellany +- **[REF] extract code to getEmails + ([16929](https://github.com/civicrm/civicrm-core/pull/16929))** + +- **[REF] Minor simplification - do not use variable variables + ([16927](https://github.com/civicrm/civicrm-core/pull/16927))** + +- **[REF] Extract code used to render a pseudoconstant when a table is defined. + ([16902](https://github.com/civicrm/civicrm-core/pull/16902))** + +- **[REF] Move form specific handling back to the relevant form. + ([16913](https://github.com/civicrm/civicrm-core/pull/16913))** + +- **[REF] APIv4 - Preserve order when expanding select wildcards + ([16909](https://github.com/civicrm/civicrm-core/pull/16909))** + +- **[REF] Remove & from before variable + ([16897](https://github.com/civicrm/civicrm-core/pull/16897))** + +- **[REF] Replace \CRM_Utils_Array::value with ?? + ([16872](https://github.com/civicrm/civicrm-core/pull/16872))** + +- **[REF] Civi/Api4 - Refactor out 'use CRM_Utils_Array' + ([16873](https://github.com/civicrm/civicrm-core/pull/16873))** + +- **[REF] BAO_Contact - Remove CRM_Utils_Array::value and other unnecessary code + ([16874](https://github.com/civicrm/civicrm-core/pull/16874))** + +- **[REF] APIv4 - Restructure the way get query objects are constucted + ([16878](https://github.com/civicrm/civicrm-core/pull/16878))** + +- **[REF] Fix PCP getPcpDashboardInfo to be tested & use sensible functions + ([16790](https://github.com/civicrm/civicrm-core/pull/16790))** + +- **[REF] Simplify obtuse boolean expressions + ([16822](https://github.com/civicrm/civicrm-core/pull/16822))** + +- **[REF] Replace CRM_Utils_Array::value with ?? in variable assignments + ([16820](https://github.com/civicrm/civicrm-core/pull/16820))** + +- **[REF] cleanups on array operator + ([16821](https://github.com/civicrm/civicrm-core/pull/16821))** + +- **[REF] Simplify obtuse boolean expressions + ([16819](https://github.com/civicrm/civicrm-core/pull/16819))** + +- **[REF] Remove titleHeader var + ([16816](https://github.com/civicrm/civicrm-core/pull/16816))** + +- **[REF] simplify references to civicrm_acl + ([16671](https://github.com/civicrm/civicrm-core/pull/16671))** + +- **[REF] Fix retrieving invoice related settings when doing complete + transaction ([17218](https://github.com/civicrm/civicrm-core/pull/17218))** ## Credits This release was developed by the following code authors: -a-n The Artists Information Company - William Mortada; AGH Strategies - Alice Frumin, Andrew Hunt; Alexy Mikhailichenko; Andrei Mondoc; Christian Wach; Circle Interactive - Pradeep Nayak; CiviCoop - Jaap Jansma; CiviCRM - Coleman Watts, Tim Otten; CiviDesk - Yashodha Chaku; Coop SymbioTIC - Mathieu Lutfy; Dave D; Freeform Solutions - Herb van den Dool; Fuzion - Jitendra Purohit; iXiam - César Ramos; JMA Consulting - Seamus Lee; Joinery - Allen Shaw; Kartik Kathuria; Lighthouse Design and Consulting - Brian Shaughnessy; Makoa - Usha F. Matisson; Megaphone Technology Consulting - Jon Goldberg; MJW Consulting - Matthew Wire; Naomi Rosenberg; Ray Wright; sushantpaste; SYSTOPIA Organisationsberatung - Björn Endres; Timbsoft Technologies - Tunbola Ogunwande; Wikimedia Foundation - Eileen McNaughton +a-n The Artists Information Company - William Mortada; AGH Strategies - Alice +Frumin, Andie Hunt; Alexy Mikhailichenko; Andrei Mondoc; Christian Wach; Circle +Interactive - Pradeep Nayak; CiviCoop - Jaap Jansma; CiviCRM - Coleman Watts, +Tim Otten; CiviDesk - Yashodha Chaku; Coop SymbioTIC - Mathieu Lutfy; Dave D; +Freeform Solutions - Herb van den Dool; Fuzion - Jitendra Purohit; iXiam - César +Ramos; JMA Consulting - Seamus Lee; Joinery - Allen Shaw; Kartik Kathuria; +Lighthouse Design and Consulting - Brian Shaughnessy; Makoa - Usha F. Matisson; +Megaphone Technology Consulting - Jon Goldberg; MJW Consulting - Matthew Wire; +Naomi Rosenberg; Ray Wright; OSSeed Technologies LLP - Sushant Paste; SYSTOPIA +Organisationsberatung - Björn Endres; Timbsoft Technologies - Tunbola Ogunwande; +Wikimedia Foundation - Eileen McNaughton Most authors also reviewed code for this release; in addition, the following reviewers contributed their comments: -a-n The Artists Information Company - William Mortada; AGH Strategies - Alice Frumin, Andrew Hunt; Agileware - Justin Freeman; Andrei Mondoc; Artful Robot - Rich Lott; British Humanist Association - Andrew West; Christian Wach; Circle Interactive - Pradeep Nayak; civibot[bot]; CiviCoop - Jaap Jansma; CiviCRM - Coleman Watts, Tim Otten; CiviDesk - Nicolas Ganivet, Yashodha Chaku; Coop SymbioTIC - Mathieu Lutfy; Dave D; Digitalcourage - Detlev Sieber; freeform-sg; Fuzion - Jitendra Purohit, Luke Stewart; Greenpeace Central and Eastern Europe - Patrick Figel; Jamie Tillman; JMA Consulting - Monish Deb, Seamus Lee; Joinery - Allen Shaw; Kartik Kathuria; Korlon - Stuart Gaston; Megaphone Technology Consulting - Jon Goldberg; MJCO - Mikey O'Toole; MJW Consulting - Matthew Wire; Richard van Oosterhout; Skvare - Mark Hanna; Squiffle Consulting - Aidan Saunders; sushantpaste; SYSTOPIA Organisationsberatung - Björn Endres; Tadpole Collective - Kevin Cristiano; Wikimedia Foundation - Eileen McNaughton +Agileware - Justin Freeman; Artful Robot - Rich Lott; British Humanist +Association - Andrew West; CiviDesk - Nicolas Ganivet; Coop SymbioTIC - Mathieu +Lutfy; Digitalcourage - Detlev Sieber; Freeform Solutions - S. Gray; Fuzion - +Jitendra Purohit; Greenpeace Central and Eastern Europe - Patrick Figel; Jamie +Tillman; JMA Consulting - Monish Deb; Korlon - Stuart Gaston; MJCO - Mikey +O'Toole; Richard van Oosterhout; Skvare - Mark Hanna; Squiffle Consulting - +Aidan Saunders; Tadpole Collective - Kevin Cristiano ## Feedback -These release notes are edited by Alice Frumin and Andrew Hunt. If you'd like +These release notes are edited by Alice Frumin and Andie Hunt. If you'd like to provide feedback on them, please log in to https://chat.civicrm.org/civicrm and contact `@agh1`.