| 1 | # CiviCRM 5.32.0 |
| 2 | |
| 3 | Released December 2, 2020 |
| 4 | |
| 5 | - **[Synopsis](#synopsis)** |
| 6 | - **[Features](#features)** |
| 7 | - **[Bugs resolved](#bugs)** |
| 8 | - **[Miscellany](#misc)** |
| 9 | - **[Credits](#credits)** |
| 10 | - **[Feedback](#feedback)** |
| 11 | |
| 12 | ## <a name="synopsis"></a>Synopsis |
| 13 | |
| 14 | | *Does this version...?* | | |
| 15 | |:--------------------------------------------------------------- |:-------:| |
| 16 | | Fix security vulnerabilities? | no | |
| 17 | | **Change the database schema?** | **yes** | |
| 18 | | **Alter the API?** | **yes** | |
| 19 | | Require attention to configuration options? | no | |
| 20 | | **Fix problems installing or upgrading to a previous version?** | **yes** | |
| 21 | | **Introduce features?** | **yes** | |
| 22 | | **Fix bugs?** | **yes** | |
| 23 | |
| 24 | ## <a name="features"></a>Features |
| 25 | |
| 26 | ### Core CiviCRM |
| 27 | |
| 28 | - **Display public title and description on profiles and unsubscribe/subscribe |
| 29 | forms as appropriate if set |
| 30 | ([18645](https://github.com/civicrm/civicrm-core/pull/18645))** |
| 31 | |
| 32 | Starts to make use of the new front end title and description fields on |
| 33 | unsubscribe, subscribe and user dashboard pages. |
| 34 | |
| 35 | - **Allow custom fields of type Autocomplete-Select to be multivalued |
| 36 | ([18449](https://github.com/civicrm/civicrm-core/pull/18449))** |
| 37 | |
| 38 | Adds support for multi-select for auto-complete custom fields. |
| 39 | |
| 40 | - **Add more columns for Activity Report (Work towards |
| 41 | [dev/core#2104](https://lab.civicrm.org/dev/core/-/issues/2104): |
| 42 | [18827](https://github.com/civicrm/civicrm-core/pull/18827) and |
| 43 | [18840](https://github.com/civicrm/civicrm-core/pull/18840))** |
| 44 | |
| 45 | Improves the Activity Report by adding columns for: |
| 46 | - Birth Date of the target contact |
| 47 | - Gender of the target contact |
| 48 | |
| 49 | - **More accurate language around social media sharing |
| 50 | ([18743](https://github.com/civicrm/civicrm-core/pull/18743))** |
| 51 | |
| 52 | Improves user experience by clarifying language around social media sharing. |
| 53 | |
| 54 | - **Adds performance improvement when browsing the report logs |
| 55 | ([18851](https://github.com/civicrm/civicrm-core/pull/18851))** |
| 56 | |
| 57 | Improves performance when browsing the logs. |
| 58 | |
| 59 | - **Clean up search actions in core to make them available from search builder |
| 60 | (Work Towards [dev/core#2066](https://lab.civicrm.org/dev/core/-/issues/2066): |
| 61 | [18773](https://github.com/civicrm/civicrm-core/pull/18773), |
| 62 | [18783](https://github.com/civicrm/civicrm-core/pull/18783), |
| 63 | [18768](https://github.com/civicrm/civicrm-core/pull/18768) and |
| 64 | [18767](https://github.com/civicrm/civicrm-core/pull/18767))** |
| 65 | |
| 66 | Preliminary cleanup of code to move towards making search actions available |
| 67 | from search builder. |
| 68 | |
| 69 | - **Search Kit: Lotsa new features |
| 70 | ([18876](https://github.com/civicrm/civicrm-core/pull/18876))** |
| 71 | |
| 72 | Integrates Search Kit/Afform. Adds a standalone page for viewing search kit |
| 73 | displays. Adds first search kit display type "table". Adds search kit display |
| 74 | entity and UI. Adds CRUD form for managing saved search kit searches. |
| 75 | |
| 76 | - **Search Kit: Add links to search admin and improve links in displays |
| 77 | ([18909](https://github.com/civicrm/civicrm-core/pull/18909))** |
| 78 | |
| 79 | Improves links in search kit results. |
| 80 | |
| 81 | - **Search Kit: Bind parameters to URL |
| 82 | ([#18976](https://github.com/civicrm/civicrm-core/pull/18976))** |
| 83 | |
| 84 | - **Search Kit: Add "List" display. Fix other bugs. |
| 85 | ([#18999](https://github.com/civicrm/civicrm-core/pull/18999))** |
| 86 | |
| 87 | - **Search Kit: Improve options in "List" search display |
| 88 | ([19031](https://github.com/civicrm/civicrm-core/pull/19031/files))** |
| 89 | |
| 90 | - **SavedSearch - Add name and label columns |
| 91 | ([18809](https://github.com/civicrm/civicrm-core/pull/18809))** |
| 92 | |
| 93 | Adds 2 database columns: `name` and `label` for the SavedSearch entity. This |
| 94 | is needed by the new Search Kit extension. |
| 95 | |
| 96 | - **Add entity paths to schema & APIv4 |
| 97 | ([18887](https://github.com/civicrm/civicrm-core/pull/18887))** |
| 98 | |
| 99 | Adds metadata to some entities (hopefully more will be added in the |
| 100 | future) for the paths at which they can be created/updated/viewed/deleted. The |
| 101 | metadata is accessed via the DAO, and exposed to APIv4. |
| 102 | |
| 103 | - **Use standard names for entity paths and add a few more paths |
| 104 | ([18915](https://github.com/civicrm/civicrm-core/pull/18915))** |
| 105 | |
| 106 | Standardizes entity paths. |
| 107 | |
| 108 | - **APIv4 - Add `$result->single()` helper |
| 109 | ([18871](https://github.com/civicrm/civicrm-core/pull/18871))** |
| 110 | |
| 111 | Improves developer-experience when using APIv4 by adding a helper function to |
| 112 | retrieve just one result. |
| 113 | |
| 114 | - **Update CRM_Utils_Constant::value to support env variables |
| 115 | ([18806](https://github.com/civicrm/civicrm-core/pull/18806))** |
| 116 | |
| 117 | Extends the ability to set a variable using env to any variable accessed via |
| 118 | CRM_Utils_Constant::value. |
| 119 | |
| 120 | - **Angular Loader: Allow modules to specify permissions to add client-side |
| 121 | ([18754](https://github.com/civicrm/civicrm-core/pull/18754))** |
| 122 | |
| 123 | Makes it possible for angular modules to define permissions. |
| 124 | |
| 125 | - **AngularLoader: Support 'settingsFactory' callbacks in angular modules. |
| 126 | ([18731](https://github.com/civicrm/civicrm-core/pull/18731))** |
| 127 | |
| 128 | Allows Angular modules with complex/expensive data to provide it with a |
| 129 | callback, which will only be invoked if the module is actively loaded on the |
| 130 | page. |
| 131 | |
| 132 | ### CiviContribute |
| 133 | |
| 134 | - **Use of <th> tags for labels on Contribution Amounts tab gives them unique |
| 135 | styling |
| 136 | ([dev/user-interface#34](https://lab.civicrm.org/dev/user-interface/-/issues/34): |
| 137 | [18850](https://github.com/civicrm/civicrm-core/pull/18850))** |
| 138 | |
| 139 | Makes the look and feel when configuring Contribution Forms more consistent. |
| 140 | |
| 141 | - **[Meta] Does CiviCRM have a single defined application HTTP entry point which |
| 142 | routes all requests? |
| 143 | (Work Towards [dev/cloud-native#16](https://lab.civicrm.org/dev/cloud-native/-/issues/16): |
| 144 | [17969](https://github.com/civicrm/civicrm-core/pull/17969))** |
| 145 | |
| 146 | Migrates the Contribution Page widget extern url to use the normal CMS routing |
| 147 | mechanism. |
| 148 | |
| 149 | - **Add UI metadata for payment_processor_id on financialTrxn |
| 150 | ([18917](https://github.com/civicrm/civicrm-core/pull/18917))** |
| 151 | |
| 152 | Improve metadata for `financialTrxn`. |
| 153 | |
| 154 | ### CiviMail |
| 155 | |
| 156 | - **OAuth2 Client ([dev/core#2141](https://lab.civicrm.org/dev/core/-/issues/2141): |
| 157 | [18902](https://github.com/civicrm/civicrm-core/pull/18902), |
| 158 | [18914](https://github.com/civicrm/civicrm-core/pull/18914), |
| 159 | [18885](https://github.com/civicrm/civicrm-core/pull/18885), |
| 160 | [18908](https://github.com/civicrm/civicrm-core/pull/18908), |
| 161 | [18943](https://github.com/civicrm/civicrm-core/pull/18943), |
| 162 | [18955](https://github.com/civicrm/civicrm-core/pull/18955), |
| 163 | [18951](https://github.com/civicrm/civicrm-core/pull/18951), and |
| 164 | [19001](https://github.com/civicrm/civicrm-core/pull/19001))** |
| 165 | |
| 166 | Adds a new hook `hook_civicrm_alterMailStore` which can be used to add or |
| 167 | modify a driver. Adds a hidden `oauth-client` extension for connecting to |
| 168 | OAuth2-based-web-services. Adds a UI to "Add Mail Account". Adds two |
| 169 | libraries: "league/oauth2-client" and "league/oauth2-google". |
| 170 | |
| 171 | - **MailSettings - Add button+API for testing a connection |
| 172 | ([18911](https://github.com/civicrm/civicrm-core/pull/18911))** |
| 173 | |
| 174 | Adds a button (and API action) to the Edit Mail Account form to test the |
| 175 | connection. |
| 176 | |
| 177 | - **Add postProcess hook to MessageTemplates |
| 178 | ([18807](https://github.com/civicrm/civicrm-core/pull/18807))** |
| 179 | |
| 180 | Makes it so extension developers can use the 'postProcess' hook to access |
| 181 | 'MessageTemplates'. |
| 182 | |
| 183 | ### WordPress Integration |
| 184 | |
| 185 | - **MySQL socket while using CiviCRM installer |
| 186 | ([dev/wordpress#35](https://lab.civicrm.org/dev/wordpress/-/issues/35): |
| 187 | [18913](https://github.com/civicrm/civicrm-core/pull/18913))** |
| 188 | |
| 189 | Ensures `civicrm-setup` can handle database connections with unix sockets. |
| 190 | |
| 191 | ## <a name="bugs"></a>Bugs resolved |
| 192 | |
| 193 | ### Core CiviCRM |
| 194 | |
| 195 | - **Fix main contact uf url on merge screen |
| 196 | ([18742](https://github.com/civicrm/civicrm-core/pull/18742))** |
| 197 | |
| 198 | Ensures the UF url of the main contact on the merge screen points to the |
| 199 | correct user. |
| 200 | |
| 201 | - **Fix sendconfirmation api to override receipt params |
| 202 | ([18789](https://github.com/civicrm/civicrm-core/pull/18789))** |
| 203 | |
| 204 | Ensures params in `sendconfirmation` API take precedence over receipt params. |
| 205 | |
| 206 | - **"Non-static method CRM_Contact_Page_AJAX::pdfFormat() should not be called |
| 207 | statically" when changing the page format on print/merge document |
| 208 | ([dev/core#2110](https://lab.civicrm.org/dev/core/-/issues/2110): |
| 209 | [18726](https://github.com/civicrm/civicrm-core/pull/18726))** |
| 210 | |
| 211 | Fixes notices when generating PDFs. |
| 212 | |
| 213 | - **updated italian provinces |
| 214 | ([18859](https://github.com/civicrm/civicrm-core/pull/18859))** |
| 215 | |
| 216 | Ensures that the right abbreviations are used for Italian provinces. |
| 217 | |
| 218 | - **APIv4 Activity::update() causes target contacts and assignees to be deleted |
| 219 | ([dev/core#1428](https://lab.civicrm.org/dev/core/-/issues/1428): |
| 220 | [18720](https://github.com/civicrm/civicrm-core/pull/18720))** |
| 221 | |
| 222 | Adds a test. |
| 223 | |
| 224 | - **APIv4 - Fix type coersion of non-string input |
| 225 | ([18860](https://github.com/civicrm/civicrm-core/pull/18860))** |
| 226 | |
| 227 | Fixes APIv4 to not accidentally change non-string input to string. |
| 228 | |
| 229 | - **Participant Calculate/Fees: fix ts usage, simplify wording |
| 230 | ([18874](https://github.com/civicrm/civicrm-core/pull/18874))** |
| 231 | |
| 232 | Fixes an incorrect use of ts, which assumes how strings can be concatenated. |
| 233 | It also makes it difficult to use Word Replacements. |
| 234 | |
| 235 | - **Cancel first contribution associated to membership, cancels the membership |
| 236 | ([dev/core#927](https://lab.civicrm.org/dev/core/-/issues/927): |
| 237 | [18814](https://github.com/civicrm/civicrm-core/pull/18814), |
| 238 | [18812](https://github.com/civicrm/civicrm-core/pull/18812), |
| 239 | [18853](https://github.com/civicrm/civicrm-core/pull/18853), |
| 240 | [18786](https://github.com/civicrm/civicrm-core/pull/18786), |
| 241 | [18881](https://github.com/civicrm/civicrm-core/pull/18881), |
| 242 | [18813](https://github.com/civicrm/civicrm-core/pull/18813) and |
| 243 | [18784](https://github.com/civicrm/civicrm-core/pull/18784))** |
| 244 | |
| 245 | - **When default changed for an alphanumeric multi-select custom field |
| 246 | defaulting breaks for that field on backend |
| 247 | forms.([dev/core#2139](https://lab.civicrm.org/dev/core/-/issues/2139): |
| 248 | [18907](https://github.com/civicrm/civicrm-core/pull/18907))** |
| 249 | |
| 250 | - **Long cyrillic names give error Data too long for column sort_name when |
| 251 | saving a contact |
| 252 | ([dev/core#2146](https://lab.civicrm.org/dev/core/-/issues/2146): |
| 253 | [18862](https://github.com/civicrm/civicrm-core/pull/18862))** |
| 254 | |
| 255 | - **Incorrect use of quotes and escape and ts in CRM_Core_DAO::copyValues |
| 256 | ([dev/core#2148](https://lab.civicrm.org/dev/core/-/issues/2148): |
| 257 | [18864](https://github.com/civicrm/civicrm-core/pull/18864))** |
| 258 | |
| 259 | - **CiviCRM reCAPTCHA Util not validating user tokens on form submission |
| 260 | ([dev/core#2150](https://lab.civicrm.org/dev/core/-/issues/2150): |
| 261 | [18872](https://github.com/civicrm/civicrm-core/pull/18872) and |
| 262 | [311](https://github.com/civicrm/civicrm-packages/pull/311))** |
| 263 | |
| 264 | - **Fix the Test Result (1 failure / -190) |
| 265 | E2E.Core.PrevNextTest.testDeleteByCacheKey recurring test issue |
| 266 | ([dev/core#2029](https://lab.civicrm.org/dev/core/-/issues/2029): |
| 267 | [18846](https://github.com/civicrm/civicrm-core/pull/18846))** |
| 268 | |
| 269 | - **Merge - ensure location entities remaining on deleted contacts have |
| 270 | is_primary integrity |
| 271 | ([dev/core#2047](https://lab.civicrm.org/dev/core/-/issues/2047): |
| 272 | [18555](https://github.com/civicrm/civicrm-core/pull/18555))** |
| 273 | |
| 274 | - **Eliminate unused query on CRM_Core_BAO_CustomQuery::_construct |
| 275 | ([dev/core#2079](https://lab.civicrm.org/dev/core/-/issues/2079): |
| 276 | [18668](https://github.com/civicrm/civicrm-core/pull/18668))** |
| 277 | |
| 278 | - **get log date from tables available in query with data instead of last table |
| 279 | ([18868](https://github.com/civicrm/civicrm-core/pull/18868))** |
| 280 | |
| 281 | - **Search ext: Fix validation and saving on search admin screen |
| 282 | ([18919](https://github.com/civicrm/civicrm-core/pull/18919))** |
| 283 | |
| 284 | - **CRM_Core_Error::formatFooException - Don't bomb on 'Error' |
| 285 | ([18910](https://github.com/civicrm/civicrm-core/pull/18910))** |
| 286 | |
| 287 | - **ClassLoader - Fix autoloading of `API_Exception` |
| 288 | ([18870](https://github.com/civicrm/civicrm-core/pull/18870))** |
| 289 | |
| 290 | - **SavedSearch: add UI_name index to upgrade script |
| 291 | ([18811](https://github.com/civicrm/civicrm-core/pull/18811))** |
| 292 | |
| 293 | - **Fix pluralize function for words like 'display' |
| 294 | ([18778](https://github.com/civicrm/civicrm-core/pull/18778))** |
| 295 | |
| 296 | - **class.api.php: In remote api calls, allow referer and useragent to be set. |
| 297 | ([18400](https://github.com/civicrm/civicrm-core/pull/18400))** |
| 298 | |
| 299 | - **Typo in call to fixSchemaDifferencesForAll |
| 300 | ([18762](https://github.com/civicrm/civicrm-core/pull/18762))** |
| 301 | |
| 302 | - **Rationalise date formatting |
| 303 | ([18805](https://github.com/civicrm/civicrm-core/pull/18805))** |
| 304 | |
| 305 | - **Fix filter for users who have permission "view deleted contacts" |
| 306 | ([19088](https://github.com/civicrm/civicrm-core/pull/19088))** |
| 307 | |
| 308 | |
| 309 | ### CiviCampaign |
| 310 | |
| 311 | - **Fix campaign_id handling for batch entry |
| 312 | ([18792](https://github.com/civicrm/civicrm-core/pull/18792))** |
| 313 | |
| 314 | Fixes a bug whereby `campaign_id` is not updated on batch entry if it has been |
| 315 | added to the profile. |
| 316 | |
| 317 | ### CiviCase |
| 318 | |
| 319 | - **Merging contacts removes case roles |
| 320 | ([dev/core#2152](https://lab.civicrm.org/dev/core/-/issues/2152): |
| 321 | [18884](https://github.com/civicrm/civicrm-core/pull/18884))** |
| 322 | |
| 323 | - **Fix deprecation notice |
| 324 | ([dev/core#2205](https://lab.civicrm.org/dev/core/-/issues/2205): [#19018](https://github.com/civicrm/civicrm-core/pull/19018))** |
| 325 | |
| 326 | ### CiviContribute |
| 327 | |
| 328 | - **finish 'this round' of completeOrder cleanup |
| 329 | ([dev/financial#152](https://lab.civicrm.org/dev/financial/-/issues/152): |
| 330 | [18631](https://github.com/civicrm/civicrm-core/pull/18631), |
| 331 | [18734](https://github.com/civicrm/civicrm-core/pull/18734), |
| 332 | [18732](https://github.com/civicrm/civicrm-core/pull/18732), |
| 333 | [18733](https://github.com/civicrm/civicrm-core/pull/18733), |
| 334 | [18728](https://github.com/civicrm/civicrm-core/pull/18728), |
| 335 | [18629](https://github.com/civicrm/civicrm-core/pull/18629), |
| 336 | [18835](https://github.com/civicrm/civicrm-core/pull/18835), |
| 337 | [18730](https://github.com/civicrm/civicrm-core/pull/18730), |
| 338 | [18729](https://github.com/civicrm/civicrm-core/pull/18729). |
| 339 | [18737](https://github.com/civicrm/civicrm-core/pull/18737), |
| 340 | [18735](https://github.com/civicrm/civicrm-core/pull/18735), |
| 341 | [18744](https://github.com/civicrm/civicrm-core/pull/18744), |
| 342 | [18736](https://github.com/civicrm/civicrm-core/pull/18736) and |
| 343 | [18815](https://github.com/civicrm/civicrm-core/pull/18815))** |
| 344 | |
| 345 | Cleans up how `completeOrder` deals with `payment_processor_id` (solely as an |
| 346 | input param). |
| 347 | |
| 348 | - **Thank-you letter incorrect contribution currency |
| 349 | ([dev/financial#111](https://lab.civicrm.org/dev/financial/-/issues/111): |
| 350 | [18714](https://github.com/civicrm/civicrm-core/pull/18714) and |
| 351 | [18715](https://github.com/civicrm/civicrm-core/pull/18715))** |
| 352 | |
| 353 | Ensures that when a contribution is made using a currency other than the |
| 354 | default currency, the contribution tokens: {contribution.total_amount} |
| 355 | {contribution.fee_amount} {contribution.net_amount} correctly display the |
| 356 | currency. |
| 357 | |
| 358 | - **PayPal payment processor uses deprecated methods, breaking functionality |
| 359 | (Work Towards [dev/core#2034](https://lab.civicrm.org/dev/core/-/issues/2034): |
| 360 | [18540](https://github.com/civicrm/civicrm-core/pull/18540))** |
| 361 | |
| 362 | Fixes the PayPal standard cancel url. |
| 363 | |
| 364 | - **Declare support for cancelRecurring in manual processor |
| 365 | ([18804](https://github.com/civicrm/civicrm-core/pull/18804))** |
| 366 | |
| 367 | Ensure that when no processor id is present the cancel form is loaded (as |
| 368 | opposed to the enable-disable form). |
| 369 | |
| 370 | - **Refund status not set correctly when cancelled_payment_id is set |
| 371 | ([dev/financial#156](https://lab.civicrm.org/dev/financial/-/issues/156): |
| 372 | [18930](https://github.com/civicrm/civicrm-core/pull/18930))** |
| 373 | |
| 374 | - **Contribution confirmation page should not display the name of payment |
| 375 | processor type ([17568](https://github.com/civicrm/civicrm-core/pull/17568))** |
| 376 | |
| 377 | - **PCP 'Your Message' should use WYSIWYG |
| 378 | ([18411](https://github.com/civicrm/civicrm-core/pull/18411))** |
| 379 | |
| 380 | - **Fix fatal error on "Edit Contribution" form |
| 381 | ([19091](https://github.com/civicrm/civicrm-core/pull/19091))** |
| 382 | |
| 383 | - **Fix product form such that it is possible to unselec duration unit, frequency unit |
| 384 | ([dev/drupal#148](https://lab.civicrm.org/dev/drupal/-/issues/148): [19084](https://github.com/civicrm/civicrm-core/pull/19084))** |
| 385 | |
| 386 | |
| 387 | ### CiviEvent |
| 388 | |
| 389 | - **.ical files not populating correctly for sites with ACL's configured for |
| 390 | events ([dev/core#1879](https://lab.civicrm.org/dev/core/-/issues/1879): |
| 391 | [18712](https://github.com/civicrm/civicrm-core/pull/18712))** |
| 392 | |
| 393 | ### CiviMail |
| 394 | |
| 395 | - **Set id after save for the mailing component in the postProcess |
| 396 | ([18808](https://github.com/civicrm/civicrm-core/pull/18808))** |
| 397 | |
| 398 | - **"Notice: Undefined index: domain" when deleting a mail account |
| 399 | ([dev/core#2166](https://lab.civicrm.org/dev/core/-/issues/2166): |
| 400 | [18927](https://github.com/civicrm/civicrm-core/pull/18927))** |
| 401 | |
| 402 | - **crmMailing - Only load Angular settings if they're needed |
| 403 | ([18749](https://github.com/civicrm/civicrm-core/pull/18749))** |
| 404 | |
| 405 | - **Error when changing "Location Type" |
| 406 | ([dev/core#2228](https://lab.civicrm.org/dev/core/-/issues/2228): [19092](https://github.com/civicrm/civicrm-core/pull/19092))** |
| 407 | |
| 408 | ### CiviSMS |
| 409 | |
| 410 | - **Error in the selected phone to send an SMS when the Mobile type label is |
| 411 | modified ([dev/core#2138](https://lab.civicrm.org/dev/core/-/issues/2138): |
| 412 | [18842](https://github.com/civicrm/civicrm-core/pull/18842))** |
| 413 | |
| 414 | - **Show only Active SMS provider List on Mass SMS form |
| 415 | ([18867](https://github.com/civicrm/civicrm-core/pull/18867))** |
| 416 | |
| 417 | ### Backdrop Integration |
| 418 | |
| 419 | - **Override sessionStart function and use backdrop functions as appropriate |
| 420 | (related to |
| 421 | [backdrop#116](https://github.com/civicrm/civicrm-backdrop/issues/116): |
| 422 | [18745](https://github.com/civicrm/civicrm-core/pull/18745))** |
| 423 | |
| 424 | Overrides the backdrop Session start function in DrupalBase.php to use the |
| 425 | backdrop specific functions |
| 426 | |
| 427 | - **Resolve #110 Sync repo with CiviCRM-Drupal repo |
| 428 | ([115](https://github.com/civicrm/civicrm-backdrop/pull/115))** |
| 429 | |
| 430 | ### Drupal Integration |
| 431 | |
| 432 | - **Do not manually construct the site path during Drupal8+ setup |
| 433 | ([dev/core#2140](https://lab.civicrm.org/dev/core/-/issues/2140): |
| 434 | [18843](https://github.com/civicrm/civicrm-core/pull/18843))** |
| 435 | |
| 436 | - **D8 Install checks run via Drupal Status Report - gives misleading warnings. |
| 437 | ([dev/drupal#137](https://lab.civicrm.org/dev/drupal/-/issues/137): |
| 438 | [18581](https://github.com/civicrm/civicrm-core/pull/18581))** |
| 439 | |
| 440 | ### Joomla Integration |
| 441 | |
| 442 | - **[Joomla 4.0] CiviCRM cannot be installed on Joomla 4.0 alpha |
| 443 | ([dev/joomla#14](https://lab.civicrm.org/dev/joomla/-/issues/14): |
| 444 | [52](https://github.com/civicrm/civicrm-joomla/pull/52))** |
| 445 | |
| 446 | ### Wordpress Integration |
| 447 | |
| 448 | - **Protect against undefined index query in heartbeat callback |
| 449 | ([220](https://github.com/civicrm/civicrm-wordpress/pull/220))** |
| 450 | |
| 451 | ## <a name="misc"></a>Miscellany |
| 452 | |
| 453 | - **_Composer Patches_: Update to v1.7.0. Support Composer v2. ([#18940](https://github.com/civicrm/civicrm-core/pull/18940))** |
| 454 | |
| 455 | - **Schema handler fixes |
| 456 | ([18932](https://github.com/civicrm/civicrm-core/pull/18932))** |
| 457 | |
| 458 | - **[cq] Do not pass by reference where avoidable |
| 459 | ([dev/core#2043](https://lab.civicrm.org/dev/core/-/issues/2043): |
| 460 | [18802](https://github.com/civicrm/civicrm-core/pull/18802))** |
| 461 | |
| 462 | - **Move financialACLs to a core extension (Work Towards |
| 463 | [dev/core#2115](https://lab.civicrm.org/dev/core/-/issues/2115): |
| 464 | [18738](https://github.com/civicrm/civicrm-core/pull/18738) and |
| 465 | [18740](https://github.com/civicrm/civicrm-core/pull/18740))** |
| 466 | |
| 467 | - **Move call to update related pledges on contribution cancel to extension |
| 468 | ([18894](https://github.com/civicrm/civicrm-core/pull/18894))** |
| 469 | |
| 470 | - **Move filtering of unpermitted options for reports/ search select to |
| 471 | financialacl extension |
| 472 | ([18849](https://github.com/civicrm/civicrm-core/pull/18849))** |
| 473 | |
| 474 | - **Move CRM_Member_BAO_MembershipType::getPermissionedMembershipTypes to |
| 475 | financial acl extension |
| 476 | ([18848](https://github.com/civicrm/civicrm-core/pull/18848))** |
| 477 | |
| 478 | - **Replace BAO calls with api calls in test class |
| 479 | ([18798](https://github.com/civicrm/civicrm-core/pull/18798))** |
| 480 | |
| 481 | - **Switch to calling api |
| 482 | ([18797](https://github.com/civicrm/civicrm-core/pull/18797))** |
| 483 | |
| 484 | - **Switch to calling the api |
| 485 | ([18796](https://github.com/civicrm/civicrm-core/pull/18796))** |
| 486 | |
| 487 | - **Extract setNextUrl |
| 488 | ([18750](https://github.com/civicrm/civicrm-core/pull/18750))** |
| 489 | |
| 490 | - **Deprecate hook_civicrm_crudLink |
| 491 | ([18888](https://github.com/civicrm/civicrm-core/pull/18888))** |
| 492 | |
| 493 | - **Fix extension generated DAO files to pass civilint |
| 494 | ([18879](https://github.com/civicrm/civicrm-core/pull/18879))** |
| 495 | |
| 496 | - **Hack away at false negative test fails |
| 497 | ([18892](https://github.com/civicrm/civicrm-core/pull/18892))** |
| 498 | |
| 499 | - **Search Kit - Fix search action button |
| 500 | ([19055](https://github.com/civicrm/civicrm-core/pull/19055))** |
| 501 | |
| 502 | - **Release Notes: Add 5.32.0 |
| 503 | ([#18958](https://github.com/civicrm/civicrm-core/pull/18958), [#18945](https://github.com/civicrm/civicrm-core/pull/18945))** |
| 504 | |
| 505 | - **Release Notes: Add 5.31.1 |
| 506 | ([#19029](https://github.com/civicrm/civicrm-core/pull/19029))** |
| 507 | |
| 508 | - **Remove always-true IF |
| 509 | ([18803](https://github.com/civicrm/civicrm-core/pull/18803))** |
| 510 | |
| 511 | - **Remove always true if |
| 512 | ([18801](https://github.com/civicrm/civicrm-core/pull/18801))** |
| 513 | |
| 514 | - **Remove always-true & otherwise silly if |
| 515 | ([18883](https://github.com/civicrm/civicrm-core/pull/18883))** |
| 516 | |
| 517 | - **Remove IPN reference to _relatedObjects, deprecate property |
| 518 | ([18895](https://github.com/civicrm/civicrm-core/pull/18895))** |
| 519 | |
| 520 | - **Remove deprecated code |
| 521 | ([18903](https://github.com/civicrm/civicrm-core/pull/18903))** |
| 522 | |
| 523 | - **Remove a few lines of deprecated code |
| 524 | ([18826](https://github.com/civicrm/civicrm-core/pull/18826))** |
| 525 | |
| 526 | - **Remove instances of variable variables |
| 527 | ([18791](https://github.com/civicrm/civicrm-core/pull/18791))** |
| 528 | |
| 529 | - **Remove meaningless legacy code |
| 530 | ([18856](https://github.com/civicrm/civicrm-core/pull/18856))** |
| 531 | |
| 532 | - **Refactor entityParams in Order.Create API so it is easier to |
| 533 | understand/modify |
| 534 | ([18306](https://github.com/civicrm/civicrm-core/pull/18306))** |
| 535 | |
| 536 | - **[REF] Minor simplification - don't use a variable for table name |
| 537 | ([18651](https://github.com/civicrm/civicrm-core/pull/18651))** |
| 538 | |
| 539 | - **[REF] Remove silly if |
| 540 | ([18897](https://github.com/civicrm/civicrm-core/pull/18897))** |
| 541 | |
| 542 | - **[Ref] Move sending the email back out of the recur function |
| 543 | ([18852](https://github.com/civicrm/civicrm-core/pull/18852))** |
| 544 | |
| 545 | - **[Ref] Use direct version of participant id |
| 546 | ([18882](https://github.com/civicrm/civicrm-core/pull/18882))** |
| 547 | |
| 548 | - **[Ref] Simplify params |
| 549 | ([18896](https://github.com/civicrm/civicrm-core/pull/18896))** |
| 550 | |
| 551 | - **[REF] Simplify use of shared code. |
| 552 | ([18900](https://github.com/civicrm/civicrm-core/pull/18900))** |
| 553 | |
| 554 | - **[REF] Minor extraction |
| 555 | ([18829](https://github.com/civicrm/civicrm-core/pull/18829))** |
| 556 | |
| 557 | - **[REF] Determine values where they are needed rather than passing them |
| 558 | around (in tested function) |
| 559 | ([18837](https://github.com/civicrm/civicrm-core/pull/18837))** |
| 560 | |
| 561 | - **[REF] Include contributioncancelactions extension in dismaker and reg… |
| 562 | ([18825](https://github.com/civicrm/civicrm-core/pull/18825))** |
| 563 | |
| 564 | - **[REF] Extract handling for loading contribution recur object. |
| 565 | ([18746](https://github.com/civicrm/civicrm-core/pull/18746))** |
| 566 | |
| 567 | - **[REF] Replace long if block with early return |
| 568 | ([18747](https://github.com/civicrm/civicrm-core/pull/18747))** |
| 569 | |
| 570 | - **[REF] Upgrade DomPDF to v0.8.6 |
| 571 | ([18688](https://github.com/civicrm/civicrm-core/pull/18688))** |
| 572 | |
| 573 | - **[REF] Separate export form classes out & simplify task handling |
| 574 | ([18589](https://github.com/civicrm/civicrm-core/pull/18589))** |
| 575 | |
| 576 | - **[REF] Search ext: Reorganize code into modules |
| 577 | ([18775](https://github.com/civicrm/civicrm-core/pull/18775))** |
| 578 | |
| 579 | - **[Ref] Minor code extraction |
| 580 | ([18739](https://github.com/civicrm/civicrm-core/pull/18739))** |
| 581 | |
| 582 | - **[Test] - Fix some tests to call API not BAO |
| 583 | ([18795](https://github.com/civicrm/civicrm-core/pull/18795))** |
| 584 | |
| 585 | - **[Test] Ensure all APIv4 entities have basic info |
| 586 | ([18727](https://github.com/civicrm/civicrm-core/pull/18727))** |
| 587 | |
| 588 | - **Test for event#43 |
| 589 | ([18761](https://github.com/civicrm/civicrm-core/pull/18761))** |
| 590 | |
| 591 | - **Add test for recurring links and clean up method of retrieving recurring |
| 592 | ([18790](https://github.com/civicrm/civicrm-core/pull/18790))** |
| 593 | |
| 594 | - **unit test for #18306 - order create api test for contribution |
| 595 | ([18785](https://github.com/civicrm/civicrm-core/pull/18785))** |
| 596 | |
| 597 | - **(NFC) Update cache/integration-tests |
| 598 | ([19076](https://github.com/civicrm/civicrm-core/pull/19076))** |
| 599 | |
| 600 | - **(NFC) Fix typo in Money valueFormat depretation warning |
| 601 | ([18886](https://github.com/civicrm/civicrm-core/pull/18886))** |
| 602 | |
| 603 | - **(NFC) Make assertions in PrevNextTest more skimmable |
| 604 | ([dev/core#2029](https://lab.civicrm.org/dev/core/-/issues/2029): |
| 605 | [18822](https://github.com/civicrm/civicrm-core/pull/18822))** |
| 606 | |
| 607 | ## <a name="credits"></a>Credits |
| 608 | |
| 609 | This release was developed by the following code authors: |
| 610 | |
| 611 | AGH Strategies - Alice Frumin, Andie Hunt; Agileware - Francis Whittle, Justin |
| 612 | Freeman, Pengyi Zhang; Andrew Thompson; Christian Wach; Circle Interactive - |
| 613 | Pradeep Nayak; CiviCoop - Jaap Jansma; CiviCRM - Coleman Watts, Tim Otten; |
| 614 | CiviDesk - Sunil Pawar, Yashodha Chaku; CiviFirst - John Kirk; CompuCorp - |
| 615 | Debarshi Bhaumik; Coop SymbioTIC - Mathieu Lutfy; Dave D; Diego Muñio; Freeform |
| 616 | Solutions - Herb van den Dool; Fuzion - Jitendra Purohit; iXiam - Luciano |
| 617 | Spiegel, Vangelis Pantazis; JMA Consulting - Monish Deb, Seamus Lee; John |
| 618 | Kingsnorth; Megaphone Technology Consulting - Jon Goldberg; mglaman; MJW |
| 619 | Consulting - Matthew Wire; Nicol Wistreich; PERORA SRL- Samuele Masetto; |
| 620 | Progressive Technology Project - Jamie McClelland; Richard van Oosterhout; |
| 621 | Squiffle Consulting - Aidan Saunders; Wikimedia Foundation - Eileen McNaughton |
| 622 | |
| 623 | Most authors also reviewed code for this release; in addition, the following |
| 624 | reviewers contributed their comments: |
| 625 | |
| 626 | Artful Robot - Rich Lott; Atomic Development - Max Tsero; Australian Greens - |
| 627 | John Twyman; Centarro - Matt Glaman; Fuzion - Luke Stewart; Greenpeace Central |
| 628 | and Eastern Europe - Patrick Figel; JMA Consulting - Joe Murray; jvos; |
| 629 | Lighthouse Consulting and Design - Brian Shaughnessy; Megaphone Technology |
| 630 | Consulting - Jon Goldberg; MJCO - Mikey O'Toole; Semper IT - Karin Gerritsen; |
| 631 | Tadpole Collective - Kevin Cristiano; |
| 632 | |
| 633 | ## <a name="feedback"></a>Feedback |
| 634 | |
| 635 | These release notes are edited by Alice Frumin and Andie Hunt. If you'd like |
| 636 | to provide feedback on them, please log in to https://chat.civicrm.org/civicrm |
| 637 | and contact `@agh1`. |