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