| 1 | # CiviCRM 5.42.0 |
| 2 | |
| 3 | Released October 6, 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? | no | |
| 20 | | Fix problems installing or upgrading to a previous version? | no | |
| 21 | | **Introduce features?** | **yes** | |
| 22 | | **Fix bugs?** | **yes** | |
| 23 | |
| 24 | ## <a name="features"></a>Features |
| 25 | |
| 26 | ### Core CiviCRM |
| 27 | |
| 28 | - **Edit Contact: Hide email signatures for contacts that do not have a user/CMS |
| 29 | account |
| 30 | ([dev/user-interface#38](https://lab.civicrm.org/dev/user-interface/-/issues/38): |
| 31 | [21103](https://github.com/civicrm/civicrm-core/pull/21103))** |
| 32 | |
| 33 | Improves the user interface by hiding the email signature section for contacts |
| 34 | for whom it is not relevant. |
| 35 | |
| 36 | - **Option to rename the file before downloading |
| 37 | ([dev/core#2121](https://lab.civicrm.org/dev/core/-/issues/2121): |
| 38 | [21006](https://github.com/civicrm/civicrm-core/pull/21006))** |
| 39 | |
| 40 | Gives the user the option to change the PDF file name on the "Print/Merge |
| 41 | Document" screen. |
| 42 | |
| 43 | - **Add Settings, Disable, Delete buttons to group contacts listing page |
| 44 | (Work Towards [dev/core#2546](https://lab.civicrm.org/dev/core/-/issues/2546): |
| 45 | [20135](https://github.com/civicrm/civicrm-core/pull/20135))** |
| 46 | |
| 47 | Adds a "Edit Group Settings" button that pops up the group settings edit |
| 48 | overlay to the smog group page. |
| 49 | |
| 50 | - **On logging detail report show the words not the numbers |
| 51 | ([dev/core#2691](https://lab.civicrm.org/dev/core/-/issues/2691): |
| 52 | [20907](https://github.com/civicrm/civicrm-core/pull/20907))** |
| 53 | |
| 54 | Improves logging by displaying more context. |
| 55 | |
| 56 | - **Tokens - contributions - could we show them all? |
| 57 | (Work Towards [dev/core#2745](https://lab.civicrm.org/dev/core/-/issues/2745): |
| 58 | [21134](https://github.com/civicrm/civicrm-core/pull/21134))** |
| 59 | |
| 60 | Ensures support for the Contribution Token "contributionId". |
| 61 | |
| 62 | - **Allow dedupe by websites |
| 63 | ([dev/core#2770](https://lab.civicrm.org/dev/core/-/issues/2770): |
| 64 | [21168](https://github.com/civicrm/civicrm-core/pull/21168))** |
| 65 | |
| 66 | Makes it so one can dedupe based on websites. |
| 67 | |
| 68 | - **APIv4 pseudoconstant improvements |
| 69 | ([21184](https://github.com/civicrm/civicrm-core/pull/21184))** |
| 70 | |
| 71 | Makes SearchKit handle large option lists more efficiently, and adds APIv4 |
| 72 | field metadata about available suffixes. |
| 73 | |
| 74 | - **SearchKit - Add placeholder to token select |
| 75 | ([21172](https://github.com/civicrm/civicrm-core/pull/21172))** |
| 76 | |
| 77 | Adds placeholder text to the token select dropdown in SearchKit. |
| 78 | |
| 79 | - **Searchkit - Add grid display layout |
| 80 | ([dev/core#2776](https://lab.civicrm.org/dev/core/-/issues/2776): |
| 81 | [21194](https://github.com/civicrm/civicrm-core/pull/21194))** |
| 82 | |
| 83 | Adds support to display SearchKit results in a grid format. |
| 84 | |
| 85 | - **SearchKit - Merge admin results table with searchDisplay code |
| 86 | ([21069](https://github.com/civicrm/civicrm-core/pull/21069) and |
| 87 | [21488](https://github.com/civicrm/civicrm-core/pull/21488))** |
| 88 | |
| 89 | Improves and streamlines the SearchKit Angular code to reconcile two |
| 90 | different ways of fetching, formatting & displaying results. This reduces code |
| 91 | duplication, while adding a few features from the admin table to all search |
| 92 | display tables. |
| 93 | |
| 94 | - **SearchKit - Add download CSV action |
| 95 | ([21328](https://github.com/civicrm/civicrm-core/pull/21328))** |
| 96 | |
| 97 | Adds an option to SearchKit to download a CSV. |
| 98 | |
| 99 | - **SearchKit - Add links to admin table and refresh after popups |
| 100 | ([21343](https://github.com/civicrm/civicrm-core/pull/21343))** |
| 101 | |
| 102 | Adds quick-action links to the SearchKit admin results table. |
| 103 | |
| 104 | - **SearchKit - Use a search display to display searches |
| 105 | ([21270](https://github.com/civicrm/civicrm-core/pull/21270))** |
| 106 | |
| 107 | Simplifies code by using a SearchKit display to display searches. |
| 108 | |
| 109 | - **Include random as an option when sorting displays |
| 110 | ([dev/report#75](https://lab.civicrm.org/dev/report/-/issues/75): |
| 111 | [21177](https://github.com/civicrm/civicrm-core/pull/21177))** |
| 112 | |
| 113 | Adds a sort option of random to SearchKit. |
| 114 | |
| 115 | - **Searchkit: Add image field handler |
| 116 | ([dev/core#2781](https://lab.civicrm.org/dev/core/-/issues/2781): |
| 117 | [21300](https://github.com/civicrm/civicrm-core/pull/21300))** |
| 118 | |
| 119 | Makes it possible to show images in SearchKit displays. |
| 120 | |
| 121 | - **SearchKit - Allow tokens in menu button text |
| 122 | ([21217](https://github.com/civicrm/civicrm-core/pull/21217))** |
| 123 | |
| 124 | Makes it so users can include tokens in SearchKit menu button text. |
| 125 | |
| 126 | - **TokenProcessor - Allow defining Smarty variables which are populated via |
| 127 | token ([21336](https://github.com/civicrm/civicrm-core/pull/21336))** |
| 128 | |
| 129 | Allows more interoperability between Smarty expressions and tokens. |
| 130 | |
| 131 | - **Token Parser - Allow tokens with multiple dots (eg |
| 132 | {contribution.contribution_recur_id.amount}) |
| 133 | ([21076](https://github.com/civicrm/civicrm-core/pull/21076))** |
| 134 | |
| 135 | Adjusts the naming/parsing rules for Civi-style tokens so that tokens may |
| 136 | include dots and colons. |
| 137 | |
| 138 | - **Afform - support file uploads |
| 139 | ([21150](https://github.com/civicrm/civicrm-core/pull/21150))** |
| 140 | |
| 141 | Supports file fields as part of Afform. |
| 142 | |
| 143 | - **Not possible to set the location type (address, mail, telephone) to a |
| 144 | specific value |
| 145 | ([dev/core#2703](https://lab.civicrm.org/dev/core/-/issues/2703): |
| 146 | [21254](https://github.com/civicrm/civicrm-core/pull/21254))** |
| 147 | |
| 148 | Makes it possible in Afform to select a single location type for an address, |
| 149 | email, phone etc. block instead of having the field on the form. |
| 150 | |
| 151 | - **Afform - Store submissions in a new database table |
| 152 | ([21105](https://github.com/civicrm/civicrm-core/pull/21105))** |
| 153 | |
| 154 | Adds a Afform setting "log submissions", when checked, Afform submissions are |
| 155 | stored in the database. |
| 156 | |
| 157 | - **Move financial acl setting to the extension |
| 158 | ([21120](https://github.com/civicrm/civicrm-core/pull/21120))** |
| 159 | |
| 160 | Moves financial ACL settings to the financial ACL extension. |
| 161 | |
| 162 | - **SavedSearch - Add pseudoconstant for api_entity field |
| 163 | ([21312](https://github.com/civicrm/civicrm-core/pull/21312))** |
| 164 | |
| 165 | Adds a pseudoconstant to facilitate display in the UI of what a search is for, |
| 166 | e.g. ->addSelect('api_entity:label') would return "Contacts" for a search of |
| 167 | Contacts. |
| 168 | |
| 169 | - **Change the default PDF file name from "CiviLetter.pdf" to use the Activity |
| 170 | Subject, if available |
| 171 | ([21220](https://github.com/civicrm/civicrm-core/pull/21220))** |
| 172 | |
| 173 | Improves PDF file naming to be more specific. |
| 174 | |
| 175 | - **Change PDF file name from "civicrmContributionReceipt.pdf" to use the |
| 176 | standard "receipt.pdf" file name |
| 177 | ([21221](https://github.com/civicrm/civicrm-core/pull/21221))** |
| 178 | |
| 179 | Improves PDF file naming. |
| 180 | |
| 181 | - **Scheduled Reminders UI - Show more activity tokens in admin GUI |
| 182 | ([21091](https://github.com/civicrm/civicrm-core/pull/21091))** |
| 183 | |
| 184 | Adds more Activity Tokens to the Scheduled Reminders UI. |
| 185 | |
| 186 | ### CiviContribute |
| 187 | |
| 188 | - **Logging improvements for "Failed to update contribution in database" |
| 189 | ([21243](https://github.com/civicrm/civicrm-core/pull/21243))** |
| 190 | |
| 191 | Improves logging when contribution fails. |
| 192 | |
| 193 | - **Add recurring contributions to contribution reports |
| 194 | (Work Towards [dev/report#63](https://lab.civicrm.org/dev/report/-/issues/63): |
| 195 | [20168](https://github.com/civicrm/civicrm-core/pull/20168))** |
| 196 | |
| 197 | Adds "Contribution Recurring" as a filter, column and group by to the |
| 198 | Contribution Summary Report. |
| 199 | |
| 200 | ### CiviMail |
| 201 | |
| 202 | - **System Workflow Messages - Improve localization experience (Work Towards |
| 203 | [dev/mail#83](https://lab.civicrm.org/dev/mail/-/issues/83): |
| 204 | [21139](https://github.com/civicrm/civicrm-core/pull/21139))** |
| 205 | |
| 206 | Introduces a class contracts for system workflow messages which will enable |
| 207 | richer APIs and UIs. |
| 208 | |
| 209 | ### CiviMember |
| 210 | |
| 211 | - **Membership api for v4 |
| 212 | ([dev/core#2634](https://lab.civicrm.org/dev/core/-/issues/2634): |
| 213 | [21106](https://github.com/civicrm/civicrm-core/pull/21106))** |
| 214 | |
| 215 | Adds the Membership entity to APIv4. |
| 216 | |
| 217 | - **Fix code to use Order api to create Memberships in core forms |
| 218 | (Work Towards [dev/core#2717](https://lab.civicrm.org/dev/core/-/issues/2717): |
| 219 | [20936](https://github.com/civicrm/civicrm-core/pull/20936), |
| 220 | [21126](https://github.com/civicrm/civicrm-core/pull/21126) and |
| 221 | [20935](https://github.com/civicrm/civicrm-core/pull/20935))** |
| 222 | |
| 223 | Work towards using the Order API to create Memberships in core forms. |
| 224 | |
| 225 | ### Joomla Integration |
| 226 | |
| 227 | - **CiviCRM-Joomla should accept web-service calls |
| 228 | ([58](https://github.com/civicrm/civicrm-joomla/pull/58))** |
| 229 | |
| 230 | Ensures that on a stock configuration of CiviCRM-Joomla, it is possible to |
| 231 | create a page-route for accepting web-service calls. |
| 232 | |
| 233 | ## <a name="bugs"></a>Bugs resolved |
| 234 | |
| 235 | ### Core CiviCRM |
| 236 | |
| 237 | - **Multi-lingual: Contact Type label is cached regardless of language |
| 238 | ([dev/translation#70](https://lab.civicrm.org/dev/translation/-/issues/70): |
| 239 | [21268](https://github.com/civicrm/civicrm-core/pull/21268))** |
| 240 | |
| 241 | Fixes loading multiple translations within same page-view (OptionValues, |
| 242 | ContactTypes). |
| 243 | |
| 244 | - **Activity export broken - takes you to some other screen instead |
| 245 | ([dev/core#2835](https://lab.civicrm.org/dev/core/-/issues/2835): |
| 246 | [21456](https://github.com/civicrm/civicrm-core/pull/21456))** |
| 247 | |
| 248 | - **APIv4 - entityBatch linkage |
| 249 | ([dev/core#2682](https://lab.civicrm.org/dev/core/-/issues/2682): |
| 250 | [21241](https://github.com/civicrm/civicrm-core/pull/21241))** |
| 251 | |
| 252 | Work Towards APIv4 entity parity. Ensures that the values for entity_table are |
| 253 | discoverable. |
| 254 | |
| 255 | - **Consider replacing fopen() call in CRM_Utils_File::isIncludable with |
| 256 | stream_resolve_include_path() |
| 257 | ([dev/core#2730](https://lab.civicrm.org/dev/core/-/issues/2730): |
| 258 | [21060](https://github.com/civicrm/civicrm-core/pull/21060))** |
| 259 | |
| 260 | Replaces fopen call in CRM_Utils_File::isIncludable with one that doesn't need |
| 261 | error-supression to avoid problems in php8. |
| 262 | |
| 263 | - **SearchKit: have a quick Export task |
| 264 | (Work Towards [dev/core#2732](https://lab.civicrm.org/dev/core/-/issues/2732): |
| 265 | [21320](https://github.com/civicrm/civicrm-core/pull/21320))** |
| 266 | |
| 267 | Refactoring work towards making it possible to have a direct export feature in |
| 268 | SearchKit. |
| 269 | |
| 270 | - **SearchKit - Fix deleting search displays |
| 271 | ([21444](https://github.com/civicrm/civicrm-core/pull/21444))** |
| 272 | |
| 273 | - **SearchKit - Fix anonymous access to running search displays |
| 274 | #([21752](https://github.com/civicrm/civicrm-core/pull/21752))** |
| 275 | |
| 276 | Recently SearchKit added the ability for anonymous users to access search |
| 277 | displays. However, due to an oversight the feature doesn't actually work for |
| 278 | anonymous users. This fixes the problem. |
| 279 | |
| 280 | - **Afform - ensure dragging classes are removed when not sorting |
| 281 | ([21750](https://github.com/civicrm/civicrm-core/pull/21750))** |
| 282 | |
| 283 | Fixes an annoying UI glitch in Afform where the screen can appear "locked" or |
| 284 | "frozen" after dragging fields into a fieldset. |
| 285 | |
| 286 | - **Expose Contribution token processor |
| 287 | ([dev/core#2747](https://lab.civicrm.org/dev/core/-/issues/2747): |
| 288 | [21046](https://github.com/civicrm/civicrm-core/pull/21046) and |
| 289 | [21057](https://github.com/civicrm/civicrm-core/pull/21057))** |
| 290 | |
| 291 | Reconciles contribution legacy tokens and scheduled reminders tokens. |
| 292 | |
| 293 | - **CRM_Core_BAO_CustomField::getChangeSerialize always returns a change |
| 294 | ([dev/core#2762](https://lab.civicrm.org/dev/core/-/issues/2762): |
| 295 | [21160](https://github.com/civicrm/civicrm-core/pull/21160))** |
| 296 | |
| 297 | - **Caching issue on apiv4 + install |
| 298 | ([dev/core#2763](https://lab.civicrm.org/dev/core/-/issues/2763): |
| 299 | [21166](https://github.com/civicrm/civicrm-core/pull/21166))** |
| 300 | |
| 301 | - **CiviCRM email validation failing incorrectly |
| 302 | ([dev/core#2769](https://lab.civicrm.org/dev/core/-/issues/2769): |
| 303 | [329](https://github.com/civicrm/civicrm-packages/pull/329) and |
| 304 | [21169](https://github.com/civicrm/civicrm-core/pull/21169))** |
| 305 | |
| 306 | - **Sort by date column on multirecord field listing section on profile edit |
| 307 | mode doesn't work |
| 308 | ([dev/core#2774](https://lab.civicrm.org/dev/core/-/issues/2774): |
| 309 | [21191](https://github.com/civicrm/civicrm-core/pull/21191))** |
| 310 | |
| 311 | - **Error when using search in 'Find and Merge Duplicate Contacts' page |
| 312 | ([dev/core#2778](https://lab.civicrm.org/dev/core/-/issues/2778): |
| 313 | [21223](https://github.com/civicrm/civicrm-core/pull/21223))** |
| 314 | |
| 315 | - **Print/merge document has awkward filename if activity subject uses |
| 316 | non-english letters |
| 317 | ([dev/core#2789](https://lab.civicrm.org/dev/core/-/issues/2789): |
| 318 | [21259](https://github.com/civicrm/civicrm-core/pull/21259))** |
| 319 | |
| 320 | - **Contribution custom field tokens are duplicated in the dropdown |
| 321 | ([dev/core#2806](https://lab.civicrm.org/dev/core/-/issues/2806): |
| 322 | [21337](https://github.com/civicrm/civicrm-core/pull/21337))** |
| 323 | |
| 324 | - **[regression] Search forms with entities that include File custom fields |
| 325 | don't render in Afform Admin screen |
| 326 | ([dev/core#2751](https://lab.civicrm.org/dev/core/-/issues/2751): |
| 327 | [21084](https://github.com/civicrm/civicrm-core/pull/21084))** |
| 328 | |
| 329 | - **APIv4 - Throw exception instead of munging illegal join aliases |
| 330 | ([21072](https://github.com/civicrm/civicrm-core/pull/21072))** |
| 331 | |
| 332 | Improves APIv4 validation of explicit join aliases. |
| 333 | |
| 334 | - **Fix deprecated API4 Join on Email in dynamic profile |
| 335 | ([21308](https://github.com/civicrm/civicrm-core/pull/21308))** |
| 336 | |
| 337 | - **Search Kit doesn't display related contact custom fields |
| 338 | ([dev/report#73](https://lab.civicrm.org/dev/report/-/issues/73): |
| 339 | [21071](https://github.com/civicrm/civicrm-core/pull/21071))** |
| 340 | |
| 341 | - **SearchKit - Misc bulk action bug fixes |
| 342 | ([21159](https://github.com/civicrm/civicrm-core/pull/21159))** |
| 343 | |
| 344 | - **SearchKit - Fix aggregated joins |
| 345 | ([21411](https://github.com/civicrm/civicrm-core/pull/21411))** |
| 346 | |
| 347 | - **SearchKit - Fix pager count and add 'None Found' text in empty tables |
| 348 | ([21333](https://github.com/civicrm/civicrm-core/pull/21333))** |
| 349 | |
| 350 | - **Fix Searchkit "Add" columns button UI |
| 351 | ([21315](https://github.com/civicrm/civicrm-core/pull/21315))** |
| 352 | |
| 353 | - **Afform - Fix button appearance and block form during submission |
| 354 | ([21287](https://github.com/civicrm/civicrm-core/pull/21287))** |
| 355 | |
| 356 | - **Afform - fix contact source field & field defaults |
| 357 | ([21228](https://github.com/civicrm/civicrm-core/pull/21228))** |
| 358 | |
| 359 | - **Fix support link just added in oauth-client extension info.xml |
| 360 | ([21256](https://github.com/civicrm/civicrm-core/pull/21256))** |
| 361 | |
| 362 | - **better target multivalue checkbox and multiselect import validation |
| 363 | ([21317](https://github.com/civicrm/civicrm-core/pull/21317))** |
| 364 | |
| 365 | - **Do not add tracking to internal anchor URLs |
| 366 | ([20115](https://github.com/civicrm/civicrm-core/pull/20115))** |
| 367 | |
| 368 | - **Fix for new prefetch key |
| 369 | ([21292](https://github.com/civicrm/civicrm-core/pull/21292))** |
| 370 | |
| 371 | - **Do not enable custom activity search on new installs |
| 372 | ([21260](https://github.com/civicrm/civicrm-core/pull/21260))** |
| 373 | |
| 374 | - **Add date metadata for email.on_hold, reset_date |
| 375 | ([21233](https://github.com/civicrm/civicrm-core/pull/21233))** |
| 376 | |
| 377 | - **Add no-prefetch campaign pseudoconstants |
| 378 | ([21185](https://github.com/civicrm/civicrm-core/pull/21185))** |
| 379 | |
| 380 | - **Replace extension key with label during install/upgrade/disable/uninstall |
| 381 | ([21094](https://github.com/civicrm/civicrm-core/pull/21094))** |
| 382 | |
| 383 | - **ActionSchedule - Pass real batches into TokenProcessor. Simplify |
| 384 | CRM_Activity_Tokens. |
| 385 | ([21088](https://github.com/civicrm/civicrm-core/pull/21088))** |
| 386 | |
| 387 | - **MessageTemplate::sendTemplate() - Accept `array $messageTemplate` and `array |
| 388 | $tokenContext` ([21073](https://github.com/civicrm/civicrm-core/pull/21073))** |
| 389 | |
| 390 | - **Alternate to 20131 - Avoid crash during import for blank lines in a |
| 391 | one-column csv file |
| 392 | ([21216](https://github.com/civicrm/civicrm-core/pull/21216))** |
| 393 | |
| 394 | - **CRM_Queue_Service - Use ?? instead of error-supression operator |
| 395 | ([21207](https://github.com/civicrm/civicrm-core/pull/21207))** |
| 396 | |
| 397 | - **Respect http_timeout core setting for Guzzle HTTP requests |
| 398 | ([21096](https://github.com/civicrm/civicrm-core/pull/21096))** |
| 399 | |
| 400 | - **Smarty notice - Explicitly set hideRelativeLabel var on Find Cases form |
| 401 | ([21070](https://github.com/civicrm/civicrm-core/pull/21070))** |
| 402 | |
| 403 | - **(Smart Group) is being constantly added while editing the smart group title |
| 404 | from 'Manage Group' page |
| 405 | ([20898](https://github.com/civicrm/civicrm-core/pull/20898))** |
| 406 | |
| 407 | - **Enotice fixes in tpl |
| 408 | ([21170](https://github.com/civicrm/civicrm-core/pull/21170))** |
| 409 | |
| 410 | - **Template fixes - notices, syntax |
| 411 | ([21257](https://github.com/civicrm/civicrm-core/pull/21257))** |
| 412 | |
| 413 | - **Fix invalid parameter giving E_WARNING |
| 414 | ([21255](https://github.com/civicrm/civicrm-core/pull/21255))** |
| 415 | |
| 416 | - **Fix search display access for non-admin users |
| 417 | ([21082](https://github.com/civicrm/civicrm-core/pull/21082))** |
| 418 | |
| 419 | - **Use convenience function for one-off token evaluations to avoid too-long |
| 420 | filenames and possible privacy issues |
| 421 | ([21140](https://github.com/civicrm/civicrm-core/pull/21140))** |
| 422 | |
| 423 | - **Replace deprecated calls to `renderMessageTemplate()` |
| 424 | ([21121](https://github.com/civicrm/civicrm-core/pull/21121))** |
| 425 | |
| 426 | - **Scheduled Reminders - Pass locale through to TokenProcessor |
| 427 | ([21085](https://github.com/civicrm/civicrm-core/pull/21085))** |
| 428 | |
| 429 | ### CiviCampaign |
| 430 | |
| 431 | - **Fix caching on campaign pseudoconstant |
| 432 | ([21083](https://github.com/civicrm/civicrm-core/pull/21083))** |
| 433 | |
| 434 | ### CiviContribute |
| 435 | |
| 436 | - **Fix the check to see if the financialAclExtension is installed |
| 437 | ([21077](https://github.com/civicrm/civicrm-core/pull/21077))** |
| 438 | |
| 439 | - **Simplify ContributionView form. Always display "lineitems" |
| 440 | ([21285](https://github.com/civicrm/civicrm-core/pull/21285))** |
| 441 | |
| 442 | - **Can we re-order the 'recur links' |
| 443 | ([dev/core#2843](https://lab.civicrm.org/dev/core/-/issues/2843): |
| 444 | [21559](https://github.com/civicrm/civicrm-core/pull/21559))** |
| 445 | |
| 446 | The new link to View Template on a recurring contribution row is now moved to |
| 447 | the end, allowing the Edit link to return to the second spot. |
| 448 | |
| 449 | - **When a recurring contribution template has no line items, the contact |
| 450 | contribution tab crashes |
| 451 | ([dev/financial#187](https://lab.civicrm.org/dev/financial/-/issues/187): |
| 452 | [21734](https://github.com/civicrm/civicrm-core/pull/21734))** |
| 453 | |
| 454 | - **Call line item pre hook after tax amount is calculated |
| 455 | ([21731](https://github.com/civicrm/civicrm-core/pull/21731))** |
| 456 | |
| 457 | `hook_civicrm_pre` is now invoked on a line item entity after the tax amount |
| 458 | has been calculated for it. |
| 459 | |
| 460 | ### CiviMail |
| 461 | |
| 462 | - **CiviCRM Mailing, function unsub_from_mailing has spelling error, |
| 463 | "experiement" impacts A/B Mailing unsubscribes |
| 464 | ([21245](https://github.com/civicrm/civicrm-core/pull/21245))** |
| 465 | |
| 466 | - **In an email, a token from an extension in a subject will inhibits the same |
| 467 | token group in the email body |
| 468 | ([dev/core#2673](https://lab.civicrm.org/dev/core/-/issues/2673): |
| 469 | [21080](https://github.com/civicrm/civicrm-core/pull/21080))** |
| 470 | |
| 471 | - **Log details of mailing error and don't display details to end user |
| 472 | ([21173](https://github.com/civicrm/civicrm-core/pull/21173))** |
| 473 | |
| 474 | ### CiviMember |
| 475 | |
| 476 | - **Fix Membership.create in BAO to respect passed in status_id |
| 477 | ([20976](https://github.com/civicrm/civicrm-core/pull/20976))** |
| 478 | |
| 479 | - **Membership Dashboard - Fatal Error starting with 5.41.beta1 |
| 480 | ([dev/core#2758](https://lab.civicrm.org/dev/core/-/issues/2758): |
| 481 | [21171](https://github.com/civicrm/civicrm-core/pull/21171) and |
| 482 | [21167](https://github.com/civicrm/civicrm-core/pull/21167))** |
| 483 | |
| 484 | - **Update MembershipType.duration and MembershipStatus.name to be required |
| 485 | ([21119](https://github.com/civicrm/civicrm-core/pull/21119))** |
| 486 | |
| 487 | - **Fix missing value of End Adjustment column from Membership status page |
| 488 | ([21664](https://github.com/civicrm/civicrm-core/pull/21664))** |
| 489 | |
| 490 | ### Drupal Integration |
| 491 | |
| 492 | - **Syntax errors when loading sample data |
| 493 | ([dev/drupal#161](https://lab.civicrm.org/dev/drupal/-/issues/161): |
| 494 | [648](https://github.com/civicrm/civicrm-drupal/pull/648))** |
| 495 | |
| 496 | Removes drush sample data install option that doesn't work. |
| 497 | |
| 498 | - **Replace Drupal 9 user function, function getUsername is no more valid |
| 499 | ([328](https://github.com/civicrm/civicrm-packages/pull/328))** |
| 500 | |
| 501 | ### Joomla Integration |
| 502 | |
| 503 | - **Fixes unusable modals in Joomla 4 |
| 504 | ([21286](https://github.com/civicrm/civicrm-core/pull/21286))** |
| 505 | |
| 506 | - **Tidies Joomla 4 integration (menu, padding) after final release |
| 507 | ([21342](https://github.com/civicrm/civicrm-core/pull/21342))** |
| 508 | |
| 509 | ## <a name="misc"></a>Miscellany |
| 510 | |
| 511 | - **MessageTemplate - Add renderTemplate(). Deprecate renderMessageTemplate(). |
| 512 | ([21115](https://github.com/civicrm/civicrm-core/pull/21115))** |
| 513 | |
| 514 | - **Provided standard links in ext/oauth-client/info.xml, fixed typo |
| 515 | ([21252](https://github.com/civicrm/civicrm-core/pull/21252))** |
| 516 | |
| 517 | - **Use getter to get subscription id |
| 518 | ([21309](https://github.com/civicrm/civicrm-core/pull/21309))** |
| 519 | |
| 520 | - **Extract ACL contact cache clearing part out |
| 521 | ([21219](https://github.com/civicrm/civicrm-core/pull/21219))** |
| 522 | |
| 523 | - **Update quickform original |
| 524 | ([330](https://github.com/civicrm/civicrm-packages/pull/330))** |
| 525 | |
| 526 | - **Afform - Rename blocks and joins for clarity |
| 527 | ([21218](https://github.com/civicrm/civicrm-core/pull/21218))** |
| 528 | |
| 529 | - **Afform - Optimize Get by checking type |
| 530 | ([21316](https://github.com/civicrm/civicrm-core/pull/21316))** |
| 531 | |
| 532 | - **[REF] Cleanup pdf classes to use a trait like we do for email classes |
| 533 | ([dev/core#2790](https://lab.civicrm.org/dev/core/-/issues/2790): |
| 534 | [21334](https://github.com/civicrm/civicrm-core/pull/21334), |
| 535 | [21305](https://github.com/civicrm/civicrm-core/pull/21305), |
| 536 | [21310](https://github.com/civicrm/civicrm-core/pull/21310), |
| 537 | [21276](https://github.com/civicrm/civicrm-core/pull/21276), |
| 538 | [21297](https://github.com/civicrm/civicrm-core/pull/21297), |
| 539 | [21331](https://github.com/civicrm/civicrm-core/pull/21331) and |
| 540 | [21290](https://github.com/civicrm/civicrm-core/pull/21290))** |
| 541 | |
| 542 | - **Upgrade angular-file-uploader to v2.6.1 |
| 543 | ([21081](https://github.com/civicrm/civicrm-core/pull/21081))** |
| 544 | |
| 545 | - **Upgrade Pear/DB package to be version 1.11.0 |
| 546 | ([21087](https://github.com/civicrm/civicrm-core/pull/21087))** |
| 547 | |
| 548 | - **CRM_Core_Component - Remove unused code |
| 549 | ([21086](https://github.com/civicrm/civicrm-core/pull/21086))** |
| 550 | |
| 551 | - **Move make-sure-single-set out of shared function |
| 552 | ([21062](https://github.com/civicrm/civicrm-core/pull/21062))** |
| 553 | |
| 554 | - **Remove unused, duplicate functions getEntitiesByTag |
| 555 | ([21209](https://github.com/civicrm/civicrm-core/pull/21209))** |
| 556 | |
| 557 | - **Remove deprecated function |
| 558 | ([21179](https://github.com/civicrm/civicrm-core/pull/21179))** |
| 559 | |
| 560 | - **Remove extraneous buildQuickForm |
| 561 | ([21325](https://github.com/civicrm/civicrm-core/pull/21325))** |
| 562 | |
| 563 | - **Remove unused assignment |
| 564 | ([21061](https://github.com/civicrm/civicrm-core/pull/21061))** |
| 565 | |
| 566 | - **Remove no longer used variable in Email.tpl / smarty warning |
| 567 | ([21074](https://github.com/civicrm/civicrm-core/pull/21074))** |
| 568 | |
| 569 | - **Remove deprecated isDevelopment() function |
| 570 | ([21269](https://github.com/civicrm/civicrm-core/pull/21269))** |
| 571 | |
| 572 | - **[REF] Move acl delete logic to an event listener |
| 573 | ([dev/core#2757](https://lab.civicrm.org/dev/core/-/issues/2757): |
| 574 | [21201](https://github.com/civicrm/civicrm-core/pull/21201) and |
| 575 | [21213](https://github.com/civicrm/civicrm-core/pull/21213))** |
| 576 | |
| 577 | - **[REF] Remove references to contribution_invoice_settings (Work Towards |
| 578 | [dev/core#2719](https://lab.civicrm.org/dev/core/-/issues/2719): |
| 579 | [20991](https://github.com/civicrm/civicrm-core/pull/20991))** |
| 580 | |
| 581 | - **[REF] Afform - Code cleanup in LoadAdminData API action |
| 582 | ([21089](https://github.com/civicrm/civicrm-core/pull/21089))** |
| 583 | |
| 584 | - **[REF] SearchKit - Refactor search task code to share a trait |
| 585 | ([21156](https://github.com/civicrm/civicrm-core/pull/21156))** |
| 586 | |
| 587 | - **[REF] SearchKit - display code refactor + pager options |
| 588 | ([21049](https://github.com/civicrm/civicrm-core/pull/21049))** |
| 589 | |
| 590 | - **[REF] SearchKit - Use non-deprecated join syntax when loading standalone |
| 591 | displays ([21095](https://github.com/civicrm/civicrm-core/pull/21095))** |
| 592 | |
| 593 | - **[REF] APIv4 Notes - Ensure child notes are deleted with parent, and hooks |
| 594 | are called ([21208](https://github.com/civicrm/civicrm-core/pull/21208))** |
| 595 | |
| 596 | - **[REF] Remove unused/unneeded variables from Note View page |
| 597 | ([21226](https://github.com/civicrm/civicrm-core/pull/21226))** |
| 598 | |
| 599 | - **[REF] CRM_Utils_Recent - Use hook listener to delete items |
| 600 | ([21204](https://github.com/civicrm/civicrm-core/pull/21204) and |
| 601 | [21492](https://github.com/civicrm/civicrm-core/pull/21492))** |
| 602 | |
| 603 | - **[REF] Deprecate unnecessary del() functions |
| 604 | ([21200](https://github.com/civicrm/civicrm-core/pull/21200))** |
| 605 | |
| 606 | - **REF Switch to CRM_Core_Form::setTitle() instead of |
| 607 | CRM_Utils_System::setTitle() part 1 |
| 608 | ([21193](https://github.com/civicrm/civicrm-core/pull/21193))** |
| 609 | |
| 610 | - **[Ref] remove unused variable |
| 611 | ([21161](https://github.com/civicrm/civicrm-core/pull/21161))** |
| 612 | |
| 613 | - **[Ref] Move id fetching to the classes |
| 614 | ([21075](https://github.com/civicrm/civicrm-core/pull/21075))** |
| 615 | |
| 616 | - **(REF) ReflectionUtils - Add findStandardProperties() and findMethodHelpers() |
| 617 | ([21114](https://github.com/civicrm/civicrm-core/pull/21114))** |
| 618 | |
| 619 | - **[Ref] Simplify IF clause |
| 620 | ([21078](https://github.com/civicrm/civicrm-core/pull/21078))** |
| 621 | |
| 622 | - **[Ref] extract function to getEmailDefaults |
| 623 | ([21067](https://github.com/civicrm/civicrm-core/pull/21067))** |
| 624 | |
| 625 | - **[Ref] Clarify what parameters are passed in |
| 626 | ([21063](https://github.com/civicrm/civicrm-core/pull/21063))** |
| 627 | |
| 628 | - **[Ref] Move rule to email trait |
| 629 | ([21066](https://github.com/civicrm/civicrm-core/pull/21066))** |
| 630 | |
| 631 | - **[Ref] cleanup alterActionSchedule |
| 632 | ([21047](https://github.com/civicrm/civicrm-core/pull/21047))** |
| 633 | |
| 634 | - **[Ref] Copy emailcommon function back to email trait |
| 635 | ([21251](https://github.com/civicrm/civicrm-core/pull/21251))** |
| 636 | |
| 637 | - **[REF] Update a few references to invoicing |
| 638 | ([21101](https://github.com/civicrm/civicrm-core/pull/21101))** |
| 639 | |
| 640 | - **[Ref] intial testing on case tokens, make knownTokens optional |
| 641 | ([21289](https://github.com/civicrm/civicrm-core/pull/21289))** |
| 642 | |
| 643 | - **[Ref] Deprecate Core_Error handling |
| 644 | ([21279](https://github.com/civicrm/civicrm-core/pull/21279))** |
| 645 | |
| 646 | - **[REF] Fix Page Hook test on php8 by putting in guard into customDataB… |
| 647 | ([21344](https://github.com/civicrm/civicrm-core/pull/21344))** |
| 648 | |
| 649 | - **[REF] Fix undefined smarty vars in Advanced Search |
| 650 | ([21321](https://github.com/civicrm/civicrm-core/pull/21321))** |
| 651 | |
| 652 | - **[REF] Improve Custom data insert performance when using the copyCusto… |
| 653 | ([21313](https://github.com/civicrm/civicrm-core/pull/21313))** |
| 654 | |
| 655 | - **[REF] Copy preProcessFromAddress back into the pdf function |
| 656 | ([21306](https://github.com/civicrm/civicrm-core/pull/21306))** |
| 657 | |
| 658 | - **[REF] Remove duplicate IF |
| 659 | ([21298](https://github.com/civicrm/civicrm-core/pull/21298))** |
| 660 | |
| 661 | - **[REF] Minor extraction |
| 662 | ([21296](https://github.com/civicrm/civicrm-core/pull/21296))** |
| 663 | |
| 664 | - **[REF] Remove unreachable code |
| 665 | ([21294](https://github.com/civicrm/civicrm-core/pull/21294))** |
| 666 | |
| 667 | - **[Ref] Minor extraction |
| 668 | ([21293](https://github.com/civicrm/civicrm-core/pull/21293))** |
| 669 | |
| 670 | - **REF Don't check if id is set in ContributionView form - it's required |
| 671 | ([21274](https://github.com/civicrm/civicrm-core/pull/21274))** |
| 672 | |
| 673 | - **[REF] Remove meaningless if |
| 674 | ([21273](https://github.com/civicrm/civicrm-core/pull/21273))** |
| 675 | |
| 676 | - **[NFC] Fix APIv4 Conformance tests on php8 |
| 677 | ([21302](https://github.com/civicrm/civicrm-core/pull/21302))** |
| 678 | |
| 679 | - **[NFC] - Replace deprecated function in AngularLoaderTest |
| 680 | ([21244](https://github.com/civicrm/civicrm-core/pull/21244))** |
| 681 | |
| 682 | - **[NFC] CRM_Utils_SystemTest - Call to Uri->withPath() using deprecated format |
| 683 | ([21215](https://github.com/civicrm/civicrm-core/pull/21215))** |
| 684 | |
| 685 | - **[NFC] CRM_Extension_Manager_ModuleUpgTest - use ?? instead of |
| 686 | error-suppression operator |
| 687 | ([21214](https://github.com/civicrm/civicrm-core/pull/21214))** |
| 688 | |
| 689 | - **[NFC] CRM_Extension_Manager_ModuleTest - use ?? instead of error-suppression |
| 690 | operator ([21206](https://github.com/civicrm/civicrm-core/pull/21206))** |
| 691 | |
| 692 | - **[NFC] Update CRM_Core_RegionTest so it doesn't need the error-suppression |
| 693 | operator ([21155](https://github.com/civicrm/civicrm-core/pull/21155))** |
| 694 | |
| 695 | - **[NFC] Update testCaseActivityCopyTemplate to provide variable that would |
| 696 | usually be present |
| 697 | ([21146](https://github.com/civicrm/civicrm-core/pull/21146))** |
| 698 | |
| 699 | - **NFC - Fix docblock in CRM_Core_Transaction |
| 700 | ([21125](https://github.com/civicrm/civicrm-core/pull/21125))** |
| 701 | |
| 702 | - **[NFC] {Test} Minor cleanup |
| 703 | ([21116](https://github.com/civicrm/civicrm-core/pull/21116))** |
| 704 | |
| 705 | - **[NFC] Fix UpdateSubscriptionTest on php8 by creating a Payment Processor |
| 706 | ([21324](https://github.com/civicrm/civicrm-core/pull/21324))** |
| 707 | |
| 708 | - **(NFC) Expand test coverage for scheduled-reminders with `{activity.*}` |
| 709 | tokens ([21092](https://github.com/civicrm/civicrm-core/pull/21092))** |
| 710 | |
| 711 | - **(NFC) TokenProcessorTest - Add scenario inspired by dev/core#2673 |
| 712 | ([21090](https://github.com/civicrm/civicrm-core/pull/21090))** |
| 713 | |
| 714 | - **[NFC] Fix E-notice in Afform unit tests |
| 715 | ([21345](https://github.com/civicrm/civicrm-core/pull/21345))** |
| 716 | |
| 717 | - **[NFC] Cleanup boilerplate code in extension upgrader classes |
| 718 | ([21340](https://github.com/civicrm/civicrm-core/pull/21340))** |
| 719 | |
| 720 | - **[NFC/Unit test] Update flaky test |
| 721 | CRM_Utils_TokenConsistencyTest::testCaseTokenConsistency |
| 722 | ([21341](https://github.com/civicrm/civicrm-core/pull/21341))** |
| 723 | |
| 724 | - **(NFC) MailingQueryEvent - Add more docblocks about query-writing and |
| 725 | `tokenContext_*` |
| 726 | ([21098](https://github.com/civicrm/civicrm-core/pull/21098))** |
| 727 | |
| 728 | - **[NFC] Fix undefined array key when running CRM unit test suite in php8 |
| 729 | ([21314](https://github.com/civicrm/civicrm-core/pull/21314))** |
| 730 | |
| 731 | - **Add test to UpdateSubscription form |
| 732 | ([21282](https://github.com/civicrm/civicrm-core/pull/21282))** |
| 733 | |
| 734 | - **Improve test for CRM_Utils_Recent |
| 735 | ([21222](https://github.com/civicrm/civicrm-core/pull/21222))** |
| 736 | |
| 737 | ## <a name="credits"></a>Credits |
| 738 | |
| 739 | This release was developed by the following code authors: |
| 740 | |
| 741 | AGH Strategies - Alice Frumin, Andie Hunt; Agileware - Justin Freeman; |
| 742 | Australian Greens - John Twyman; Benjamin W; CiviCRM - Coleman Watts, Tim Otten; |
| 743 | CompuCorp - Debarshi Bhaumik, Lisandro; Coop SymbioTIC - Mathieu Lutfy; Dave D; |
| 744 | Fuzion - Jitendra Purohit; Greenpeace Central and Eastern Europe - Patrick |
| 745 | Figel; JMA Consulting - Joe Murray, Monish Deb, Seamus Lee; Joinery - Allen |
| 746 | Shaw; Megaphone Technology Consulting - Jon Goldberg; MJW Consulting - Matthew |
| 747 | Wire; Nicol Wistreich; Skvare - Sunil Pawar; Tadpole Collective - Kevin |
| 748 | Cristiano; Third Sector Design - Kurund Jalmi, Michael McAndrew; Wikimedia |
| 749 | Foundation - Eileen McNaughton; Wildsight - Lars Sanders-Green |
| 750 | |
| 751 | Most authors also reviewed code for this release; in addition, the following |
| 752 | reviewers contributed their comments: |
| 753 | |
| 754 | Black Brick Software - David Hayes; CiviCoop - Jaap Jansma; Joinery - Allen |
| 755 | Shaw; Lighthouse Consulting and Design - Brian Shaughnessy; redcuillin |
| 756 | |
| 757 | ## <a name="feedback"></a>Feedback |
| 758 | |
| 759 | These release notes are edited by Alice Frumin and Andie Hunt. If you'd like |
| 760 | to provide feedback on them, please log in to https://chat.civicrm.org/civicrm |
| 761 | and contact `@agh1`. |