Set version to 5.53.0
[civicrm-core.git] / release-notes / 5.25.0.md
CommitLineData
bdfce0d2
AH
1# CiviCRM 5.25.0
2
a8cf70fe 3Released May 6, 2020
bdfce0d2 4
a8cf70fe 5- **[Synopsis](#synopsis)**
bdfce0d2
AH
6- **[Features](#features)**
7- **[Bugs resolved](#bugs)**
8- **[Miscellany](#misc)**
9- **[Credits](#credits)**
a8cf70fe
AH
10- **[Feedback](#feedback)**
11
12## <a name="synopsis"></a>Synopsis
13
14| *Does this version...?* | |
15|:--------------------------------------------------------------- |:-------:|
498be86b
AF
16| Fix security vulnerabilities? | no |
17| Change the database schema? | **yes** |
18| Alter the API? | **yes** |
19| Require attention to configuration options? | no |
20| Fix problems installing or upgrading to a previous version? | **yes** |
21| Introduce features? | **yes** |
22| Fix bugs? | **yes** |
bdfce0d2
AH
23
24## <a name="features"></a>Features
25
26### Core CiviCRM
27
498be86b
AF
28- **End of life plans for php 7.0 & deprecate php 7.1
29 ([dev/core#1528](https://lab.civicrm.org/dev/core/issues/1528):
30 [16753](https://github.com/civicrm/civicrm-core/pull/16753),
31 [599](https://github.com/civicrm/civicrm-drupal/pull/599),
32 [598](https://github.com/civicrm/civicrm-drupal/pull/598),
33 [111](https://github.com/civicrm/civicrm-backdrop/pull/111),
34 [16678](https://github.com/civicrm/civicrm-core/pull/16678),
35 [114](https://github.com/civicrm/civicrm-backdrop/pull/114),
36 [187](https://github.com/civicrm/civicrm-wordpress/pull/187) and
37 [184](https://github.com/civicrm/civicrm-wordpress/pull/184))**
bdfce0d2 38
fc6522d4 39 CiviCRM now requires PHP 7.1 at a minimum and recommends PHP 7.3.
bdfce0d2 40
fc6522d4
AH
41 In the process of making this change, the minimum PHP version is now stored in
42 a single place within the core codebase. CMS-specific files have this value,
43 too, but tests enforce that it be the same as the single core value.
bdfce0d2 44
fc6522d4
AH
45- **Replace jcalendar instances with datepicker (Continued
46 Work [dev/core#561](https://lab.civicrm.org/dev/core/issues/561):
47 [15709](https://github.com/civicrm/civicrm-core/pull/15709) and
48 [16863](https://github.com/civicrm/civicrm-core/pull/16863))**
49
50 These changes continue work to move to datepicker from jcalendar by converting
51 report instances from using the legacy jcalendar to using datepicker for date
52 fields and deprecating the `addDateRange` function used by jcalendar.
bdfce0d2 53
498be86b
AF
54- **APIv4 - Add Dashboard & DashboardContact entities
55 ([16867](https://github.com/civicrm/civicrm-core/pull/16867))**
bdfce0d2 56
498be86b
AF
57 Adds APIv4 support for Dashboard & DashboardContact and does some cleanup in
58 the BAO and API layers for improved consistency.
bdfce0d2 59
0e582417 60- **Add new language, `nl_BE`
498be86b 61 ([17014](https://github.com/civicrm/civicrm-core/pull/17014))**
bdfce0d2 62
fc6522d4 63 Adds a new translation option for "Dutch (Belgium)".
bdfce0d2 64
498be86b
AF
65- **Add hook to alter display value or Custom field value
66 ([16921](https://github.com/civicrm/civicrm-core/pull/16921))**
bdfce0d2 67
fc6522d4
AH
68 The new hook
69 [`hook_civicrm_alterCustomFieldDisplayValue()`](https://docs.civicrm.org/dev/en/latest/hooks/hook_civicrm_alterCustomFieldDisplayValue/)
70 allows modification of the displayed value for a custom field value.
bdfce0d2 71
0e582417 72- **APIv4 query improvements (Work towards
fc6522d4 73 [dev/report#31](https://lab.civicrm.org/dev/report/issues/31):
498be86b
AF
74 [16917](https://github.com/civicrm/civicrm-core/pull/16917) and
75 [16947](https://github.com/civicrm/civicrm-core/pull/16947))**
bdfce0d2 76
fc6522d4
AH
77 This change builds out the APIv4 framework to support `GROUP BY` and different
78 types of expressions in clauses that previously only accepted the names of
79 fields. These expressions can now include numbers, `NULL`, strings, and
80 whitelisted SQL functions. The framework can in theory handle most SQL
81 functions, but this first PR adds support for the aggregate functions `AVG`,
82 `COUNT`, `MAX`, `MIN`, and `SUM`.
bdfce0d2 83
0f9d1ab9
TO
84- **install/index.php - Fix leak which breaks compatibility with current Backdrop
85 ([#17249](https://github.com/civicrm/civicrm-core/pull/17249))**
86
498be86b 87### CiviContribute
bdfce0d2 88
0e582417 89- **Partial Refunds (Work towards
498be86b
AF
90 [dev/financial#87](https://lab.civicrm.org/dev/financial/issues/87):
91 [16480](https://github.com/civicrm/civicrm-core/pull/16480))**
bdfce0d2 92
fc6522d4 93 The "Add Payment" form is altered to permit payments to be added even if a
498be86b 94 contribution is fully paid.
bdfce0d2 95
fc6522d4 96- **Add privacy fields to Contribution Detail report
498be86b 97 ([16674](https://github.com/civicrm/civicrm-core/pull/16674))**
bdfce0d2 98
fc6522d4
AH
99 Columns for the following fields are added to the contribution detail report:
100 "Do Not Phone", "Do Not Mail", "Do Not SMS", "Do Not Trade".
bdfce0d2 101
498be86b
AF
102 - **Add "pledge id" as column and filter in Contribution Detail report.
103 ([16868](https://github.com/civicrm/civicrm-core/pull/16868))**
bdfce0d2 104
fc6522d4
AH
105 This change improves the Contribution Detail Report by adding "pledge id" as
106 a filter and column.
bdfce0d2 107
913e93ec
AH
108### CiviEvent
109
110- **Remove additional display of buttons for events
111 ([16550](https://github.com/civicrm/civicrm-core/pull/16550))**
112
113 When viewing an event registration, this removes the Record Payment button
114 from the Fees section. Payments can still be recorded from the payments
115 section.
116
498be86b 117### WordPress Integration
bdfce0d2 118
913e93ec
AH
119- **Merge REST API wrapper code
120 ([160](https://github.com/civicrm/civicrm-wordpress/pull/160))**
121
122 This merges the CiviCRM WP REST API Wrapper plugin's code into the core
123 WordPress integration. The result is that there are now native WordPress REST
124 endpoints for the REST API, email tracking, and other endpoints that had been
125 direct links to PHP files in the `extern` folder of the CiviCRM plugin.
126
498be86b
AF
127- **Add shortcodes for Personal Campaign Pages
128 ([185](https://github.com/civicrm/civicrm-wordpress/pull/185) and
129 [16695](https://github.com/civicrm/civicrm-core/pull/16695))**
bdfce0d2 130
fc6522d4 131 Personal Campaign Pages are now available as a shortcode.
bdfce0d2 132
498be86b 133## <a name="bugs"></a>Bugs resolved
bdfce0d2 134
498be86b 135### Core CiviCRM
bdfce0d2 136
9a4c3174
AH
137- **Activity Detail report gives syntax error with force=1 if include case
138 activities is on
139 ([dev/core#1710](https://lab.civicrm.org/dev/core/issues/1710):
140 [17128](https://github.com/civicrm/civicrm-core/pull/17128))**
141
142 The case activity table wasn't properly loaded when the Activity Detail report
143 including case activities would go straight to displaying results.
144
145- **Search Builder - Activity Type search not working.
146 ([dev/core#1714](https://lab.civicrm.org/dev/core/issues/1714):
147 [17215](https://github.com/civicrm/civicrm-core/pull/17215))**
148
149 In Search Builder, searching by activity type would return no results,
150 affecting not only direct searches but also smart groups that built with
151 Search Builder. This resolves the regression, which first appeared in 5.24.3.
152
fc6522d4
AH
153- **Deleting entities leaves obsolete EntityTag records
154 ([dev/core#667](https://lab.civicrm.org/dev/core/issues/667):
155 [16832](https://github.com/civicrm/civicrm-core/pull/16832))**
156
157 Fixes a bug where deleting a contact does not delete tags associated with the
158 contact.
159
160- **Profile Public Title (frontend_title column) is not used in profile
161 create/edit mode
162 ([dev/core#1683](https://lab.civicrm.org/dev/core/issues/1683):
163 [16945](https://github.com/civicrm/civicrm-core/pull/16945))**
164
165 The Public Title setting that was recently added for profiles would only
166 replace the profile name on contribution and event forms. When the profile
167 was used in a standalone context, the name would always appear.
168
169- **Auto-complete search results not consistent with other searches
170 ([dev/core#787](https://lab.civicrm.org/dev/core/issues/787):
171 [13809](https://github.com/civicrm/civicrm-core/pull/13809))**
172
498be86b
AF
173- **Need to Increase Data Size for `form_values` column on
174 civicrm_report_instance table
175 ([dev/core#1569](https://lab.civicrm.org/dev/core/issues/1569):
176 [16836](https://github.com/civicrm/civicrm-core/pull/16836))**
bdfce0d2 177
fc6522d4 178 This hanges the data type for the `form_values` column on the
498be86b 179 `civicrm_report_instance` from TEXT to LONGTEXT.
bdfce0d2 180
498be86b
AF
181- **PHP warning on Add relationship form
182 ([dev/core#1663](https://lab.civicrm.org/dev/core/issues/1663):
183 [16845](https://github.com/civicrm/civicrm-core/pull/16845) and
184 [16941](https://github.com/civicrm/civicrm-core/pull/16941))**
bdfce0d2 185
498be86b
AF
186- **Removing all the dashlets from the dashboard leads to E_NOTICE
187 ([dev/core#1668](https://lab.civicrm.org/dev/core/issues/1668):
188 [16883](https://github.com/civicrm/civicrm-core/pull/16883))**
bdfce0d2 189
498be86b
AF
190- **Regression: Api4 causes container being rebuild on every request
191 ([dev/core#1674](https://lab.civicrm.org/dev/core/issues/1674):
192 [16919](https://github.com/civicrm/civicrm-core/pull/16919))**
bdfce0d2 193
498be86b
AF
194- **E_NOTICE when using the New Individual popup/profile
195 ([dev/core#1676](https://lab.civicrm.org/dev/core/issues/1676):
196 [16924](https://github.com/civicrm/civicrm-core/pull/16924))**
bdfce0d2 197
fc6522d4
AH
198- **[regression] CiviCRM reports that smart groups won't work due to deleted
199 custom fields that aren't deleted
200 ([dev/core#1688](https://lab.civicrm.org/dev/core/issues/1688):
498be86b 201 [16961](https://github.com/civicrm/civicrm-core/pull/16961))**
bdfce0d2 202
fc6522d4
AH
203 A system check would mistakenly report that a smart group was based upon a
204 deleted custom field if it was based upon a checkbox or multi-select custom
205 field.
206
498be86b
AF
207- **Fix checking permissions in api3 profile get
208 ([16848](https://github.com/civicrm/civicrm-core/pull/16848))**
bdfce0d2 209
fc6522d4
AH
210 This resolves a bug where the API would reverse the value of the option to use
211 a current user's permissions when retrieving the list of fields in a profile.
212
498be86b
AF
213- **APIv4 - convert Result object to array when running through json_encode
214 ([16828](https://github.com/civicrm/civicrm-core/pull/16828))**
bdfce0d2 215
498be86b 216- **Api4 AJAX endpoint: change required permission to access AJAX API.
913e93ec
AH
217 ([16705](https://github.com/civicrm/civicrm-core/pull/16705) and
218 [17241](https://github.com/civicrm/civicrm-core/pull/17241))**
bdfce0d2 219
913e93ec
AH
220 The APIv4 AJAX endpoint is now open to users with either the Access CiviCRM or
221 the Access AJAX API permissions, matching the APIv3 behavior.
bdfce0d2 222
913e93ec
AH
223- **Improvements to APIv4 select query
224 ([16889](https://github.com/civicrm/civicrm-core/pull/16889) and
225 [16900](https://github.com/civicrm/civicrm-core/pull/16900))**
bdfce0d2 226
9a4c3174
AH
227- **APIv4 - Don't advertise implicit multi-joins in Explorer
228 ([17205](https://github.com/civicrm/civicrm-core/pull/17205))**
229
230 Implicit one-to-many joins in APIv4 have been problematic and may get removed.
231 As a soft deprecation, these are no longer displayed in the APIv4 explorer.
232
498be86b
AF
233- **CRM_Core_I18n - Provide a better label for new/unknown locales
234 ([17021](https://github.com/civicrm/civicrm-core/pull/17021))**
bdfce0d2 235
913e93ec
AH
236 If CiviCRM finds a locale in the localization files but doesn't know what it
237 is, it will now display the locale code instead of just a blank option.
238
498be86b
AF
239- **Fixed fatal error for class not found when managed hook is invoked during
240 upgrade ([17004](https://github.com/civicrm/civicrm-core/pull/17004))**
bdfce0d2 241
0e582417
TO
242- **Log error message instead of throwing exception
243 ([16880](https://github.com/civicrm/civicrm-core/pull/16880))**
bdfce0d2 244
0e582417 245- **Remove instances of fatal
913e93ec 246 ([16759](https://github.com/civicrm/civicrm-core/pull/16759))**
bdfce0d2 247
913e93ec
AH
248 This throws exceptions rather than dying when encountering problems creating
249 contacts.
bdfce0d2 250
498be86b
AF
251- **Fix bug where a % in a serialized array can lead to the data being broken
252 ([16694](https://github.com/civicrm/civicrm-core/pull/16694))**
bdfce0d2 253
498be86b
AF
254- **Fix batch contact/activity update with radio options
255 ([16855](https://github.com/civicrm/civicrm-core/pull/16855))**
bdfce0d2 256
913e93ec
AH
257 This fixes a failure to copy the value down a column if the field is radio
258 buttons and the value in the first row contains a space.
259
498be86b
AF
260- **Fix CustomDataView.tpl plain empty memo field.
261 ([16839](https://github.com/civicrm/civicrm-core/pull/16839))**
bdfce0d2 262
498be86b 263 Ensure note custom fields display on their own lines
bdfce0d2 264
498be86b
AF
265- **Fix setting outBound_option readonly in UI
266 ([16774](https://github.com/civicrm/civicrm-core/pull/16774))**
bdfce0d2 267
913e93ec
AH
268 If the outbound mailer option is set via the settings file, the settings form
269 will now disable the field.
bdfce0d2 270
498be86b
AF
271- **Use dbAlias to generate where clause for date field in activity report
272 ([16689](https://github.com/civicrm/civicrm-core/pull/16689))**
bdfce0d2 273
913e93ec
AH
274 This resolves potentially ambiguous queries in the Activity Summary and Detail
275 reports if the activity table is joined again in the report.
276
498be86b
AF
277- **[REF] Use composer patches to apply CiviCRM Customisations for CRM-1367 and
278 CRM-5946 ([16870](https://github.com/civicrm/civicrm-core/pull/16870))**
bdfce0d2 279
498be86b
AF
280 Migrates the patching of pear_mail from a script file to using composer
281 patches to ensure CiviCRM customisations for CRM-1367 and CRM-5946 are applied
282 consistently.
bdfce0d2 283
498be86b 284### CiviCase
bdfce0d2 285
498be86b
AF
286- **Various errors recorded in log message on Manage Case screen -> relationship
287 tab. ([dev/core#1664](https://lab.civicrm.org/dev/core/issues/1664):
288 [16846](https://github.com/civicrm/civicrm-core/pull/16846))**
bdfce0d2 289
498be86b
AF
290 Fixes log messages generated when opening the relationship tab on the Manage
291 Case form.
bdfce0d2 292
0e582417 293- **"Merge Case" modal not showing relevant cases
498be86b
AF
294 ([dev/core#1646](https://lab.civicrm.org/dev/core/issues/1646):
295 [16798](https://github.com/civicrm/civicrm-core/pull/16798))**
bdfce0d2 296
913e93ec
AH
297 The pop-up to merge cases would only show 25 other cases. It now shows all
298 cases for a client.
bdfce0d2 299
498be86b
AF
300- **Adding a timeline to a case doesn't get the last activity in the timeline
301 right ([dev/core#1675](https://lab.civicrm.org/dev/core/issues/1675) and
302 [dev/core#1695](https://lab.civicrm.org/dev/core/issues/1695):
303 [289](https://github.com/civicrm/civicrm-packages/pull/289))**
bdfce0d2 304
498be86b
AF
305 Ensures case custom fields are saved when submitted via Drupal webform.
306 Additionally ensures that the last activity in the case timeline is set
307 correctly.
bdfce0d2 308
0e582417 309- **Check for "Change Case Type" in case activity form doesn't do anything
498be86b
AF
310 ([dev/core#1652](https://lab.civicrm.org/dev/core/issues/1652):
311 [16785](https://github.com/civicrm/civicrm-core/pull/16785))**
bdfce0d2 312
0e582417
TO
313- **When auditing cases on non-English deployments, richtext details
314 are incorrectly escaped
498be86b 315 ([16659](https://github.com/civicrm/civicrm-core/pull/16659))**
bdfce0d2 316
0e582417 317- **Respect 'Do not notify activity type' setting
913e93ec
AH
318 ([16800](https://github.com/civicrm/civicrm-core/pull/16800))**
319
320 The setting to not notify assignees for certain activity types was not
321 respected when submitting an activity from a case.
322
498be86b 323### CiviContribute
bdfce0d2 324
0e582417 325- **Changes to "CiviContribute Component Settings" not saved
9a4c3174
AH
326 ([dev/core#1724](https://lab.civicrm.org/dev/core/issues/1724):
327 [17188](https://github.com/civicrm/civicrm-core/pull/17188))**
328
329 The way that CiviContribute component settings were stored was updated for
330 5.23, but the transition during the upgrade was problematic. This replaces
331 the transition code, resolving issues for sites upgrading directly from 5.22.x
332 or earlier. Sites on 5.23.x or 5.24.x should review their settings, however.
333
334- **Invoice action not shown when invoicing enabled
335 ([17164](https://github.com/civicrm/civicrm-core/pull/17164))**
336
337 The "Invoices - print or email" action was not available for contribution
338 search results even when invoicing was enabled.
339
340- **Cumulative contributions not being calculated with the correct criteria
341 ([dev/core#1740](https://lab.civicrm.org/dev/core/issues/1740):
342 [17237](https://github.com/civicrm/civicrm-core/pull/17237))**
343
344 The cumulative contributions display from a contribution page would needlessly
345 filter contributions by date, with the end date being midnight on the current
346 date. That would exclude contributions received on the current day.
347
fc6522d4
AH
348- **Updating misleading labels on buttons to confirmation pages
349 ([dev/core#1613](https://lab.civicrm.org/dev/core/issues/1613):
350 [16651](https://github.com/civicrm/civicrm-core/pull/16651))**
351
352 Some donors and event registrants interpreted the button text "Confirm
353 Contribution" (on contribution pages) and "Continue" (on event registration
354 pages) to mean that this would complete the contribution or registration. In
355 fact, these would only appear when a confirmation page is used.
356
357 The button text now appears as "Review your contribution" and "Review your
358 registration", respectively.
359
360- **Fix upgrade failure. Thin-out activation logic for `sequentialcreditnotes`.
361 ([16971](https://github.com/civicrm/civicrm-core/pull/16971) following
362 [dev/financial#84](https://lab.civicrm.org/dev/financial/issues/84))**
363
364 This change fixes an issue for some builds when upgrading caused by the
365 activation of the `sequentialcreditnotes` extension to replace core code that
366 generates sequential credit note identifiers.
367
498be86b
AF
368- **Fix Bug where Payment Balance is sometimes miscalculated
369 ([16546](https://github.com/civicrm/civicrm-core/pull/16546))**
bdfce0d2 370
498be86b
AF
371 Fixes a bug where Add Refund is displayed instead of Add Payment on partially
372 paid event contributions.
bdfce0d2 373
0e582417
TO
374- **Stop overwriting contact name with PayPal name
375 ([CRM-20553](https://issues.civicrm.org/jira/browse/CRM-20553): [14667](https://github.com/civicrm/civicrm-core/pull/14667))**
bdfce0d2 376
913e93ec
AH
377 When a user creates a donation via PayPal, their CiviCRM contact name should
378 not be overwritten to be their PayPal account name.
bdfce0d2 379
0e582417 380- **Fix use of "Soft Credit Amount Stats" and any filter of contribution…
498be86b 381 ([16591](https://github.com/civicrm/civicrm-core/pull/16591))**
bdfce0d2 382
498be86b 383 Ensures that one can use "Soft Credit Amount Stats" with all filters.
bdfce0d2 384
498be86b
AF
385- **CRM_Core_Payment_PayPalProIPN should not call getPayPalPaymentProcessorID()
386 if processor_id is clearly provided in URL
387 ([dev/core#1579](https://lab.civicrm.org/dev/core/issues/1579):
388 [16479](https://github.com/civicrm/civicrm-core/pull/16479))**
bdfce0d2 389
498be86b 390- **Update pending contribution status action also send email without warning
fc6522d4 391 ([dev/core#1640](https://lab.civicrm.org/dev/core/issues/1640):
913e93ec
AH
392 [16742](https://github.com/civicrm/civicrm-core/pull/16742))**]
393
394 When bulk updating the status of contributions, there is now a checkbox to
395 choose whether the contacts should be emailed. Previously, emails would be
396 generated without warning.
397
398- **Fix display of payment processor title in cancelSubscription form
399 ([16857](https://github.com/civicrm/civicrm-core/pull/16857))**
400
0e582417 401- **Make the checkbox, "Billing address is the same", respond to the change event
913e93ec
AH
402 ([16496](https://github.com/civicrm/civicrm-core/pull/16496))**
403
0e582417 404 This makes the "billing address is the same" checkbox trigger its changes no
913e93ec
AH
405 matter how the box is checked, not just by clicking it.
406
407### CiviEvent
bdfce0d2 408
498be86b
AF
409- **PayPal Express Checkout fails on events
410 ([dev/financial#119](https://lab.civicrm.org/dev/financial/issues/119):
411 [16692](https://github.com/civicrm/civicrm-core/pull/16692))**
bdfce0d2 412
913e93ec
AH
413- **Fixed fatal error for Event Participants custom search if price set field
414 option is disabled after a registrant has already selected it
415 ([16894](https://github.com/civicrm/civicrm-core/pull/16894))**
bdfce0d2 416
498be86b 417### CiviMember
bdfce0d2 418
fc6522d4
AH
419- **Don't freeze fields for auto-renew memberships
420 ([dev/core#1331](https://lab.civicrm.org/dev/core/issues/1331):
421 [16609](https://github.com/civicrm/civicrm-core/pull/16609) and
422 [16881](https://github.com/civicrm/civicrm-core/pull/16881))**
423
424 Previously, many membership fields were frozen for administrators when the
425 membership was set to auto-renew with a recurring contribution.
426
913e93ec
AH
427- **Deceased Contact via Inline doesn't update the Membership's status to
428 Deceased ([dev/core#1599](https://lab.civicrm.org/dev/core/issues/1599):
429 [16724](https://github.com/civicrm/civicrm-core/pull/16724) and
430 [16787](https://github.com/civicrm/civicrm-core/pull/16787))**
bdfce0d2 431
913e93ec
AH
432 When marking a contact as deceased, this simplifies the underlying process and
433 ensures that a message is displayed about memberships being updated to
434 Deceased status.
bdfce0d2 435
498be86b
AF
436- **Invalid currency "$" on sending offline membership receipt.
437 ([dev/core#1682](https://lab.civicrm.org/dev/core/issues/1682):
438 [16943](https://github.com/civicrm/civicrm-core/pull/16943))**
bdfce0d2 439
913e93ec
AH
440 Fixes an error when sending a receipt for a membership created from an offline
441 membership form. The default currency symbol was being saved as the currency
442 itself.
bdfce0d2 443
498be86b 444- **Membership auto-renew is not optional if using price set
fc6522d4 445 ([dev/core#1630](https://lab.civicrm.org/dev/core/issues/1630):
498be86b 446 [16762](https://github.com/civicrm/civicrm-core/pull/16762))**
bdfce0d2 447
913e93ec
AH
448- **Membership join date checkbox on constituent detail report has lost its
449 label ([dev/report#28](https://lab.civicrm.org/dev/report/issues/28):
450 [16829](https://github.com/civicrm/civicrm-core/pull/16829))**
451
498be86b 452### Drupal Integration
bdfce0d2 453
498be86b
AF
454- **Address no longer available as Relationship for Views in Drupal 7
455 ([dev/drupal#110](https://lab.civicrm.org/dev/drupal/issues/110):
456 [118](https://github.com/civicrm/civicrm-backdrop/pull/118) and
457 [600](https://github.com/civicrm/civicrm-drupal/pull/600))**
bdfce0d2 458
498be86b
AF
459- **Generalise typo3/phar-stream-wrapper so CiviCRM can be installed on D8.7
460 ([17085](https://github.com/civicrm/civicrm-core/pull/17085))**
bdfce0d2 461
498be86b 462- **civicrm-setup and backward slashes in file paths on windows don't play nice
fc6522d4 463 together ([dev/core#1643](https://lab.civicrm.org/dev/core/issues/1643):
498be86b 464 [16886](https://github.com/civicrm/civicrm-core/pull/16886))**
bdfce0d2 465
498be86b
AF
466 Fixes installing CiviCRM on Drupal8 sites on windows using civicrm-setup / cv
467 core:install.
bdfce0d2 468
498be86b 469### WordPress Integration
bdfce0d2 470
498be86b 471- **5.23 breaks WP admin menu links
fc6522d4 472 ([dev/core#1637](https://lab.civicrm.org/dev/core/issues/1637):
498be86b 473 [16713](https://github.com/civicrm/civicrm-core/pull/16713))**
bdfce0d2 474
498be86b
AF
475- **Set "cms.root" URL in addition to Path
476 ([188](https://github.com/civicrm/civicrm-wordpress/pull/188))**
bdfce0d2 477
913e93ec
AH
478 This resolves a "Cannot resolve path using 'cms.root.url'" exception thrown on
479 the "Settings - Resource URLs" screen incorrectly on a WordPress multisite
480 subsite.
bdfce0d2 481
498be86b 482## <a name="misc"></a>Miscellany
bdfce0d2 483
498be86b
AF
484- **Add recurring contribution ID to doCancelRecurring
485 ([16741](https://github.com/civicrm/civicrm-core/pull/16741))**
bdfce0d2 486
498be86b
AF
487- **Support PropertyBag in CRM_Utils_Array
488 ([16699](https://github.com/civicrm/civicrm-core/pull/16699) and
489 [16737](https://github.com/civicrm/civicrm-core/pull/16737))**
bdfce0d2 490
498be86b
AF
491- **Added pseudoconstant for acl_id
492 ([16925](https://github.com/civicrm/civicrm-core/pull/16925))**
bdfce0d2 493
498be86b
AF
494- **Added pseudoconstant for state province
495 ([16799](https://github.com/civicrm/civicrm-core/pull/16799))**
bdfce0d2 496
0e582417 497- **Added pseudoconstant for location type
498be86b 498 ([16758](https://github.com/civicrm/civicrm-core/pull/16758))**
bdfce0d2 499
498be86b
AF
500- **Added pseudoconstant for priceset
501 ([16754](https://github.com/civicrm/civicrm-core/pull/16754))**
bdfce0d2 502
0e582417 503- **Added pseudoconstant for bounce type
498be86b 504 ([16727](https://github.com/civicrm/civicrm-core/pull/16727))**
bdfce0d2 505
498be86b
AF
506- **Added pseudoconstant for civicrm_tag.parent_id
507 ([16703](https://github.com/civicrm/civicrm-core/pull/16703))**
bdfce0d2 508
498be86b
AF
509- **Event Cart cleanup
510 ([16691](https://github.com/civicrm/civicrm-core/pull/16691))**
bdfce0d2 511
498be86b
AF
512- **Update cancelSubscription form to use updated methodology
513 ([16501](https://github.com/civicrm/civicrm-core/pull/16501) and
514 [16715](https://github.com/civicrm/civicrm-core/pull/16715))**
bdfce0d2 515
498be86b
AF
516- **Skip expensive smarty Processing when nothing to see here
517 ([16731](https://github.com/civicrm/civicrm-core/pull/16731))**
bdfce0d2 518
498be86b
AF
519- **UFMatch - deprecate unused functions
520 ([16849](https://github.com/civicrm/civicrm-core/pull/16849))**
bdfce0d2 521
498be86b
AF
522- **Shifted UpdateMemberhsip to BAO Layer
523 ([16690](https://github.com/civicrm/civicrm-core/pull/16690))**
bdfce0d2 524
498be86b
AF
525- **Add DAO::writeRecord and DAO::deleteRecord methods
526 ([16856](https://github.com/civicrm/civicrm-core/pull/16856))**
bdfce0d2 527
498be86b
AF
528- **Add some deprecation notices, stop calling PrevNext::cleanupCache
529 ([16697](https://github.com/civicrm/civicrm-core/pull/16697))**
bdfce0d2 530
498be86b
AF
531- **Remove assigns for atypefile
532 ([16895](https://github.com/civicrm/civicrm-core/pull/16895))**
bdfce0d2 533
498be86b
AF
534- **Deprecate use of in OptionGroup::add() function
535 ([16910](https://github.com/civicrm/civicrm-core/pull/16910))**
bdfce0d2 536
498be86b
AF
537- **Improve APIv4 selectUtils to handle join paths in fieldnames.
538 ([16904](https://github.com/civicrm/civicrm-core/pull/16904))**
bdfce0d2 539
498be86b
AF
540- **Upgrade jQuery validation version to v1.19.1
541 ([16625](https://github.com/civicrm/civicrm-core/pull/16625))**
bdfce0d2 542
498be86b
AF
543- **APIv3 - Use new DAO::deleteRecord method
544 ([16869](https://github.com/civicrm/civicrm-core/pull/16869))**
bdfce0d2 545
498be86b
AF
546- **Improve conditional in api3 ChainSubscriber
547 ([16718](https://github.com/civicrm/civicrm-core/pull/16718))**
bdfce0d2 548
498be86b
AF
549- **Mark unused function as deprecated
550 ([16688](https://github.com/civicrm/civicrm-core/pull/16688))**
bdfce0d2 551
498be86b
AF
552- **CRM/Contact - Cleanup boolean expressions
553 ([16844](https://github.com/civicrm/civicrm-core/pull/16844))**
bdfce0d2 554
498be86b
AF
555- **CRM/Contribute - Cleanup boolean expressions
556 ([16853](https://github.com/civicrm/civicrm-core/pull/16853))**
bdfce0d2 557
498be86b
AF
558- **Civi/Test - Refactor out CRM_Utils_Array::value
559 ([16871](https://github.com/civicrm/civicrm-core/pull/16871))**
bdfce0d2 560
498be86b
AF
561- **Cleanup reverse boolean expressions
562 ([16850](https://github.com/civicrm/civicrm-core/pull/16850))**
bdfce0d2 563
498be86b
AF
564- **CRM/Core - Cleanup boolean expressions
565 ([16852](https://github.com/civicrm/civicrm-core/pull/16852))**
bdfce0d2 566
498be86b
AF
567- **CRM/Utils - Cleanup boolean expressions
568 ([16851](https://github.com/civicrm/civicrm-core/pull/16851))**
bdfce0d2 569
498be86b
AF
570- **CRM - Cleanup boolean expressions
571 ([16854](https://github.com/civicrm/civicrm-core/pull/16854))**
bdfce0d2 572
498be86b
AF
573- **Fix another instance of silly use of CRM_Utils_Array::value
574 ([16712](https://github.com/civicrm/civicrm-core/pull/16712))**
bdfce0d2 575
498be86b
AF
576- **Fix passing a non-array to CRM_Utils_Array::value
577 ([16701](https://github.com/civicrm/civicrm-core/pull/16701))**
bdfce0d2 578
498be86b
AF
579- **Fix another instance of NULL being passed to CRM_Utils_Array::value
580 ([16711](https://github.com/civicrm/civicrm-core/pull/16711))**
bdfce0d2 581
498be86b
AF
582- **Remove an instance of passing non-arraay to CRM_Utils_Array::value(
583 ([16706](https://github.com/civicrm/civicrm-core/pull/16706))**
bdfce0d2 584
498be86b
AF
585- **Remove calls & deprecate CRM_Core_BAO_PrevNextCache::setItem
586 ([16696](https://github.com/civicrm/civicrm-core/pull/16696))**
bdfce0d2 587
498be86b
AF
588- **(POC) Add `hook_civicrm_postCommit`, a less foot-gunny variant of
589 `hook_civicrm_post`
590 ([15338](https://github.com/civicrm/civicrm-core/pull/15338))**
bdfce0d2 591
498be86b
AF
592- **Fix typos in xml/dao
593 ([16827](https://github.com/civicrm/civicrm-core/pull/16827))**
bdfce0d2 594
498be86b
AF
595- **Deprecate unused/unneeded pseudoconstant functions
596 ([16771](https://github.com/civicrm/civicrm-core/pull/16771))**
bdfce0d2 597
498be86b
AF
598- **Deprecate calling contactTrashRestore function
599 ([16824](https://github.com/civicrm/civicrm-core/pull/16824))**
bdfce0d2 600
498be86b
AF
601- **Remove old stuff
602 ([16835](https://github.com/civicrm/civicrm-core/pull/16835))**
bdfce0d2 603
498be86b
AF
604- **Remove deprecated cleaning of money in the BAO layer
605 ([16950](https://github.com/civicrm/civicrm-core/pull/16950))**
bdfce0d2 606
498be86b
AF
607- **Remove unused deprecated function
608 ([16812](https://github.com/civicrm/civicrm-core/pull/16812))**
bdfce0d2 609
498be86b
AF
610- **Remove deprecated function
611 ([16907](https://github.com/civicrm/civicrm-core/pull/16907))**
bdfce0d2 612
498be86b
AF
613- **Remove unused code
614 ([16914](https://github.com/civicrm/civicrm-core/pull/16914))**
bdfce0d2 615
498be86b
AF
616- **Remove deprecated parameter
617 ([16813](https://github.com/civicrm/civicrm-core/pull/16813))**
bdfce0d2 618
498be86b 619- **fix typo ([16865](https://github.com/civicrm/civicrm-core/pull/16865))**
bdfce0d2 620
498be86b
AF
621- **API tests - remove unnecessary check for v4
622 ([16866](https://github.com/civicrm/civicrm-core/pull/16866))**
bdfce0d2 623
498be86b
AF
624- **[NFC] APIv4 - Add test coverage for expected fields from join
625 ([16920](https://github.com/civicrm/civicrm-core/pull/16920))**
bdfce0d2 626
498be86b
AF
627- **[NFC] Add in unit test to ensure that APIv4 Doesn't accept an invalid…
628 ([16893](https://github.com/civicrm/civicrm-core/pull/16893))**
bdfce0d2 629
498be86b
AF
630- **[NFC] Use strict comparison where possible
631 ([16896](https://github.com/civicrm/civicrm-core/pull/16896))**
bdfce0d2 632
498be86b
AF
633- **[NFC] Code formatting
634 ([16906](https://github.com/civicrm/civicrm-core/pull/16906))**
bdfce0d2 635
498be86b
AF
636- **[NFC] minor form cleanup.
637 ([16905](https://github.com/civicrm/civicrm-core/pull/16905))**
bdfce0d2 638
498be86b
AF
639- **(NFC) Minor typo: receipients > recipients
640 ([16810](https://github.com/civicrm/civicrm-core/pull/16810))**
bdfce0d2 641
498be86b
AF
642- **[NFC] Minor code cleanup
643 ([16823](https://github.com/civicrm/civicrm-core/pull/16823))**
bdfce0d2 644
498be86b
AF
645- **[NFC] Deprecate passing in silly data
646 ([16818](https://github.com/civicrm/civicrm-core/pull/16818))**
bdfce0d2 647
498be86b
AF
648- **[NFC] Test cleanup
649 ([16817](https://github.com/civicrm/civicrm-core/pull/16817))**
bdfce0d2 650
498be86b
AF
651- **[NFC] Test cleanup, remove duplicate test
652 ([16755](https://github.com/civicrm/civicrm-core/pull/16755))**
bdfce0d2 653
498be86b
AF
654- **(NFC) Minor string error : for for > for
655 ([16773](https://github.com/civicrm/civicrm-core/pull/16773))**
bdfce0d2 656
498be86b
AF
657- **(NFC) Minor typo: contacts(s) -> contact(s)
658 ([16804](https://github.com/civicrm/civicrm-core/pull/16804))**
bdfce0d2 659
498be86b
AF
660- **(NFC) Query.php / Minor typo: Genrated -> Generated
661 ([16803](https://github.com/civicrm/civicrm-core/pull/16803))**
bdfce0d2 662
498be86b
AF
663- **[NFC] Fix comments, use single quotes
664 ([16693](https://github.com/civicrm/civicrm-core/pull/16693))**
bdfce0d2 665
498be86b
AF
666- **[NFC] Mark unused function deprecated, fix some comments & formatting
667 ([16698](https://github.com/civicrm/civicrm-core/pull/16698))**
bdfce0d2 668
498be86b
AF
669- **[NFC] cleanup in test class
670 ([16764](https://github.com/civicrm/civicrm-core/pull/16764))**
bdfce0d2 671
498be86b
AF
672- **[NFC] Use helper / api to delete contacts in tests
673 ([16825](https://github.com/civicrm/civicrm-core/pull/16825))**
bdfce0d2 674
498be86b
AF
675- **[NFC/TEST] Resurrect unfinished test for getRelatedCases()
676 ([16885](https://github.com/civicrm/civicrm-core/pull/16885))**
bdfce0d2 677
498be86b
AF
678- **[Test] Remove skip that seems no longer required
679 ([16912](https://github.com/civicrm/civicrm-core/pull/16912))**
bdfce0d2 680
498be86b
AF
681- **Test for PR 13809
682 ([16474](https://github.com/civicrm/civicrm-core/pull/16474))**
bdfce0d2 683
498be86b
AF
684- **[TEST] Add test for to time processing
685 ([16861](https://github.com/civicrm/civicrm-core/pull/16861))**
bdfce0d2 686
498be86b
AF
687- **[REF] Case Activities Report includes core activities *always*
688 ([dev/core#1366](https://lab.civicrm.org/dev/core/issues/1366):
689 [16670](https://github.com/civicrm/civicrm-core/pull/16670))**
bdfce0d2 690
498be86b
AF
691- **[REF] Cleanup api3 DashboardContact
692 ([16792](https://github.com/civicrm/civicrm-core/pull/16792))**
bdfce0d2 693
498be86b
AF
694- **[REF] Fixes a bug in Message Template create API where by user permissions
695 checks were being done on system workflow messages
696 ([16788](https://github.com/civicrm/civicrm-core/pull/16788))**
bdfce0d2 697
498be86b
AF
698- **[REF] Remove calls to fatal()
699 ([16746](https://github.com/civicrm/civicrm-core/pull/16746))**
bdfce0d2 700
498be86b
AF
701- **[REF] Cleanup uses of CRM_Utils_Array::value related to numbers
702 ([16778](https://github.com/civicrm/civicrm-core/pull/16778))**
bdfce0d2 703
498be86b
AF
704- **[REF] cleanup financial type form - remove complex inheritence
705 ([16777](https://github.com/civicrm/civicrm-core/pull/16777))**
bdfce0d2 706
498be86b
AF
707- **[REF] Use ?? operator instead of CRM_Utils_Array::value()
708 ([16710](https://github.com/civicrm/civicrm-core/pull/16710))**
bdfce0d2 709
498be86b
AF
710- **[REF] dev/core#1116 - Remove unused misnamed activityTypeName variable
711 ([16730](https://github.com/civicrm/civicrm-core/pull/16730))**
bdfce0d2 712
498be86b
AF
713- **REF Switch to getter on cancelSubscription form
714 ([16740](https://github.com/civicrm/civicrm-core/pull/16740))**
bdfce0d2 715
498be86b
AF
716- **[REF] Minor code simplification
717 ([16734](https://github.com/civicrm/civicrm-core/pull/16734))**
bdfce0d2 718
498be86b
AF
719- **[REF] Hopefully fix regularly failing conformance test
720 ([16732](https://github.com/civicrm/civicrm-core/pull/16732))**
bdfce0d2 721
498be86b
AF
722- **[REF] Use empty() instead of CRM_Utils_Array::value() in inline conditionals
723 ([16729](https://github.com/civicrm/civicrm-core/pull/16729))**
bdfce0d2 724
498be86b
AF
725- **[REF] Use ?? operator instead of CRM_Utils_Array::value() in return
726 statements ([16719](https://github.com/civicrm/civicrm-core/pull/16719))**
bdfce0d2 727
498be86b
AF
728- **[REF] CRM_Utils_Array::value() -> empty()
729 ([16704](https://github.com/civicrm/civicrm-core/pull/16704))**
bdfce0d2 730
498be86b
AF
731- **[REF] Cleanup is_array(CRM_Utils_Array::value()) pattern
732 ([16875](https://github.com/civicrm/civicrm-core/pull/16875))**
bdfce0d2 733
498be86b
AF
734- **[REF] Remove redundant call to build permissions
735 ([16862](https://github.com/civicrm/civicrm-core/pull/16862))**
bdfce0d2 736
498be86b
AF
737- **[REF] Replace CRM_Utils_Array::value with ?? in variable assignments
738 ([16768](https://github.com/civicrm/civicrm-core/pull/16768))**
bdfce0d2 739
498be86b
AF
740- **[REF] Replace coalesce pattern with coalesce operator
741 ([16802](https://github.com/civicrm/civicrm-core/pull/16802))**
bdfce0d2 742
498be86b
AF
743- **[REF] Switch to using a non abandoned library for getting a mapping of
744 mimetypes to extensions
745 ([16436](https://github.com/civicrm/civicrm-core/pull/16436))**
bdfce0d2 746
498be86b
AF
747- **[REF] move buildQuickForm function to the trait
748 ([16948](https://github.com/civicrm/civicrm-core/pull/16948))**
bdfce0d2 749
498be86b
AF
750- **[REF] Move properties to Trait
751 ([16940](https://github.com/civicrm/civicrm-core/pull/16940))**
bdfce0d2 752
498be86b
AF
753- **[REF] Start transitioning EmailCommon class to a trait
754 ([16935](https://github.com/civicrm/civicrm-core/pull/16935))**
bdfce0d2 755
498be86b
AF
756- **[REF] Remove fatal, fix some code comments
757 ([16928](https://github.com/civicrm/civicrm-core/pull/16928))**
bdfce0d2 758
498be86b
AF
759- **[REF] extract code to getEmails
760 ([16929](https://github.com/civicrm/civicrm-core/pull/16929))**
bdfce0d2 761
498be86b
AF
762- **[REF] Minor simplification - do not use variable variables
763 ([16927](https://github.com/civicrm/civicrm-core/pull/16927))**
bdfce0d2 764
498be86b
AF
765- **[REF] Extract code used to render a pseudoconstant when a table is defined.
766 ([16902](https://github.com/civicrm/civicrm-core/pull/16902))**
bdfce0d2 767
498be86b
AF
768- **[REF] Move form specific handling back to the relevant form.
769 ([16913](https://github.com/civicrm/civicrm-core/pull/16913))**
bdfce0d2 770
498be86b
AF
771- **[REF] APIv4 - Preserve order when expanding select wildcards
772 ([16909](https://github.com/civicrm/civicrm-core/pull/16909))**
bdfce0d2 773
498be86b
AF
774- **[REF] Remove & from before variable
775 ([16897](https://github.com/civicrm/civicrm-core/pull/16897))**
bdfce0d2 776
498be86b
AF
777- **[REF] Replace \CRM_Utils_Array::value with ??
778 ([16872](https://github.com/civicrm/civicrm-core/pull/16872))**
bdfce0d2 779
498be86b
AF
780- **[REF] Civi/Api4 - Refactor out 'use CRM_Utils_Array'
781 ([16873](https://github.com/civicrm/civicrm-core/pull/16873))**
bdfce0d2 782
498be86b
AF
783- **[REF] BAO_Contact - Remove CRM_Utils_Array::value and other unnecessary code
784 ([16874](https://github.com/civicrm/civicrm-core/pull/16874))**
bdfce0d2 785
498be86b
AF
786- **[REF] APIv4 - Restructure the way get query objects are constucted
787 ([16878](https://github.com/civicrm/civicrm-core/pull/16878))**
bdfce0d2 788
498be86b
AF
789- **[REF] Fix PCP getPcpDashboardInfo to be tested & use sensible functions
790 ([16790](https://github.com/civicrm/civicrm-core/pull/16790))**
bdfce0d2 791
498be86b
AF
792- **[REF] Simplify obtuse boolean expressions
793 ([16822](https://github.com/civicrm/civicrm-core/pull/16822))**
bdfce0d2 794
498be86b
AF
795- **[REF] Replace CRM_Utils_Array::value with ?? in variable assignments
796 ([16820](https://github.com/civicrm/civicrm-core/pull/16820))**
bdfce0d2 797
498be86b
AF
798- **[REF] cleanups on array operator
799 ([16821](https://github.com/civicrm/civicrm-core/pull/16821))**
bdfce0d2 800
498be86b
AF
801- **[REF] Simplify obtuse boolean expressions
802 ([16819](https://github.com/civicrm/civicrm-core/pull/16819))**
bdfce0d2 803
498be86b
AF
804- **[REF] Remove titleHeader var
805 ([16816](https://github.com/civicrm/civicrm-core/pull/16816))**
bdfce0d2 806
498be86b
AF
807- **[REF] simplify references to civicrm_acl
808 ([16671](https://github.com/civicrm/civicrm-core/pull/16671))**
bdfce0d2 809
9a4c3174
AH
810- **[REF] Fix retrieving invoice related settings when doing complete
811 transaction ([17218](https://github.com/civicrm/civicrm-core/pull/17218))**
812
bdfce0d2
AH
813## <a name="credits"></a>Credits
814
815This release was developed by the following code authors:
816
498be86b 817a-n The Artists Information Company - William Mortada; AGH Strategies - Alice
88bd6b02 818Frumin, Andie Hunt; Alexy Mikhailichenko; Andrei Mondoc; Christian Wach; Circle
498be86b
AF
819Interactive - Pradeep Nayak; CiviCoop - Jaap Jansma; CiviCRM - Coleman Watts,
820Tim Otten; CiviDesk - Yashodha Chaku; Coop SymbioTIC - Mathieu Lutfy; Dave D;
821Freeform Solutions - Herb van den Dool; Fuzion - Jitendra Purohit; iXiam - César
822Ramos; JMA Consulting - Seamus Lee; Joinery - Allen Shaw; Kartik Kathuria;
823Lighthouse Design and Consulting - Brian Shaughnessy; Makoa - Usha F. Matisson;
824Megaphone Technology Consulting - Jon Goldberg; MJW Consulting - Matthew Wire;
825Naomi Rosenberg; Ray Wright; OSSeed Technologies LLP - Sushant Paste; SYSTOPIA
826Organisationsberatung - Björn Endres; Timbsoft Technologies - Tunbola Ogunwande;
827Wikimedia Foundation - Eileen McNaughton
bdfce0d2
AH
828
829Most authors also reviewed code for this release; in addition, the following
830reviewers contributed their comments:
831
498be86b
AF
832Agileware - Justin Freeman; Artful Robot - Rich Lott; British Humanist
833Association - Andrew West; CiviDesk - Nicolas Ganivet; Coop SymbioTIC - Mathieu
834Lutfy; Digitalcourage - Detlev Sieber; Freeform Solutions - S. Gray; Fuzion -
835Jitendra Purohit; Greenpeace Central and Eastern Europe - Patrick Figel; Jamie
836Tillman; JMA Consulting - Monish Deb; Korlon - Stuart Gaston; MJCO - Mikey
837O'Toole; Richard van Oosterhout; Skvare - Mark Hanna; Squiffle Consulting -
fc6522d4 838Aidan Saunders; Tadpole Collective - Kevin Cristiano
a8cf70fe
AH
839
840## <a name="feedback"></a>Feedback
841
88bd6b02 842These release notes are edited by Alice Frumin and Andie Hunt. If you'd like
a8cf70fe
AH
843to provide feedback on them, please log in to https://chat.civicrm.org/civicrm
844and contact `@agh1`.