Priceset 2nd half
[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 - **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`.