Annotating and Sorting 5.16.0 release notes
[civicrm-core.git] / release-notes / 5.16.0.md
1 # CiviCRM 5.16.0
2
3 In-progress, based upon commit 55086d4c32123382ce471afd2527469873120129
4
5 Released August 7, 2019
6
7 - **[Synopsis](#synopsis)**
8 - **[Features](#features)**
9 - **[Bugs resolved](#bugs)**
10 - **[Miscellany](#misc)**
11 - **[Credits](#credits)**
12 - **[Feedback](#feedback)**
13
14 ## <a name="synopsis"></a>Synopsis
15
16 | *Does this version...?* | |
17 |:--------------------------------------------------------------- |:-------:|
18 | Fix security vulnerabilities? | no |
19 | Change the database schema? | no |
20 | Alter the API? | **yes** |
21 | Require attention to configuration options? | **yes** |
22 | Fix problems installing or upgrading to a previous version? | **yes** |
23 | Introduce features? | **yes** |
24 | Fix bugs? | **yes** |
25
26 ## <a name="features"></a>Features
27
28 ### Core CiviCRM
29
30 - **Allow extensions to define CSS themes / Add a configuration setting for when
31 to load custom CSS
32 ([CRM-18792](https://issues.civicrm.org/jira/browse/CRM-18792) /
33 [dev/core#378](https://lab.civicrm.org/dev/core/issues/378):
34 [14551](https://github.com/civicrm/civicrm-core/pull/14551) and
35 [12929](https://github.com/civicrm/civicrm-core/pull/12929))**
36
37 Adds an option to the "Display Preferences" settings form to allow users to
38 more finely tune when CiviCRM's css is loaded. On WordPress and Joomla two
39 options are available the "Backend Theme" and "Frontend Theme", on Drupal and
40 Backdrop, the administration screen "Display Preferences" presents a singular
41 "Theme" option.
42
43 - **Clean up use of DAO::nullArray
44 ([dev/core#1047](https://lab.civicrm.org/dev/core/issues/1047):
45 [14556](https://github.com/civicrm/civicrm-core/pull/14556),
46 [14555](https://github.com/civicrm/civicrm-core/pull/14555) and
47 [14550](https://github.com/civicrm/civicrm-core/pull/14550))**
48
49 Improves code stability by removing the unnecessary function
50 `CRM_Core_DAO::_nullArray`.
51
52 - **Consolidate handling of conflicts between the batch job and get_conflicts
53 api ([14685](https://github.com/civicrm/civicrm-core/pull/14685))**
54
55 Improves code consistency by ensuring that merge conflicts are stored during
56 batch_merge to the prev_next cache with the same format as when the api calls
57 get_conflicts, the code doing this wrangling is moved from the api to the BAO
58 layer.
59
60 - **Add csv reader package
61 ([14524](https://github.com/civicrm/civicrm-core/pull/14524))**
62
63 Adds the CSV processing utility, league/csv ^9.2 which will help with future
64 PRs which introduce more test-coverage for CSV outputs and help cleanup some
65 of the csv code down the way.
66
67 - **Improve protected field metadata
68 ([14679](https://github.com/civicrm/civicrm-core/pull/14679))**
69
70 Adds more robust metadata to fields protected by permissions in a format that
71 can be directly passed into `CRM_Core_Permissions::check()`.
72
73 - **Move api_key read/write permission checks from api to BAO
74 ([14660](https://github.com/civicrm/civicrm-core/pull/14660))**
75
76 Moves the logic for checking the api_key field permissions from the api layer
77 to the BAO layer so it can be reused by api4 and other things.
78
79 - **Handle relative start & end dates passed to datepicker widget
80 ([14632](https://github.com/civicrm/civicrm-core/pull/14632))**
81
82 Adds some client-side logic to the datepicker widget that was previously done
83 server-side. Paves the way for afform.
84
85 - **Improve utilities & tests for working with js notation
86 ([14588](https://github.com/civicrm/civicrm-core/pull/14588),
87 [14537](https://github.com/civicrm/civicrm-core/pull/14537) and
88 [14586](https://github.com/civicrm/civicrm-core/pull/14586))**
89
90 Removes dependence on an external library & improves robustness & accuracy of
91 reading/writing js notation. Adds a utility function for getting properties of
92 a Javascript option without parsing them. Adds a utility function and a
93 test for dealing with data in js notation.
94
95 - **i18n - Improve multilingual popup for text and wysiwyg fields
96 ([14578](https://github.com/civicrm/civicrm-core/pull/14578))**
97
98 Fixes copying of values between multilingual popup and main form for wysiwyg
99 fields and makes text fields larger in multilingual pop-up.
100
101 - **Buttons inconsistencies
102 ([dev/core#347](https://lab.civicrm.org/dev/core/issues/347):
103 [14136](https://github.com/civicrm/civicrm-core/pull/14136) and
104 [14509](https://github.com/civicrm/civicrm-core/pull/14509))**
105
106 Adds support for "button" elements in CiviCRM ajax popup forms in addition to
107 the input type=button/submit and the "a class=button". This is a first step
108 towards cleaning up button handling from a theming perspective. Adds
109 buttons to 'Cleanup caches and update paths' in standard way
110
111 - **Display description next to 'paperclip' file icon - usually the filename
112 ([14501](https://github.com/civicrm/civicrm-core/pull/14501))**
113
114 When viewing custom files displays the description (usually the filename) next
115 to the paperclip.
116
117 - **Address BAO - Handle standard 'custom' param as well as individual fields
118 ([14535](https://github.com/civicrm/civicrm-core/pull/14535))**
119
120 Ensures that the Address BAO can handle both raw unformatted custom field
121 input and processed custom field inputs.
122
123 - **Update PSR16 handling for multisite extension legacy caching group
124 ([14505](https://github.com/civicrm/civicrm-core/pull/14505))**
125
126 Only use a Legacy group if using a version of org.civicrm.multisite 2.6 or
127 below.
128
129 - **Improve I18n schema by including comments and default and NOT NULL or NULL
130 statements to be more consistent with non lingual schema
131 ([14484](https://github.com/civicrm/civicrm-core/pull/14484))**
132
133 Adds more information to the I18n schema structure so that when the
134 translated schema is created it is more similar to the non multilingual schema.
135
136 - **Add a couple customField pseudoconstants
137 ([14494](https://github.com/civicrm/civicrm-core/pull/14494))**
138
139 Adds a couple missing option lists to the schema so that they show up in the
140 api explorer for the CustomField entity.
141
142 - **Deprecate ARCHIVE format for CiviCRM Database Logging (continues work for
143 [dev/core#663](https://lab.civicrm.org/dev/core/issues/663):
144 [14256](https://github.com/civicrm/civicrm-core/pull/14256))**
145
146 Switches to using InnoDB for extended log tables instead of the ARCHIVE
147 format.
148
149 - **ActivityForm - Redirect to contact page or activity view in standalone mode
150 ([14522](https://github.com/civicrm/civicrm-core/pull/14522))**
151
152 When using the "standalone" New Activity form, moves from always redirecting
153 to the dashboard after saving to redirecting to the contact page (if 1
154 contact) and the activity view screen (if multiple).
155
156 ### CiviEvent
157
158 - **URL support for some params in event search
159 ([14477](https://github.com/civicrm/civicrm-core/pull/14477))**
160
161 Adds Event Search URL support for the params: sort_name, participant_status_id,
162 participant_register_date_low, participant_register_date_high, and
163 participant_register_date_relative. Date format is a string of numbers YmdHIS
164 (ex: 20180101).
165
166 - **Add checklist-model angular module
167 ([14634](https://github.com/civicrm/civicrm-core/pull/14634))**
168
169 Adds the angular `checklist-model` library required by form builder.
170
171 ### CiviContribute
172
173 - **Reduce deadlocks on inserting custom data by only using 'ON DUPLICATE' when
174 it is not a new row
175 ([14605](https://github.com/civicrm/civicrm-core/pull/14605))**
176
177 Reduce deadlocks when processing contributions with custom data. This
178 specifically makes the custom data insert SQL more efficient.
179
180 - **Fix url support for receive_date_high & receive_date_low
181 ([14594](https://github.com/civicrm/civicrm-core/pull/14594) and
182 [14611](https://github.com/civicrm/civicrm-core/pull/14611))**
183
184 As a part of a general standardization movement, adds Url support on the
185 contribution search form for the following fields: receive_date_high,
186 receive_date_low, contribution_cancel_date_high, contribution_cancel_date_low
187 and invoice_number=9. Deprecates and continues to support the start date being
188 passed to contribution search as "start=2018-01-01".
189
190 - **Deprecate contribution_date as a parameter
191 ([14533](https://github.com/civicrm/civicrm-core/pull/14533))**
192
193 Add deprecation notice for accessing old field name for receive_date in query
194 object.
195
196 - **Create payment activity when creating a payment via the api, test
197 ([14452](https://github.com/civicrm/civicrm-core/pull/14452))**
198
199 Ensures when creating a payment via the api a payment activity is created.
200
201 ### CiviMembership
202
203 - **Expose Primary member only/Non primary member only filter in membership
204 reports. ([14530](https://github.com/civicrm/civicrm-core/pull/14530) and
205 [14507](https://github.com/civicrm/civicrm-core/pull/14507))**
206
207 On Membership Reports filters tabs, cleans up Membership Owner ID options.
208
209 - **Update Owner Membership ID label in reports to be Primary Membership to be
210 more consistent with rest of system
211 ([14585](https://github.com/civicrm/civicrm-core/pull/14585))**
212
213 Changes the label of the Owner Membership ID in reports from "Membership Owner
214 ID" to "Primary Membership".
215
216 ## <a name="bugs"></a>Bugs resolved
217
218 ### Core CiviCRM
219
220 - **submitOnce revisited
221 ([dev/core#914](https://lab.civicrm.org/dev/core/issues/914):
222 [14519](https://github.com/civicrm/civicrm-core/pull/14519))**
223
224 Ensures "SubmitOnce" functionality works with forms with multiple buttons.
225
226 - **Errors exporting contributions on 5.13.2 (continues work for
227 [dev/core#1015](https://lab.civicrm.org/dev/core/issues/1015):
228 [14513](https://github.com/civicrm/civicrm-core/pull/14513))**
229
230 Applies a more robust fix to a bug exporting soft credits in 5.13.2.
231
232 - **Email created without location when syncing from CMS account
233 ([dev/core#1026](https://lab.civicrm.org/dev/core/issues/1026):
234 [14489](https://github.com/civicrm/civicrm-core/pull/14489))**
235
236 Adds a default for `location_type_id` in the API Email.create in order to
237 address a bug where Emails were being created without a location type when
238 syncing from a CMS account.
239
240 - **$this->_selectedTables is not populated incase of boleen filters
241 ([14503](https://github.com/civicrm/civicrm-core/pull/14503))**
242
243 Fixes a bug where when a report was filtered on a boolean field with option No
244 then `$this->_selectedTables` was not being populated so that it is populated.
245
246 - **Block classes in unserialize field for IDE cheer
247 ([14683](https://github.com/civicrm/civicrm-core/pull/14683))**
248
249 Ensures unserialize does not permit class unserialization.
250
251 - **Support api3 & 4 language syntax & improve test
252 ([14590](https://github.com/civicrm/civicrm-core/pull/14590))**
253
254 Fixes support for api3 "language" option and extends test coverage to the new
255 syntax as well as api v4.
256
257 - **Reset language at end of localized api call
258 ([14597](https://github.com/civicrm/civicrm-core/pull/14597))**
259
260 Restore the original language after changing it for an api call using
261 `options['language']`.
262
263 - **Activity formRule status check cleanup
264 ([14630](https://github.com/civicrm/civicrm-core/pull/14630))**
265
266 Fixes a bug where under some circumstances, the activity_type_id from fields
267 and from the getKey call can both return NULL, causing the formRule to raise
268 an error that one cannot record a scheduled SMS activity.
269
270 - **Add query object support for receive_date_high & receive_date_low and
271 generically date fields
272 ([14623](https://github.com/civicrm/civicrm-core/pull/14623))**
273
274 Ensures choosing from receive date in advanced search filters appropriately.
275
276 - **Fix setup.sh crash when using the -a flag
277 ([14595](https://github.com/civicrm/civicrm-core/pull/14595))**
278
279 Fixes an error where the command setup.sh -a dies with an error because it
280 doesn't know what database to load.
281
282 - **Fix duplicate households on 'Merge same household' exports
283 ([14443](https://github.com/civicrm/civicrm-core/pull/14443))**
284
285 Ensures "Merge same household" does not create duplicate rows for each
286 household, one for the "merged individuals" and one being the explicit
287 household directly exported.
288
289 - **Fix placeholder font in Quicksearch
290 ([14154](https://github.com/civicrm/civicrm-core/pull/14154))**
291
292 Make the Quicksearch font be the CiviCRM font instead of the "FontAwesome"
293 font.
294
295 - **CRM_Utils_SQL_ - Properly interpolate NULL values
296 ([14250](https://github.com/civicrm/civicrm-core/pull/14250))**
297
298 Ensures the classes `CRM_Utils_SQL_Select`, `CRM_Utils_SQL_Delete`, and
299 `CRM_Utils_SQL_Insert` properly handle NULL values.
300
301 - **Fix deletion of contact sub_type in api4
302 ([14492](https://github.com/civicrm/civicrm-core/pull/14492))**
303
304 Cleans up the contact BAO to not arbitrarily delete a contact's sub-type when
305 saving a contact using Api4.
306
307 - **Add in uniqueness to cache keys to mitigate clashes on multisite installs
308 ([14485](https://github.com/civicrm/civicrm-core/pull/14485))**
309
310 Ensures cache keys are unique to the specific domain.
311
312 - **Object id is always NULL in ore hook in update activity mode
313 ([14491](https://github.com/civicrm/civicrm-core/pull/14491))**
314
315 Ensures when using the pre hook with the Activity entity, the Activity id (i.e
316 the object id) is NOT NULL.
317
318 - **Scheduled jobs: replace outdated wiki link
319 ([14641](https://github.com/civicrm/civicrm-core/pull/14641))**
320
321 - **Make the contact summary details popup on merge screen non bold a la contact
322 summary screen ([dev/core#1039](https://lab.civicrm.org/dev/core/issues/1039):
323 [14506](https://github.com/civicrm/civicrm-core/pull/14506))**
324
325 - **When using custom fields for smart group criteria with relative dates the
326 group does not respect the relative date over time
327 ([dev/core#389](https://lab.civicrm.org/dev/core/issues/389):
328 [14625](https://github.com/civicrm/civicrm-core/pull/14625))**
329
330 - **Improper character encoding breaks xml processor
331 ([dev-core#1079](https://lab.civicrm.org/dev/core/issues/1079):
332 [14654](https://github.com/civicrm/civicrm-core/pull/14654))**
333
334 - **Php 7.2 notices fix on import
335 ([14531](https://github.com/civicrm/civicrm-core/pull/14531))**
336
337 - **Fix use of cached schema information in SchemaHandler
338 ([14568](https://github.com/civicrm/civicrm-core/pull/14568))**
339
340 - **Ensure that contact groups caches are cleared if memory backed
341 ([14607](https://github.com/civicrm/civicrm-core/pull/14607))**
342
343 ### CiviCampaign
344
345 - **CiviCRM Campaign, the Revenue Goal field stores 0 if $5,000 or any other
346 non-numeric value is entered
347 ([dev/core#1067](https://lab.civicrm.org/dev/core/issues/1067):
348 [14601](https://github.com/civicrm/civicrm-core/pull/14601))**
349
350 ### CiviCase
351
352 - **Make a_b relationships available as case roles
353 ([dev/core#530](https://lab.civicrm.org/dev/core/issues/530):
354 [13916](https://github.com/civicrm/civicrm-core/pull/13916))**
355
356 This change makes it so users can select b_a relationships AND a_b
357 relationships when creating case roles, before this change only b_a
358 relationships were available when creating case roles.
359
360 - **Too many divs in caseTypeDetails.html
361 ([dev/core#1086](https://lab.civicrm.org/dev/core/issues/1086):
362 [14682](https://github.com/civicrm/civicrm-core/pull/14682))**
363
364 - **Send copy of case activity is using the contribution receipt template -
365 actually all message templates seem to be mixed up (Test for
366 [dev/core#1082](https://lab.civicrm.org/dev/core/issues/1082):
367 [14666](https://github.com/civicrm/civicrm-core/pull/14666))**
368
369 ### CiviContribute
370
371 - **Add default receive_date for contributions at BAO level
372 ([14460](https://github.com/civicrm/civicrm-core/pull/14460))**
373
374 This change ensures one cannot create contributions with no receive date using
375 the API.
376
377 - **Fix A.net to resolve time when using default
378 ([14540](https://github.com/civicrm/civicrm-core/pull/14540))**
379
380 Fixes failure to resolve date in authorize.net - this is likely a test-only
381 bug.
382
383 - **Fixed visibility logic on Price field options.
384 ([13966](https://github.com/civicrm/civicrm-core/pull/13966))**
385
386 Ensure that when adding price options to a price field with some public
387 options and some private options the new options are considered when
388 validating that there is an admin option.
389
390 - **Support storing IPNs in `civicrm_system_log` for processors that send JSON
391 data ([dev/financial#55](https://lab.civicrm.org/dev/financial/issues/55):
392 [14290](https://github.com/civicrm/civicrm-core/pull/14290))**
393
394 Ensures Stripe can log to the `civicrm_system_log`.
395
396 - **Grab contribution status id from database
397 ([14713](https://github.com/civicrm/civicrm-core/pull/14713) and
398 [14704](https://github.com/civicrm/civicrm-core/pull/14704))**
399
400 Replaces hard coded Contribution Status Id with a pseudoconstant.
401
402 - **Error in civicrm/payment/edit "Expected one FinancialTrxn but found 25
403 ([dev/core#965](https://lab.civicrm.org/dev/core/issues/965):
404 [14518](https://github.com/civicrm/civicrm-core/pull/14518))**
405
406 Fixes a bug where when ajax popup forms are disabled submitting the payment
407 edit form results in a fatal error "Expected one FinancialTrxn but found 25".
408
409 - **New contribution may overwrite other contribution if it's opened in other
410 tab ([dev/financial#50](https://lab.civicrm.org/dev/financial/issues/50):
411 [14244](https://github.com/civicrm/civicrm-core/pull/14244))**
412
413 - **Refund throws a fatal error if the main contribution amount is
414 0. ([dev/core#889](https://lab.civicrm.org/dev/core/issues/889):
415 [14488](https://github.com/civicrm/civicrm-core/pull/14488) and
416 [14103](https://github.com/civicrm/civicrm-core/pull/14103))**
417
418 - **Event Confirmation and ThankYou forms show tax rate with ALL the decimal
419 places. ([dev/core#1049](https://lab.civicrm.org/dev/core/issues/1049):
420 [14562](https://github.com/civicrm/civicrm-core/pull/14562))**
421
422 - **Deprecation notice on Find Contributions when get there from Manage
423 Contribution Pages
424 ([dev/core#1059](https://lab.civicrm.org/dev/core/issues/1059):
425 [14624](https://github.com/civicrm/civicrm-core/pull/14624) and
426 [14613](https://github.com/civicrm/civicrm-core/pull/14613))**
427
428 - **Fix refund payment not recording from additional payment form
429 ([14733](https://github.com/civicrm/civicrm-core/pull/14733))**
430
431 - **contribution detail report: error when sorting by custom contrib field (DB
432 Error: no such field)
433 ([dev/core#1081](https://lab.civicrm.org/dev/core/issues/1081):
434 [14746](https://github.com/civicrm/civicrm-core/pull/14746))**
435
436 - **Fix notice on editing contribution
437 ([14626](https://github.com/civicrm/civicrm-core/pull/14626))**
438
439 - **Ensure that completed status is selected by default on search contribution
440 form ([14612](https://github.com/civicrm/civicrm-core/pull/14612))**
441
442 ### CiviEvent
443
444 - **When creating a new event using a template the new event screen is taking
445 the default values directly from the custom fields, and not from what's saved
446 in the event template.
447 ([dev/core#553](https://lab.civicrm.org/dev/core/issues/553) /
448 [CRM-18570](https://issues.civicrm.org/jira/browse/CRM-18570):
449 [14480](https://github.com/civicrm/civicrm-core/pull/14480))**
450
451 - **Display bug for Checkboxes Custom field on Event Confirm / Thank you pages
452 ([dev/core#1058](https://lab.civicrm.org/dev/core/issues/1058):
453 [14587](https://github.com/civicrm/civicrm-core/pull/14587))**
454
455 - **Fix incorrect display of Line Items created via API when printing invoice
456 (for Participants)
457 ([13477](https://github.com/civicrm/civicrm-core/pull/13477))**
458
459 - **Add a helper function to ensure we always set the correct tab for manage
460 events ([14602](https://github.com/civicrm/civicrm-core/pull/14602))**
461
462 - **Removed hardcoded value for registered participant status
463 ([14569](https://github.com/civicrm/civicrm-core/pull/14569))**
464
465 ### Cloud Native
466
467 - **Does CiviCRM make it possible to specify which directories are private and
468 which are public-accessible? (continues work for
469 [dev/cloud-native#3](https://lab.civicrm.org/dev/cloud-native/issues/3):
470 [14717](https://github.com/civicrm/civicrm-core/pull/14717))**
471
472 Removes an unused cache-driver for storing cache records in the file system
473 (under CIVICRM_TEMPLATE_COMPILEDIR, using PHP serialize() format).
474
475 ### Drupal Integration
476
477 - **Drupal8: CiviCRM menu does not use the correct locale (continues work for
478 [dev/drupal#21](https://lab.civicrm.org/dev/drupal/issues/21):
479 [14474](https://github.com/civicrm/civicrm-core/pull/14474))**
480
481 Ensures CiviCRM menu is translated appropriately on Drupal 8 sites using the
482 locale module and CiviCRM in multilingual mode.
483
484 - **Drupal8: drupal_set_message is deprecated (or: Event Cart messages display
485 HTML) ([dev/drupal#63](https://lab.civicrm.org/dev/drupal/issues/63):
486 [13959](https://github.com/civicrm/civicrm-core/pull/13959))**
487
488 Fixes a bug where when using CiviCRM Event Cart in Drupal8, some status
489 messages were being displayed as HTML to the user.
490
491 ### Joomla Integration
492
493 - **Upgrade to 5.14 fails on updating case views
494 ([dev/joomla#13](https://lab.civicrm.org/dev/joomla/issues/13):
495 [14707](https://github.com/civicrm/civicrm-core/pull/14707),
496 [14708](https://github.com/civicrm/civicrm-core/pull/14708),
497 [14709](https://github.com/civicrm/civicrm-core/pull/14709),
498 [14710](https://github.com/civicrm/civicrm-core/pull/14710) and
499 [14702](https://github.com/civicrm/civicrm-core/pull/14702))**
500
501 - **CiviDist fails on BSD flavor of 'cp' with '-r -p' switch to '-R -p'
502 ([14523](https://github.com/civicrm/civicrm-core/pull/14523))**
503
504 Ensures cividist does not fail for joomla-alt on MacOSX.
505
506 ### Wordpress Integration
507
508 - **Recreate rewrite rules when basepage setting is updated
509 ([157](https://github.com/civicrm/civicrm-wordpress/pull/157))**
510
511 Ensures rewrite rules are flushed when saving the WordPress Base Page setting
512 in CiviCRM.
513
514 - **Implement "document_title_parts" filter to apply CiviCRM title on basepage
515 ([158](https://github.com/civicrm/civicrm-wordpress/pull/158))**
516
517 Ensures when Clean URLs are not implemented, the `<title>` element is
518 correctly set on the civicrm base page.
519
520 ## <a name="misc"></a>Miscellany
521
522 - **Remove duplicated code in contribution recur search build function
523 ([14504](https://github.com/civicrm/civicrm-core/pull/14504))**
524
525 - **Civi\Angular\ChangeSet - Relax debug-mode consistency check
526 ([14510](https://github.com/civicrm/civicrm-core/pull/14510))**
527
528 - **Alter PSR16 code to take into account of new entitysetting release with
529 upgraded caching
530 ([14559](https://github.com/civicrm/civicrm-core/pull/14559))**
531
532 - **Remove handling for legacy PrevNextCache group as it has now been converted
533 ([14584](https://github.com/civicrm/civicrm-core/pull/14584),
534 [14631](https://github.com/civicrm/civicrm-core/pull/14631) and
535 [14580](https://github.com/civicrm/civicrm-core/pull/14580))**
536
537 - **[Form cleanup] remove form classes & tpls for Event Component settings &
538 Multisite ([14425](https://github.com/civicrm/civicrm-core/pull/14425))**
539
540 - **Add WP-oriented E2E test suite, with HookTest as an example
541 ([159](https://github.com/civicrm/civicrm-wordpress/pull/159))**
542
543 - **Decommission recordPartialPayment function
544 ([14599](https://github.com/civicrm/civicrm-core/pull/14599))**
545
546 - **Fix erroneous variable passed to callAPISuccessGetValue
547 ([14688](https://github.com/civicrm/civicrm-core/pull/14688))**
548
549 - **Deprecate some deprecated address functions: defaultCurrencySymbol
550 ([14687](https://github.com/civicrm/civicrm-core/pull/14687))**
551
552 - **Extract code converting a date object to local timezone object to own
553 function ([14723](https://github.com/civicrm/civicrm-core/pull/14723))**
554
555 - **Replace jcalendar instances with datepicker (continues work for
556 [dev/core#561](https://lab.civicrm.org/dev/core/issues/561):
557 [14593](https://github.com/civicrm/civicrm-core/pull/14593),
558 [14431](https://github.com/civicrm/civicrm-core/pull/14431) and
559 [14627](https://github.com/civicrm/civicrm-core/pull/14627))**
560
561 - **[REF] Remove more instances of _nullArray
562 ([14558](https://github.com/civicrm/civicrm-core/pull/14558))**
563
564 - **[REF] transform the setting of defaults in CustomField::create to be like
565 (some) other entities
566 ([14671](https://github.com/civicrm/civicrm-core/pull/14671))**
567
568 - **[NFC] Fix Test function delcaration to match change in CiviUnitTestCa…
569 ([14548](https://github.com/civicrm/civicrm-core/pull/14548))**
570
571 - **[NFC] Fix indenting in Misc Setting Template
572 ([14526](https://github.com/civicrm/civicrm-core/pull/14526))**
573
574 - **[NFC] code formatting
575 ([14606](https://github.com/civicrm/civicrm-core/pull/14606))**
576
577 - **[NFC][test] reformat jobTest class
578 ([14681](https://github.com/civicrm/civicrm-core/pull/14681))**
579
580 - **[NFC] test cleanup. Uses CRM_Core_Exceptions, properly outputs unfiltered
581 results ([14471](https://github.com/civicrm/civicrm-core/pull/14471))**
582
583 - **[NFC][test] reformat activity search test
584 ([14699](https://github.com/civicrm/civicrm-core/pull/14699))**
585
586 - **[NFC][test] code formatting only
587 ([14700](https://github.com/civicrm/civicrm-core/pull/14700))**
588
589 - **[NFC] formatting on test class cleanup
590 ([14649](https://github.com/civicrm/civicrm-core/pull/14649))**
591
592 - **NFC These pseudoconstant functions return array or string
593 ([14619](https://github.com/civicrm/civicrm-core/pull/14619))**
594
595 - **NFC Comments and formatting only
596 ([14497](https://github.com/civicrm/civicrm-core/pull/14497))**
597
598 - **NFC Cleanup comments on BAO event
599 ([14603](https://github.com/civicrm/civicrm-core/pull/14603))**
600
601 - **[TEST] add assert to ensure nullArray & nullObject are not contaminated
602 ([14543](https://github.com/civicrm/civicrm-core/pull/14543))**
603
604 - **[TEST] Update Email Common Test to incorporate testing for the fix fo…
605 ([14629](https://github.com/civicrm/civicrm-core/pull/14629))**
606
607 - **[TEST] Fix intermittent test fail on NULL array getting contaminated
608 ([14542](https://github.com/civicrm/civicrm-core/pull/14542))**
609
610 - **[Test] Add in unit test attempting to demonstrate issue caused by dev…
611 ([14637](https://github.com/civicrm/civicrm-core/pull/14637))**
612
613 - **[test] Call parent tearDown more consistently
614 ([14552](https://github.com/civicrm/civicrm-core/pull/14552))**
615
616 - **[test] convert export test to handle exception rather than early return
617 ([14608](https://github.com/civicrm/civicrm-core/pull/14608))**
618
619 - **[test] truncate pledge block when cleaning up financial entities
620 ([14538](https://github.com/civicrm/civicrm-core/pull/14538))**
621
622 - **Fix failing test by changing expected date format
623 ([14686](https://github.com/civicrm/civicrm-core/pull/14686))**
624
625 - **Fix proportional test to test Payment.create & for the test to make more
626 sense ([14436](https://github.com/civicrm/civicrm-core/pull/14436))**
627
628 - **Fix test which fails when run in isolation.
629 ([14517](https://github.com/civicrm/civicrm-core/pull/14517))**
630
631 - **[REF] do not receive by reference in CustomField::create
632 ([14670](https://github.com/civicrm/civicrm-core/pull/14670))**
633
634 - **[REF] extract createOptionValue function in CustomField::create
635 ([14652](https://github.com/civicrm/civicrm-core/pull/14652))**
636
637 - **[REF] remove instances of pass-by-reference where no change takes place
638 ([14693](https://github.com/civicrm/civicrm-core/pull/14693))**
639
640 - **[REF] extract prepareCreate from CustomField.create
641 ([14689](https://github.com/civicrm/civicrm-core/pull/14689))**
642
643 - **[REF] Minor code cleanup on string concatenation
644 ([14444](https://github.com/civicrm/civicrm-core/pull/14444))**
645
646 - **[REF] Move sort_name definition to searchFieldMetadata
647 ([14478](https://github.com/civicrm/civicrm-core/pull/14478))**
648
649 - **[REF] Copy assignProportional Line items back into Payment.create function
650 ([14622](https://github.com/civicrm/civicrm-core/pull/14622))**
651
652 - **[REF] minor code cleanup - move indexExist calculation to the only place in
653 the code that needs it
654 ([14650](https://github.com/civicrm/civicrm-core/pull/14650))**
655
656 - **[REF] Remove columnName field
657 ([14651](https://github.com/civicrm/civicrm-core/pull/14651))**
658
659 - **[REF + test] extract buildFieldChangeSql and add unit test
660 ([14653](https://github.com/civicrm/civicrm-core/pull/14653))**
661
662 - **[REF] CRM_Case_BAO_Case::addcaseActivityLinks to CRM_Case_Selector_Search
663 ([14512](https://github.com/civicrm/civicrm-core/pull/14512))**
664
665 - **[REF] dev/core#561 Convert Contribution Date field to use date picker…
666 ([14486](https://github.com/civicrm/civicrm-core/pull/14486))**
667
668 - **[REF] do not pass by reference to store & create functions
669 ([14598](https://github.com/civicrm/civicrm-core/pull/14598))**
670
671 - **[REF] Add in utility function for resetting ACL and System Level Caches
672 ([14600](https://github.com/civicrm/civicrm-core/pull/14600))**
673
674 - **REF Extract getDefaultRoleID for add participant
675 ([14499](https://github.com/civicrm/civicrm-core/pull/14499))**
676
677 - **REF Deduplicate recaptcha handling code
678 ([14500](https://github.com/civicrm/civicrm-core/pull/14500))**
679
680 - **REF Extract override default currency function
681 ([14496](https://github.com/civicrm/civicrm-core/pull/14496))**
682
683 - **REF: Extract preProcess paypalexpress
684 ([14498](https://github.com/civicrm/civicrm-core/pull/14498))**
685
686 - **Remove more uses of CRM_Core_DAO::$_nullArray that are unncessary
687 ([14564](https://github.com/civicrm/civicrm-core/pull/14564))**
688
689 - **Remove unncessary $_nullArray usage when calling createProfileContact
690 function ([14560](https://github.com/civicrm/civicrm-core/pull/14560))**
691
692 - **Remove unneeded use of CRM_Core_DAO::$_nullArray in executeQuery or s…
693 ([14561](https://github.com/civicrm/civicrm-core/pull/14561))**
694
695 - **Remove more free calls
696 ([14493](https://github.com/civicrm/civicrm-core/pull/14493))**
697
698 - **Remove a few places where pass by reference is used but does not need to be
699 ([14643](https://github.com/civicrm/civicrm-core/pull/14643))**
700
701 - **Remove failing assertion
702 ([14695](https://github.com/civicrm/civicrm-core/pull/14695))**
703
704 - **Removing unused spec function
705 ([14646](https://github.com/civicrm/civicrm-core/pull/14646))**
706
707 - **Remove superfluous pass-by-ref in api3
708 ([14645](https://github.com/civicrm/civicrm-core/pull/14645))**
709
710 - **Add in Andrei Mondoc(mecachisenros) to contributor key
711 ([14665](https://github.com/civicrm/civicrm-core/pull/14665))**
712
713 - **Adding myself to the contributors file
714 ([14532](https://github.com/civicrm/civicrm-core/pull/14532))**
715
716 ## <a name="credits"></a>Credits
717
718 This release was developed by the following code authors:
719
720 AGH Strategies - Alice Frumin, Andrew Hunt; Agileware - Alok Patel, Francis
721 Whittle; Andrei Mondoc; Australian Greens - Seamus Lee; Christian Wach;
722 CiviCRM - Coleman Watts, Tim Otten; CiviDesk - Yashodha Chaku; Coop
723 SymbioTIC - Mathieu Lutfy, Samuel Vanhove; Dave D; Fuzion - Jitendra Purohit;
724 Greenpeace CEE - Patrick Figel; iXiam - César Ramos; JMA Consulting - Monish Deb;
725 Megaphone Technology Consulting - Jon Goldberg; MJW Consulting - Matthew Wire;
726 Nicol Wistreich; Pradeep Nayak; Squiffle Consulting - Aidan Saunders; Tadpole
727 Collective - Kevin Cristiano; Wikimedia Foundation - Eileen McNaughton
728
729 Most authors also reviewed code for this release; in addition, the following
730 reviewers contributed their comments:
731
732 Agileware - Justin Freeman; CiviCoop - Jaap Jansma; CiviDesk - Sunil Pawar;
733 Fuzion - Luke Stewart; JMA Consulting - Joe Murray; Korlon - Stuart Gaston;
734 Lighthouse Design and Consulting - Brian Shaughnessy; National Urban League:
735 Lisa Taliano; Palante - Morgan Robinson; Semper IT - Karin Gerritsen; Tech To
736 The People - Xavier Dutoit
737
738 ## <a name="feedback"></a>Feedback
739
740 These release notes are edited by Alice Frumin and Andrew Hunt. If you'd like
741 to provide feedback on them, please log in to https://chat.civicrm.org/civicrm
742 and contact `@agh1`.