53b1f7e495224aaf84b8a1e61cf1bb4e0b7fee55
[civicrm-core.git] / release-notes / 5.20.0.md
1 # CiviCRM 5.20.0
2
3 Released December 4, 2019
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?** | **yes** |
17 | **Change the database schema?** | **yes** |
18 | **Alter the API?** | **yes** |
19 | **Require attention to configuration options?** | **yes** |
20 | **Fix problems installing or upgrading to a previous version?** | **yes** |
21 | **Introduce features?** | **yes** |
22 | **Fix bugs?** | **yes** |
23
24 ## <a name="features"></a>Features
25
26 ### Core CiviCRM
27
28 - **Replace complex logic in email templates with simple logic on billing name
29 and credit card
30 ([dev/core#1344](https://lab.civicrm.org/dev/core/issues/1344):
31 [15653](https://github.com/civicrm/civicrm-core/pull/15653),
32 [15688](https://github.com/civicrm/civicrm-core/pull/15688),
33 [15646](https://github.com/civicrm/civicrm-core/pull/15646),
34 [15651](https://github.com/civicrm/civicrm-core/pull/15651),
35 [15682](https://github.com/civicrm/civicrm-core/pull/15682) and
36 [15680](https://github.com/civicrm/civicrm-core/pull/15680))**
37
38 The Billing Name and Address and Credit Card Information sections are now
39 included when the billing name and credit card type fields are available,
40 respectively. This replaces template-based logic regarding the payment
41 method, amount, waitlist status, and more with the logic used when collecting
42 and processing this information.
43
44 - **Contact Display Name vs Email Greeting in Workflow templates
45 ([dev/core#781](https://lab.civicrm.org/dev/core/issues/781):
46 [15491](https://github.com/civicrm/civicrm-core/pull/15491))**
47
48 This ensures all standard workflow message templates use the contact's email
49 greeting. Before this change some standard workflow message templates used a
50 hard-coded "Dear" followed by the display name.
51
52 - **Workflow templates - Update 'Thank You' & other text corrections
53 ([dev/core#1316](https://lab.civicrm.org/dev/core/issues/1316):
54 [15749](https://github.com/civicrm/civicrm-core/pull/15749),
55 [15745](https://github.com/civicrm/civicrm-core/pull/15745),
56 [15503](https://github.com/civicrm/civicrm-core/pull/15503) and
57 [15751](https://github.com/civicrm/civicrm-core/pull/15751))**
58
59 Improves grammar and readability of the standard workflow templates.
60
61 - **Workflow templates - Include displayname in subject
62 ([dev/core#1320](https://lab.civicrm.org/dev/core/issues/1320):
63 [15513](https://github.com/civicrm/civicrm-core/pull/15513))**
64
65 This adds a contact's display name to the subject of some workflow templates
66 to make them more personal, less likely to be grouped together by email
67 clients, and more likely to be opened.
68
69 - **Replace Open Flash Charts with charts that work
70 ([15448](https://github.com/civicrm/civicrm-core/pull/15448),
71 [268](https://github.com/civicrm/civicrm-packages/pull/268),
72 [267](https://github.com/civicrm/civicrm-packages/pull/267) and
73 [15493](https://github.com/civicrm/civicrm-core/pull/15493))**
74
75 These changes move CiviCRM charts to use dc.js (which is based upon
76 Crossfilter and D3.js) instead of the outdated Open Flash Chart library.
77
78 - **Add freeform relative date for 'This Fiscal Year'
79 ([14894](https://github.com/civicrm/civicrm-core/pull/14894))**
80
81 Adds support for freeform relative dates (this_n.year & this_n.fiscal_year).
82 To utilize this new functionality administrators must add an option value to
83 the `relative_date_filters` option group.
84
85 - **Remove the sentence: "Please print this page for your records." from the
86 various CiviCRM tpls
87 ([dev/core#371](https://lab.civicrm.org/dev/core/issues/371):
88 [15467](https://github.com/civicrm/civicrm-core/pull/15467))**
89
90 Removes the text "Print for your records" to discourage people from wasting
91 paper.
92
93 - **Remove Print Icon
94 ([15322](https://github.com/civicrm/civicrm-core/pull/15322))**
95
96 This removes the print icon from the upper left hand corner of all pages. The
97 icon generally linked to a version of the page stripped of styling, but
98 printing the page through the browser's normal print command nearly always
99 looks better.
100
101 - **Replace all instances of CRM_Core_Fatal with throw new CRM_Core_Exception
102 (Work towards [dev/core#560](https://lab.civicrm.org/dev/core/issues/560):
103 [15608](https://github.com/civicrm/civicrm-core/pull/15608) and
104 [15623](https://github.com/civicrm/civicrm-core/pull/15623))**
105
106 Works towards throwing exceptions (instead of fatal errors) in
107 several places including if aborting because if a type of a param error.
108
109 - **Make relationship description searchable
110 ([dev/core#1257](https://lab.civicrm.org/dev/core/issues/1257):
111 [15358](https://github.com/civicrm/civicrm-core/pull/15358))**
112
113 Exposes the relationship description field to the advanced search form.
114
115 - **Add in method to allow extensions to opt out of using temporary table when
116 building ACL Contact Cache
117 ([15701](https://github.com/civicrm/civicrm-core/pull/15701))**
118
119 Adds in getter and setter functions and a static class variable to
120 determine if a temporary table should be used when building the ACL contact
121 Cache
122
123 - **Re-arrange change log advanced search panel so both modified fields are next
124 to each other ([15712](https://github.com/civicrm/civicrm-core/pull/15712))**
125
126 This switches the modified date and changed date to appear in the reverse
127 order in order to improve the appearance.
128
129 - **Schema changes for PaymentProcessor and PaymentProcessorType to support
130 apiv4 entities ([15733](https://github.com/civicrm/civicrm-core/pull/15733))**
131
132 Begins work to add `PaymentProcesor` and `PaymentProcessorType` entities to
133 APIv4.
134
135 - **Remove CIVICRM_SUPPORT_MULTIPLE_LOCKS and make it always enabled if
136 available ([15604](https://github.com/civicrm/civicrm-core/pull/15604))**
137
138 Makes `CIVICRM_SUPPORT_MULTIPLE_LOCKS` turned on by default so that by default
139 sites can use multiple locks on modern versions of MySQL/MariaDB.
140
141 - **Add help text to payment processor subject field
142 ([15590](https://github.com/civicrm/civicrm-core/pull/15590))**
143
144 Improves consistency by adding a help icon to the subject field on the
145 "Settings - Payment Processor" form (CiviCRM Admin bar -> Adminster -> System
146 Settings -> Payment Processors add or edit a payment processor).
147
148 - **Generic Settings Pages: Make getSettingPageFilter() public so we can use it
149 in hooks ([15576](https://github.com/civicrm/civicrm-core/pull/15576))**
150
151 Makes the `_filter` property available in hooks so extension developers can
152 use it.
153
154 - **Update api3 explorer url path for consistency
155 ([15597](https://github.com/civicrm/civicrm-core/pull/15597))**
156
157 Changes the path to access the Api3 explorer to `civicrm/api3` so that it
158 is consistent with `civicrm/api4`, `civicrm/api` now redirects to
159 `civicrm/api3`.
160
161 - **Improvements to copying events and contribution pages
162 ([15144](https://github.com/civicrm/civicrm-core/pull/15144))**
163
164 Ensures when an admin copies an event or contribution page the current user ID
165 and time are stored in the `created_date` and `created_id` fields.
166 Additionally, ensures when copying a contribution page the user is
167 redirected to the 'edit' screen for the newly copied page.
168
169 - **Allow custom ts functions in extensions; defer custom ts calls until booted
170 ([15411](https://github.com/civicrm/civicrm-core/pull/15411))**
171
172 Makes it possible for developers to write custom translate functions in
173 extensions.
174
175 - **Update Sending Emails section of configuration checklist
176 ([dev/core#1278](https://lab.civicrm.org/dev/core/issues/1278):
177 [15359](https://github.com/civicrm/civicrm-core/pull/15359))**
178
179 Improves the readability of the "Sending Emails" section of the configuration
180 checklist.
181
182 - **Support street address sorting for contact detail report
183 ([15581](https://github.com/civicrm/civicrm-core/pull/15581))**
184
185 Improves the "Contact Detail" report template by making it possible to sort by
186 "Street Address".
187
188 ### CiviCase
189
190 - **Unable to use url search arguments in 'Advanced Search' using force=1 (Work
191 Towards [dev/core#692](https://lab.civicrm.org/dev/core/issues/692):
192 [15370](https://github.com/civicrm/civicrm-core/pull/15370))**
193
194 Improves the "Find Cases" form's ability to accept url arguments.
195
196 - **Convert case activity links to 'actionLinks'
197 ([14349](https://github.com/civicrm/civicrm-core/pull/14349))**
198
199 Converts Case activity links to use actionLinks so they can be accessed by
200 extension developers using the hook `hook_civicrm_links`.
201
202 - **Format details for case custom data activity in a human readable format
203 ([13365](https://github.com/civicrm/civicrm-core/pull/13365))**
204
205 Improves readability of the activity details saved to case "Change Custom
206 Data" activities.
207
208 ### CiviContribute
209
210 - **Payment processor names: separate internal and external usage
211 ([dev/financial#2](https://lab.civicrm.org/dev/financial/issues/2):
212 [15418](https://github.com/civicrm/civicrm-core/pull/15418),
213 [15497](https://github.com/civicrm/civicrm-core/pull/15497),
214 [15617](https://github.com/civicrm/civicrm-core/pull/15617) and
215 [15632](https://github.com/civicrm/civicrm-core/pull/15632))**
216
217 Adds a new field "Payment Processor Title" to the "Edit Payment Processor"
218 form if configured the title will appear on front end forms. This allows
219 administrators to configure internal and external names for payment
220 processors. For example, internally a payment processor may be called "Action
221 Fund - Stripe" while externally It may use the label "Credit Card". Ensures
222 that the front end title of the payment processor is used in receipts when
223 available.
224
225 - **Payments - Where do we store IDs from payment processor?
226 ([dev/financial#57](https://lab.civicrm.org/dev/financial/issues/57):
227 [15468](https://github.com/civicrm/civicrm-core/pull/15468))**
228
229 Adds an `order_reference` field to `civicrm_financial_trxn` table. The
230 `order_reference` field is intended to hold the payment processor provided
231 external reference to an order / invoice (when applicable/possible).
232
233 - **New methodology for storing template contributions (Work towards
234 [dev/financial#72](https://lab.civicrm.org/dev/financial/issues/72):
235 [15472](https://github.com/civicrm/civicrm-core/pull/15472),
236 [15470](https://github.com/civicrm/civicrm-core/pull/15470),
237 [15550](https://github.com/civicrm/civicrm-core/pull/15550),
238 [15431](https://github.com/civicrm/civicrm-core/pull/15431),
239 [15456](https://github.com/civicrm/civicrm-core/pull/15456),
240 [15433](https://github.com/civicrm/civicrm-core/pull/15433) and
241 [15419](https://github.com/civicrm/civicrm-core/pull/15419))**
242
243 Moves towards a new methodology for storing template contributions by: using a
244 standard function to create contribution status dropdowns for batch
245 contribution entry and the batch pending contribution status update task, adds
246 a new contribution status "Template", adds an `is_template` field to
247 contributions. Adds some logic surrounding pulling Contributions templates
248 using the new `is_template` field.
249
250 - **PaymentProcessor.pay should handle 'invoice_id' & map it to a getter so
251 processors can retrieve it
252 ([dev/financial#77](https://lab.civicrm.org/dev/financial/issues/77):
253 [15639](https://github.com/civicrm/civicrm-core/pull/15639))**
254
255 Makes `contribution_id` required when calling the `PaymentProcessor.pay` API.
256
257 - **Order.create should not require total amount
258 ([dev/financial#73](https://lab.civicrm.org/dev/financial/issues/73):
259 [15501](https://github.com/civicrm/civicrm-core/pull/15501))**
260
261 Updates the Order.create API to require `total_amount` OR `line_items` instead
262 of solely requiring `total_amount`.
263
264 - **Order api updates to fix participant handling & deprecate creating
265 'completed ([15514](https://github.com/civicrm/civicrm-core/pull/15514))**
266
267 Improves the Order api by making it so status is no longer required for
268 creating participants and creating completed orders is deprecated.
269
270 - **Develop getter & setter structure for Payment classes (Work towards
271 [dev/financial#82](https://lab.civicrm.org/dev/financial/issues/82):
272 [15707](https://github.com/civicrm/civicrm-core/pull/15707) and
273 [15509](https://github.com/civicrm/civicrm-core/pull/15509))**
274
275 Begins work to refactor how CRM_Core_Payment works so that `doPayment` accepts
276 a consistent defined set of variables.
277
278 - **Contribution Summary report only shows first 50 entries
279 ([dev/core#1252](https://lab.civicrm.org/dev/core/issues/1252):
280 [15528](https://github.com/civicrm/civicrm-core/pull/15528))**
281
282 Adds support for paging on the Contribution Summary Report.
283
284 - **Provide precautionary handling for theoretical error scenario.
285 ([15748](https://github.com/civicrm/civicrm-core/pull/15748))**
286
287 Provides protection against fatal errors when adding payments if
288 `financial_items` have not been created.
289
290 - **Support chaining Payment.create from Order api
291 ([15548](https://github.com/civicrm/civicrm-core/pull/15548))**
292
293 Adds support to chain a `Payment.create` call from an `Order.create` api call.
294
295 - **Translate two string in AdditionalPayment form
296 ([15577](https://github.com/civicrm/civicrm-core/pull/15577))**
297
298 Translates two strings on the Additional Payment form.
299
300 ### WordPress Integration
301
302 - **Switch WP over to new installer
303 ([dev/wordpress#37](https://lab.civicrm.org/dev/wordpress/issues/37):
304 [165](https://github.com/civicrm/civicrm-wordpress/pull/165))**
305
306 Improves the CiviCRM installation process for WordPress sites by redirecting
307 users to an install screen when the CiviCRM plugin is activated.
308
309 ## <a name="bugs"></a>Bugs resolved
310
311 ### Core CiviCRM
312
313 - **Add support for bulkcreates (Work towards
314 [dev/core#1093](https://lab.civicrm.org/dev/core/issues/1093):
315 [15599](https://github.com/civicrm/civicrm-core/pull/15599))**
316
317 Fixes a fatal error when updating a custom field with logging enabled.
318
319 - **Attachment API for event custom field gives: Failed to run Permissions
320 checks ([dev/core#1205](https://lab.civicrm.org/dev/core/issues/1205):
321 [15580](https://github.com/civicrm/civicrm-core/pull/15580))**
322
323 Fixes a bug where using the Attachment API for a custom file field would fail
324 with a permission denied error.
325
326 - **Email Processor drops the other attachments if there's more than 3
327 ([dev/core#1270](https://lab.civicrm.org/dev/core/issues/1270):
328 [15438](https://github.com/civicrm/civicrm-core/pull/15438))**
329
330 Fixes a bug where the email processor would drop attachments if there were
331 more attachments in the incoming email than the limit set at system settings -
332 misc.
333
334 - **Fix CSS for public select2 elements regardless of parent theme box-size
335 ([15442](https://github.com/civicrm/civicrm-core/pull/15442))**
336
337 Fixes the height of select2 boxes (so that they do not appears squished) on
338 front facing forms across CMS's and browsers.
339
340 - **CiviCRM Dashboard does not respect multiple domains
341 ([dev/core#1200](https://lab.civicrm.org/dev/core/issues/1200):
342 [15283](https://github.com/civicrm/civicrm-core/pull/15283))**
343
344 Ongoing fixes for the CiviCRM Dashboard when using multiple Domains.
345
346 - **Warning: array_key_exists(): The first argument should be either a string or
347 an integer in CRM_Contact_Form_Search::getModeValue()
348 ([dev/core#1347](https://lab.civicrm.org/dev/core/issues/1347):
349 [15650](https://github.com/civicrm/civicrm-core/pull/15650))**
350
351 Fixes a php warning on the advanced search form when opening some accordions.
352
353 - **Report improvements
354 ([CRM-21677](https://issues.civicrm.org/jira/browse/CRM-21677):
355 [15567](https://github.com/civicrm/civicrm-core/pull/15567))**
356
357 Removes redundant gender evaluation code from the Case Demographic Report
358 template.
359
360 - **Re-installation of Extension With Custom Fields and Logging Enabled Causes
361 Error ([dev/core#1383](https://lab.civicrm.org/dev/core/issues/1383):
362 [15816](https://github.com/civicrm/civicrm-core/pull/15816))**
363
364 - **Php 7.3 fix - don't mis-use continue
365 ([15737](https://github.com/civicrm/civicrm-core/pull/15737))**
366
367 Fixes some php warnings regarding using continue where break would be
368 preferable for sites running PHP 7.3.
369
370 - **Allow regen.sh to work with either upper/lower case for CMS name to match
371 elsewhere ([15647](https://github.com/civicrm/civicrm-core/pull/15647))**
372
373 Ensures regen.sh works with both Proper and lower case CMS names.
374
375 - **Make sure labels match the actual date input format
376 ([15520](https://github.com/civicrm/civicrm-core/pull/15520))**
377
378 Ensures the labels of the date input format dropdown (under
379 `/civicrm/admin/setting/date`) match the actual value of the formats.
380
381 - **Can't search for activity subjects starting with 1 - and many more caching
382 issues ([dev/core#1411](https://lab.civicrm.org/dev/core/issues/1411):
383 [15918](https://github.com/civicrm/civicrm-core/pull/15918))**
384
385 The query to fill the SQL cache would fail in a variety of cases, either
386 returning no results or running a fresh, uncached set of results.
387
388 - **Fix fatal error when sorting by status in activity search
389 ([15923](https://github.com/civicrm/civicrm-core/pull/15923))**
390
391 - **E Notice 'info' Extension.php:248 -> When installing via cv
392 ([dev/core#1371](https://lab.civicrm.org/dev/core/issues/1371):
393 [15762](https://github.com/civicrm/civicrm-core/pull/15762))**
394
395 - **Reports show "&nbsp;" in filters with child-groups
396 ([dev/core#826](https://lab.civicrm.org/dev/core/issues/826):
397 [15293](https://github.com/civicrm/civicrm-core/pull/15293))**
398
399 - **Upgrade failure with 5.19 involving interaction between APIv4 and extensions
400 ([dev/core#1376](https://lab.civicrm.org/dev/core/issues/1376):
401 [15765](https://github.com/civicrm/civicrm-core/pull/15765))**
402
403 - **Fixing a fatal error when installing extensions with Option Values defined
404 in XML ([15643](https://github.com/civicrm/civicrm-core/pull/15643))**
405
406 - **Civi\Core\Container - Fix warning about Symfony 3=>4 and boot services
407 ([15704](https://github.com/civicrm/civicrm-core/pull/15704))**
408
409 - **Customfields attached to addresses break the profile page
410 ([dev/core#1324](https://lab.civicrm.org/dev/core/issues/1324):
411 [15541](https://github.com/civicrm/civicrm-core/pull/15541))**
412
413 - **Fix bug in SQL queue that can cause tasks to be run twice in a
414 multiprocess environment
415 ([15421](https://github.com/civicrm/civicrm-core/pull/15421))**
416
417 - **Fixes an issue where the two arrays weren't always being merged correctly
418 ([15482](https://github.com/civicrm/civicrm-core/pull/15482))**
419
420 - **Fix error when adding activities from Search Builder
421 ([15522](https://github.com/civicrm/civicrm-core/pull/15522))**
422
423 - **Do no invoke Hooks via UF unless container has been built or it is a hook
424 designed to run without container being built
425 ([15339](https://github.com/civicrm/civicrm-core/pull/15339))**
426
427 - **Ensure front-end hooks are only registered on main query
428 ([166](https://github.com/civicrm/civicrm-wordpress/pull/166))**
429
430 - **Fix E_NOTICE for is_required in address form
431 ([15423](https://github.com/civicrm/civicrm-core/pull/15423))**
432
433 - **Customfields of type Multiselect attached to an Address do not render in
434 profile page (appear empty)
435 ([dev/core#1282](https://lab.civicrm.org/dev/core/issues/1282):
436 [15375](https://github.com/civicrm/civicrm-core/pull/15375) and
437 [15638](https://github.com/civicrm/civicrm-core/pull/15638))**
438
439 - **Upgrade to CiviCRM 5.20.beta fails because of MessageTemplate error
440 ([marketing/civicrm-website#163](https://lab.civicrm.org/marketing/civicrm-website/issues/163):
441 [15844](https://github.com/civicrm/civicrm-core/pull/15844))**
442
443 This change allows the upgrade process to sidestep missing system workflow
444 message templates rather than failing when trying to update them.
445
446 - **Link to docs.civicrm.org instead of wiki
447 ([15973](https://github.com/civicrm/civicrm-core/pull/15973))**
448
449 Outdated links to the old CiviCRM wiki that appear in upgrade messages have
450 been replaced with links to the current user documentation.
451
452 - **Ensure that Relative key is not added for non Select Date is_search_range
453 custom fields ([15977](https://github.com/civicrm/civicrm-core/pull/15977) and
454 [16002](https://github.com/civicrm/civicrm-core/pull/16002))**
455
456 ### CiviCase
457
458 - **Fix longstanding name vs label problems for case roles
459 ([dev/core#1046](https://lab.civicrm.org/dev/core/issues/1046):
460 [15556](https://github.com/civicrm/civicrm-core/pull/15556),
461 [15483](https://github.com/civicrm/civicrm-core/pull/15483), and
462 [15939](https://github.com/civicrm/civicrm-core/pull/15939))**
463
464 Case roles are now defined in case types as relationship type names instead of
465 labels. This fixes a variety of bugs for CiviCRM instances with case roles
466 that rely on relationships where the label does not match the name. A new
467 system check will alert administrators if case types stored in XML files need
468 to be edited.
469
470 - **Saving a case type can give a php warning, but the warning is more hidden
471 than usual so it seems like everything is ok
472 ([dev/core#1335](https://lab.civicrm.org/dev/core/issues/1335):
473 [15554](https://github.com/civicrm/civicrm-core/pull/15554))**
474
475 Prevents a php warning "htmlspecialchars() expects parameter 1 to be string,
476 array given" when saving case type.
477
478 - **Reinstate Case ID search field
479 ([15935](https://github.com/civicrm/civicrm-core/pull/15935))**
480
481 This resolves a regression in 5.20.beta where the case search lacked a case ID
482 field.
483
484 - **Upgrade script to flip autoassignees using bidirectional relationship in
485 older civicase configs
486 ([15542](https://github.com/civicrm/civicrm-core/pull/15542))**
487
488 Fixes a visual display issue for sites with configured activity autoassignees
489 in a CiviCase timeline using "by relationship" with a bidirectional
490 relationship (e.g. sibling) prior to 5.16 . Specifically, sites with this
491 setup will see a blank on the case type edit screen. It doesn't affect
492 operation, and saving the case type doesn't lose any info, but it's a visual
493 confusion. This upgrade script flips the a's and b's for those settings.
494
495 - **Minor a_b/b_a mixup on case type edit screen
496 ([15412](https://github.com/civicrm/civicrm-core/pull/15412))**
497
498 - **Print Merge document from case search doesn't file on correct contact.
499 ([dev/core#893](https://lab.civicrm.org/dev/core/issues/893):
500 [15626](https://github.com/civicrm/civicrm-core/pull/15626))**
501
502 - **Ensure that using case_start_date_high and case_start_date_low etc in url
503 variables works in force=1 mode
504 ([15619](https://github.com/civicrm/civicrm-core/pull/15619))**
505
506 - **Minimal fix for new enotice on case.subject
507 ([15616](https://github.com/civicrm/civicrm-core/pull/15616))**
508
509 - **Clicking on a contact's cases tab gives Network Error Unable to reach the
510 server ([dev/core#1381](https://lab.civicrm.org/dev/core/issues/1381):
511 [15804](https://github.com/civicrm/civicrm-core/pull/15804))**
512
513 ### CiviContribute
514
515 - **Respect calling code passing in 'null' for creditnote_id.
516 ([15232](https://github.com/civicrm/civicrm-core/pull/15232))**
517
518 Fixes an issue where the contribution BAO disregards 'null' when passed in for
519 'credit_note_id'.
520
521 - **Change test to use preferred methods, fix revealed money bug
522 ([15622](https://github.com/civicrm/civicrm-core/pull/15622))**
523
524 Ensures that Payment.create cleans the `total_amount` field like
525 Contribution.create.
526
527 - **Membership and Event Related Contributions - shows all contributions
528 ([dev/core#1435](https://lab.civicrm.org/dev/core/issues/1435):
529 [16013](https://github.com/civicrm/civicrm-core/pull/16013))**
530
531 This resolves a regression when viewing a membership or participant record
532 where the related contributions show all contributions, not those related to
533 the record.
534
535 - **Fix cancel payment action to reverse financial items related to cancelled
536 payment ([15630](https://github.com/civicrm/civicrm-core/pull/15630))**
537
538 Fixes a bug where the `financial_entity_trxn` entries associated with a
539 canceled payment were not being reversed as they should have been.
540
541 - **Missing Financial type and Credit Account Code in Bookkeeping Transaction
542 Report (Work towards
543 [dev/financial#40](https://lab.civicrm.org/dev/financial/issues/40):
544 [15740](https://github.com/civicrm/civicrm-core/pull/15740))**
545
546 Fixes an issue whereby `civicrm_entity_financial_trxn` records for the
547 `civicrm_financial_item` table were not created when refunding against line
548 items with a quantity of zero - i.e. where there were selected check boxes &
549 they were reversed.
550
551 - **Deprecate Contribute.transact api
552 ([dev/financial#79](https://lab.civicrm.org/dev/financial/issues/79):
553 [15564](https://github.com/civicrm/civicrm-core/pull/15564),
554 [15591](https://github.com/civicrm/civicrm-core/pull/15591) and
555 [15504](https://github.com/civicrm/civicrm-core/pull/15504))**
556
557 Marks the `Contribute.transact` as deprecated in the API explorer, adds a
558 noisy deprecation warning to Contribute.transact and moves it to its own file.
559
560 - **Cleanup date handling on Payment.create
561 ([15687](https://github.com/civicrm/civicrm-core/pull/15687))**
562
563 Ensures that adding a payment on the `AdditionalPaymentForm` does not change
564 the Contribution `receive_date`.
565
566 - **Ensure contributionRecurID is set on processor
567 ([15673](https://github.com/civicrm/civicrm-core/pull/15673))**
568
569 Ensures that `contributionRecurID` is available to payment processors that
570 need it in `cancelSubscription`.
571
572 - **fix 'balance due' on Pledge Detail for non-US installs
573 ([15543](https://github.com/civicrm/civicrm-core/pull/15543))**
574
575 Fixes a bug where the Pledge Detail report crashed when "Balance Due" was
576 selected and the label of either of the pledge statuses "Completed" or
577 "Canceled" had been modified.
578
579 - **Record Refund fails due to thousands separator in amount
580 ([dev/core#1409](https://lab.civicrm.org/dev/core/issues/1409):
581 [15889](https://github.com/civicrm/civicrm-core/pull/15889))**
582
583 This bug was sidestepped by removing the Net Amount field on the Record Refund
584 form.
585
586 - **Incorrect allocation of payment on an edited multi-line item event
587 registration
588 ([dev/financial#34](https://lab.civicrm.org/dev/financial/issues/34):
589 [14763](https://github.com/civicrm/civicrm-core/pull/14763))**
590
591 - **Incorrect Allocation of refunded line items on Multi Event Registrations
592 ([dev/financial#94](https://lab.civicrm.org/dev/financial/issues/94):
593 [15664](https://github.com/civicrm/civicrm-core/pull/15664))**
594
595 - **Conditionally add contribution metadata for advanced search only if the user
596 has access to CiviContribute
597 ([15966](https://github.com/civicrm/civicrm-core/pull/15966))**
598
599 - **Fix ambiguous column in Contribution Search query with ORDER BY
600 ([15899](https://github.com/civicrm/civicrm-core/pull/15899))**
601
602 This fixes an issue where columns whose names are not unique in the underlying
603 query of a search cause a database error when they're used as a sort column.
604
605 - **Custom Search: Find Contributors by Aggregate Totals does not return results
606 if 'Choose date range' is selected and end date is empty
607 ([dev/core#1297](https://lab.civicrm.org/dev/core/issues/1297):
608 [15415](https://github.com/civicrm/civicrm-core/pull/15415))**
609
610 - **Custom Search: Search actions broken on Find Contributors by Aggregate
611 Totals ([dev/core#1377](https://lab.civicrm.org/dev/core/issues/1377):
612 [15873](https://github.com/civicrm/civicrm-core/pull/15873))**
613
614 - **Fix Sybunt to select mark rows as selected
615 ([15872](https://github.com/civicrm/civicrm-core/pull/15872))**
616
617 This resolves a bug where checking result rows on the SYBUNT custom search
618 would not actually select them or increment the "selected" count of rows.
619
620 - **Remove unhelpful alert from contribution search
621 ([15787](https://github.com/civicrm/civicrm-core/pull/15787))**
622
623 This removes the "We did not recognize the search field..." warning that would
624 appear when searching on certain fields even as the search would accurately
625 filter on the field's value.
626
627 - **Save & Next button on Contribution Page Widgets tab does not move user to
628 next step ([dev/core/1266](https://lab.civicrm.org/dev/core/issues/1266):
629 [15323](https://github.com/civicrm/civicrm-core/pull/15323))**
630
631 - **Fix parameters for statusBounce in AdditionalPayment
632 ([15579](https://github.com/civicrm/civicrm-core/pull/15579))**
633
634 - **Fix deprecation warning on Price Set report
635 ([15952](https://github.com/civicrm/civicrm-core/pull/15952))**
636
637 - **RepeatTransaction API incorrectly calculates the total amount when recur
638 payment has tax amount.
639 ([dev/core#1317](https://lab.civicrm.org/dev/core/issues/1317):
640 [15517](https://github.com/civicrm/civicrm-core/pull/15517))**
641
642 - **Incorrect line items recorded with contribution repeattransaction api.
643 ([dev/core#1367](https://lab.civicrm.org/dev/core/issues/1367):
644 [15735](https://github.com/civicrm/civicrm-core/pull/15735))**
645
646 - **Contribution Detail Report gives incorrect results when `force=1`
647 ([dev/report#20](https://lab.civicrm.org/dev/report/issues/20):
648 [15315](https://github.com/civicrm/civicrm-core/pull/15315))**
649
650 - **Fix typo in parameter description for PaymentProcessor.pay
651 ([15476](https://github.com/civicrm/civicrm-core/pull/15476))**
652
653 - **Fix Payment.create with a negative value to create the correct financial
654 items ([15705](https://github.com/civicrm/civicrm-core/pull/15705))**
655
656 - **Fix Payment.create bug whereby payment_processor_id is not being used for
657 the to_account_id
658 ([15640](https://github.com/civicrm/civicrm-core/pull/15640))**
659
660 - **Fix bug whereby cidZero does not prepopulate billing details for selected
661 contact for pay later.
662 ([15565](https://github.com/civicrm/civicrm-core/pull/15565))**
663
664 - **Contribution Dashboard still uses broken Open Flash Charts
665 ([dev/core#1309](https://lab.civicrm.org/dev/core/issues/1309):
666 [15474](https://github.com/civicrm/civicrm-core/pull/15474))**
667
668 - **Fix 5.20 regression on retrieving template transaction with no logged in
669 user ([15976](https://github.com/civicrm/civicrm-core/pull/15976))**
670
671 ### CiviEvent
672
673 - **Event Participants actions (Print Name Badges, Export...) ignores search
674 criteria ([dev/core#1422](https://lab.civicrm.org/dev/core/issues/1422):
675 [15962](https://github.com/civicrm/civicrm-core/pull/15962))**
676
677 This resolves an issue where the action would be based upon all participants
678 of all events rather than all of the results of the current search.
679
680 - **Fix loading of profile fields on additional participant form
681 ([15698](https://github.com/civicrm/civicrm-core/pull/15698))**
682
683 Fixes a bug where no profile fields were loaded on the additional participant
684 form of an Online Registration form configured to accept multiple
685 participants.
686
687 - **Fix logic determining whether (masked) credit card details are displayed in
688 event online receipts
689 ([15532](https://github.com/civicrm/civicrm-core/pull/15532))**
690
691 Fixes Event online receipts to display credit card info if available.
692
693 ### CiviGrant
694
695 - **Grant in Edit mode doesn't show the associated contact and standardize all
696 screens accordingly.
697 ([dev/core#1065](https://lab.civicrm.org/dev/core/issues/1065):
698 [15362](https://github.com/civicrm/civicrm-core/pull/15362),
699 [15321](https://github.com/civicrm/civicrm-core/pull/15321) and
700 [15744](https://github.com/civicrm/civicrm-core/pull/15744))**
701
702 ### CiviMail
703
704 - **Add in unit test for namespaced fields in mailing reports and also fix issue
705 where by mailing_name has been namespaced also in 5.20 (Follow-up to
706 [dev/mail#56](https://lab.civicrm.org/dev/mail/issues/56) and
707 [dev/mail#57](https://lab.civicrm.org/dev/mail/issues/57):
708 [15782](https://github.com/civicrm/civicrm-core/pull/15782))**
709
710 ### CiviMember
711
712 - **Duplicated inherited membership with multiple relationships when adding a
713 new relationship
714 ([dev/core#1361](https://lab.civicrm.org/dev/core/issues/1361):
715 [15731](https://github.com/civicrm/civicrm-core/pull/15731))**
716
717 Fixes a bug where duplicate inherited relationships were being created for the
718 same membership.
719
720 - **Agile fixFix inherited membership being deleted when there is still a valid
721 relationship
722 ([15062](https://github.com/civicrm/civicrm-core/pull/15062))**
723
724 Fixes a bug where contacts with two or more relationships to a member contact
725 would lose their inherited relationship if one of their other relationships
726 was deleted.
727
728 - **Unable to edit the membership end date for members that have a recurring
729 payment ([dev/core#1126](https://lab.civicrm.org/dev/core/issues/1126):
730 [15540](https://github.com/civicrm/civicrm-core/pull/15540))**
731
732 ### Backdrop Integration
733
734 - **Backdrop support for adding roles and perms
735 ([infra/ops#906](https://lab.civicrm.org/infra/ops/issues/906):
736 [15571](https://github.com/civicrm/civicrm-core/pull/15571))**
737
738 Ensures that one can build a Backdrop/CiviCRM site with a demo user with
739 the permissions expected of a demo user.
740
741 ### WordPress Integration
742
743 - **Reinstate traversal as "method of last resort" to find WordPress (Follow-up
744 from [dev/core#1412](https://lab.civicrm.org/dev/core/issues/1412):
745 [15929](https://github.com/civicrm/civicrm-core/pull/15929))**
746
747 This restores code removed in 5.19.3 to resolve the location of the CiviCRM
748 code in WordPress, only executing it as a fallback method if the new method
749 fails.
750
751 ## <a name="misc"></a>Miscellany
752
753 - **Replace jcalendar instances with datepicker
754 ([dev/core#561](https://lab.civicrm.org/dev/core/issues/561):
755 [15661](https://github.com/civicrm/civicrm-core/pull/15661),
756 [15677](https://github.com/civicrm/civicrm-core/pull/15677),
757 [15694](https://github.com/civicrm/civicrm-core/pull/15694),
758 [15671](https://github.com/civicrm/civicrm-core/pull/15671),
759 [15637](https://github.com/civicrm/civicrm-core/pull/15637),
760 [15633](https://github.com/civicrm/civicrm-core/pull/15633),
761 [15614](https://github.com/civicrm/civicrm-core/pull/15614),
762 [15710](https://github.com/civicrm/civicrm-core/pull/15710),
763 [15719](https://github.com/civicrm/civicrm-core/pull/15719),
764 [15618](https://github.com/civicrm/civicrm-core/pull/15618),
765 [15636](https://github.com/civicrm/civicrm-core/pull/15636),
766 [15693](https://github.com/civicrm/civicrm-core/pull/15693),
767 [15711](https://github.com/civicrm/civicrm-core/pull/15711),
768 [15702](https://github.com/civicrm/civicrm-core/pull/15702) and
769 [15635](https://github.com/civicrm/civicrm-core/pull/15635))**
770
771 - **Api support for deduping (Code cleanup in preparation for
772 [dev/core#1230](https://lab.civicrm.org/dev/core/issues/1230):
773 [15184](https://github.com/civicrm/civicrm-core/pull/15184))**
774
775 - **group.get API (v3) fails to find groups of one group_type if group has
776 multiple types (Test for
777 [dev/core#1321](https://lab.civicrm.org/dev/core/issues/1321):
778 [15546](https://github.com/civicrm/civicrm-core/pull/15546))**
779
780 - **composer.{json,lock} - Make the "tplaner/when" exception for old PHP
781 reproducible ([15732](https://github.com/civicrm/civicrm-core/pull/15732))**
782
783 - **Add in xkerman/restricted-unserialize package
784 ([15730](https://github.com/civicrm/civicrm-core/pull/15730))**
785
786 - **INTL_IDNA_VARIANT_2003 deprecated in PHP_7.2
787 ([266](https://github.com/civicrm/civicrm-packages/pull/266))**
788
789 - **Extract contribution search functions to help with case search improvements
790 ([15373](https://github.com/civicrm/civicrm-core/pull/15373))**
791
792 - **Further cleanup and clarification on MembershipPayment
793 ([15407](https://github.com/civicrm/civicrm-core/pull/15407))**
794
795 - **The loop doth process too much, methinks
796 ([15473](https://github.com/civicrm/civicrm-core/pull/15473))**
797
798 - **[Membership-backoffice] Reduce reliance on multiple specific but confusing
799 class variables
800 ([14919](https://github.com/civicrm/civicrm-core/pull/14919))**
801
802 - **Simplify logic for displaying card details for Event online registration
803 Confirm, Thankyou page
804 ([15533](https://github.com/civicrm/civicrm-core/pull/15533))**
805
806 - **Fix typo in Manager.php
807 ([15518](https://github.com/civicrm/civicrm-core/pull/15518))**
808
809 - **Update my organisation
810 ([15469](https://github.com/civicrm/civicrm-core/pull/15469))**
811
812 - **Combine IF clause for readability.
813 ([15568](https://github.com/civicrm/civicrm-core/pull/15568))**
814
815 - **Switch creation of ParticipantPayment to use API
816 ([15500](https://github.com/civicrm/civicrm-core/pull/15500))**
817
818 - **Remove when package from packages
819 ([264](https://github.com/civicrm/civicrm-packages/pull/264))**
820
821 - **Cast result of getContributionBalance to float to match comment block.
822 ([15621](https://github.com/civicrm/civicrm-core/pull/15621))**
823
824 - **Remove obsolete supportStorageOfAccents() method.
825 ([15589](https://github.com/civicrm/civicrm-core/pull/15589))**
826
827 - **Upgrade When package to the lastest version
828 ([15223](https://github.com/civicrm/civicrm-core/pull/15223))**
829
830 - **Api4 explorer: Fix variable leaking to global scope
831 ([15615](https://github.com/civicrm/civicrm-core/pull/15615))**
832
833 - **Improve metadata support for table civicrm_mailing_job in search
834 ([15634](https://github.com/civicrm/civicrm-core/pull/15634))**
835
836 - **Change parent class on mailing_form
837 ([15629](https://github.com/civicrm/civicrm-core/pull/15629))**
838
839 - **Add uniquenames for mailing_name, mailing_job_status
840 ([15652](https://github.com/civicrm/civicrm-core/pull/15652))**
841
842 - **Add getQillValue fn to generalise qill string construct
843 ([15667](https://github.com/civicrm/civicrm-core/pull/15667))**
844
845 - **Remove scriptFee & scriptArray params
846 ([dev/event#19](https://lab.civicrm.org/dev/event/issues/19):
847 [15679](https://github.com/civicrm/civicrm-core/pull/15679))**
848
849 - **Fix the relationship direction in testSingleMembershipForTwoRelationships
850 ([15738](https://github.com/civicrm/civicrm-core/pull/15738))**
851
852 - **Remove recordPayment function.
853 ([15684](https://github.com/civicrm/civicrm-core/pull/15684))**
854
855 - **Eliminate silly parameter
856 ([15723](https://github.com/civicrm/civicrm-core/pull/15723))**
857
858 - **Use Yes-No radio instead of checkbox on search form.
859 ([15669](https://github.com/civicrm/civicrm-core/pull/15669))**
860
861 - **Cleanup following smart group conversions and fix the old name of the
862 relationship date relative fields for conversion and add a unit test
863 ([15648](https://github.com/civicrm/civicrm-core/pull/15648))**
864
865 - **Remove a redundant call to formatParamsForPaymentProcessor in
866 AdditionalPayment form
867 ([15578](https://github.com/civicrm/civicrm-core/pull/15578))**
868
869 - **Remove extraneous full stop, line
870 ([15531](https://github.com/civicrm/civicrm-core/pull/15531))**
871
872 - **Remove early return on joinTable
873 ([15721](https://github.com/civicrm/civicrm-core/pull/15721))**
874
875 - **Remove unused, hidden subsystem for "persistent DB tpl strings"
876 ([15660](https://github.com/civicrm/civicrm-core/pull/15660))**
877
878 - **Fix test setup Function to use order api
879 ([15620](https://github.com/civicrm/civicrm-core/pull/15620))**
880
881 - **Delete mkdocs.yml
882 ([15658](https://github.com/civicrm/civicrm-core/pull/15658))**
883
884 - **[NFC] minor simplification
885 ([15425](https://github.com/civicrm/civicrm-core/pull/15425))**
886
887 - **[NFC] code formatting
888 ([15424](https://github.com/civicrm/civicrm-core/pull/15424))**
889
890 - **[NFC] dev/core#1046 - minor consistency change
891 ([15486](https://github.com/civicrm/civicrm-core/pull/15486))**
892
893 - **[NFC] dev/core#1046 - more accurate column heading
894 ([15485](https://github.com/civicrm/civicrm-core/pull/15485))**
895
896 - **[NFC] comments tidy up …
897 ([15607](https://github.com/civicrm/civicrm-core/pull/15607))**
898
899 - **[NFC] dev/core#1336 Update doc blocks for various ACL related functions
900 ([15603](https://github.com/civicrm/civicrm-core/pull/15603))**
901
902 - **[NFC] Cleanup on exceptions
903 ([15750](https://github.com/civicrm/civicrm-core/pull/15750))**
904
905 - **(NFC) Remove windows-specific debugging code from 11 years ago
906 ([15736](https://github.com/civicrm/civicrm-core/pull/15736))**
907
908 - **[NFC] Allow users on backdrop to trigger regen.sh
909 ([15717](https://github.com/civicrm/civicrm-core/pull/15717))**
910
911 - **[NFC] Fix exception thrown to std CRM_Core_Exception
912 ([15716](https://github.com/civicrm/civicrm-core/pull/15716))**
913
914 - **[NFC] various code cleanup on CRM_Contact_BAO_Query
915 ([15713](https://github.com/civicrm/civicrm-core/pull/15713))**
916
917 - **[NFC] Test class preliminary clean up
918 ([15685](https://github.com/civicrm/civicrm-core/pull/15685))**
919
920 - **[NFC] test cleanup
921 ([15683](https://github.com/civicrm/civicrm-core/pull/15683))**
922
923 - **[NFC] define variable type
924 ([15681](https://github.com/civicrm/civicrm-core/pull/15681))**
925
926 - **[NFC] Remove unreachable lines
927 ([15672](https://github.com/civicrm/civicrm-core/pull/15672))**
928
929 - **[NFC] Test cleanup - switch to OrderApi in test setup, add throws, use sin…
930 ([15662](https://github.com/civicrm/civicrm-core/pull/15662))**
931
932 - **[NFC] reformat BAO_Case file
933 ([15627](https://github.com/civicrm/civicrm-core/pull/15627))**
934
935 - **[NFC] Add date information to MailingJob Schema
936 ([15628](https://github.com/civicrm/civicrm-core/pull/15628))**
937
938 - **[NFC] Add in debugging to try and resolve E2E Cache intermitant test …
939 ([15625](https://github.com/civicrm/civicrm-core/pull/15625))**
940
941 - **Fix test to be more valid
942 ([15743](https://github.com/civicrm/civicrm-core/pull/15743))**
943
944 - **Add test to lock in obscure custom join handling
945 ([15715](https://github.com/civicrm/civicrm-core/pull/15715))**
946
947 - **Test improvements
948 ([15720](https://github.com/civicrm/civicrm-core/pull/15720))**
949
950 - **Test calling CRM_Financial_BAO_PaymentProcessor::getPaymentProcessors
951 ([15499](https://github.com/civicrm/civicrm-core/pull/15499))**
952
953 - **Update tests to simulate labels that are not the same as names
954 ([15399](https://github.com/civicrm/civicrm-core/pull/15399))**
955
956 - **Add test for participant receipts, super minor consistency fix.
957 ([15525](https://github.com/civicrm/civicrm-core/pull/15525))**
958
959 - **[Code-quality] remove references to where_tables, where_clause
960 ([14891](https://github.com/civicrm/civicrm-core/pull/14891))**
961
962 - **REF Move ipAddress and CC expiry date to prepareParamsForPaymentProcessor
963 ([15291](https://github.com/civicrm/civicrm-core/pull/15291))**
964
965 - **REF Use the new prepareParamsForPaymentProcessor function in more places
966 ([15281](https://github.com/civicrm/civicrm-core/pull/15281))**
967
968 - **[REF] Remove transaction as part of minor code cleanup
969 ([15460](https://github.com/civicrm/civicrm-core/pull/15460))**
970
971 - **[ref] Simplify function signature as parameter is not used
972 ([15459](https://github.com/civicrm/civicrm-core/pull/15459))**
973
974 - **[REF] move definition of important values & retrieval outside payment…
975 ([15458](https://github.com/civicrm/civicrm-core/pull/15458))**
976
977 - **[REF] Minor cleanup to determine taxterm with a helper function.
978 ([15488](https://github.com/civicrm/civicrm-core/pull/15488))**
979
980 - **[REF] Replace deprecated function call with a more readable alternative
981 ([15489](https://github.com/civicrm/civicrm-core/pull/15489))**
982
983 - **[REF] remove call to deprecated function
984 ([15465](https://github.com/civicrm/civicrm-core/pull/15465))**
985
986 - **[REF] Fix typos and remove unused variables
987 ([15462](https://github.com/civicrm/civicrm-core/pull/15462))**
988
989 - **[REF] Rename balanceTrxnParams variable to paymentTrxnParams
990 ([15535](https://github.com/civicrm/civicrm-core/pull/15535))**
991
992 - **[REF] minor extraction with code to build dedupe arrays
993 ([15519](https://github.com/civicrm/civicrm-core/pull/15519))**
994
995 - **[REF] basic extraction of sendMails functionality along with a small test
996 extension ([15516](https://github.com/civicrm/civicrm-core/pull/15516))**
997
998 - **[REF] remove obsolete code.
999 ([15515](https://github.com/civicrm/civicrm-core/pull/15515))**
1000
1001 - **[REF] Deprecate calls to createCreditNoteId
1002 ([15492](https://github.com/civicrm/civicrm-core/pull/15492))**
1003
1004 - **[REF] minor extraction in dedupe code
1005 ([15587](https://github.com/civicrm/civicrm-core/pull/15587))**
1006
1007 - **[REF] minor extraction - Extract code to update line items to paid
1008 ([15602](https://github.com/civicrm/civicrm-core/pull/15602))**
1009
1010 - **[REF] Remove usage of CRM_ACL_BAO_Cache::deleteEntry in favour of usi…
1011 ([15611](https://github.com/civicrm/civicrm-core/pull/15611))**
1012
1013 - **[REF] Remove CRM_Exception in favour of CRM_Core_Exception
1014 ([15610](https://github.com/civicrm/civicrm-core/pull/15610))**
1015
1016 - **[REF] minor refactor towards removing complexity.
1017 ([15594](https://github.com/civicrm/civicrm-core/pull/15594))**
1018
1019 - **[REF] minor tidy ups on very nasty function
1020 ([15722](https://github.com/civicrm/civicrm-core/pull/15722))**
1021
1022 - **[REF] Remove early return on joinTable
1023 ([15718](https://github.com/civicrm/civicrm-core/pull/15718))**
1024
1025 - **[REF] remove as a return Param of getHierContactDetails
1026 ([15714](https://github.com/civicrm/civicrm-core/pull/15714))**
1027
1028 - **[REF] minor code simplification
1029 ([15728](https://github.com/civicrm/civicrm-core/pull/15728))**
1030
1031 - **[REF] Move calls to CRM_Core_BAO_FinancialTrxn::createDeferredTrxn back to
1032 the calling functions.
1033 ([15641](https://github.com/civicrm/civicrm-core/pull/15641))**
1034
1035 - **[REF] Refactor Smart Group Cache population code to be less intensive
1036 ([15588](https://github.com/civicrm/civicrm-core/pull/15588))**
1037
1038 - **[REF] Refactor ACL Contact Cache generation to be more efficient
1039 ([15592](https://github.com/civicrm/civicrm-core/pull/15592))**
1040
1041 - **[REF] extract chunk of code that creates the financial items for a given
1042 line. ([15613](https://github.com/civicrm/civicrm-core/pull/15613))**
1043
1044 - **[REF] Further deconstruction of updateFinancialAccounts
1045 ([15631](https://github.com/civicrm/civicrm-core/pull/15631))**
1046
1047 - **[REF] simplify definition of isARefund
1048 ([15601](https://github.com/civicrm/civicrm-core/pull/15601))**
1049
1050 ## <a name="credits"></a>Credits
1051
1052 This release was developed by the following code authors:
1053
1054 a-n The Artists Information Company - William Mortada; AGH Strategies - Alice
1055 Frumin, Andrew Hunt, Eli Lisseck; Agileware - Pengyi Zhang; Alexy
1056 Mikhailichenko; Australian Greens - Seamus Lee; Christian Wach; CiviCoop - Jaap
1057 Jansma; CiviCRM - Coleman Watts, Tim Otten; CiviDesk - Yashodha Chaku;
1058 CompuCorp- Camilo Rodriguez, Davi Alexandre, Omar Abu Hussein; Dave D;
1059 Electronic Frontier Foundation - Mark Burdett; Florian Kohrt; Freeform
1060 Solutions - Herb van den Dool; Fuzion - Jitendra Purohit; Greenpeace CEE -
1061 Patrick Figel; iXiam - César Ramos; JMA Consulting - Monish Deb; John Kingsnorth;
1062 Megaphone Technology Consulting - Jon Goldberg; MJCO - Mikey O'Toole; MJW
1063 Consulting - Matthew Wire; Mountev Ltd; Richard van Oosterhout; Squiffle
1064 Consulting - Aidan Saunders; SYSTOPIA Organisationsberatung - Björn Endres;
1065 Tadpole Collective - Kevin Cristiano; Wikimedia Foundation - Eileen McNaughton,
1066 Elliott Eggleston
1067
1068 Most authors also reviewed code for this release; in addition, the following
1069 reviewers contributed their comments:
1070
1071 a-n The Artists Information Company - William Mortada; Agileware - Justin
1072 Freeman; Artful Robot - Rich Lott; Blackfly Solutions - Alan Dixon; Circle
1073 Interactive - Dave Jenkins, Pradeep Nayak; CompuCorp - Jamie Novick; Coop
1074 SymbioTIC - Mathieu Lutfy; Fuzion - Luke Stewart; iXiam - Vangelis Pantazis; JMA
1075 Consulting - Joe Murray; Nicol Wistreich; Ray Wright; Red Hot Irons - Heather
1076 Oliver; Skvare - Mark Hanna; OSSeed Technologies LLP - Sushant Paste
1077
1078 ## <a name="feedback"></a>Feedback
1079
1080 These release notes are edited by Alice Frumin and Andrew Hunt. If you'd like
1081 to provide feedback on them, please log in to https://chat.civicrm.org/civicrm
1082 and contact `@agh1`.