X-Git-Url: https://vcs.fsf.org/?a=blobdiff_plain;f=release-notes%2F5.47.0.md;h=0b8a55f5821cb8068f5e67e535ba065fc6c403b4;hb=f626bf6c9323d5d18d92489b2049783831d40825;hp=e4a32e38645b1957b0f09576a2d6694253a6eeb0;hpb=8f9ff9ca12fa44bfcb3e3b1606fa2b0ce52ec217;p=civicrm-core.git diff --git a/release-notes/5.47.0.md b/release-notes/5.47.0.md index e4a32e3864..0b8a55f582 100644 --- a/release-notes/5.47.0.md +++ b/release-notes/5.47.0.md @@ -1,6 +1,6 @@ # CiviCRM 5.47.0 -Released March 2, 2022 +Released March 4, 2022 - **[Synopsis](#synopsis)** - **[Features](#features)** @@ -13,549 +13,937 @@ Released March 2, 2022 | *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? | no | +| **Introduce features?** | **yes** | +| **Fix bugs?** | **yes** | ## Features -## Bugs resolved - ### Core CiviCRM -- **Follow up fix on #22685 financial acl move to extension ([22499](https://github.com/civicrm/civicrm-core/pull/22499))** +- **Add created_date & modified_date to civicrm_relationship + ([22480](https://github.com/civicrm/civicrm-core/pull/22480))** + + Adds created_date & modified_date to the civicrm_relationship table. + +- **Add option to display money tokens without formatting + ([22548](https://github.com/civicrm/civicrm-core/pull/22548))** + + Adds an option to display money tokens without formatting. -- **Contributor key: Add Ian Wilson ([22781](https://github.com/civicrm/civicrm-core/pull/22781))** +- **SearchKit - Improve field/operator/value selection UI + ([22604](https://github.com/civicrm/civicrm-core/pull/22604))** -- **dev/core#3066 - Check CiviPledge is enabled before disconnecting pledge payments ([22779](https://github.com/civicrm/civicrm-core/pull/22779))** + Improves the SearchKit UI for selecting field/operator/value conditions. + Affects various parts of the UI, like css conditions, link conditions, + where/on/having clauses, etc. -- **dev/core#3063 APIv3 - Fix numeric option matching ([22740](https://github.com/civicrm/civicrm-core/pull/22740))** +- **SearchKit - Support operators in conditional css rules + ([22552](https://github.com/civicrm/civicrm-core/pull/22552))** -- **Fix ContributionRecur.payment_processor_id pseudoconstant ([22750](https://github.com/civicrm/civicrm-core/pull/22750))** + Allows operators other than = in SearchKit conditional style rules. -- **enforce required fields on Contact.duplicatecheck ([22741](https://github.com/civicrm/civicrm-core/pull/22741))** +- **SearchKit - Allow Smarty in field rewrite + ([22592](https://github.com/civicrm/civicrm-core/pull/22592))** -- **dev/core#3056 - Crash with search builder if civigrant not enabled and have admin rights ([22714](https://github.com/civicrm/civicrm-core/pull/22714))** + Gives the ability to use Smarty syntax in the "rewrite" of SearchKit displays. -- **dev/core#3059 Regression fix - be tolerant with smarty money ([22727](https://github.com/civicrm/civicrm-core/pull/22727))** +- **SearchKit: Relationship Description unavailable + ([dev/core#3019](https://lab.civicrm.org/dev/core/-/issues/3019): + [22606](https://github.com/civicrm/civicrm-core/pull/22606))** -- **(dev/core#3055) Fix dedupe check to not require elevated permissions ([22733](https://github.com/civicrm/civicrm-core/pull/22733))** + Exposes relationship description, created/modified_date & permissions fields + in SearchKit. -- **APIv4 SortableEntity - Fix sorting custom fields with option groups ([22716](https://github.com/civicrm/civicrm-core/pull/22716))** +- **SearchKit - add/remove tags action for all taggable entities + ([21865](https://github.com/civicrm/civicrm-core/pull/21865))** -- **dev/core#3057 - Fix missing civigrant ([22717](https://github.com/civicrm/civicrm-core/pull/22717))** + Adds a new angular-based action to SearchKit for bulk adding/removing tags + from contacts, cases, activities, etc. -- **authx - Add configuration screen ([22058](https://github.com/civicrm/civicrm-core/pull/22058))** +- **SearchKit - Support conditional links + ([22557](https://github.com/civicrm/civicrm-core/pull/22557))** -- **REF - Switch to using new `CRM_Core_Component::isEnabled()` ([22687](https://github.com/civicrm/civicrm-core/pull/22687))** + Adds an advanced feature to conditionally show/hide links in a + links/buttons/menu column, based on user permissions or row values. -- **Improve field accessibility in legacycustomsearches ([22710](https://github.com/civicrm/civicrm-core/pull/22710))** +- **SearchKit - Update operator labels + ([22554](https://github.com/civicrm/civicrm-core/pull/22554))** -- **Don't throw PHP notice when rendering dedupefind template. ([22709](https://github.com/civicrm/civicrm-core/pull/22709))** + Updates SearchKit labels to hopefully better describe ReGex. -- **(dev/core#2077) Make 'civicrm/ajax/rest' interoperable with 'extern/rest.php' parameters ([19727](https://github.com/civicrm/civicrm-core/pull/19727))** +- **SearchKit - Enable joins for custom fields and option groups + ([22355](https://github.com/civicrm/civicrm-core/pull/22355))** -- **Enotice fixes with datepicker ([22705](https://github.com/civicrm/civicrm-core/pull/22705))** + Enables SearchKit to join custom groups to custom fields, and option groups to + option values. -- **Enotice fix with priceset template ([22708](https://github.com/civicrm/civicrm-core/pull/22708))** +- **APIv4 - Add SubscriptionHistory entity + ([22435](https://github.com/civicrm/civicrm-core/pull/22435))** -- **Remove unused invalidProfiles variable, and simplify template. ([22704](https://github.com/civicrm/civicrm-core/pull/22704))** + Adds a SubscriptionHistory entity to APIv4. -- **Enotic fixes ([22697](https://github.com/civicrm/civicrm-core/pull/22697))** +- **APIv4 - Make Permission 'group' discoverable in API Explorer + ([22559](https://github.com/civicrm/civicrm-core/pull/22559))** -- **5.46.0 - Run some autocleaning on release notes ([22700](https://github.com/civicrm/civicrm-core/pull/22700))** + Makes `group` options for the `Permission` API discoverable. -- **Bump follow-redirects from 1.11.0 to 1.14.7 ([22696](https://github.com/civicrm/civicrm-core/pull/22696))** +- **Improve field accessibility in legacycustomsearches + ([22710](https://github.com/civicrm/civicrm-core/pull/22710))** -- **Bump engine.io from 4.1.1 to 4.1.2 ([22695](https://github.com/civicrm/civicrm-core/pull/22695))** + Improves accessibility of legacy custom searches. -- **Bump ansi-regex from 5.0.0 to 5.0.1 ([22693](https://github.com/civicrm/civicrm-core/pull/22693))** +- **Expose a REST end-point through standard routing (Work Towards + [dev/core#2077](https://lab.civicrm.org/dev/core/-/issues/2077): + [19727](https://github.com/civicrm/civicrm-core/pull/19727) and + [22058](https://github.com/civicrm/civicrm-core/pull/22058))** -- **Bump log4js from 6.3.0 to 6.4.1 ([22694](https://github.com/civicrm/civicrm-core/pull/22694))** + Makes 'civicrm/ajax/rest' interoperable with 'extern/rest.php' parameters and + adds an AuthX configuration screen. -- **[REF] Switch OptionGroup BAO to use new centralized logic to make name from title ([22654](https://github.com/civicrm/civicrm-core/pull/22654))** +- **Define more usable queue DX for multithreaded background work (Work Towards + [dev/core#1304](https://lab.civicrm.org/dev/core/-/issues/1304): + [22324](https://github.com/civicrm/civicrm-core/pull/22324) and + [22657](https://github.com/civicrm/civicrm-core/pull/22657))** -- **Update composer.json for composer 2.2 allow-plugins ([22692](https://github.com/civicrm/civicrm-core/pull/22692))** + Adds a high-level queue tracking table and updates the programmatic APIs to + make it easier to work with persistent queues. -- **Fix typo preventing uninstalling ckeditor4 ([22691](https://github.com/civicrm/civicrm-core/pull/22691))** +- **Civi::pipe - Add support for background worker-processes with JSON pipes + ([22262](https://github.com/civicrm/civicrm-core/pull/22262))** -- **Move permission access handling for civicrm/admin/financial/financialType?reset=1 to extension ([22685](https://github.com/civicrm/civicrm-core/pull/22685))** + Add an entry-point for external scripts to send multiple API calls to a + CiviCRM worker-process - while only bootstrapping one time. -- **CustomGroup - Ensure 'name' is always unique ([22675](https://github.com/civicrm/civicrm-core/pull/22675))** +- **Expose email on hold as filter for reports (Work towards + [dev/core#3012](https://lab.civicrm.org/dev/core/-/issues/3012): + [22368](https://github.com/civicrm/civicrm-core/pull/22368) and + [22572](https://github.com/civicrm/civicrm-core/pull/22572))** -- **[REF] - Cleanup Contact BAO variables ([22609](https://github.com/civicrm/civicrm-core/pull/22609))** + Exposes email on hold as filter on contribution reports. -- **(REF) Queues - Expand docblocks. Extract SQL trait. ([22681](https://github.com/civicrm/civicrm-core/pull/22681))** +- **Extensions - Add dependency status check + ([22464](https://github.com/civicrm/civicrm-core/pull/22464))** -- **Queues - Add support for using persistent queues ([22657](https://github.com/civicrm/civicrm-core/pull/22657))** + Adds a system status check to ensure extension dependencies are met, and warn + the admin of missing dependencies. -- **[REF] APIv4 - Rename trait 'SoftDelete' to 'SoftDeleteEntity' ([22662](https://github.com/civicrm/civicrm-core/pull/22662))** +- **Add metadata so Activity Created Date is available in Form Builder + ([22320](https://github.com/civicrm/civicrm-core/pull/22320))** -- **dev/translation#38 Fix multilingual triggers for when fields default to an empty string ([22647](https://github.com/civicrm/civicrm-core/pull/22647))** + Makes the Activity Created date available in Form Builder. -- **dev/core#2866 Generate text version of message at send time if not present ([22632](https://github.com/civicrm/civicrm-core/pull/22632))** +- **Move permission access handling for + civicrm/admin/financial/financialType?reset=1 to extension + ([22685](https://github.com/civicrm/civicrm-core/pull/22685) and + [22499](https://github.com/civicrm/civicrm-core/pull/22499))** -- **5.46 ([22676](https://github.com/civicrm/civicrm-core/pull/22676))** + Moves permission access handling for + civicrm/admin/financial/financialType?reset=1 to extension. -- **dev/core#2989 - validate campaign id for contribution import ([22235](https://github.com/civicrm/civicrm-core/pull/22235))** +- **Add setting "format_locale" + ([dev/core#3095](https://lab.civicrm.org/dev/core/-/issues/3095): + [22885](https://github.com/civicrm/civicrm-core/pull/22885))** -- **Ensure all api3 functions have documented types ([22674](https://github.com/civicrm/civicrm-core/pull/22674))** + Adds a new setting, "Formatting Locale", which specifies that dates and + numbers should formatted according to designated localization rules. + This setting may be useful for a locale (eg `en_NZ`) whose language closely + resembles another (eg `en_US`) but which has a different currency. -- **Fix spelling mistake in function name, addMembershipToRealtedContacts should be addMembershipToRelatedContacts ([22673](https://github.com/civicrm/civicrm-core/pull/22673))** +### CiviContribute -- **Manage Contribution page, the link to "Online Contribution (Test-drive)" is an admin-only URL to register in the backend, should be a frontend URL ([22672](https://github.com/civicrm/civicrm-core/pull/22672))** +- **Why are unique labels for price fields required? + ([dev/event#66](https://lab.civicrm.org/dev/event/-/issues/66): + [22508](https://github.com/civicrm/civicrm-core/pull/22508))** -- **[REF] APIv4 - Deprecate and stop using PreSaveSubscriber ([22648](https://github.com/civicrm/civicrm-core/pull/22648))** + Makes it so duplicate price field labels are allowed. -- **Avoid PHP notices on activity form ([22666](https://github.com/civicrm/civicrm-core/pull/22666))** +- **Use tokens in offline contribution receipt (new installs) + ([22560](https://github.com/civicrm/civicrm-core/pull/22560))** -- **5.46 ([22671](https://github.com/civicrm/civicrm-core/pull/22671))** + Use tokens instead of Smarty Variables in the offline contribution receipt + template for new installs. -- **dev/core#2122 - Manage event online registration page doesn't determine timezone correctly ([22619](https://github.com/civicrm/civicrm-core/pull/22619))** +### CiviEvent -- **add `contact_id` to email params in `emailLetter` function ([22538](https://github.com/civicrm/civicrm-core/pull/22538))** +- **Event Registration: allow default Price Set values from the URL + ([22313](https://github.com/civicrm/civicrm-core/pull/22313))** -- **APIv4 - Use empty string instead of 'null' to pass null values to the db ([22587](https://github.com/civicrm/civicrm-core/pull/22587))** + Makes it so one can set the default price field on event registration forms + using URL parameters. -- **dev/core#2866 add pre-upgrade warning ([22634](https://github.com/civicrm/civicrm-core/pull/22634))** +- **Account for time zone on event registration pages + ([dev/core#2122](https://lab.civicrm.org/dev/core/-/issues/2122): + [22620](https://github.com/civicrm/civicrm-core/pull/22620), + [22622](https://github.com/civicrm/civicrm-core/pull/22622), + [20476](https://github.com/civicrm/civicrm-core/pull/20476), + [22619](https://github.com/civicrm/civicrm-core/pull/22619), + [22645](https://github.com/civicrm/civicrm-core/pull/22645) and + [22644](https://github.com/civicrm/civicrm-core/pull/22644))** -- **5.46 ([22652](https://github.com/civicrm/civicrm-core/pull/22652))** + Adds timezone support for events. -- **CiviCRM Event, the link to "On-line Registration (Test Drive)" is an admin-only URL to register in the backend, should be a frontend URL ([22669](https://github.com/civicrm/civicrm-core/pull/22669))** +- **updating misleading labels on buttons to confirmation pages + ([dev/core#1613](dev/core#1613): + [20251](https://github.com/civicrm/civicrm-core/pull/20251))** -- **[REF] Tidy up group.tpl ([22668](https://github.com/civicrm/civicrm-core/pull/22668))** + Changes the event registration button text based on if there are additional + participants. -- **SearchKit - Fix selecting operators and values in clauses ([22653](https://github.com/civicrm/civicrm-core/pull/22653))** +### CiviGrant -- **Set default values to avoid notices when rendering (event templates screen) ([22663](https://github.com/civicrm/civicrm-core/pull/22663))** +- **CiviGrant - Use SearchKit for contact summary tab + ([22467](https://github.com/civicrm/civicrm-core/pull/22467))** -- **Fix smarty notices in membership dashboard ([22660](https://github.com/civicrm/civicrm-core/pull/22660))** + switches the Grants tab on the contact summary page to use a SearchKit Display. + It looks nearly identical before and after, but is now easily customizable via + the SearchKit & Form-Builder GUI. -- **Avoid PHP notice on 'Manage Contribution Pages' screen ([22661](https://github.com/civicrm/civicrm-core/pull/22661))** +- **Migrate CiviGrant component to an extension + ([22064](https://github.com/civicrm/civicrm-core/pull/22064))** -- **Another set of PHPdoc corrections ([22658](https://github.com/civicrm/civicrm-core/pull/22658))** + Moves the CiviGrant component to an extension. -- **Correctly document types for class consts ([22659](https://github.com/civicrm/civicrm-core/pull/22659))** +### CiviMail -- **SearchKit - Improve editable UX by not allowing required fields to be left blank ([22358](https://github.com/civicrm/civicrm-core/pull/22358))** +- **Start phasing out 'preferred_mail_format' (Work towards + [dev/core#2866](https://lab.civicrm.org/dev/core/-/issues/2866): + [22634](https://github.com/civicrm/civicrm-core/pull/22634) and + [22632](https://github.com/civicrm/civicrm-core/pull/22632))** -- **APIv4 - Correctly return date-only custom field values without the time ([22649](https://github.com/civicrm/civicrm-core/pull/22649))** + Generates text version of message at send time if one is not present. -- **Resolve docblock inaccuracy in CRM_Contribute_Form_Task_TaskTrait ([22646](https://github.com/civicrm/civicrm-core/pull/22646))** +### WordPress Integration -- **dev/core#2122 - Add an event timezone for sample data ([22645](https://github.com/civicrm/civicrm-core/pull/22645))** +- **wp-cli/civicrm.php - Add 'civicrm pipe' subcommand + ([270](https://github.com/civicrm/civicrm-wordpress/pull/270))** -- **dev/core#2122 - Fix "add" version for event timezone dao field ([22644](https://github.com/civicrm/civicrm-core/pull/22644))** + Adds support for subcommand `wp civicrm pipe`. -- **5.46 ([22639](https://github.com/civicrm/civicrm-core/pull/22639))** +## Bugs resolved -- **Extensions - Revise prose for status check ([22638](https://github.com/civicrm/civicrm-core/pull/22638))** +### Core CiviCRM -- **Fix inaccuracy in docblock for method calculateBaseScheduleDate ([22631](https://github.com/civicrm/civicrm-core/pull/22631))** +- **Only format Smarty aliases as money if specified + ([22547](https://github.com/civicrm/civicrm-core/pull/22547))** -- **Resolve inaccuracies in CRM_Core_BAO_File::attachmentInfo docblock ([22629](https://github.com/civicrm/civicrm-core/pull/22629))** +- **Avoid PHP notices on activity form + ([22666](https://github.com/civicrm/civicrm-core/pull/22666))** -- **Tidy up functions related to printing. ([22601](https://github.com/civicrm/civicrm-core/pull/22601))** +- **Fix typo preventing uninstalling ckeditor4 + ([22691](https://github.com/civicrm/civicrm-core/pull/22691))** -- **Do not pass in tablename ([22625](https://github.com/civicrm/civicrm-core/pull/22625))** +- **Fix return values for APIv3 Job.delete + ([22561](https://github.com/civicrm/civicrm-core/pull/22561))** -- **Remove deprecated language construct ([22627](https://github.com/civicrm/civicrm-core/pull/22627))** +- **enforce required fields on Contact.duplicatecheck + ([22741](https://github.com/civicrm/civicrm-core/pull/22741))** -- **Remove isset from online contribution receipt ([22615](https://github.com/civicrm/civicrm-core/pull/22615))** +- **APIv4 SortableEntity - Fix sorting custom fields with option groups + ([22716](https://github.com/civicrm/civicrm-core/pull/22716))** -- **More phpcbs code cleanups ([22551](https://github.com/civicrm/civicrm-core/pull/22551))** +- **APIv4 - Correctly return date-only custom field values without the time + ([22649](https://github.com/civicrm/civicrm-core/pull/22649))** -- **SearchKit - Expose relationship description, created/modified_date & permissions ([22606](https://github.com/civicrm/civicrm-core/pull/22606))** +- **APIv4 - Use empty string instead of 'null' to pass null values to the db + ([22587](https://github.com/civicrm/civicrm-core/pull/22587))** -- **dev/core#2122 - Fix version specified in message template upgrade ([22620](https://github.com/civicrm/civicrm-core/pull/22620))** +- **APIv4 - Fix incorrect placement of decodeRows in loop + ([22413](https://github.com/civicrm/civicrm-core/pull/22413))** -- **SearchKit - Allow smarty in field rewrite ([22592](https://github.com/civicrm/civicrm-core/pull/22592))** +- **SearchKit: In-place edit for custom dropdown field - can't blank it out + ([dev/report#92](https://lab.civicrm.org/dev/report/-/issues/92): + [22358](https://github.com/civicrm/civicrm-core/pull/22358))** -- **dev/core#2122 - prevent E_NOTICEs and blank dates being converted to current datetime ([22622](https://github.com/civicrm/civicrm-core/pull/22622))** +- **Minor SearchKit UI filtering annoyance + ([dev/core#3032](https://lab.civicrm.org/dev/core/-/issues/3032): + [22505](https://github.com/civicrm/civicrm-core/pull/22505))** -- **[REF] CustomField Admin - Decouple page code from form code ([22519](https://github.com/civicrm/civicrm-core/pull/22519))** +- **SearchKit - Fix selecting operators and values in clauses + ([22653](https://github.com/civicrm/civicrm-core/pull/22653))** -- **dev/core#2122 Add timezone support for events ([20476](https://github.com/civicrm/civicrm-core/pull/20476))** +- **SearchKit - Refresh contents after saving a popup when in a block/tab + ([22809](https://github.com/civicrm/civicrm-core/pull/22809))** -- **Fix batch summary to use the api ([22618](https://github.com/civicrm/civicrm-core/pull/22618))** +- **Don't throw PHP notice when rendering dedupefind template. + ([22709](https://github.com/civicrm/civicrm-core/pull/22709))** -- **Split View Relationship tpl ito own file ([22617](https://github.com/civicrm/civicrm-core/pull/22617))** +- **Enotice fixes with datepicker + ([22705](https://github.com/civicrm/civicrm-core/pull/22705))** -- **Add option to display money tokens without formatting ([22548](https://github.com/civicrm/civicrm-core/pull/22548))** +- **Enotice fix with priceset template + ([22708](https://github.com/civicrm/civicrm-core/pull/22708))** -- **Only format smarty aliases as money if specified ([22547](https://github.com/civicrm/civicrm-core/pull/22547))** +- **Enotice fixes + ([22697](https://github.com/civicrm/civicrm-core/pull/22697))** -- **Fix smarty notices in footer files ([22613](https://github.com/civicrm/civicrm-core/pull/22613))** +- **Enotice fix + ([22436](https://github.com/civicrm/civicrm-core/pull/22436))** -- **Remove use of .font-size11pt and .font-size12pt ([22314](https://github.com/civicrm/civicrm-core/pull/22314))** +- **Enotice fixes + ([22471](https://github.com/civicrm/civicrm-core/pull/22471))** -- **report cleanup - no functional change ([22611](https://github.com/civicrm/civicrm-core/pull/22611))** +- **CustomGroup - Ensure 'name' is always unique + ([22675](https://github.com/civicrm/civicrm-core/pull/22675))** -- **Issue #899: don't show PCPs where the events or contribution pages are disabled or past the end date ([20845](https://github.com/civicrm/civicrm-core/pull/20845))** +- **Another set of PHPdoc corrections + ([22658](https://github.com/civicrm/civicrm-core/pull/22658))** -- **dev/core#1613 Change event registration button text based on if there are additional participants ([20251](https://github.com/civicrm/civicrm-core/pull/20251))** +- **Fix batch summary to use the api + ([22618](https://github.com/civicrm/civicrm-core/pull/22618))** -- **SearchKit - Improve field/operator/value selection UI ([22604](https://github.com/civicrm/civicrm-core/pull/22604))** +- **Fix Smarty notices in footer files + ([22613](https://github.com/civicrm/civicrm-core/pull/22613))** -- **Contact BAO - Deprecate unused function ([22610](https://github.com/civicrm/civicrm-core/pull/22610))** +- **Remove use of .font-size11pt and .font-size12pt + ([22314](https://github.com/civicrm/civicrm-core/pull/22314))** -- **Don't pass redundent empty strings when instantiating CRM_Core_ShowHideBlocks ([22605](https://github.com/civicrm/civicrm-core/pull/22605))** +- **Don't pass redundent empty strings when instantiating + CRM_Core_ShowHideBlocks + ([22605](https://github.com/civicrm/civicrm-core/pull/22605))** -- **Fix Grant::retrieve to meet full phpcs standard ([22558](https://github.com/civicrm/civicrm-core/pull/22558))** +- **Fix call to log method warn (should be warning) + ([22602](https://github.com/civicrm/civicrm-core/pull/22602))** -- **Make phpType definitions in generated DAO objects more accurate. ([22607](https://github.com/civicrm/civicrm-core/pull/22607))** +- **tpl notices and docblocks + ([22449](https://github.com/civicrm/civicrm-core/pull/22449))** -- **CiviCase - Denote `created_date` as readonly ([22608](https://github.com/civicrm/civicrm-core/pull/22608))** +- **Ensure assigned Smarty array has empty keys (not no keys) + ([22379](https://github.com/civicrm/civicrm-core/pull/22379))** -- **[REF] SearchKit docblock cleanup ([22603](https://github.com/civicrm/civicrm-core/pull/22603))** +- **Stop calling hook twice + ([22404](https://github.com/civicrm/civicrm-core/pull/22404))** -- **SearchKit - Support operators in conditional css rules ([22552](https://github.com/civicrm/civicrm-core/pull/22552))** +- **Activity Details field on batch update via profile has wrong fieldname + ([22568](https://github.com/civicrm/civicrm-core/pull/22568))** -- **Fix call to log method warn (should be warning) ([22602](https://github.com/civicrm/civicrm-core/pull/22602))** +- **Re-fix enotice on searchType to work with default modifiers + ([22466](https://github.com/civicrm/civicrm-core/pull/22466))** -- **(NFC) Correct type hints for bad null default values ([22600](https://github.com/civicrm/civicrm-core/pull/22600))** +- **Unable to add new custom field set or new fields (to existing field set) + after enabling multilingual setting. + ([dev/translation#38](https://lab.civicrm.org/dev/translation/-/issues/38): + [22647](https://github.com/civicrm/civicrm-core/pull/22647))** -- **5.46 ([22599](https://github.com/civicrm/civicrm-core/pull/22599))** +- **System.check permissions changed in Civi 5.46 + ([dev/core#3055](https://lab.civicrm.org/dev/core/-/issues/3055): + [22733](https://github.com/civicrm/civicrm-core/pull/22733))** -- **tpl notices and docblocks ([22449](https://github.com/civicrm/civicrm-core/pull/22449))** + Fixes the dedupe check to not require elevated permissions. -- **(dev/core#3012) Expose email on hold as filter for contribution report ([22368](https://github.com/civicrm/civicrm-core/pull/22368))** +- **Search Builder crashes if you have admin access and CiviGrant is not enabled + ([dev/core#3056](https://lab.civicrm.org/dev/core/-/issues/3056): + [22714](https://github.com/civicrm/civicrm-core/pull/22714))** -- **[REF] SearchKit - Function extraction ([22598](https://github.com/civicrm/civicrm-core/pull/22598))** +- **CiviGrant info.xml update missing from 5.47 and + CRM_Utils_VersioncheckTest::testGetSiteStats should have been failing for a + while ([dev/core#3057](https://lab.civicrm.org/dev/core/-/issues/3057): + [22717](https://github.com/civicrm/civicrm-core/pull/22717))** -- **Use tokens in offline contribution receipt (new installs) ([22560](https://github.com/civicrm/civicrm-core/pull/22560))** +- **Regression - fatal error when viewing custom fields with money > 1000 + ([dev/core#3059](https://lab.civicrm.org/dev/core/-/issues/3059): + [22727](https://github.com/civicrm/civicrm-core/pull/22727))** -- **Remove unreachable code ([22594](https://github.com/civicrm/civicrm-core/pull/22594))** +- **Fix broken function reference + ([22474](https://github.com/civicrm/civicrm-core/pull/22474))** -- **Pass remove-by-reference ([22593](https://github.com/civicrm/civicrm-core/pull/22593))** +- **Use rolling window for translating 2-digit years into 4-digit years + ([22581](https://github.com/civicrm/civicrm-core/pull/22581))** -- **SearchKit - Support conditional links ([22557](https://github.com/civicrm/civicrm-core/pull/22557))** + Fixes outdated hard-coded import logic: translates 2-digit years to 4 using + rolling -95yr to +5yr window -- **(dev/core#1304) Queue - Add high-level tracking table ([22324](https://github.com/civicrm/civicrm-core/pull/22324))** +- **Rationalise relationship validation + ([22491](https://github.com/civicrm/civicrm-core/pull/22491))** -- **Add consistency between checkTemplateFileExists functions, ([22586](https://github.com/civicrm/civicrm-core/pull/22586))** +- **Stop calling confusing function that doesn't do much ..... + ([22468](https://github.com/civicrm/civicrm-core/pull/22468))** -- **Duplicate function from deprecated utils onto calling classes & remove ([22481](https://github.com/civicrm/civicrm-core/pull/22481))** +- **Navigation - Make required fields NOT NULL + ([22430](https://github.com/civicrm/civicrm-core/pull/22430))** -- **Remove useless function ([22585](https://github.com/civicrm/civicrm-core/pull/22585))** +- **Fight back against copy & paste gone wild + ([22417](https://github.com/civicrm/civicrm-core/pull/22417))** -- **CRM_Core_Component (et al) - Deprecate unused functions ([22566](https://github.com/civicrm/civicrm-core/pull/22566))** +### CiviCampaign -- **5.46 to master ([22591](https://github.com/civicrm/civicrm-core/pull/22591))** +- **'CiviCampaign: access CiviCampaign' permission missing + ([dev/core#983](https://lab.civicrm.org/dev/core/-/issues/983): + [22459](https://github.com/civicrm/civicrm-core/pull/22459))** -- **Remove param default ([22590](https://github.com/civicrm/civicrm-core/pull/22590))** +### CiviCase -- **(dev/core#3012) Expose more options for email on hold as filter for l… ([22572](https://github.com/civicrm/civicrm-core/pull/22572))** +- **CiviCase - Denote `created_date` as readonly + ([22608](https://github.com/civicrm/civicrm-core/pull/22608))** -- **APIv4 - Make Permission 'group' discoverable in API Explorer ([22559](https://github.com/civicrm/civicrm-core/pull/22559))** +- **Remove category from case activity template + ([22530](https://github.com/civicrm/civicrm-core/pull/22530))** -- **SearchKit - Update operator labels ([22554](https://github.com/civicrm/civicrm-core/pull/22554))** + Remove category from case activity template to fix e-notices. -- **Use rolling window for translating 2-digit years into 4-digit years ([22581](https://github.com/civicrm/civicrm-core/pull/22581))** +### CiviContribute -- **dev/event#66: allow duplicate price field labels ([22508](https://github.com/civicrm/civicrm-core/pull/22508))** +- **Fix ContributionRecur.payment_processor_id pseudoconstant + ([22750](https://github.com/civicrm/civicrm-core/pull/22750))** -- **DAO - Centralize logic to derive unique name from label ([22570](https://github.com/civicrm/civicrm-core/pull/22570))** +- **Manage Contribution page, the link to "Online Contribution (Test-drive)" is + an admin-only URL to register in the backend, should be a frontend URL + ([22672](https://github.com/civicrm/civicrm-core/pull/22672))** -- **Simplify apiv4 conformance test ([22579](https://github.com/civicrm/civicrm-core/pull/22579))** +- **Avoid PHP notice on 'Manage Contribution Pages' screen + ([22661](https://github.com/civicrm/civicrm-core/pull/22661))** -- **Add billingStateProvince and standardized property names ([21583](https://github.com/civicrm/civicrm-core/pull/21583))** +- **PCP is still active after contribution page is disabled. + ([dev/core#899](https://lab.civicrm.org/dev/core/-/issues/899): + [20845](https://github.com/civicrm/civicrm-core/pull/20845))** -- **Fix return values for API3 Job.delete ([22561](https://github.com/civicrm/civicrm-core/pull/22561))** +- **don't allow multiple currencies in a batch + ([20884](https://github.com/civicrm/civicrm-core/pull/20884))** -- **5.46 ([22582](https://github.com/civicrm/civicrm-core/pull/22582))** +- **Foreign constraint violation on APIv3 contribution create if + financial_type_id is numeric + ([dev/core#3063](https://lab.civicrm.org/dev/core/-/issues/3063): + [22740](https://github.com/civicrm/civicrm-core/pull/22740))** -- **SearchKit - add/remove tags action for all taggable entities ([21865](https://github.com/civicrm/civicrm-core/pull/21865))** +- **Error cancelling a contribution if CiviPledge is disabled + ([dev/core#3066](https://lab.civicrm.org/dev/core/-/issues/3066): + [22779](https://github.com/civicrm/civicrm-core/pull/22779))** -- **Remove method getWordReplacement. ([22577](https://github.com/civicrm/civicrm-core/pull/22577))** +- **Import of contribution fails when invalid campaign ID is provided + ([dev/core#2989](https://lab.civicrm.org/dev/core/-/issues/2989): + [22235](https://github.com/civicrm/civicrm-core/pull/22235))** -- **[REF] Upgrade JQuery UI to 1.13.0 ([22576](https://github.com/civicrm/civicrm-core/pull/22576))** +- **Simplify getting contact_id from recurring contribution when generating + subscription URLs + ([22448](https://github.com/civicrm/civicrm-core/pull/22448))** -- **(NFC) Minor phpdoc fixes to CRM_Mailing_Event_BAO_Unsubscribe::send_unsub_response ([22574](https://github.com/civicrm/civicrm-core/pull/22574))** +- **Fix Fatal Error on contribution tab and user dashboard when recurring + payment generated using extension get disabled + ([22264](https://github.com/civicrm/civicrm-core/pull/22264))** -- **Add created_date & modified_date to civicrm_relationship ([22480](https://github.com/civicrm/civicrm-core/pull/22480))** +### CiviEvent -- **(NFC) Minor amends to getGroupByFromSelectColumns ([22575](https://github.com/civicrm/civicrm-core/pull/22575))** +- **CiviCRM Event, the link to "On-line Registration (Test Drive)" is an + admin-only URL to register in the backend, should be a frontend URL + ([22669](https://github.com/civicrm/civicrm-core/pull/22669))** -- **(NFC) Correctly document CRM_Utils_Hook::pre to allow null ID ([22562](https://github.com/civicrm/civicrm-core/pull/22562))** +- **Set default values to avoid notices when rendering (event templates screen) + ([22663](https://github.com/civicrm/civicrm-core/pull/22663))** -- **[REF] Components - Use extracted function ([22573](https://github.com/civicrm/civicrm-core/pull/22573))** +### CiviGrant -- **dev/core#2757 test to demonstrate contact delete actions were not called for v4 api ([22458](https://github.com/civicrm/civicrm-core/pull/22458))** +- **Fix Grant::retrieve to meet full phpcs standard + ([22558](https://github.com/civicrm/civicrm-core/pull/22558))** -- **(NFC) CiviReport, etal - More phpdoc fixes ([22565](https://github.com/civicrm/civicrm-core/pull/22565))** +- **CiviGrant - Fix installation of dependencies during upgrade + ([22881](https://github.com/civicrm/civicrm-core/pull/22881))** -- **[REF] SearchKit - Simplify import/export popup code ([22507](https://github.com/civicrm/civicrm-core/pull/22507))** +- **CiviGrant - Menu appears twice + ([dev/core#3087](https://lab.civicrm.org/dev/core/-/issues/3087): + [22855](https://github.com/civicrm/civicrm-core/pull/22855))** -- **Activity Details field on batch update via profile has wrong fieldname ([22568](https://github.com/civicrm/civicrm-core/pull/22568))** +- **CiviGrant - Don't return grant fields as contact fields + ([dev/core#3069](https://lab.civicrm.org/dev/core/-/issues/3069): + [22851](https://github.com/civicrm/civicrm-core/pull/22851))** -- **Remove duplicate file ([22569](https://github.com/civicrm/civicrm-core/pull/22569))** +- **CiviGrant - Declare API permissions + ([22791](https://github.com/civicrm/civicrm-core/pull/22791))** -- **(NFC) Update PHPDoc for alterDeferredRevenueItems ([22563](https://github.com/civicrm/civicrm-core/pull/22563))** +### CiviMail -- **(REF) Extract function `CRM_Core_Component::isEnabled()` ([22567](https://github.com/civicrm/civicrm-core/pull/22567))** +- **Editing a mailing triggers two autosaves instead of one + ([dev/core#2587](https://lab.civicrm.org/dev/core/-/issues/2587): + [20561](https://github.com/civicrm/civicrm-core/pull/20561))** -- **(NFC) Comment fixes Stricter phpcs ([22555](https://github.com/civicrm/civicrm-core/pull/22555))** +- **MailingEventQueue - Use consistent CamelCaseName. Prevent conflicts. + ([22343](https://github.com/civicrm/civicrm-core/pull/22343))** -- **(NFC) Remaining css phpcs fixes ([22553](https://github.com/civicrm/civicrm-core/pull/22553))** +- **add `contact_id` to email params in `emailLetter` function + ([22538](https://github.com/civicrm/civicrm-core/pull/22538))** -- **Follow up fn removal ([22556](https://github.com/civicrm/civicrm-core/pull/22556))** +- **Fix syntax error in CRM_Mailing_Event_BAO_Reply + ([22453](https://github.com/civicrm/civicrm-core/pull/22453))** -- **Remove obsolete scripts ([22549](https://github.com/civicrm/civicrm-core/pull/22549))** +- **Smarty notice fix on Email help + ([22470](https://github.com/civicrm/civicrm-core/pull/22470))** -- **[REF] SavedSearch - Deprecate/remove redundant/unused functions ([22542](https://github.com/civicrm/civicrm-core/pull/22542))** +- **CiviMail - Fix undeclared Javascript variables ([22879](https://github.com/civicrm/civicrm-core/pull/22879))** -- **Re-fix enotice on searchType to work with default modifiers ([22466](https://github.com/civicrm/civicrm-core/pull/22466))** +### CiviMember -- **Remove obsolete postIPN script ([22550](https://github.com/civicrm/civicrm-core/pull/22550))** +- **Fix spelling mistake in function name, addMembershipToRealtedContacts should + be addMembershipToRelatedContacts + ([22673](https://github.com/civicrm/civicrm-core/pull/22673))** -- **PHPCS standards on css.... ([22529](https://github.com/civicrm/civicrm-core/pull/22529))** +- **Fix Smarty notices in membership dashboard + ([22660](https://github.com/civicrm/civicrm-core/pull/22660))** -- **(REF) Remove constructors that do nothing ([22544](https://github.com/civicrm/civicrm-core/pull/22544))** +- **Don't default membership type create to inactive + ([22498](https://github.com/civicrm/civicrm-core/pull/22498))** -- **Remove unused variable ([22545](https://github.com/civicrm/civicrm-core/pull/22545))** +### WordPress Integration -- **Remove some old scripts ([22534](https://github.com/civicrm/civicrm-core/pull/22534))** +- **404 Error when I use the APIv4 with WordPress Multisite -> because no "do + not delete" post was generated for the subsite + ([dev/wordpress#59](https://lab.civicrm.org/dev/wordpress/-/issues/59): + [271](https://github.com/civicrm/civicrm-wordpress/pull/271))** -- **Refactor buildPremiumPreviewBlock function to make intended usage clearer ([22541](https://github.com/civicrm/civicrm-core/pull/22541))** +## Miscellany -- **5.46 to master ([22540](https://github.com/civicrm/civicrm-core/pull/22540))** +- **Move permission checks from Query & BAO to financialacl extension + ([22495](https://github.com/civicrm/civicrm-core/pull/22495))** -- **More comments & style fixes ([22533](https://github.com/civicrm/civicrm-core/pull/22533))** +- **Add billingStateProvince and standardized property names + ([21583](https://github.com/civicrm/civicrm-core/pull/21583))** -- **Smarty notice fix on Email help ([22470](https://github.com/civicrm/civicrm-core/pull/22470))** +- **Extensions - Revise prose for status check + ([22638](https://github.com/civicrm/civicrm-core/pull/22638))** -- **Re-run regen ([22536](https://github.com/civicrm/civicrm-core/pull/22536))** +- **Add type to phpdoc comment for report statistic function + ([22514](https://github.com/civicrm/civicrm-core/pull/22514))** -- **Fixes to spaces from phpcs ([22535](https://github.com/civicrm/civicrm-core/pull/22535))** +- **Update phpdoc references to $self to include type + ([22513](https://github.com/civicrm/civicrm-core/pull/22513))** -- **[NFC] Update test example template and regenerate examples ([22531](https://github.com/civicrm/civicrm-core/pull/22531))** +- **Improve method phpdoc for CRM_Utils_System + ([22492](https://github.com/civicrm/civicrm-core/pull/22492))** -- **Remove category from case activity template ([22530](https://github.com/civicrm/civicrm-core/pull/22530))** +- **Run 'full Drupal strictness' standard over api/v3/examples + ([22528](https://github.com/civicrm/civicrm-core/pull/22528))** -- **Run stricter phpcs on Civi dir ([22527](https://github.com/civicrm/civicrm-core/pull/22527))** +- **Run stricter phpcs on Civi dir + ([22527](https://github.com/civicrm/civicrm-core/pull/22527))** -- **Run 'full drupal strictness' standard over api/v3/examples ([22528](https://github.com/civicrm/civicrm-core/pull/22528))** +- **Fixes to spaces from phpcs + ([22535](https://github.com/civicrm/civicrm-core/pull/22535))** -- **Remove empty check ([22444](https://github.com/civicrm/civicrm-core/pull/22444))** +- **Various phpdoc fixes + ([22509](https://github.com/civicrm/civicrm-core/pull/22509))** -- **Move deprecated function back to the only class that calls it ([22517](https://github.com/civicrm/civicrm-core/pull/22517))** +- **Clarify contents of ids for further fixes + ([22402](https://github.com/civicrm/civicrm-core/pull/22402))** -- **Fix php comments ([22526](https://github.com/civicrm/civicrm-core/pull/22526))** +- **Replace all isset checks on line.tax_rate + ([22421](https://github.com/civicrm/civicrm-core/pull/22421))** -- **Add unit test on updateGreeting & remove deprecated fn call ([22482](https://github.com/civicrm/civicrm-core/pull/22482))** +- **Move function to the class that 'owns' it + ([22472](https://github.com/civicrm/civicrm-core/pull/22472))** -- **[REF] - Use CRM_Contact_BAO_ContactType::basicTypes() ([22520](https://github.com/civicrm/civicrm-core/pull/22520))** +- **PHPCS standards on css.... + ([22529](https://github.com/civicrm/civicrm-core/pull/22529))** -- **[NFC] Fixes to the type definitions for contactType methods ([22524](https://github.com/civicrm/civicrm-core/pull/22524))** +- **More comments & style fixes + ([22533](https://github.com/civicrm/civicrm-core/pull/22533))** -- **[Ref] Remove unused _colours property ([22525](https://github.com/civicrm/civicrm-core/pull/22525))** +- **Re-run regen + ([22536](https://github.com/civicrm/civicrm-core/pull/22536))** -- **Another set of PHPDoc fixes ([22522](https://github.com/civicrm/civicrm-core/pull/22522))** +- **Add consistency between checkTemplateFileExists functions, + ([22586](https://github.com/civicrm/civicrm-core/pull/22586))** -- **Fix more phpdoc comments in member links functions ([22521](https://github.com/civicrm/civicrm-core/pull/22521))** +- **Increase GroupContact:create deprecation + ([22416](https://github.com/civicrm/civicrm-core/pull/22416))** -- **Remove unreachable, nonsensical code ([22518](https://github.com/civicrm/civicrm-core/pull/22518))** +- **APIv4 - Docblock updates, mark BAO::create functions deprecated + ([22415](https://github.com/civicrm/civicrm-core/pull/22415))** -- **Fix php comments ([22515](https://github.com/civicrm/civicrm-core/pull/22515))** +- **DAO - Centralize logic to derive unique name from label + ([22570](https://github.com/civicrm/civicrm-core/pull/22570))** -- **Unit tests for 22429 and apply same treatment to other money format functions ([22442](https://github.com/civicrm/civicrm-core/pull/22442))** +- **Pass remove-by-reference + ([22593](https://github.com/civicrm/civicrm-core/pull/22593))** -- **Test cleanup - remove direct calls to BAO_Membership::add ([22497](https://github.com/civicrm/civicrm-core/pull/22497))** +- **Mark function as private + ([22457](https://github.com/civicrm/civicrm-core/pull/22457))** -- **Merge function back into parent function ([22516](https://github.com/civicrm/civicrm-core/pull/22516))** +- **Stop returning unused parameters + ([22410](https://github.com/civicrm/civicrm-core/pull/22410))** -- **Add type to phpdoc comment for report statistic function ([22514](https://github.com/civicrm/civicrm-core/pull/22514))** +- **Duplicate function from deprecated utils onto calling classes & remove + ([22481](https://github.com/civicrm/civicrm-core/pull/22481))** -- **Update phpdoc references to $self to include type ([22513](https://github.com/civicrm/civicrm-core/pull/22513))** +- **Fix phpdoc types for $_query in CRM_Core_Selector_Base subclasses + ([22424](https://github.com/civicrm/civicrm-core/pull/22424))** -- **[test] - Add test coverage for adjusting custom group weights ([22512](https://github.com/civicrm/civicrm-core/pull/22512))** +- **Correctly document types for class consts + ([22659](https://github.com/civicrm/civicrm-core/pull/22659))** -- **Enotice fixes ([22471](https://github.com/civicrm/civicrm-core/pull/22471))** +- **Make phpType definitions in generated DAO objects more accurate. + ([22607](https://github.com/civicrm/civicrm-core/pull/22607))** -- **Select2 - Fix auto-expanding collapsible optgroups for multi-selects ([22505](https://github.com/civicrm/civicrm-core/pull/22505))** +- **Ensure all APIv3 functions have documented types + ([22674](https://github.com/civicrm/civicrm-core/pull/22674))** -- **(REF) CRM_Core_Resources - Limit visibility of `getEntityRefMetadata` ([22511](https://github.com/civicrm/civicrm-core/pull/22511))** +- **CRM_Core_Component (et al) - Deprecate unused functions + ([22566](https://github.com/civicrm/civicrm-core/pull/22566))** -- **Various phpdoc fixes ([22509](https://github.com/civicrm/civicrm-core/pull/22509))** +- **Move deprecated function back to the only class that calls it + ([22517](https://github.com/civicrm/civicrm-core/pull/22517))** -- **(REF) ContactUtils - Rename local variables ([22510](https://github.com/civicrm/civicrm-core/pull/22510))** +- **Fix PHP comments + ([22526](https://github.com/civicrm/civicrm-core/pull/22526))** -- **[REF] CoreResources - Simplify disabled component check ([22506](https://github.com/civicrm/civicrm-core/pull/22506))** +- **A whole bunch of phpdoc fixes + ([22454](https://github.com/civicrm/civicrm-core/pull/22454))** -- **Move permission checks from Query & BAO to financialacl extension ([22495](https://github.com/civicrm/civicrm-core/pull/22495))** +- **Another set of PHPDoc fixes + ([22522](https://github.com/civicrm/civicrm-core/pull/22522))** -- **Rationalise relationship validation ([22491](https://github.com/civicrm/civicrm-core/pull/22491))** +- **Fix more phpdoc comments in member links functions + ([22521](https://github.com/civicrm/civicrm-core/pull/22521))** -- **(NFC) Civi::pipe - Swap various quotes ([22503](https://github.com/civicrm/civicrm-core/pull/22503))** +- **Fix PHP comments + ([22515](https://github.com/civicrm/civicrm-core/pull/22515))** -- **NFC: Clean up description for alterDisplayName hook ([22501](https://github.com/civicrm/civicrm-core/pull/22501))** +- **Merge function back into parent function + ([22516](https://github.com/civicrm/civicrm-core/pull/22516))** -- **Civi::pipe - Add support for background worker-processes with JSON pipes ([22262](https://github.com/civicrm/civicrm-core/pull/22262))** +- **Simplify variables pass in & out of function + ([22439](https://github.com/civicrm/civicrm-core/pull/22439))** -- **Port test form earlier PR ([22502](https://github.com/civicrm/civicrm-core/pull/22502))** +- **Clean up input and outputs + ([22440](https://github.com/civicrm/civicrm-core/pull/22440))** -- **MailingEventQueue - Use consistent CamelCaseName. Prevent conflicts. ([22343](https://github.com/civicrm/civicrm-core/pull/22343))** +- **Tidy CRM_Report_Page_Options code + ([22432](https://github.com/civicrm/civicrm-core/pull/22432))** -- **SearchKit - Enable joins for custom fields and option groups ([22355](https://github.com/civicrm/civicrm-core/pull/22355))** +- **Refactor buildPremiumPreviewBlock function to make intended usage clearer + ([22541](https://github.com/civicrm/civicrm-core/pull/22541))** -- **5.46 ([22496](https://github.com/civicrm/civicrm-core/pull/22496))** +- **Fix class references in phpdoc comments + ([22434](https://github.com/civicrm/civicrm-core/pull/22434))** -- **Remove support for deprecated key ([22443](https://github.com/civicrm/civicrm-core/pull/22443))** +- **Contact BAO - Deprecate unused function + ([22610](https://github.com/civicrm/civicrm-core/pull/22610))** -- **Fully remove contactAB function ([22485](https://github.com/civicrm/civicrm-core/pull/22485))** +- **report cleanup - no functional change + ([22611](https://github.com/civicrm/civicrm-core/pull/22611))** -- **Don't default membership type create to inactive ([22498](https://github.com/civicrm/civicrm-core/pull/22498))** +- **Split View Relationship tpl ito own file + ([22617](https://github.com/civicrm/civicrm-core/pull/22617))** -- **Extensions - Add dependency status check ([22464](https://github.com/civicrm/civicrm-core/pull/22464))** +- **Fix inaccuracy in docblock for method calculateBaseScheduleDate + ([22631](https://github.com/civicrm/civicrm-core/pull/22631))** -- **Remove handling for impossible array ([22494](https://github.com/civicrm/civicrm-core/pull/22494))** +- **Resolve inaccuracies in CRM_Core_BAO_File::attachmentInfo docblock + ([22629](https://github.com/civicrm/civicrm-core/pull/22629))** -- **[REF] Improve APIv4 save functions ([22403](https://github.com/civicrm/civicrm-core/pull/22403))** +- **Tidy up functions related to printing. + ([22601](https://github.com/civicrm/civicrm-core/pull/22601))** -- **CiviGrant - Use SearchKit for contact summary tab ([22467](https://github.com/civicrm/civicrm-core/pull/22467))** +- **Do not pass in tablename + ([22625](https://github.com/civicrm/civicrm-core/pull/22625))** -- **Improve method phpdoc for CRM_Utils_System ([22492](https://github.com/civicrm/civicrm-core/pull/22492))** +- **More phpcbs code cleanups + ([22551](https://github.com/civicrm/civicrm-core/pull/22551))** -- **Remove always-true-if ([22486](https://github.com/civicrm/civicrm-core/pull/22486))** +- **Resolve docblock inaccuracy in CRM_Contribute_Form_Task_TaskTrait + ([22646](https://github.com/civicrm/civicrm-core/pull/22646))** -- **Stop calling confusing function that doesn't do much ..... ([22468](https://github.com/civicrm/civicrm-core/pull/22468))** +- **Contributor key: Add Ian Wilson + ([22781](https://github.com/civicrm/civicrm-core/pull/22781))** -- **5.46 to master ([22484](https://github.com/civicrm/civicrm-core/pull/22484))** +- **Bump follow-redirects from 1.11.0 to 1.14.7 + ([22696](https://github.com/civicrm/civicrm-core/pull/22696))** -- **Remove seemingly unreachable help text ([22469](https://github.com/civicrm/civicrm-core/pull/22469))** +- **Bump engine.io from 4.1.1 to 4.1.2 + ([22695](https://github.com/civicrm/civicrm-core/pull/22695))** -- **Move function to the class that 'owns' it ([22472](https://github.com/civicrm/civicrm-core/pull/22472))** +- **Bump ansi-regex from 5.0.0 to 5.0.1 + ([22693](https://github.com/civicrm/civicrm-core/pull/22693))** -- **Fix broken function reference ([22474](https://github.com/civicrm/civicrm-core/pull/22474))** +- **Bump log4js from 6.3.0 to 6.4.1 + ([22694](https://github.com/civicrm/civicrm-core/pull/22694))** -- **Remove broken script ([22473](https://github.com/civicrm/civicrm-core/pull/22473))** +- **Update composer.json for composer 2.2 allow-plugins + ([22692](https://github.com/civicrm/civicrm-core/pull/22692))** -- **dev/core#983 Fix Access CiviCampaign permissions (instead of admin) ([22459](https://github.com/civicrm/civicrm-core/pull/22459))** +- **Follow up fn removal + ([22556](https://github.com/civicrm/civicrm-core/pull/22556))** -- **Simplify getting contact_id from recurring contribution when generating subscription URLs ([22448](https://github.com/civicrm/civicrm-core/pull/22448))** +- **Fully remove contactAB function + ([22485](https://github.com/civicrm/civicrm-core/pull/22485))** -- **Remove & deprecate silly function ([22456](https://github.com/civicrm/civicrm-core/pull/22456))** +- **Remove support for deprecated key + ([22443](https://github.com/civicrm/civicrm-core/pull/22443))** -- **Migrate CiviGrant component to an extension ([22064](https://github.com/civicrm/civicrm-core/pull/22064))** +- **Remove duplicate file + ([22569](https://github.com/civicrm/civicrm-core/pull/22569))** -- **Fix Fatal Error on contribution tab and user dashboard when recurring payment generated using extension get disabled ([22264](https://github.com/civicrm/civicrm-core/pull/22264))** +- **Remove obsolete scripts + ([22549](https://github.com/civicrm/civicrm-core/pull/22549))** -- **Remove unused variable ([22462](https://github.com/civicrm/civicrm-core/pull/22462))** +- **Remove method getWordReplacement. + ([22577](https://github.com/civicrm/civicrm-core/pull/22577))** -- **Remove IF that only loops through one value ([22455](https://github.com/civicrm/civicrm-core/pull/22455))** +- **Remove unused variable + ([22545](https://github.com/civicrm/civicrm-core/pull/22545))** -- **Replace all isset checks on line.tax_rate ([22421](https://github.com/civicrm/civicrm-core/pull/22421))** +- **Remove some old scripts + ([22534](https://github.com/civicrm/civicrm-core/pull/22534))** -- **Fix syntax error in CRM_Mailing_Event_BAO_Reply ([22453](https://github.com/civicrm/civicrm-core/pull/22453))** +- **Remove handling for impossible array + ([22494](https://github.com/civicrm/civicrm-core/pull/22494))** -- **Event Registration: allow default Price Set values from the URL ([22313](https://github.com/civicrm/civicrm-core/pull/22313))** +- **Remove obsolete postIPN script + ([22550](https://github.com/civicrm/civicrm-core/pull/22550))** -- **Mark function as private ([22457](https://github.com/civicrm/civicrm-core/pull/22457))** +- **Remove / deprecate case param handling + ([22420](https://github.com/civicrm/civicrm-core/pull/22420))** -- **5.46 ([22460](https://github.com/civicrm/civicrm-core/pull/22460))** +- **Remove useless function + ([22585](https://github.com/civicrm/civicrm-core/pull/22585))** -- **A whole bunch of phpdoc fixes ([22454](https://github.com/civicrm/civicrm-core/pull/22454))** +- **Remove param default + ([22590](https://github.com/civicrm/civicrm-core/pull/22590))** -- **Simplify variables pass in & out of function ([22439](https://github.com/civicrm/civicrm-core/pull/22439))** +- **Remove htmlFile validation rule, as it can't possibly work. + ([22425](https://github.com/civicrm/civicrm-core/pull/22425))** -- **Remove if & foreach that no longer do anything ([22447](https://github.com/civicrm/civicrm-core/pull/22447))** +- **Remove broken script + ([22473](https://github.com/civicrm/civicrm-core/pull/22473))** -- **Remove call to php 4 function ([22446](https://github.com/civicrm/civicrm-core/pull/22446))** +- **Remove unreachable else + ([22406](https://github.com/civicrm/civicrm-core/pull/22406))** -- **Clean up input and outputs ([22440](https://github.com/civicrm/civicrm-core/pull/22440))** +- **Remove & deprecate silly function + ([22456](https://github.com/civicrm/civicrm-core/pull/22456))** -- **5.46 ([22441](https://github.com/civicrm/civicrm-core/pull/22441))** +- **Remove always-true-if + ([22486](https://github.com/civicrm/civicrm-core/pull/22486))** -- **APIv4 - Add SubscriptionHistory entity ([22435](https://github.com/civicrm/civicrm-core/pull/22435))** +- **Remove seemingly unreachable help text + ([22469](https://github.com/civicrm/civicrm-core/pull/22469))** -- **Enotice fix ([22436](https://github.com/civicrm/civicrm-core/pull/22436))** +- **Remove unused variable + ([22462](https://github.com/civicrm/civicrm-core/pull/22462))** -- **5.46 ([22428](https://github.com/civicrm/civicrm-core/pull/22428))** +- **Remove IF that only loops through one value + ([22455](https://github.com/civicrm/civicrm-core/pull/22455))** -- **don't allow multiple currencies in a batch ([20884](https://github.com/civicrm/civicrm-core/pull/20884))** +- **Remove if & foreach that no longer do anything + ([22447](https://github.com/civicrm/civicrm-core/pull/22447))** -- **[REF] Rename variable to be meaningful ([22431](https://github.com/civicrm/civicrm-core/pull/22431))** +- **Remove call to PHP 4 function + ([22446](https://github.com/civicrm/civicrm-core/pull/22446))** -- **Navigation - Make required fields NOT NULL ([22430](https://github.com/civicrm/civicrm-core/pull/22430))** +- **Remove empty check + ([22444](https://github.com/civicrm/civicrm-core/pull/22444))** -- **[REF] Tidy up formatting in gotv.tpl, remove extra ([22433](https://github.com/civicrm/civicrm-core/pull/22433))** +- **Remove unreachable, nonsensical code + ([22518](https://github.com/civicrm/civicrm-core/pull/22518))** -- **Tidy CRM_Report_Page_Options code ([22432](https://github.com/civicrm/civicrm-core/pull/22432))** +- **Remove deprecated code + ([22411](https://github.com/civicrm/civicrm-core/pull/22411))** -- **Fix class references in phpdoc comments ([22434](https://github.com/civicrm/civicrm-core/pull/22434))** +- **Remove check for contact_check as it is always an array here + ([22407](https://github.com/civicrm/civicrm-core/pull/22407))** -- **[REF] Stop returning unused variables ([22401](https://github.com/civicrm/civicrm-core/pull/22401))** +- **Remove unreachable code + ([22594](https://github.com/civicrm/civicrm-core/pull/22594))** -- **[REF] Centralize BAO handling of custom data ([22426](https://github.com/civicrm/civicrm-core/pull/22426))** +- **Remove unnecessary pass-by-ref + ([22397](https://github.com/civicrm/civicrm-core/pull/22397))** -- **Remove / deprecate case param handling ([22420](https://github.com/civicrm/civicrm-core/pull/22420))** +- **Remove always-true IF + ([22399](https://github.com/civicrm/civicrm-core/pull/22399))** -- **Remove htmlFile validation rule, as it can't possibly work. ([22425](https://github.com/civicrm/civicrm-core/pull/22425))** +- **Remove deprecated language construct + ([22627](https://github.com/civicrm/civicrm-core/pull/22627))** -- **Fight back against copy & paste gone wild ([22417](https://github.com/civicrm/civicrm-core/pull/22417))** +- **Remove isset from online contribution receipt + ([22615](https://github.com/civicrm/civicrm-core/pull/22615))** -- **Fix phpdoc types for $_query in CRM_Core_Selector_Base subclasses ([22424](https://github.com/civicrm/civicrm-core/pull/22424))** +- **Remove unused invalidProfiles variable, and simplify template. + ([22704](https://github.com/civicrm/civicrm-core/pull/22704))** -- **[NFC] Tidy up phpdoc in CRM_Utils_QueryFormatter ([22423](https://github.com/civicrm/civicrm-core/pull/22423))** +- **(REF) Switch to using new `CRM_Core_Component::isEnabled()` + ([22687](https://github.com/civicrm/civicrm-core/pull/22687))** -- **Increase GroupContact:create deprecation ([22416](https://github.com/civicrm/civicrm-core/pull/22416))** +- **(REF) Remove unused variable + ([22398](https://github.com/civicrm/civicrm-core/pull/22398))** -- **Stop returning unused parameters ([22410](https://github.com/civicrm/civicrm-core/pull/22410))** +- **(REF) Tidy up group.tpl + ([22668](https://github.com/civicrm/civicrm-core/pull/22668))** -- **APIv4 - Docblock updates, mark BAO::create functions deprecated ([22415](https://github.com/civicrm/civicrm-core/pull/22415))** +- **(REF) Switch OptionGroup BAO to use new centralized logic to make name from + title ([22654](https://github.com/civicrm/civicrm-core/pull/22654))** -- **APIv4 - Fix test ([22414](https://github.com/civicrm/civicrm-core/pull/22414))** +- **(REF) Rename variable to be meaningful + ([22431](https://github.com/civicrm/civicrm-core/pull/22431))** -- **APIv4 - Fix incorrect placement of decodeRows in loop ([22413](https://github.com/civicrm/civicrm-core/pull/22413))** +- **(REF) Improve APIv4 save functions + ([22403](https://github.com/civicrm/civicrm-core/pull/22403))** -- **Remove unreachable else ([22406](https://github.com/civicrm/civicrm-core/pull/22406))** +- **(REF) CRM_Core_Resources - Limit visibility of `getEntityRefMetadata` + ([22511](https://github.com/civicrm/civicrm-core/pull/22511))** -- **[REF] Remove handling for no organization being passed ([22395](https://github.com/civicrm/civicrm-core/pull/22395))** +- **(REF) ContactUtils - Rename local variables + ([22510](https://github.com/civicrm/civicrm-core/pull/22510))** -- **Remove deprecated code ([22411](https://github.com/civicrm/civicrm-core/pull/22411))** +- **(REF) CoreResources - Simplify disabled component check + ([22506](https://github.com/civicrm/civicrm-core/pull/22506))** -- **NFC - Fix typo in docblock ([22409](https://github.com/civicrm/civicrm-core/pull/22409))** +- **(REF) Remove constructors that do nothing + ([22544](https://github.com/civicrm/civicrm-core/pull/22544))** -- **Remove check for contact_check as it is always an array here ([22407](https://github.com/civicrm/civicrm-core/pull/22407))** +- **(REF) Extract function `CRM_Core_Component::isEnabled()` + ([22567](https://github.com/civicrm/civicrm-core/pull/22567))** -- **dev/core#2587 Ignore modified_date when checking for changes during mailing auto-save ([20561](https://github.com/civicrm/civicrm-core/pull/20561))** +- **(REF) SearchKit docblock cleanup + ([22603](https://github.com/civicrm/civicrm-core/pull/22603))** -- **Fix testMultipleMembershipsContribution to use order api ([22274](https://github.com/civicrm/civicrm-core/pull/22274))** +- **(REF) SearchKit - Function extraction + ([22598](https://github.com/civicrm/civicrm-core/pull/22598))** -- **Stop calling hook twice ([22404](https://github.com/civicrm/civicrm-core/pull/22404))** +- **(REF) SearchKit - Simplify import/export popup code + ([22507](https://github.com/civicrm/civicrm-core/pull/22507))** -- **Remove always-true IF ([22399](https://github.com/civicrm/civicrm-core/pull/22399))** +- **(REF) Upgrade jQuery UI to 1.13.0 + ([22576](https://github.com/civicrm/civicrm-core/pull/22576))** -- **[REF] Remove unused variable ([22398](https://github.com/civicrm/civicrm-core/pull/22398))** +- **(REF) Components - Use extracted function + ([22573](https://github.com/civicrm/civicrm-core/pull/22573))** -- **Remove unnecessary pass-by-ref ([22397](https://github.com/civicrm/civicrm-core/pull/22397))** +- **(REF) SavedSearch - Deprecate/remove redundant/unused functions + ([22542](https://github.com/civicrm/civicrm-core/pull/22542))** -- **Add metadata so Activity Created Date is available in Form Builder ([22320](https://github.com/civicrm/civicrm-core/pull/22320))** +- **(REF) Use CRM_Contact_BAO_ContactType::basicTypes() + ([22520](https://github.com/civicrm/civicrm-core/pull/22520))** -- **Ensure assigned smarty array has empty keys (not no keys) ([22379](https://github.com/civicrm/civicrm-core/pull/22379))** +- **(REF) Remove unused _colours property + ([22525](https://github.com/civicrm/civicrm-core/pull/22525))** -- **Clarify contents of ids for further fixes ([22402](https://github.com/civicrm/civicrm-core/pull/22402))** +- **(REF) Tidy up formatting in gotv.tpl, remove extra + ([22433](https://github.com/civicrm/civicrm-core/pull/22433))** -- **wp-cli/civicrm.php - Add 'civicrm pipe' subcommand ([270](https://github.com/civicrm/civicrm-wordpress/pull/270))** +- **(REF) Stop returning unused variables + ([22401](https://github.com/civicrm/civicrm-core/pull/22401))** -- **Streamline and enhance the plugin load procedure (rebased) ([271](https://github.com/civicrm/civicrm-wordpress/pull/271))** +- **(REF) Centralize BAO handling of custom data + ([22426](https://github.com/civicrm/civicrm-core/pull/22426))** -- **Merge 5.46 to master ([339](https://github.com/civicrm/civicrm-packages/pull/339))** +- **(REF) Remove handling for no organization being passed + ([22395](https://github.com/civicrm/civicrm-core/pull/22395))** -## Miscellany +- **(REF) APIv4 - Rename trait 'SoftDelete' to 'SoftDeleteEntity' + ([22662](https://github.com/civicrm/civicrm-core/pull/22662))** + +- **(REF) Cleanup Contact BAO variables + ([22609](https://github.com/civicrm/civicrm-core/pull/22609))** + +- **(REF) Queues - Expand docblocks. Extract SQL trait. + ([22681](https://github.com/civicrm/civicrm-core/pull/22681))** + +- **(REF) APIv4 - Deprecate and stop using PreSaveSubscriber + ([22648](https://github.com/civicrm/civicrm-core/pull/22648))** + +- **(REF) CustomField Admin - Decouple page code from form code + ([22519](https://github.com/civicrm/civicrm-core/pull/22519))** + +- **(NFC) Fix typo in docblock + ([22409](https://github.com/civicrm/civicrm-core/pull/22409))** + +- **(NFC) Tidy up phpdoc in CRM_Utils_QueryFormatter + ([22423](https://github.com/civicrm/civicrm-core/pull/22423))** + +- **(NFC) Update test example template and regenerate examples + ([22531](https://github.com/civicrm/civicrm-core/pull/22531))** + +- **(NFC) Correct type hints for bad null default values + ([22600](https://github.com/civicrm/civicrm-core/pull/22600))** + +- **(NFC) Minor phpdoc fixes to + CRM_Mailing_Event_BAO_Unsubscribe::send_unsub_response + ([22574](https://github.com/civicrm/civicrm-core/pull/22574))** + +- **(NFC) CiviReport, etal - More phpdoc fixes + ([22565](https://github.com/civicrm/civicrm-core/pull/22565))** + +- **(NFC) Minor amends to getGroupByFromSelectColumns + ([22575](https://github.com/civicrm/civicrm-core/pull/22575))** + +- **(NFC) Correctly document CRM_Utils_Hook::pre to allow null ID + ([22562](https://github.com/civicrm/civicrm-core/pull/22562))** + +- **(NFC) Update PHPDoc for alterDeferredRevenueItems + ([22563](https://github.com/civicrm/civicrm-core/pull/22563))** + +- **(NFC) Comment fixes Stricter phpcs + ([22555](https://github.com/civicrm/civicrm-core/pull/22555))** + +- **(NFC) Remaining css phpcs fixes + ([22553](https://github.com/civicrm/civicrm-core/pull/22553))** + +- **(NFC) Fixes to the type definitions for contactType methods + ([22524](https://github.com/civicrm/civicrm-core/pull/22524))** + +- **(NFC) Civi::pipe - Swap various quotes + ([22503](https://github.com/civicrm/civicrm-core/pull/22503))** + +- **NFC: Clean up description for alterDisplayName hook + ([22501](https://github.com/civicrm/civicrm-core/pull/22501))** + +- **(NFC) Membership Tests - Update assertions to match behavior circa leap-day + ([22871](https://github.com/civicrm/civicrm-core/pull/22871))** + +- **(NFC) Update Contribution Recur DAO following regen + ([22858](https://github.com/civicrm/civicrm-core/pull/22858))** + +- **(NFC) RestTest - Skip testNotCMSUser_q when it's not supported + ([22817](https://github.com/civicrm/civicrm-core/pull/22817))** + +- **APIv4 - Fix test + ([22414](https://github.com/civicrm/civicrm-core/pull/22414))** + +- **Test cleanup - remove direct calls to BAO_Membership::add + ([22497](https://github.com/civicrm/civicrm-core/pull/22497))** + +- **Unit tests for 22429 and apply same treatment to other money format + functions ([22442](https://github.com/civicrm/civicrm-core/pull/22442))** + +- **Simplify APIv4 conformance test + ([22579](https://github.com/civicrm/civicrm-core/pull/22579))** + +- **Add unit test on updateGreeting & remove deprecated fn call + ([22482](https://github.com/civicrm/civicrm-core/pull/22482))** + +- **[test] - Add test coverage for adjusting custom group weights + ([22512](https://github.com/civicrm/civicrm-core/pull/22512))** + +- **Fix testMultipleMembershipsContribution to use order api + ([22274](https://github.com/civicrm/civicrm-core/pull/22274))** + +- **Port test form earlier PR + ([22502](https://github.com/civicrm/civicrm-core/pull/22502))** + +- **Test for APIv4 contact delete bug + ([dev/core#2757](https://lab.civicrm.org/dev/core/-/issues/2757): + [22458](https://github.com/civicrm/civicrm-core/pull/22458))** ## Credits This release was developed by the following code authors: -AGH Strategies - Andie Hunt; Agileware - Francis Whittle, Justin Freeman; BrightMinded Ltd - Bradley Taylor; Christian Wach; CiviCoop - Klaas Eikelboom; CiviCRM - Coleman Watts, Tim Otten; CiviDesk - Yashodha Chaku; Coop SymbioTIC - Mathieu Lutfy; Dave D; dependabot[bot]; Freeform Solutions - Herb van den Dool; Jens Schuppe; JMA Consulting - Seamus Lee; Joinery - Allen Shaw; Lemniscus - Noah Miller; Megaphone Technology Consulting - Jon Goldberg; MJW Consulting - Matthew Wire; PERORA SRL - Samuele Masetto; Registered Nurses' Association of Ontario - Ian Wilson; Romain Thouvenin; Skvare - Sunil Pawar; Third Sector Design - Kurund Jalmi; Wikimedia Foundation - Eileen McNaughton +AGH Strategies - Andie Hunt; Agileware - Francis Whittle, Justin Freeman; +BrightMinded Ltd - Bradley Taylor; Christian Wach; CiviCoop - Klaas Eikelboom; +CiviCRM - Coleman Watts, Tim Otten; CiviDesk - Yashodha Chaku; Coop SymbioTIC - +Mathieu Lutfy; Dave D; Freeform Solutions - Herb van den Dool; Jens Schuppe; JMA +Consulting - Seamus Lee; Joinery - Allen Shaw; Lemniscus - Noah Miller; +Megaphone Technology Consulting - Jon Goldberg; MJW Consulting - Matthew Wire; +PERORA SRL - Samuele Masetto; Registered Nurses' Association of Ontario - Ian +Wilson; Romain Thouvenin; Skvare - Sunil Pawar; Third Sector Design - Kurund +Jalmi; Wikimedia Foundation - Eileen McNaughton Most authors also reviewed code for this release; in addition, the following reviewers contributed their comments: -Agileware - Francis Whittle, Justin Freeman; Andy Burns; Artful Robot - Rich Lott; Betty Dolfing; Blackfly Solutions - Alan Dixon; BrightMinded Ltd - Bradley Taylor; Circle Interactive - Pradeep Nayak; civibot[bot]; CiviCoop - Jaap Jansma, Klaas Eikelboom; CiviCRM - Coleman Watts, Tim Otten; CiviDesk - Yashodha Chaku; Coop SymbioTIC - Mathieu Lutfy, Shane Bill; Dave D; Freeform Solutions - Herb van den Dool; Fuzion - Luke Stewart; in2part; Jens Schuppe; JMA Consulting - Joe Murray, Monish Deb, Seamus Lee; Joinery - Allen Shaw; Korlon - Stuart Gaston; Lemniscus - Noah Miller; Megaphone Technology Consulting - Jon Goldberg; Mikey O'Toole; MJW Consulting - Matthew Wire; pboling; PERORA SRL - Samuele Masetto; Skvare - Sunil Pawar; Tadpole Collective - Kevin Cristiano; Third Sector Design - Kurund Jalmi; Wikimedia Foundation - Eileen McNaughton; Wildsight - Lars Sanders-Green +Andy Burns; Artful Robot - Rich Lott; Betty Dolfing; Blackfly Solutions - Alan +Dixon; Circle Interactive - Pradeep Nayak; CiviCoop - Jaap Jansma; Coop +SymbioTIC - Shane Bill; Fuzion - Luke Stewart; in2part; JMA Consulting - Joe +Murray, Monish Deb; Korlon - Stuart Gaston; Mikey O'Toole; Peter Boling; Tadpole +Collective - Kevin Cristiano; Wildsight - Lars Sanders-Green