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