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