| 1 | # CiviCRM 5.37.0 |
| 2 | |
| 3 | Released May 5, 2021 |
| 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?** | **yes** | |
| 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 | - **Improve quicksearch result presentation to enable browser link functions |
| 29 | ([19779](https://github.com/civicrm/civicrm-core/pull/19779))** |
| 30 | |
| 31 | The results in the quick search in the menu bar now appear as actual links. |
| 32 | Clicking an item acts the same as before, but you can now ctrl-click or |
| 33 | right-click for advanced functions in your browser (such as to open the link |
| 34 | in a new tab or window). |
| 35 | |
| 36 | - **Add new super-duper-no-permissions-apply permission |
| 37 | ([19797](https://github.com/civicrm/civicrm-core/pull/19797))** |
| 38 | |
| 39 | A new permission, "Administer all of CiviCRM", is established as a super-duper |
| 40 | permission that implicitly has all other CiviCRM permissions. This is much |
| 41 | like how a Drupal user with the ID 1 has all permissions, even if they're not |
| 42 | individually granted. |
| 43 | |
| 44 | - **AngularJS - Allow loading multiple apps on a single page |
| 45 | ([19922](https://github.com/civicrm/civicrm-core/pull/19922))** |
| 46 | |
| 47 | Allows multiple Angular apps to run on a single page. For example, you |
| 48 | might display 2x Angular-based tabs, 3x Angular-based WP shortcodes, or 4x |
| 49 | Angular-based Drupal blocks. |
| 50 | |
| 51 | - **Support mobile devices on public forms |
| 52 | ([dev/user-interface#35](https://lab.civicrm.org/dev/user-interface/-/issues/35): |
| 53 | [19968](https://github.com/civicrm/civicrm-core/pull/19968))** |
| 54 | |
| 55 | Improves user experience for mobile users on public forms by making labels |
| 56 | appear above inputs on small screens. |
| 57 | |
| 58 | - **info.xml - Allow PSR-0 style class-loader declarations |
| 59 | ([19870](https://github.com/civicrm/civicrm-core/pull/19870))** |
| 60 | |
| 61 | Makes it so extensions may setup classloading in info.xml. |
| 62 | |
| 63 | - **We should not be auto-generating 5.xx.beta1.mysql.tpl files |
| 64 | ([dev/release#16](https://lab.civicrm.org/dev/release/-/issues/16): |
| 65 | [19743](https://github.com/civicrm/civicrm-core/pull/19743))** |
| 66 | |
| 67 | Makes it possible to skip upgrader increments which do not actually require DB |
| 68 | updates. |
| 69 | |
| 70 | - **Adjust weights on activity contact record types |
| 71 | ([dev/core#2442](https://lab.civicrm.org/dev/core/-/issues/2442): |
| 72 | [19992](https://github.com/civicrm/civicrm-core/pull/19992) and |
| 73 | [19987](https://github.com/civicrm/civicrm-core/pull/19987))** |
| 74 | |
| 75 | Improves user experience by making the default Activity Contact Record type |
| 76 | "Activity Target". |
| 77 | |
| 78 | - **The mailings screen is very slow to load when there are many campaigns in |
| 79 | the database ([dev/core#2451](https://lab.civicrm.org/dev/core/-/issues/2451): |
| 80 | [19766](https://github.com/civicrm/civicrm-core/pull/19766))** |
| 81 | |
| 82 | Improves processing of option groups in select2 elements. |
| 83 | |
| 84 | - **Reorganize contact summary template to support non-ajax tabs |
| 85 | ([19875](https://github.com/civicrm/civicrm-core/pull/19875))** |
| 86 | |
| 87 | Adds hook support for non-ajax contact summary tabs. |
| 88 | |
| 89 | - **Feature Request: API endpoint to trigger rebuild paths |
| 90 | ([dev/core#2458](https://lab.civicrm.org/dev/core/-/issues/2458): |
| 91 | [19795](https://github.com/civicrm/civicrm-core/pull/19795))** |
| 92 | |
| 93 | Adds an API to trigger rebuilding paths. |
| 94 | |
| 95 | - **Add job to cleanup acl_cache table, add setting to disable opportunistic |
| 96 | flushing ([dev/core#2477](https://lab.civicrm.org/dev/core/-/issues/2477): |
| 97 | [19930](https://github.com/civicrm/civicrm-core/pull/19930))** |
| 98 | |
| 99 | Adds a scheduled job to cleanup acl_cache table (like for smart groups). |
| 100 | |
| 101 | - **APIv4 entity parity |
| 102 | ([dev/core#2486](https://lab.civicrm.org/dev/core/-/issues/2486): |
| 103 | [19932](https://github.com/civicrm/civicrm-core/pull/19932), |
| 104 | [19933](https://github.com/civicrm/civicrm-core/pull/19933) and |
| 105 | [19931](https://github.com/civicrm/civicrm-core/pull/19931))** |
| 106 | |
| 107 | Moves towards APIv4 entity parity by adding the following entities: "Payment |
| 108 | Token", "Batch" and "Entity Financial trxn". |
| 109 | |
| 110 | - **APIv4 - Add CiviCase, CaseType, CaseContact entities |
| 111 | ([19907](https://github.com/civicrm/civicrm-core/pull/19907), followed up by |
| 112 | [dev/core#2573](https://lab.civicrm.org/dev/core/-/issues/2573): |
| 113 | [20174](https://github.com/civicrm/civicrm-core/pull/20174))** |
| 114 | |
| 115 | Adds support for CiviCase entities to APIv4. |
| 116 | |
| 117 | - **Add FinancialTrxn APIv4 |
| 118 | ([19918](https://github.com/civicrm/civicrm-core/pull/19918))** |
| 119 | |
| 120 | Adds support for FinancialTrxn to APIv4. |
| 121 | |
| 122 | - **Afform - Add submit actions (Work Towards |
| 123 | [dev/core#2522](https://lab.civicrm.org/dev/core/-/issues/2522): |
| 124 | [20018](https://github.com/civicrm/civicrm-core/pull/20018) and |
| 125 | [20147](https://github.com/civicrm/civicrm-core/pull/20147))** |
| 126 | |
| 127 | Adds in a submit handler and redirect after submit for afform. |
| 128 | |
| 129 | - **Add 'readonly' attribute to fields in schema |
| 130 | ([dev/core#2397](https://lab.civicrm.org/dev/core/-/issues/2397): |
| 131 | [19751](https://github.com/civicrm/civicrm-core/pull/19751) and |
| 132 | [19778](https://github.com/civicrm/civicrm-core/pull/19778))** |
| 133 | |
| 134 | Adds metadata to schema to tell SearchKit and Afform which fields are |
| 135 | appropriate to show to the user. |
| 136 | |
| 137 | - **SearchKit - Add "in-place edit" feature |
| 138 | ([19765](https://github.com/civicrm/civicrm-core/pull/19765))** |
| 139 | |
| 140 | Adds a new feature "in-place edit" to search displays. |
| 141 | |
| 142 | - **SearchKit - Exposed join filters |
| 143 | ([dev/core#2494](https://lab.civicrm.org/dev/core/-/issues/2494): |
| 144 | [19984](https://github.com/civicrm/civicrm-core/pull/19984))** |
| 145 | |
| 146 | Improves SearchKit generated SQL joins. |
| 147 | |
| 148 | - **SearchKit - Support implied operators in exposed search forms |
| 149 | ([19959](https://github.com/civicrm/civicrm-core/pull/19959))** |
| 150 | |
| 151 | Improves SearchKit by adding support for "Multi-Select" and "Search by range" |
| 152 | exposed filters. |
| 153 | |
| 154 | - **Expose mapping search task to Search Kit |
| 155 | ([19561](https://github.com/civicrm/civicrm-core/pull/19561))** |
| 156 | |
| 157 | Exposes Contact Mapping task to SearchKit. |
| 158 | |
| 159 | - **Add created_id & modified_id to civicrm_saved_search |
| 160 | ([dev/core#2422](https://lab.civicrm.org/dev/core/-/issues/2422): |
| 161 | [19892](https://github.com/civicrm/civicrm-core/pull/19892))** |
| 162 | |
| 163 | Adds created & modified info to SavedSearch listing in SearchKit. |
| 164 | |
| 165 | - **SearchKit - Include custom group title with custom field label |
| 166 | ([19856](https://github.com/civicrm/civicrm-core/pull/19856))** |
| 167 | |
| 168 | Adds Custom Group title when display custom fields. This makes it easier to |
| 169 | tell custom fields apart in SearchKit when they have similar names to core or |
| 170 | other custom fields. |
| 171 | |
| 172 | - **Afform GUI - Improve drag-n-drop and add link to edit search |
| 173 | ([19935](https://github.com/civicrm/civicrm-core/pull/19935))** |
| 174 | |
| 175 | This adds a few UI improvements to Afform, making drag-n-drop smoother and |
| 176 | adding a configuration option to edit saved searches. |
| 177 | |
| 178 | - **Afform - Add support for email tokens `{afform.myFormUrl}` |
| 179 | ([19660](https://github.com/civicrm/civicrm-core/pull/19660))** |
| 180 | |
| 181 | Adds support for Afform email tokens ex: "My public form (Full Hyperlink)" and |
| 182 | "My public form (URL)". |
| 183 | |
| 184 | - **Embed afforms & search displays on contact summary screen as blocks and tabs |
| 185 | ([19887](https://github.com/civicrm/civicrm-core/pull/19887))** |
| 186 | |
| 187 | Enables the creation of blocks and tabs on the contact summary screen, |
| 188 | using Afform & SearchKit. |
| 189 | |
| 190 | - **Phpunit 8 support - add void to setup |
| 191 | ([19974](https://github.com/civicrm/civicrm-core/pull/19974), |
| 192 | [19921](https://github.com/civicrm/civicrm-core/pull/19921), |
| 193 | [19898](https://github.com/civicrm/civicrm-core/pull/19898), |
| 194 | [19901](https://github.com/civicrm/civicrm-core/pull/19901), |
| 195 | [19905](https://github.com/civicrm/civicrm-core/pull/19905), |
| 196 | [19899](https://github.com/civicrm/civicrm-core/pull/19899), |
| 197 | [19925](https://github.com/civicrm/civicrm-core/pull/19925), |
| 198 | [19909](https://github.com/civicrm/civicrm-core/pull/19909) and |
| 199 | [19900](https://github.com/civicrm/civicrm-core/pull/19900))** |
| 200 | |
| 201 | Work towards supporting PHPunit8. |
| 202 | |
| 203 | - **Create reCAPTCHA core extension |
| 204 | ([19967](https://github.com/civicrm/civicrm-core/pull/19967))** |
| 205 | |
| 206 | Moves reCAPTCHA from core to a core extension. |
| 207 | |
| 208 | - **Include the timezone for date values in the Activity iCal |
| 209 | ([19770](https://github.com/civicrm/civicrm-core/pull/19770))** |
| 210 | |
| 211 | Ensures the timezone is specified for the start date value in the Activity |
| 212 | iCal. |
| 213 | |
| 214 | ### CiviContribute |
| 215 | |
| 216 | - **Add entity financial account bridge entity |
| 217 | ([19927](https://github.com/civicrm/civicrm-core/pull/19927))** |
| 218 | |
| 219 | Adds a new entity 'EntityFinancialAccount'. |
| 220 | |
| 221 | - **Enable translation for Contribution Ordinality options on Contribution |
| 222 | Detail Report ([19771](https://github.com/civicrm/civicrm-core/pull/19771))** |
| 223 | |
| 224 | Improves translation on the Contribution Detail Report. |
| 225 | |
| 226 | - **Enable translation for Contribution Ordinality options on Member |
| 227 | Contribution Detail Report |
| 228 | ([19772](https://github.com/civicrm/civicrm-core/pull/19772))** |
| 229 | |
| 230 | Improves translation on the Member Contribution Detail Report. |
| 231 | |
| 232 | ### CiviEvent |
| 233 | |
| 234 | - **Include the timezone for date values in the Event iCal |
| 235 | ([19762](https://github.com/civicrm/civicrm-core/pull/19762))** |
| 236 | |
| 237 | Ensures the timezone is specified for the start date value in the Event |
| 238 | iCal. |
| 239 | |
| 240 | ### CiviMail |
| 241 | |
| 242 | - **MessageTemplates - Convert token processing to use `TokenProcessor` |
| 243 | ([19550](https://github.com/civicrm/civicrm-core/pull/19550))** |
| 244 | |
| 245 | Improves token processing (resulting in some different token processing). |
| 246 | |
| 247 | - **Align most of the tokens in the `TokenProcessor` handling with the legacy |
| 248 | handling ([19806](https://github.com/civicrm/civicrm-core/pull/19806) and |
| 249 | [19863](https://github.com/civicrm/civicrm-core/pull/19863))** |
| 250 | |
| 251 | Aligns new token processing with legacy token processing handling and moves |
| 252 | towards deprecating the Mailing_BAO classes in favor of flexmailer. |
| 253 | |
| 254 | - **Upgrader - Display note about token formatting |
| 255 | ([19920](https://github.com/civicrm/civicrm-core/pull/19920))** |
| 256 | |
| 257 | Improves communications about tokens that may generate different output after |
| 258 | token processing changes made in this release. |
| 259 | |
| 260 | ### WordPress Integration |
| 261 | |
| 262 | - **Cannot create a WordPress account from the Contact record |
| 263 | ([dev/wordpress#82](https://lab.civicrm.org/dev/wordpress/-/issues/82): |
| 264 | [18982](https://github.com/civicrm/civicrm-core/pull/18982))** |
| 265 | |
| 266 | Adds support for creating WordPress accounts from the contact record. |
| 267 | |
| 268 | - **Afform - Support embedding forms via WP shortcodes. |
| 269 | ([19687](https://github.com/civicrm/civicrm-core/pull/19687))** |
| 270 | |
| 271 | Adds the ability to embed Afform forms using WordPress shortcodes. |
| 272 | |
| 273 | - **Allow shortcodes to be rendered without invoking Civi page |
| 274 | ([244](https://github.com/civicrm/civicrm-wordpress/pull/244))** |
| 275 | |
| 276 | Allows CiviCRM core and extensions to supply content for shortcodes without |
| 277 | rendering a page; they can simply implement civicrm_shortcode_get_markup and |
| 278 | return the content. |
| 279 | |
| 280 | ## <a name="bugs"></a>Bugs resolved |
| 281 | |
| 282 | ### Core CiviCRM |
| 283 | |
| 284 | - **Unable to send individual email with attachment and 3+ recipients |
| 285 | ([dev/core#2588](https://lab.civicrm.org/dev/core/-/issues/2588): [20222](https://github.com/civicrm/civicrm-core/pull/20222), [20227](https://github.com/civicrm/civicrm-core/pull/20227))** |
| 286 | |
| 287 | - **Search Kit terminology and help |
| 288 | ([dev/report#58](https://lab.civicrm.org/dev/report/-/issues/58): |
| 289 | [20033](https://github.com/civicrm/civicrm-core/pull/20033))** |
| 290 | |
| 291 | Renames 'Filters' to 'Having' in the SearchKit UI which is clearer for users |
| 292 | familiar with SQL terms. |
| 293 | |
| 294 | - **Address location type search errors when using a search profile |
| 295 | ([dev/report#59](https://lab.civicrm.org/dev/report/-/issues/59): |
| 296 | [19764](https://github.com/civicrm/civicrm-core/pull/19764))** |
| 297 | |
| 298 | Fixes a "DB Error: no such field" when using Advanced Search with a profile |
| 299 | used as a search view. |
| 300 | |
| 301 | - **civicrm_saved_search FK in civicrm_group should be ON DELETE CACSCADE |
| 302 | ([dev/core#1845](https://lab.civicrm.org/dev/core/-/issues/1845): |
| 303 | [19312](https://github.com/civicrm/civicrm-core/pull/19312))** |
| 304 | |
| 305 | Change FK on civicrm_group to delete the associated group if a saved search is |
| 306 | deleted. |
| 307 | |
| 308 | - **Schema - Add readonly to all fields in RelationshipCache entity |
| 309 | ([19908](https://github.com/civicrm/civicrm-core/pull/19908))** |
| 310 | |
| 311 | Ensures SearchKit understands that Relationship Cache fields are not editable. |
| 312 | |
| 313 | - **Skip UFField.field_name on singleValueAlter as flakey |
| 314 | ([19895](https://github.com/civicrm/civicrm-core/pull/19895))** |
| 315 | |
| 316 | Fixes a recurring test fail. |
| 317 | |
| 318 | - **Return from getACLRoles when contactID is not null |
| 319 | ([19871](https://github.com/civicrm/civicrm-core/pull/19871))** |
| 320 | |
| 321 | Code Cleanup. |
| 322 | |
| 323 | - **Add .clear class to break inline flow on social share footer |
| 324 | ([19829](https://github.com/civicrm/civicrm-core/pull/19829))** |
| 325 | |
| 326 | Fixes the display of the social share footer for some sites with front end |
| 327 | theme conflicts. |
| 328 | |
| 329 | - **Enable & do single field metadata conversion for defaultContactCountry |
| 330 | ([19697](https://github.com/civicrm/civicrm-core/pull/19697))** |
| 331 | |
| 332 | Ensures the template for defaultContactCountry uses metadata for the field. |
| 333 | |
| 334 | - **Activity contact is null challenge |
| 335 | ([dev/core#2438](https://lab.civicrm.org/dev/core/-/issues/2438): |
| 336 | [19825](https://github.com/civicrm/civicrm-core/pull/19825))** |
| 337 | |
| 338 | Fixes the ability to do "Without" conditions in SearchKit when a bridge table |
| 339 | is used (e.g. EntityTag or RelationshipCache). |
| 340 | |
| 341 | - **Northern Ireland / Wales counties are out of date |
| 342 | ([dev/core#2027](https://lab.civicrm.org/dev/core/-/issues/2027): |
| 343 | [19802](https://github.com/civicrm/civicrm-core/pull/19802))** |
| 344 | |
| 345 | Fix state/province abbreviation for Carmarthenshire. |
| 346 | |
| 347 | - **Add created_date column to the civicrm_note table |
| 348 | ([dev/core#2243](https://lab.civicrm.org/dev/core/-/issues/2243): |
| 349 | [19738](https://github.com/civicrm/civicrm-core/pull/19738))** |
| 350 | |
| 351 | Adds a created date to notes. |
| 352 | |
| 353 | - **SearchKit request - aggregate without group by |
| 354 | ([dev/core#2415](https://lab.civicrm.org/dev/core/-/issues/2415): |
| 355 | [19755](https://github.com/civicrm/civicrm-core/pull/19755))** |
| 356 | |
| 357 | Adds API support for aggregate without group by. |
| 358 | |
| 359 | - **Can't export link custom fields |
| 360 | ([dev/core#2466](https://lab.civicrm.org/dev/core/-/issues/2466): |
| 361 | [19839](https://github.com/civicrm/civicrm-core/pull/19839))** |
| 362 | |
| 363 | Ensures users can export custom fields of the type link with a length above |
| 364 | around 110 chars. |
| 365 | |
| 366 | - **Deprecated function Redis::delete() |
| 367 | ([dev/core#2468](https://lab.civicrm.org/dev/core/-/issues/2468): |
| 368 | [19830](https://github.com/civicrm/civicrm-core/pull/19830))** |
| 369 | |
| 370 | Removes deprecated function. |
| 371 | |
| 372 | - **(APIv3, APIv4) OptionValue.create and OptionValue.update: Setting the default |
| 373 | value (is_default=1) ignores domain ID |
| 374 | ([dev/core#2488](https://lab.civicrm.org/dev/core/-/issues/2488): |
| 375 | [19970](https://github.com/civicrm/civicrm-core/pull/19970))** |
| 376 | |
| 377 | Ensures when setting the default optionValue thru the API (versions 3 and 4) |
| 378 | the query is limited to the specified domain. |
| 379 | |
| 380 | - **Regression dedupe threshold |
| 381 | ([dev/core#2498](https://lab.civicrm.org/dev/core/-/issues/2498): |
| 382 | [20071](https://github.com/civicrm/civicrm-core/pull/20071))** |
| 383 | |
| 384 | Ensures dedupe rule threshold validation works correctly. |
| 385 | |
| 386 | - **SearchKit - Flush Angular cache when saving |
| 387 | ([20031](https://github.com/civicrm/civicrm-core/pull/20031))** |
| 388 | |
| 389 | Fixes caching issue for search displays embedded in Afforms (as pages, |
| 390 | dashlets, tabs, blocks, etc). |
| 391 | |
| 392 | - **APIv4 - Standardize generic entity name resolution |
| 393 | ([19889](https://github.com/civicrm/civicrm-core/pull/19889))** |
| 394 | |
| 395 | APIv4 code cleanup to enable the addition of a Case API. |
| 396 | |
| 397 | - **Upgrade error |
| 398 | ([dev/core#2528](https://lab.civicrm.org/dev/core/-/issues/2528): |
| 399 | [20066](https://github.com/civicrm/civicrm-core/pull/20066))** |
| 400 | |
| 401 | Fixes an `(errno: 121 "Duplicate key on write or update")` when upgrading from |
| 402 | 5.35 - 5.37. |
| 403 | |
| 404 | - **Exporting in localized civicrm crashes due to long translations in columns |
| 405 | T_Boolean ([dev/core#2164](https://lab.civicrm.org/dev/core/-/issues/2164): |
| 406 | [19963](https://github.com/civicrm/civicrm-core/pull/19963))** |
| 407 | |
| 408 | - **Scheduled Reminder fails to send if From Name includes comma |
| 409 | ([dev/core#2226](https://lab.civicrm.org/dev/core/-/issues/2226): |
| 410 | [19603](https://github.com/civicrm/civicrm-core/pull/19603))** |
| 411 | |
| 412 | - **The civicrm_alterReportVar hook is not working for contribute detail report |
| 413 | ([dev/core#2285](https://lab.civicrm.org/dev/core/-/issues/2285): |
| 414 | [19317](https://github.com/civicrm/civicrm-core/pull/19317))** |
| 415 | |
| 416 | - **Some API calls no longer give an error when e.g. a database error happens |
| 417 | ([dev/core#2364](https://lab.civicrm.org/dev/core/-/issues/2364): |
| 418 | [131](https://github.com/civicrm/civicrm-backdrop/pull/131))** |
| 419 | |
| 420 | - **PHP 7.4 - get_magic_quotes_gpc() deprecated in IDS_Monitor |
| 421 | ([dev/core#2366](https://lab.civicrm.org/dev/core/-/issues/2366): |
| 422 | [315](https://github.com/civicrm/civicrm-packages/pull/315) and |
| 423 | [19851](https://github.com/civicrm/civicrm-core/pull/19851))** |
| 424 | |
| 425 | - **Contact custom data date field not working in scheduled reminder |
| 426 | ([dev/core#2383](https://lab.civicrm.org/dev/core/-/issues/2383): |
| 427 | [19628](https://github.com/civicrm/civicrm-core/pull/19628))** |
| 428 | |
| 429 | - **Add hook support for Activity Contact ([dev/core#2390](dev/core#2390): |
| 430 | [19828](https://github.com/civicrm/civicrm-core/pull/19828))** |
| 431 | |
| 432 | - **Wrong event fee shown in CiviCRM |
| 433 | ([dev/core#2447](https://lab.civicrm.org/dev/core/-/issues/2447): |
| 434 | [19810](https://github.com/civicrm/civicrm-core/pull/19810))** |
| 435 | |
| 436 | - **Changing a custom field from multiple choice to Text breaks the API |
| 437 | ([dev/core#2459](https://lab.civicrm.org/dev/core/-/issues/2459): |
| 438 | [19794](https://github.com/civicrm/civicrm-core/pull/19794))** |
| 439 | |
| 440 | - **Boolean custom values can't be of type boolean |
| 441 | ([dev/core#2461](https://lab.civicrm.org/dev/core/-/issues/2461): |
| 442 | [19805](https://github.com/civicrm/civicrm-core/pull/19805))** |
| 443 | |
| 444 | - **Feature to file emails on multiple case ids provided in the url not working |
| 445 | ([dev/core#2463](https://lab.civicrm.org/dev/core/-/issues/2463): |
| 446 | [19873](https://github.com/civicrm/civicrm-core/pull/19873) and |
| 447 | [19826](https://github.com/civicrm/civicrm-core/pull/19826))** |
| 448 | |
| 449 | - **SearchBuilder: contact search for tags with child-tags broken when using '=' |
| 450 | operator ([dev/core#2502](https://lab.civicrm.org/dev/core/-/issues/2502): |
| 451 | [19961](https://github.com/civicrm/civicrm-core/pull/19961))** |
| 452 | |
| 453 | - **CiviReport does not localize custom fields of type Money |
| 454 | ([dev/core#2503](https://lab.civicrm.org/dev/core/-/issues/2503): |
| 455 | [19962](https://github.com/civicrm/civicrm-core/pull/19962))** |
| 456 | |
| 457 | - **SearchKit - remove extra irrelevant fields from bridge joins |
| 458 | ([19868](https://github.com/civicrm/civicrm-core/pull/19868))** |
| 459 | |
| 460 | - **SearchKit - Fix broken export action |
| 461 | ([20003](https://github.com/civicrm/civicrm-core/pull/20003))** |
| 462 | |
| 463 | - **SearchKit - remove unused smartGroup code |
| 464 | ([19752](https://github.com/civicrm/civicrm-core/pull/19752))** |
| 465 | |
| 466 | - **SearchKit - Refactor loading actions list & support custom fields for groups |
| 467 | ([19783](https://github.com/civicrm/civicrm-core/pull/19783))** |
| 468 | |
| 469 | - **APIv4 Explorer - Prevent long results from breaking layout |
| 470 | ([19853](https://github.com/civicrm/civicrm-core/pull/19853))** |
| 471 | |
| 472 | - **APIv4 - Code cleanup & improve links to @see annotations in Explorer |
| 473 | ([19798](https://github.com/civicrm/civicrm-core/pull/19798))** |
| 474 | |
| 475 | - **APIv4 Explorer - Fix layout in code tab |
| 476 | ([19734](https://github.com/civicrm/civicrm-core/pull/19734))** |
| 477 | |
| 478 | - **APIv4 - Prevent API adding default join conditions when it shouldn't |
| 479 | ([19993](https://github.com/civicrm/civicrm-core/pull/19993))** |
| 480 | |
| 481 | - **Fix APIv4 test sloppiness |
| 482 | ([19754](https://github.com/civicrm/civicrm-core/pull/19754))** |
| 483 | |
| 484 | - **APIv4 - Fix GetActions function to work with entityNames that don't match |
| 485 | className ([19896](https://github.com/civicrm/civicrm-core/pull/19896))** |
| 486 | |
| 487 | - **APIv4 - Add function to get API class name |
| 488 | ([19867](https://github.com/civicrm/civicrm-core/pull/19867))** |
| 489 | |
| 490 | - **Afform - Refresh assetBuilder when saving a form |
| 491 | ([19998](https://github.com/civicrm/civicrm-core/pull/19998))** |
| 492 | |
| 493 | - **Afform - Fix endless spinner on "New Search Display" dropdown |
| 494 | ([19997](https://github.com/civicrm/civicrm-core/pull/19997))** |
| 495 | |
| 496 | - **Fix issues with "Create User Record" process |
| 497 | ([20057](https://github.com/civicrm/civicrm-core/pull/20057))** |
| 498 | |
| 499 | - **Fix entity-ref search by id & update search prompt |
| 500 | ([20050](https://github.com/civicrm/civicrm-core/pull/20050))** |
| 501 | |
| 502 | - **Soft credit fails when membership is created using backend form |
| 503 | ([20025](https://github.com/civicrm/civicrm-core/pull/20025))** |
| 504 | |
| 505 | - **Rename 'Misc' menu item machine name to a safe string |
| 506 | ([19996](https://github.com/civicrm/civicrm-core/pull/19996))** |
| 507 | |
| 508 | - **replaceOrgTokens: Remove broken code |
| 509 | ([19543](https://github.com/civicrm/civicrm-core/pull/19543))** |
| 510 | |
| 511 | - **E-notice fix on serialized setting |
| 512 | ([19969](https://github.com/civicrm/civicrm-core/pull/19969))** |
| 513 | |
| 514 | - **Pledge - Fix re-calculation of payment dates |
| 515 | ([19990](https://github.com/civicrm/civicrm-core/pull/19990))** |
| 516 | |
| 517 | - **Fix scrollbars on fullscreen dashboard dashlet |
| 518 | ([19981](https://github.com/civicrm/civicrm-core/pull/19981))** |
| 519 | |
| 520 | - **Only call getGroupACLRoles if contactID is present |
| 521 | ([19894](https://github.com/civicrm/civicrm-core/pull/19894))** |
| 522 | |
| 523 | - **Stop passing html to crmMoney |
| 524 | ([19941](https://github.com/civicrm/civicrm-core/pull/19941))** |
| 525 | |
| 526 | - **Fix to avoid passing non-money to money::format |
| 527 | ([19940](https://github.com/civicrm/civicrm-core/pull/19940))** |
| 528 | |
| 529 | - **Fix ts() namespace in searchKit & afform extensions |
| 530 | ([19729](https://github.com/civicrm/civicrm-core/pull/19729))** |
| 531 | |
| 532 | - **Fix for dedupe error under some mysql configs |
| 533 | ([19818](https://github.com/civicrm/civicrm-core/pull/19818))** |
| 534 | |
| 535 | - **Fix loop ([19858](https://github.com/civicrm/civicrm-core/pull/19858))** |
| 536 | |
| 537 | - **Export UI - Only present "save mapping" button to permissioned users |
| 538 | ([19733](https://github.com/civicrm/civicrm-core/pull/19733))** |
| 539 | |
| 540 | - **Update SocialNetwork.tpl Twitter Intent URL |
| 541 | ([19724](https://github.com/civicrm/civicrm-core/pull/19724))** |
| 542 | |
| 543 | - **Prevent pages and metabox from loading until CiviCRM is installed |
| 544 | ([247](https://github.com/civicrm/civicrm-wordpress/pull/247))** |
| 545 | |
| 546 | - **Fix access permissions for sub-pages and "Quick Add" dashlet |
| 547 | ([245](https://github.com/civicrm/civicrm-wordpress/pull/245))** |
| 548 | |
| 549 | - **Non translatable fields in profile schema |
| 550 | ([dev/core#527](https://lab.civicrm.org/dev/core/-/issues/527): |
| 551 | [19937](https://github.com/civicrm/civicrm-core/pull/19937))** |
| 552 | |
| 553 | - **Merge Contacts fails when custom Contact Reference field allows Multi-Select |
| 554 | ([dev/core#2561](https://lab.civicrm.org/dev/core/-/issues/2561): |
| 555 | [20142](https://github.com/civicrm/civicrm-core/pull/20142))** |
| 556 | |
| 557 | - **Error: Undefined class constant 'MODE_CBC' in |
| 558 | `Civi\Crypto\PhpseclibCipherSuite->__construct()` |
| 559 | ([dev/core#2564](https://lab.civicrm.org/dev/core/-/issues/2564): |
| 560 | [20148](https://github.com/civicrm/civicrm-core/pull/20148))** |
| 561 | |
| 562 | - **SearchKit - Pass-thru permission checks from SearchDisplay::run to API.get |
| 563 | ([20186](https://github.com/civicrm/civicrm-core/pull/20186))** |
| 564 | |
| 565 | ### CiviCampaign |
| 566 | |
| 567 | - **On New Campaign form, placeholder text for status is weird |
| 568 | ([dev/core#2411](https://lab.civicrm.org/dev/core/-/issues/2411): |
| 569 | [19768](https://github.com/civicrm/civicrm-core/pull/19768))** |
| 570 | |
| 571 | - **Fix incorrect placeholder text on 'Create Campaign' form |
| 572 | ([19767](https://github.com/civicrm/civicrm-core/pull/19767))** |
| 573 | |
| 574 | ### CiviCase |
| 575 | |
| 576 | - **Civicase: Wrong Details in Change Custom Data Activity when filling an empty |
| 577 | field ([dev/core#2019](https://lab.civicrm.org/dev/core/-/issues/2019): |
| 578 | [19735](https://github.com/civicrm/civicrm-core/pull/19735) and |
| 579 | [19741](https://github.com/civicrm/civicrm-core/pull/19741))** |
| 580 | |
| 581 | Changing a case custom field from blank to something doesn't show properly |
| 582 | what changed. |
| 583 | |
| 584 | - **Activity Type and Case Type not being combined correctly in Advanced Search |
| 585 | ([dev/report#53](https://lab.civicrm.org/dev/report/-/issues/53): |
| 586 | [20009](https://github.com/civicrm/civicrm-core/pull/20009))** |
| 587 | |
| 588 | Allows SearchKit to search by and display cases with their activities. |
| 589 | |
| 590 | - **Investigate replacing civicase views with something that is not views |
| 591 | ([dev/core#2385](https://lab.civicrm.org/dev/core/-/issues/2385) and |
| 592 | [dev/core#2262](https://lab.civicrm.org/dev/core/-/issues/2262): |
| 593 | [19642](https://github.com/civicrm/civicrm-core/pull/19642))** |
| 594 | |
| 595 | ### CiviContribute |
| 596 | |
| 597 | - **Changing Payment Method on a Transaction causes fatal error |
| 598 | ([dev/core#2577](https://lab.civicrm.org/dev/core/-/issues/2577): |
| 599 | [20195](https://github.com/civicrm/civicrm-core/pull/20195))** |
| 600 | |
| 601 | - **Access Control by Financial Type permissioning does not cover |
| 602 | contribution_recur (Work Towards |
| 603 | [dev/core#2454](https://lab.civicrm.org/dev/core/-/issues/2454): |
| 604 | [19788](https://github.com/civicrm/civicrm-core/pull/19788))** |
| 605 | |
| 606 | Ensures Contribution Recur is properly permissioned. |
| 607 | |
| 608 | - **Warnings when saving a contribution with recognition date filled in |
| 609 | ([dev/financial#172](https://lab.civicrm.org/dev/financial/-/issues/172): |
| 610 | [19948](https://github.com/civicrm/civicrm-core/pull/19948))** |
| 611 | |
| 612 | Fixes warnings when saving a contribution with a recognition date. |
| 613 | |
| 614 | - **Contribution page creates a wrong amount and probably payment processor use |
| 615 | this wrong amount |
| 616 | ([dev/core#2449](https://lab.civicrm.org/dev/core/-/issues/2449): |
| 617 | [19807](https://github.com/civicrm/civicrm-core/pull/19807))** |
| 618 | |
| 619 | Ensures amounts are saved correcly when localization settings are changed. |
| 620 | |
| 621 | - **Activity contact is not updated when contribution contact is changed |
| 622 | ([dev/core#2450](https://lab.civicrm.org/dev/core/-/issues/2450): |
| 623 | [19820](https://github.com/civicrm/civicrm-core/pull/19820))** |
| 624 | |
| 625 | Ensures source/target activity contacts are updated whenever a contribution is |
| 626 | updated. |
| 627 | |
| 628 | - **Fix recurring contribution defaults |
| 629 | ([dev/core#2487](https://lab.civicrm.org/dev/core/-/issues/2487): |
| 630 | [19934](https://github.com/civicrm/civicrm-core/pull/19934))** |
| 631 | |
| 632 | Updates defaults for the civicrm_contribution_recur table to bring the API |
| 633 | behaviour closer to the user interface behavior. |
| 634 | |
| 635 | - **Simplify decision as to whether to use a PDF on emails |
| 636 | ([dev/financial#162](https://lab.civicrm.org/dev/financial/-/issues/162): |
| 637 | [19486](https://github.com/civicrm/civicrm-core/pull/19486))** |
| 638 | |
| 639 | - **Minor buttonrama issue with Cancel button after exporting financial batch |
| 640 | ([dev/financial#170](https://lab.civicrm.org/dev/financial/-/issues/170): |
| 641 | [19787](https://github.com/civicrm/civicrm-core/pull/19787))** |
| 642 | |
| 643 | - **False positive message about missing INTL PHP extension on membership type |
| 644 | form ([dev/financial#171](https://lab.civicrm.org/dev/financial/-/issues/171): |
| 645 | [19929](https://github.com/civicrm/civicrm-core/pull/19929), |
| 646 | [19958](https://github.com/civicrm/civicrm-core/pull/19958), |
| 647 | [19880](https://github.com/civicrm/civicrm-core/pull/19880), |
| 648 | [19876](https://github.com/civicrm/civicrm-core/pull/19876) and |
| 649 | [19938](https://github.com/civicrm/civicrm-core/pull/19938))** |
| 650 | |
| 651 | - **PHP 7.4 - E_NOTICE every time you save a contribution |
| 652 | ([dev/core#2425](https://lab.civicrm.org/dev/core/-/issues/2425): |
| 653 | [19978](https://github.com/civicrm/civicrm-core/pull/19978))** |
| 654 | |
| 655 | - **Payment balance should be cast to float, not int, when checking if a |
| 656 | contribution form should load |
| 657 | ([dev/core#2453](https://lab.civicrm.org/dev/core/-/issues/2453): |
| 658 | [19777](https://github.com/civicrm/civicrm-core/pull/19777))** |
| 659 | |
| 660 | - **CiviCRM 5.35.1, truncation of money values where $1,000 donation is recorded |
| 661 | as $1 which appears to be truncating at the thousand separator when using the |
| 662 | Australian (AU) and US Locale |
| 663 | ([dev/core#2493](https://lab.civicrm.org/dev/core/-/issues/2493): |
| 664 | [20040](https://github.com/civicrm/civicrm-core/pull/20040))** |
| 665 | |
| 666 | - **Fix re-calculation of payment dates on pledge |
| 667 | ([19976](https://github.com/civicrm/civicrm-core/pull/19976))** |
| 668 | |
| 669 | - **Donot over-ride total amount incase contribution has more than one line item |
| 670 | ([19951](https://github.com/civicrm/civicrm-core/pull/19951))** |
| 671 | |
| 672 | - **Only include completed contributions in the aggregate custom search |
| 673 | ([19936](https://github.com/civicrm/civicrm-core/pull/19936))** |
| 674 | |
| 675 | - **Set the `Other Amount` input in a price set to not autocomplete |
| 676 | ([19923](https://github.com/civicrm/civicrm-core/pull/19923))** |
| 677 | |
| 678 | - **Replace deprecated money_format() fn to support PHP 7.4 |
| 679 | ([dev/translation#65](https://lab.civicrm.org/dev/translation/-/issues/65) and |
| 680 | [dev/core#1494](https://lab.civicrm.org/dev/core/-/issues/1494): |
| 681 | [19753](https://github.com/civicrm/civicrm-core/pull/19753))** |
| 682 | |
| 683 | - **Remove text about email receipts for each recurring contribution. |
| 684 | ([dev/core#2384](https://lab.civicrm.org/dev/core/-/issues/2384): |
| 685 | [19624](https://github.com/civicrm/civicrm-core/pull/19624))** |
| 686 | |
| 687 | ### CiviEvent |
| 688 | |
| 689 | - **Price option reaches max amount causes critical error. |
| 690 | ([dev/event#53](https://lab.civicrm.org/dev/event/-/issues/53): |
| 691 | [20073](https://github.com/civicrm/civicrm-core/pull/20073))** |
| 692 | |
| 693 | Ensures that on registration forms sold out radio price options are frozen. |
| 694 | |
| 695 | - **Cannot "Transfer or Cancel" event participant as admin user |
| 696 | ([dev/event#54](https://lab.civicrm.org/dev/event/-/issues/54): |
| 697 | [20223](https://github.com/civicrm/civicrm-core/pull/20223))** |
| 698 | |
| 699 | ### CiviMail |
| 700 | |
| 701 | - **Remove addressee, email_greeting_id, postal_greeting_id from exposed tokens |
| 702 | ([19782](https://github.com/civicrm/civicrm-core/pull/19782))** |
| 703 | |
| 704 | Removes support for tokens that are likely to break and are redundant. |
| 705 | |
| 706 | - **[regression] CiviMail crashing on send instead of throwing exception when |
| 707 | using Job.execute |
| 708 | ([dev/mail#72](https://lab.civicrm.org/dev/mail/-/issues/72): |
| 709 | [18466](https://github.com/civicrm/civicrm-core/pull/18466))** |
| 710 | |
| 711 | ### CiviMember |
| 712 | |
| 713 | - **Backend Membership Renewal returns a fatal error when min fee is empty |
| 714 | ([dev/core#2583](https://lab.civicrm.org/dev/core/-/issues/2583): |
| 715 | [20212](https://github.com/civicrm/civicrm-core/pull/20212))** |
| 716 | |
| 717 | - **Selecting of price sets not working anymore |
| 718 | ([dev/core#2434](https://lab.civicrm.org/dev/core/-/issues/2434): |
| 719 | [20158](https://github.com/civicrm/civicrm-core/pull/20158))** |
| 720 | |
| 721 | The membership tab on the contribution page configuration form failed to |
| 722 | display the dropdown for choosing a price set. This problem was an unreleased |
| 723 | regression prior to 5.36.0 but this one form got missed when fixed. |
| 724 | |
| 725 | - **Update to lifetime membership does not clear the end date |
| 726 | ([19716](https://github.com/civicrm/civicrm-core/pull/19716))** |
| 727 | |
| 728 | Fix membership to clear end date if type is updated to lifetime. |
| 729 | |
| 730 | - **When editing a membership with no existing payments, checking the box to |
| 731 | record payments results in a total amount of NaN.N |
| 732 | ([dev/core#2560](https://lab.civicrm.org/dev/core/-/issues/2560): |
| 733 | [20127](https://github.com/civicrm/civicrm-core/pull/20127))** |
| 734 | |
| 735 | ### Drupal Integration |
| 736 | |
| 737 | - **Rebuild the Drupal route cache. |
| 738 | ([19906](https://github.com/civicrm/civicrm-core/pull/19906))** |
| 739 | |
| 740 | Ensures enabling a CiviCRM extension that adds a route on Drupal 8 or 9 does |
| 741 | not result in a 404. |
| 742 | |
| 743 | - **Drupal 8 hook_uninstall not implemented |
| 744 | ([dev/drupal#141](https://lab.civicrm.org/dev/drupal/-/issues/141): |
| 745 | [61](https://github.com/civicrm/civicrm-drupal-8/pull/61))** |
| 746 | |
| 747 | - **Fix Drupal Base 'isFrontEndPage' Returns Wrong Value After Saving A Settings |
| 748 | Page ([dev/core#2464](https://lab.civicrm.org/dev/core/-/issues/2464): |
| 749 | [19823](https://github.com/civicrm/civicrm-core/pull/19823))** |
| 750 | |
| 751 | - **Fix batch transaction export on D8/9 |
| 752 | ([19761](https://github.com/civicrm/civicrm-core/pull/19761))** |
| 753 | |
| 754 | ### WordPress Integration |
| 755 | |
| 756 | - **WordPress: avoid PHP notice if the anonymous user does not have any |
| 757 | capabilities ([19732](https://github.com/civicrm/civicrm-core/pull/19732))** |
| 758 | |
| 759 | ## <a name="misc"></a>Miscellany |
| 760 | |
| 761 | - **Remove recaptcha library as now part of core extension |
| 762 | ([317](https://github.com/civicrm/civicrm-packages/pull/317))** |
| 763 | |
| 764 | - **Migrate current recaptcha library into extension and fix a couple of ts |
| 765 | calls ([20011](https://github.com/civicrm/civicrm-core/pull/20011))** |
| 766 | |
| 767 | - **Add recaptcha to distmaker |
| 768 | ([19999](https://github.com/civicrm/civicrm-core/pull/19999))** |
| 769 | |
| 770 | - **Use standard function to add reCAPTCHA to PCPAccount form |
| 771 | ([20019](https://github.com/civicrm/civicrm-core/pull/20019))** |
| 772 | |
| 773 | - **Make testExpiredPriceSet more realistic |
| 774 | ([19474](https://github.com/civicrm/civicrm-core/pull/19474))** |
| 775 | |
| 776 | - **Remove safe+mode setting |
| 777 | ([19833](https://github.com/civicrm/civicrm-core/pull/19833))** |
| 778 | |
| 779 | - **Fold back in getGroupACLs |
| 780 | ([19882](https://github.com/civicrm/civicrm-core/pull/19882))** |
| 781 | |
| 782 | - **Remove getACLRoles |
| 783 | ([19879](https://github.com/civicrm/civicrm-core/pull/19879))** |
| 784 | |
| 785 | - **Move setting of _includesSoftCredits out of getQuery |
| 786 | ([19860](https://github.com/civicrm/civicrm-core/pull/19860))** |
| 787 | |
| 788 | - **Upgrade angularJs from 1.8.0 to 1.8.2 |
| 789 | ([19831](https://github.com/civicrm/civicrm-core/pull/19831))** |
| 790 | |
| 791 | - **Bump phpseclib/phpseclib from 2.0.29 to 2.0.31 |
| 792 | ([19994](https://github.com/civicrm/civicrm-core/pull/19994))** |
| 793 | |
| 794 | - **Bump y18n from 4.0.0 to 4.0.1 |
| 795 | ([19944](https://github.com/civicrm/civicrm-core/pull/19944))** |
| 796 | |
| 797 | - **Code cleanup in bootstrap.php |
| 798 | ([19834](https://github.com/civicrm/civicrm-core/pull/19834))** |
| 799 | |
| 800 | - **Updates to ExportTest |
| 801 | ([19884](https://github.com/civicrm/civicrm-core/pull/19884))** |
| 802 | |
| 803 | - **Update Unit tests to work with phpunit8 |
| 804 | ([130](https://github.com/civicrm/civicrm-backdrop/pull/130))** |
| 805 | |
| 806 | - **Update Unit tests to work with PHPUnit8 |
| 807 | ([643](https://github.com/civicrm/civicrm-drupal/pull/643))** |
| 808 | |
| 809 | - **Add :void return type to tearDown on a bunch of unit tests |
| 810 | ([19897](https://github.com/civicrm/civicrm-core/pull/19897))** |
| 811 | |
| 812 | - **Tighten mysql mode in test environment |
| 813 | ([19817](https://github.com/civicrm/civicrm-core/pull/19817))** |
| 814 | |
| 815 | - **Add further test for token custom fields |
| 816 | ([19790](https://github.com/civicrm/civicrm-core/pull/19790))** |
| 817 | |
| 818 | - **Remove deprecated code |
| 819 | ([19919](https://github.com/civicrm/civicrm-core/pull/19919))** |
| 820 | |
| 821 | - **Remove unused private function |
| 822 | ([19950](https://github.com/civicrm/civicrm-core/pull/19950))** |
| 823 | |
| 824 | - **Remove empty setUp() functions |
| 825 | ([19971](https://github.com/civicrm/civicrm-core/pull/19971))** |
| 826 | |
| 827 | - **Remove unused variables/assigns from buildMembershipBlock function |
| 828 | ([19775](https://github.com/civicrm/civicrm-core/pull/19775))** |
| 829 | |
| 830 | - **Remove an unnecessary ampersand |
| 831 | ([19821](https://github.com/civicrm/civicrm-core/pull/19821))** |
| 832 | |
| 833 | - **Remove now-empty function |
| 834 | ([19824](https://github.com/civicrm/civicrm-core/pull/19824))** |
| 835 | |
| 836 | - **Remove legacy phpunit param |
| 837 | ([19836](https://github.com/civicrm/civicrm-core/pull/19836))** |
| 838 | |
| 839 | - **[REF] Fix APIv3 MembershipJob test failure on PHP 7.4 by only doing ch… |
| 840 | ([19844](https://github.com/civicrm/civicrm-core/pull/19844))** |
| 841 | |
| 842 | - **[REF] Extract getQueryParams |
| 843 | ([19857](https://github.com/civicrm/civicrm-core/pull/19857))** |
| 844 | |
| 845 | - **[REF] Clarify & simplify is_recur param |
| 846 | ([19812](https://github.com/civicrm/civicrm-core/pull/19812))** |
| 847 | |
| 848 | - **[REF] Minor function extraction |
| 849 | ([19835](https://github.com/civicrm/civicrm-core/pull/19835))** |
| 850 | |
| 851 | - **[REF] Simplify a couple of variables |
| 852 | ([19861](https://github.com/civicrm/civicrm-core/pull/19861))** |
| 853 | |
| 854 | - **[REF] Simplify BAO_ACL table references |
| 855 | ([19869](https://github.com/civicrm/civicrm-core/pull/19869))** |
| 856 | |
| 857 | - **[REF] Stdise campaign_id handling |
| 858 | ([19877](https://github.com/civicrm/civicrm-core/pull/19877))** |
| 859 | |
| 860 | - **[REF] Minor simplification around assigning taxAmount to the template |
| 861 | ([19757](https://github.com/civicrm/civicrm-core/pull/19757))** |
| 862 | |
| 863 | - **[REF] Remove setting of unused variables |
| 864 | ([19800](https://github.com/civicrm/civicrm-core/pull/19800))** |
| 865 | |
| 866 | - **[REF] Fold getACLs back into the calling function |
| 867 | ([19872](https://github.com/civicrm/civicrm-core/pull/19872))** |
| 868 | |
| 869 | - **[REF] Simplify code calculating the number of membership terms |
| 870 | ([19801](https://github.com/civicrm/civicrm-core/pull/19801))** |
| 871 | |
| 872 | - **[REF] Remove redundant toArray() function |
| 873 | ([19885](https://github.com/civicrm/civicrm-core/pull/19885))** |
| 874 | |
| 875 | - **[REF] Store the getSearchQueryResults so it can be re-accessed |
| 876 | ([19881](https://github.com/civicrm/civicrm-core/pull/19881))** |
| 877 | |
| 878 | - **[REF] Minor extraction to help cleanup permission code |
| 879 | ([19803](https://github.com/civicrm/civicrm-core/pull/19803))** |
| 880 | |
| 881 | - **[REF] Minor parameter cleanup |
| 882 | ([19799](https://github.com/civicrm/civicrm-core/pull/19799))** |
| 883 | |
| 884 | - **[REF] Extract code to get generic membership parameters |
| 885 | ([19784](https://github.com/civicrm/civicrm-core/pull/19784))** |
| 886 | |
| 887 | - **[REF] Cleanup on permission code |
| 888 | ([19796](https://github.com/civicrm/civicrm-core/pull/19796))** |
| 889 | |
| 890 | - **[REF] Extract getPaymentInstrumentID |
| 891 | ([19793](https://github.com/civicrm/civicrm-core/pull/19793))** |
| 892 | |
| 893 | - **[Ref] Remove copy and paste overkill |
| 894 | ([19786](https://github.com/civicrm/civicrm-core/pull/19786))** |
| 895 | |
| 896 | - **[REF] getCorePermissions cleanup |
| 897 | ([19789](https://github.com/civicrm/civicrm-core/pull/19789))** |
| 898 | |
| 899 | - **[REF] Very minor simplification |
| 900 | ([19785](https://github.com/civicrm/civicrm-core/pull/19785))** |
| 901 | |
| 902 | - **[REF] Fix ContributionPage::recurringNotify to use APIv4, simplify params |
| 903 | ([19639](https://github.com/civicrm/civicrm-core/pull/19639))** |
| 904 | |
| 905 | - **[REF] Cleanup code to determine financial_type_id |
| 906 | ([19756](https://github.com/civicrm/civicrm-core/pull/19756))** |
| 907 | |
| 908 | - **[REF] [Towards membership API] Cleanup access to payment_processor_id |
| 909 | ([19910](https://github.com/civicrm/civicrm-core/pull/19910))** |
| 910 | |
| 911 | - **[REF] Remove now redundant code to set line item financial type |
| 912 | ([19745](https://github.com/civicrm/civicrm-core/pull/19745))** |
| 913 | |
| 914 | - **[REF] [Towards membership API] Duplicate emailReceipt function rather than |
| 915 | silly sharing ([19912](https://github.com/civicrm/civicrm-core/pull/19912))** |
| 916 | |
| 917 | - **[REF] [Towards membership API] Simplify message functions |
| 918 | ([19915](https://github.com/civicrm/civicrm-core/pull/19915))** |
| 919 | |
| 920 | - **[REF] Extract portion of GroupContact load that builds the temporary table |
| 921 | ([19945](https://github.com/civicrm/civicrm-core/pull/19945))** |
| 922 | |
| 923 | - **[REF] remove unused code in recordFinancialAccounts |
| 924 | ([19769](https://github.com/civicrm/civicrm-core/pull/19769))** |
| 925 | |
| 926 | - **[REF] Clean up code around is_email_receipt |
| 927 | ([19746](https://github.com/civicrm/civicrm-core/pull/19746))** |
| 928 | |
| 929 | - **[REF] Move function from static class to OO class |
| 930 | ([19955](https://github.com/civicrm/civicrm-core/pull/19955))** |
| 931 | |
| 932 | - **[REF] Extract getMembershipTypeValues |
| 933 | ([19924](https://github.com/civicrm/civicrm-core/pull/19924))** |
| 934 | |
| 935 | - **(REF) CRM_Upgrade_Form - Remove unused method getRevisionPart() |
| 936 | ([19742](https://github.com/civicrm/civicrm-core/pull/19742))** |
| 937 | |
| 938 | - **[REF] [SearchKit Actions] Cleanup around contribution PDF common |
| 939 | ([19904](https://github.com/civicrm/civicrm-core/pull/19904))** |
| 940 | |
| 941 | - **[REF] Minor cleanup - remove unused variables |
| 942 | ([19980](https://github.com/civicrm/civicrm-core/pull/19980))** |
| 943 | |
| 944 | - **REF Ensure that getAmount includes 0s in decimal places up to 2 places |
| 945 | ([20074](https://github.com/civicrm/civicrm-core/pull/20074))** |
| 946 | |
| 947 | - **[REF] Minor cleanup - strictness & formatting |
| 948 | ([19949](https://github.com/civicrm/civicrm-core/pull/19949))** |
| 949 | |
| 950 | - **[REF] [Towards membership API] more consistent handling on amount |
| 951 | ([19911](https://github.com/civicrm/civicrm-core/pull/19911))** |
| 952 | |
| 953 | - **[REF] [Towards membership API] Simplify calculation of recurring membership |
| 954 | parameters ([19893](https://github.com/civicrm/civicrm-core/pull/19893))** |
| 955 | |
| 956 | - **[REF] Simplify setting of softcredit form options (minor) |
| 957 | ([19891](https://github.com/civicrm/civicrm-core/pull/19891))** |
| 958 | |
| 959 | - **[NFC] Minor coding standards cleanup |
| 960 | ([19838](https://github.com/civicrm/civicrm-core/pull/19838))** |
| 961 | |
| 962 | - **[NFC] Add in "void" statements on various Core Ext Tests to future support PHP… |
| 963 | ([19832](https://github.com/civicrm/civicrm-core/pull/19832))** |
| 964 | |
| 965 | - **[NFC] Minor test cleanup |
| 966 | ([19852](https://github.com/civicrm/civicrm-core/pull/19852))** |
| 967 | |
| 968 | - **[NFC] Cleanup in test class |
| 969 | ([19866](https://github.com/civicrm/civicrm-core/pull/19866))** |
| 970 | |
| 971 | - **[NFC] Fix logging schema test to work on MySQL8 as it no longer outpu… |
| 972 | ([19850](https://github.com/civicrm/civicrm-core/pull/19850))** |
| 973 | |
| 974 | - **[NFC] Fix test failures on PHP 7.4 caused by either NULL being set fo… |
| 975 | ([19849](https://github.com/civicrm/civicrm-core/pull/19849))** |
| 976 | |
| 977 | - **[NFC] Fix test failures on MySQL 8 caused by change in output of eith… |
| 978 | ([19847](https://github.com/civicrm/civicrm-core/pull/19847))** |
| 979 | |
| 980 | - **[NFC] Fix PHP 7.4 errors on ContributionPage tests |
| 981 | ([19846](https://github.com/civicrm/civicrm-core/pull/19846))** |
| 982 | |
| 983 | - **[NFC] Fix Membership Type Test error on PHP 7.4 |
| 984 | ([19845](https://github.com/civicrm/civicrm-core/pull/19845))** |
| 985 | |
| 986 | - **[NFC] Minor IDE cleanup in test class |
| 987 | ([19816](https://github.com/civicrm/civicrm-core/pull/19816))** |
| 988 | |
| 989 | - **[NFC] IDE cleanup on test class |
| 990 | ([19813](https://github.com/civicrm/civicrm-core/pull/19813))** |
| 991 | |
| 992 | - **NFC cleanup in test class |
| 993 | ([19953](https://github.com/civicrm/civicrm-core/pull/19953))** |
| 994 | |
| 995 | - **[NFC] Update unit tests to be compatible with PHPUnit8 |
| 996 | ([246](https://github.com/civicrm/civicrm-wordpress/pull/246))** |
| 997 | |
| 998 | - **(NFC) Add FUNDING.yml to display a SPONSOR link that directs to c.o |
| 999 | ([19946](https://github.com/civicrm/civicrm-core/pull/19946))** |
| 1000 | |
| 1001 | - **[NFC] Minor cleanup on test class |
| 1002 | ([19864](https://github.com/civicrm/civicrm-core/pull/19864))** |
| 1003 | |
| 1004 | - **[REF] Fix installation of the search display table on MySQL 5.36 in tests |
| 1005 | ([20094](https://github.com/civicrm/civicrm-core/pull/20094))** |
| 1006 | |
| 1007 | ## <a name="credits"></a>Credits |
| 1008 | |
| 1009 | This release was developed by the following code authors: |
| 1010 | |
| 1011 | AGH Strategies - Alice Frumin, Andie Hunt; Agileware - Justin Freeman; Alexy |
| 1012 | Mikhailichenko; Calibrate - Wouter Hechtermans; Christian Wach; Circle |
| 1013 | Interactive - Pradeep Nayak; CiviCoop - Jaap Jansma; CiviCRM - Coleman Watts, |
| 1014 | Tim Otten; CompuCorp - Ahed Eid; Coop SymbioTIC - Mathieu Lutfy, Samuel Vanhove; |
| 1015 | Dave D; Francesc Bassas i Bullich; Fuzion - Jitendra Purohit; Greenpeace CEE - |
| 1016 | mflandorfer; JMA Consulting - Monish Deb, Seamus Lee; Lighthouse Consulting and |
| 1017 | Design - Brian Shaughnessy; Megaphone Technology Consulting - Jon Goldberg; |
| 1018 | MJCO - Mikey O'Toole; MJW Consulting - Matthew Wire; Nicol Wistreich; Oxfam |
| 1019 | Germany - Thomas Schüttler; Progressive Technology Project - Jamie McClelland; |
| 1020 | Romain Thouvenin; SYSTOPIA Organisationsberatung - Björn Endres; Third Sector |
| 1021 | Design - Michael McAndrew; Timbsoft Technologies - Tunbola Ogunwande; Web |
| 1022 | Access - Kurund Jalmi; Wikimedia Foundation - Eileen McNaughton |
| 1023 | |
| 1024 | Most authors also reviewed code for this release; in addition, the following |
| 1025 | reviewers contributed their comments: |
| 1026 | |
| 1027 | Artful Robot - Rich Lott; BrightMinded Ltd - Bradley Taylor; CiviCoop - Erik |
| 1028 | Hommel; CiviDesk - Nicolas Ganivet; Context Institute - Robert Gilman; Dave T; |
| 1029 | Freeform Solutions - Herb van den Dool; Joinery - Allen Shaw; Megaphone |
| 1030 | Technology Consulting - Dennis P. Osorio; Richard van Oosterhout; Semper IT - |
| 1031 | Karin Gerritsen; Skvare - Sunil Pawar; Tadpole Collective - Kevin Cristiano |
| 1032 | |
| 1033 | ## <a name="feedback"></a>Feedback |
| 1034 | |
| 1035 | These release notes are edited by Alice Frumin and Andie Hunt. If you'd like |
| 1036 | to provide feedback on them, please log in to https://chat.civicrm.org/civicrm |
| 1037 | and contact `@agh1`. |