weird file
[civicrm-core.git] / release-notes / 5.40.0.md
CommitLineData
ba3bb40e
AH
1# CiviCRM 5.40.0
2
1b39a0f2 3Released August 5, 2021
ba3bb40e 4
d30fe70a 5- **[Synopsis](#synopsis)**
ba3bb40e
AH
6- **[Features](#features)**
7- **[Bugs resolved](#bugs)**
8- **[Miscellany](#misc)**
9- **[Credits](#credits)**
d30fe70a
AH
10- **[Feedback](#feedback)**
11
12## <a name="synopsis"></a>Synopsis
13
14| *Does this version...?* | |
15|:--------------------------------------------------------------- |:-------:|
04ae6d84
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** |
ba3bb40e
AH
23
24## <a name="features"></a>Features
25
ba3bb40e
AH
26### Core CiviCRM
27
04ae6d84
AF
28- **Move check for presence of the phone strip function to a Check (currently
29 done whenever a phone number is edited)
30 ([dev/core#27](https://lab.civicrm.org/dev/core/-/issues/27):
31 [20757](https://github.com/civicrm/civicrm-core/pull/20757))**
ba3bb40e 32
3d599ca6
AH
33 CiviCRM relies on a MySQL function to generate a numeric-only version of phone
34 numbers. This change adds a system check to ensure the function exists
35 instead of checking for the function each time a phone number is added or
36 edited.
37
38- **Add calling function to deprecatedWarning log message
39 ([20719](https://github.com/civicrm/civicrm-core/pull/20719))**
40
41 Improves logging.
42
43- **Add contact-summary-image region
44 ([20662](https://github.com/civicrm/civicrm-core/pull/20662))**
45
46 Adds a new region around the contact summary image.
47
48- **Replace extension key with description in 'Add New' tab
49 ([20720](https://github.com/civicrm/civicrm-core/pull/20720))**
50
51 Improves the "Extensions" -> "Add New" form user experience by displaying the
52 description below the extension name instead of the extension key.
53
54- **User experience improvement - Remove the confusing mixed terminology used to
55 describe Tags: "Tags (Categories)" and "Tag (Category)"
56 ([20268](https://github.com/civicrm/civicrm-core/pull/20268))**
57
58 Improves user experience by removing the term "Category" when referencing
59 tags.
60
61- **Improve output triggers when logged to file
62 ([20472](https://github.com/civicrm/civicrm-core/pull/20472))**
63
64 Improves output triggers when logged to a file by adding an asort, putting all
65 the triggers into an array keyed by the statement and opening and closing the
66 delimiters just once.
67
68- **Show smarty E-notices when in debug mode
69 ([20640](https://github.com/civicrm/civicrm-core/pull/20640))**
70
71 Improves the user experience in debug mode by showing php notices (e.g.
72 "undefined variable").
73
74- **Add pseudoconstant to acl_entity_role
75 ([20566](https://github.com/civicrm/civicrm-core/pull/20566))**
76
77 Adds a pseudoconstant for `acl_entity_role`.
78
79- **[php8-compact] Allow for CiviCRM to be installed by 3rd parties using
80 composer on php8 systems
81 ([20625](https://github.com/civicrm/civicrm-core/pull/20625))**
82
83 Makes it so sites can install and update CiviCRM via CLI when their CLI uses
84 PHP8.
85
86### Afform and SearchKit
ba3bb40e 87
04ae6d84
AF
88- **Searchkit display with event location data
89 ([dev/core#2676](https://lab.civicrm.org/dev/core/-/issues/2676):
90 [20746](https://github.com/civicrm/civicrm-core/pull/20746))**
ba3bb40e 91
04ae6d84 92 Adds LocBlock entity to display event location data in SearchKit.
ba3bb40e 93
04ae6d84
AF
94- **SearchKit - Allow super admins to disable Search Display access checks
95 ([20607](https://github.com/civicrm/civicrm-core/pull/20607))**
ba3bb40e 96
04ae6d84
AF
97 Allows users with 'all CiviCRM permissions and ACLs' to configure a search
98 display to bypass permission checks and display all records to the user.
ba3bb40e 99
04ae6d84
AF
100- **SearchKit - Add translatable descriptions to entities
101 ([20598](https://github.com/civicrm/civicrm-core/pull/20598))**
ba3bb40e 102
04ae6d84
AF
103 Adds user-friendly descriptions to the top-level entities in SearchKit, and
104 makes it possible to add them to other entities as well.
ba3bb40e 105
04ae6d84
AF
106- **SearchKit - Show Pledge as a primary entity
107 ([20589](https://github.com/civicrm/civicrm-core/pull/20589))**
ba3bb40e 108
04ae6d84
AF
109 Shows Pledges as a primary entity in SearchKit, since it has its own tab on
110 the contact summary screen.
ba3bb40e 111
04ae6d84
AF
112- **SearchKit - Add ability to join on multi-select ContactRef fields
113 ([20764](https://github.com/civicrm/civicrm-core/pull/20764))**
ba3bb40e 114
04ae6d84
AF
115 Improves support for custom contact Reference fields in APIv4, SearchKit, and
116 Afform. Makes it possible to save, search for, and filter by serialized
117 (multi-select) custom Contact Reference fields.
ba3bb40e 118
3d599ca6
AH
119### API version 4
120
04ae6d84
AF
121- **Improve api consistency on custom field creation
122 ([20743](https://github.com/civicrm/civicrm-core/pull/20743))**
ba3bb40e 123
04ae6d84
AF
124 Makes it so the parameter "option_type" is not needed to create an
125 option_value in APIv4.
ba3bb40e 126
04ae6d84
AF
127- **APIv4 Explorer: show joins for write actions
128 ([20731](https://github.com/civicrm/civicrm-core/pull/20731))**
ba3bb40e 129
04ae6d84 130 Displays information about joins for write operations in the API Explorer.
ba3bb40e 131
04ae6d84
AF
132- **APIv4 - Add `@since` annotation to each entity
133 ([20701](https://github.com/civicrm/civicrm-core/pull/20701))**
ba3bb40e 134
04ae6d84 135 Adds since version for each entity to APIv4 code documentation.
ba3bb40e 136
04ae6d84
AF
137- **APIv4 - Allow FK dot notation in create/update/save actions
138 ([20677](https://github.com/civicrm/civicrm-core/pull/20677))**
ba3bb40e 139
04ae6d84
AF
140 Makes it possible to reference other entities during create without knowing
141 their ID when using the APIv4. Makes it easier to package entities e.g. with
142 civicrm_managed.
ba3bb40e 143
04ae6d84
AF
144- **APIv4 - Add filter for entity tags
145 ([20573](https://github.com/civicrm/civicrm-core/pull/20573))**
ba3bb40e 146
04ae6d84
AF
147 Adds a SearchKit/APIv4 filter for tags similar to the "groups" filter recently
148 added to SearchKit.
ba3bb40e 149
04ae6d84
AF
150- **APIv4 - add is_current as a pseudo (calculated) field
151 ([20586](https://github.com/civicrm/civicrm-core/pull/20586))**
ba3bb40e 152
04ae6d84
AF
153 Adds an "is_current" field to SearchKit for relationships, events & campaigns.
154 It checks that the record is active and has a non-past end date and a
155 non-future start date.
ba3bb40e 156
04ae6d84
AF
157- **APIv4 Explorer - When joining via EntityBridge, make bridge fields
158 selectable ([20721](https://github.com/civicrm/civicrm-core/pull/20721))**
ba3bb40e 159
04ae6d84 160 Improves the APIv4 Explorer by displaying bridge fields.
ba3bb40e 161
04ae6d84
AF
162- **Canonize API for storing translated data (Work Towards
163 [dev/translation#67](https://lab.civicrm.org/dev/translation/-/issues/67):
164 [20606](https://github.com/civicrm/civicrm-core/pull/20606) and
165 [20584](https://github.com/civicrm/civicrm-core/pull/20584))**
ba3bb40e 166
04ae6d84
AF
167 Adds APIv4 support for the "Translation" entity. Allows translation of fields
168 which lack an explicit HTML type.
ba3bb40e 169
04ae6d84
AF
170- **Apiv4 entity parity
171 (Work Towards [dev/core#2486](https://lab.civicrm.org/dev/core/-/issues/2486):
172 [20553](https://github.com/civicrm/civicrm-core/pull/20553))**
ba3bb40e 173
04ae6d84 174 Adds a foreign key on civicrm_contribution_product.product_id.
ba3bb40e 175
04ae6d84 176### CiviContribute
ba3bb40e 177
04ae6d84
AF
178- **Move financialACLs to a core extension (Work Towards
179 [dev/core#2115](https://lab.civicrm.org/dev/core/-/issues/2115):
180 [20761](https://github.com/civicrm/civicrm-core/pull/20761),
181 [20762](https://github.com/civicrm/civicrm-core/pull/20762) and
182 [20769](https://github.com/civicrm/civicrm-core/pull/20769))**
ba3bb40e 183
04ae6d84
AF
184 Moves financial acl code out of APIv3 Contribution.create and assorted cleanup
185 towards moving the Financial ACL code to an extension.
ba3bb40e 186
04ae6d84
AF
187- **Proposal - make future recurring contribution instances modifiable & not
188 fail if the only contribution is deleted. (Work Towards
189 [dev/financial#6](https://lab.civicrm.org/dev/financial/-/issues/6):
190 [20452](https://github.com/civicrm/civicrm-core/pull/20452),
191 [20451](https://github.com/civicrm/civicrm-core/pull/20451) and
192 [20450](https://github.com/civicrm/civicrm-core/pull/20450))**
ba3bb40e 193
04ae6d84 194 Work to make it possible to edit recurring contributions.
ba3bb40e 195
04ae6d84
AF
196- **Make Order api easier to use for default price set
197 ([20681](https://github.com/civicrm/civicrm-core/pull/20681))**
ba3bb40e 198
04ae6d84
AF
199 Improves the order api by making it not necessary to figure out the details of
200 the default price set when using it to create memberships.
ba3bb40e 201
04ae6d84 202### CiviSMS
ba3bb40e 203
04ae6d84
AF
204- **Display SMS segment count when constructing a Mass SMS
205 ([dev/core#1711](https://lab.civicrm.org/dev/core/-/issues/1711):
206 [20722](https://github.com/civicrm/civicrm-core/pull/20722) and
207 [20220](https://github.com/civicrm/civicrm-core/pull/20220))**
ba3bb40e 208
04ae6d84
AF
209 Modifies the javascript that shows the character count when creating a SMS
210 message so that it also shows how many SMS segments are required to send the
211 message.
ba3bb40e 212
04ae6d84 213### WordPress Integration
ba3bb40e 214
04ae6d84
AF
215- **Fail gracefully when errors are detected
216 ([251](https://github.com/civicrm/civicrm-wordpress/pull/251))**
ba3bb40e 217
04ae6d84
AF
218 Rewrites the error checking that the WordPress plugin performs and fails
219 gracefully instead of throwing fatal errors and making WordPress inoperable.
220 Introduces a "CiviCRM Troubleshooting" page to help diagnose and fix problems.
ba3bb40e 221
04ae6d84 222## <a name="bugs"></a>Bugs resolved
ba3bb40e 223
04ae6d84 224### Core CiviCRM
ba3bb40e 225
0ca33b8c
AH
226- **Regression: Smart group rebuild in default config crashes cron
227 ([dev/core#2687](https://lab.civicrm.org/dev/core/-/issues/2687):
228 [20835](https://github.com/civicrm/civicrm-core/pull/20835))**
229
230- **Syntax errors when loading sample data
231 ([dev/drupal#161](https://lab.civicrm.org/dev/drupal/-/issues/161):
232 [20925](https://github.com/civicrm/civicrm-core/pull/20925))**
233
234- **During upgrade ConfigAndLog has errors about crm-l10n.js for every upgrade
235 step because assets aren't built during upgrade
236 ([dev/core#2666](https://lab.civicrm.org/dev/core/-/issues/2666):
237 [20890](https://github.com/civicrm/civicrm-core/pull/20890))**
238
04ae6d84
AF
239- **Exporting in localized civicrm crashes due to long translation for
240 preferred_mail_format varchar(8) field.
241 ([dev/core#2645](https://lab.civicrm.org/dev/core/-/issues/2645):
242 [20626](https://github.com/civicrm/civicrm-core/pull/20626))**
ba3bb40e 243
04ae6d84
AF
244- **failing update Smart Groups for installs with none
245 ([dev/core#2659](https://lab.civicrm.org/dev/core/-/issues/2659):
246 [20756](https://github.com/civicrm/civicrm-core/pull/20756))**
ba3bb40e 247
04ae6d84
AF
248- **Menu link for "New Tag" doesn't quite work
249 ([dev/core#2660](https://lab.civicrm.org/dev/core/-/issues/2660):
250 [20686](https://github.com/civicrm/civicrm-core/pull/20686))**
ba3bb40e 251
04ae6d84
AF
252 Points the "New Tag" menu link to form to create a new tag instead of "Manage
253 Tags" form.
ba3bb40e 254
04ae6d84
AF
255- **Special characters in password cause trouble.
256 ([dev/core#2663](https://lab.civicrm.org/dev/core/-/issues/2663):
257 [20713](https://github.com/civicrm/civicrm-core/pull/20713))**
ba3bb40e 258
04ae6d84
AF
259- **Upgrade to Nightly (5.40.alpha1) from Stable (5.38.1) fails with DB Error:
260 constraint violation
261 ([dev/core#2680](https://lab.civicrm.org/dev/core/-/issues/2680):
262 [20814](https://github.com/civicrm/civicrm-core/pull/20814))**
ba3bb40e 263
04ae6d84
AF
264- **[php8-compact] Add in more protection for unset variables in various smarty
265 templates ([20546](https://github.com/civicrm/civicrm-core/pull/20546) and
266 [20547](https://github.com/civicrm/civicrm-core/pull/20547))**
ba3bb40e 267
04ae6d84
AF
268- **Force cleanup of setting value type "checkboxes" when is empty
269 ([20600](https://github.com/civicrm/civicrm-core/pull/20600))**
ba3bb40e 270
04ae6d84
AF
271 Fixes a bug where custom settings of the type "checkboxes" with no checked
272 values were not saving to the database correctly.
ba3bb40e 273
04ae6d84
AF
274- **Fix activity_date_time_relative filter when `preserve_activity_tab_filter`
275 setting is on ([20602](https://github.com/civicrm/civicrm-core/pull/20602))**
ba3bb40e 276
04ae6d84
AF
277- **Support saving more than 25 records in Profile.submit api
278 ([20744](https://github.com/civicrm/civicrm-core/pull/20744))**
ba3bb40e 279
04ae6d84
AF
280- **Fix schema support for composite primary keys
281 ([20705](https://github.com/civicrm/civicrm-core/pull/20705))**
ba3bb40e 282
04ae6d84
AF
283- **Fix sorting for drop triggers
284 ([20693](https://github.com/civicrm/civicrm-core/pull/20693))**
ba3bb40e 285
04ae6d84
AF
286- **Fix Schema calculation of usePrefix to cope with rpow:
287 ([20471](https://github.com/civicrm/civicrm-core/pull/20471))**
ba3bb40e 288
04ae6d84 289- **Fixed url ([20641](https://github.com/civicrm/civicrm-core/pull/20641))**
ba3bb40e 290
04ae6d84
AF
291- **Ensure custom group name does not conflict with existing field
292 ([20694](https://github.com/civicrm/civicrm-core/pull/20694))**
ba3bb40e 293
04ae6d84
AF
294- **Force the right path in github action script
295 ([20688](https://github.com/civicrm/civicrm-core/pull/20688))**
ba3bb40e 296
04ae6d84
AF
297 The original script ran in a repo called civicrm-regen, but because the name
298 of this repo is civicrm-core and hence the github workspace folder contains
299 the literal "civicrm-core" in it, the civicrm.config.php file determines that
300 this must be a composer install, and so it gets the path to
301 civicrm.settings.php wrong.
ba3bb40e 302
04ae6d84
AF
303- **Always assign mode to smarty
304 ([20664](https://github.com/civicrm/civicrm-core/pull/20664))**
ba3bb40e 305
04ae6d84
AF
306- **AngularLoader - Emit warning when setModules method is used.
307 ([20628](https://github.com/civicrm/civicrm-core/pull/20628))**
ba3bb40e 308
04ae6d84
AF
309 Emits a warning when extensions do something that could potentially cause
310 problems with other extensions.
ba3bb40e 311
04ae6d84
AF
312- **Throw exception when baoName is not found
313 ([20696](https://github.com/civicrm/civicrm-core/pull/20696) and
314 [20742](https://github.com/civicrm/civicrm-core/pull/20742))**
ba3bb40e 315
04ae6d84
AF
316- **Convert Notes to use option_group instead of hardcoded list
317 ([20554](https://github.com/civicrm/civicrm-core/pull/20554))**
ba3bb40e 318
04ae6d84
AF
319- **Fix a few more undefined template vars
320 ([20577](https://github.com/civicrm/civicrm-core/pull/20577) and
321 [20684](https://github.com/civicrm/civicrm-core/pull/20684))**
ba3bb40e 322
04ae6d84
AF
323- **CKEditor - Fix .tpl insertion on every form
324 ([20846](https://github.com/civicrm/civicrm-core/pull/20846))**
ba3bb40e 325
04ae6d84
AF
326- **Fix undefined tpl vars in CiviReport
327 ([20797](https://github.com/civicrm/civicrm-core/pull/20797))**
ba3bb40e 328
04ae6d84
AF
329- **smarty notice - title is only set for a list of existing report instances
330 ([20771](https://github.com/civicrm/civicrm-core/pull/20771))**
ba3bb40e 331
04ae6d84
AF
332- **smarty notice - confirm_message is usually irrelevant in report listings
333 ([20772](https://github.com/civicrm/civicrm-core/pull/20772))**
ba3bb40e 334
04ae6d84
AF
335- **Minor tpl simplificaiton, notice reduction
336 ([20663](https://github.com/civicrm/civicrm-core/pull/20663))**
ba3bb40e 337
04ae6d84
AF
338- **Fix undefined tpl variables on contact summary
339 ([20659](https://github.com/civicrm/civicrm-core/pull/20659))**
ba3bb40e 340
04ae6d84
AF
341- **Some php warnings on new case
342 ([20712](https://github.com/civicrm/civicrm-core/pull/20712))**
ba3bb40e 343
04ae6d84
AF
344- **Remove deprecated use of format money
345 ([20697](https://github.com/civicrm/civicrm-core/pull/20697))**
ba3bb40e 346
04ae6d84
AF
347- **Fix possibly undefined custom groupTree tpl variable
348 ([20737](https://github.com/civicrm/civicrm-core/pull/20737))**
ba3bb40e 349
04ae6d84
AF
350- **Fix undefined tpl vars on contact summary page
351 ([20754](https://github.com/civicrm/civicrm-core/pull/20754))**
ba3bb40e 352
04ae6d84
AF
353- **Tpl enotice fix
354 ([20735](https://github.com/civicrm/civicrm-core/pull/20735))**
ba3bb40e 355
04ae6d84
AF
356- **Fix undefined indexes in tpls
357 ([20781](https://github.com/civicrm/civicrm-core/pull/20781))**
ba3bb40e 358
04ae6d84
AF
359- **Enotice fix Remove references to savedFieldMapping in page 2 of the import
360 ([20738](https://github.com/civicrm/civicrm-core/pull/20738))**
ba3bb40e 361
04ae6d84
AF
362- **Fix undefined tpl vars on custom field page
363 ([20726](https://github.com/civicrm/civicrm-core/pull/20726))**
ba3bb40e 364
04ae6d84
AF
365- **Fix often undefined variable $row.class in tpl tables
366 ([20725](https://github.com/civicrm/civicrm-core/pull/20725))**
ba3bb40e 367
04ae6d84
AF
368- **Throw exception rather than allow php fail
369 ([20565](https://github.com/civicrm/civicrm-core/pull/20565))**
ba3bb40e 370
04ae6d84
AF
371 Throws an exception rather than allow php fail when the api class is not
372 found.
ba3bb40e 373
04ae6d84
AF
374- **Proposal - store metadata on membership renewal on line item (Work Towards
375 [dev/membership#29](https://lab.civicrm.org/dev/membership/-/issues/29):
376 [20672](https://github.com/civicrm/civicrm-core/pull/20672))**
ba3bb40e 377
04ae6d84 378 Adds a new column to the civicrm_line_item table: membership_num_terms.
ba3bb40e 379
3d599ca6
AH
380### Afform and SearchKit
381
382- **Afform - cosmetic fixes in palette panel
383 ([20755](https://github.com/civicrm/civicrm-core/pull/20755))**
384
385- **Search-kit - declaring joins breaks deduping
386 ([dev/core#2656](https://lab.civicrm.org/dev/core/-/issues/2656):
387 [20631](https://github.com/civicrm/civicrm-core/pull/20631) and
388 [20639](https://github.com/civicrm/civicrm-core/pull/20639))**
389
390- **SearchKit - use primary_key info instead of assuming 'id'
391 ([20763](https://github.com/civicrm/civicrm-core/pull/20763))**
392
393 Fixes a bug in SearchKit when dealing with entities without "id" as their
394 primary key field.
395
396- **SearchKit - Remove automatic filter from address
397 ([20803](https://github.com/civicrm/civicrm-core/pull/20803))**
398
399 Usability fix for SearchKit - stops automatically add "Location Type" to the
400 search when joining with Address.
401
402- **OR term in WHERE clause crashes Search Kit
403 ([dev/report#71](https://lab.civicrm.org/dev/report/-/issues/71):
404 [20824](https://github.com/civicrm/civicrm-core/pull/20824))**
405
406 Fixes an error when saving or opening a search with an OR group in a clause.
407
408### API version 4
409
410- **APIv4 - Silently ignore non-permissioned fields instead of throwing
411 exceptions ([20724](https://github.com/civicrm/civicrm-core/pull/20724))**
412
413- **APIv4 - Fix same-table joins and remove unused code
414 ([20715](https://github.com/civicrm/civicrm-core/pull/20715))**
415
416- **APIv4 - Don't assume the identifier field for a table is named 'id'
417 ([20707](https://github.com/civicrm/civicrm-core/pull/20707) and
418 [20749](https://github.com/civicrm/civicrm-core/pull/20749))**
419
420- **APIv4 - Deprecate Entity::getLinks action
421 ([20727](https://github.com/civicrm/civicrm-core/pull/20727))**
422
423- **APIv4 - Deprecate passing 'id' to basic actions
424 ([20765](https://github.com/civicrm/civicrm-core/pull/20765))**
425
426- **APIv4 Explorer - Only apply default limit 25 for "get" action
427 ([20698](https://github.com/civicrm/civicrm-core/pull/20698))**
428
0ca33b8c
AH
429- **Failing api4 test
430 api.v4.Action.CreateWithOptionGroupTest.testWithCustomDataForMultipleContacts
431 ([dev/core#2699](https://lab.civicrm.org/dev/core/-/issues/2699):
432 [20928](https://github.com/civicrm/civicrm-core/pull/20928))**
433
04ae6d84 434### CiviCase
ba3bb40e 435
04ae6d84
AF
436- **Case Manager is not shown for closed cases.
437 ([dev/core#542](https://lab.civicrm.org/dev/core/-/issues/542) and
438 [dev/core#1947](https://lab.civicrm.org/dev/core/-/issues/1947):
439 [19737](https://github.com/civicrm/civicrm-core/pull/19737))**
ba3bb40e 440
04ae6d84 441 Ensures inactive active case role are shown for closed cases.
ba3bb40e 442
04ae6d84
AF
443- **Some php warnings on case dashboard
444 ([20711](https://github.com/civicrm/civicrm-core/pull/20711))**
ba3bb40e 445
04ae6d84
AF
446- **smarty notice - case dashboard when no upcoming/recent cases
447 ([20770](https://github.com/civicrm/civicrm-core/pull/20770))**
ba3bb40e 448
04ae6d84
AF
449- **smarty notices - New case screen - Case.hlp
450 ([20795](https://github.com/civicrm/civicrm-core/pull/20795))**
ba3bb40e 451
04ae6d84
AF
452- **Error when sorting case roles table by end date
453 ([20728](https://github.com/civicrm/civicrm-core/pull/20728))**
ba3bb40e 454
04ae6d84 455### CiviContribute
ba3bb40e 456
1b39a0f2
TO
457- **Error submitting contribution form if ""is_monetary=0""
458 ([dev/wordpress#109](https://lab.civicrm.org/dev/wordpress/-/issues/109):
459 [#20929](https://github.com/civicrm/civicrm-core/pull/20929))**
460
04ae6d84
AF
461- **Can't remove previously-added currencies
462 ([dev/financial#175](https://lab.civicrm.org/dev/financial/-/issues/175):
463 [20627](https://github.com/civicrm/civicrm-core/pull/20627))**
ba3bb40e 464
04ae6d84
AF
465- **civicrm/payment/form url got empty currency argument in backoffice live CC
466 form ([dev/financial#150](https://lab.civicrm.org/dev/financial/-/issues/150):
467 [18517](https://github.com/civicrm/civicrm-core/pull/18517))**
ba3bb40e 468
04ae6d84
AF
469- **"Non-static method CRM_Financial_Form_BatchTransaction::links() should not
470 be called statically" when viewing accounting batch
471 ([dev/core#2647](https://lab.civicrm.org/dev/core/-/issues/2647):
472 [20691](https://github.com/civicrm/civicrm-core/pull/20691))**
ba3bb40e 473
04ae6d84
AF
474- **pre hook is not triggered for LineItem delete
475 ([dev/core#2657](https://lab.civicrm.org/dev/core/-/issues/2657):
476 [20644](https://github.com/civicrm/civicrm-core/pull/20644))**
ba3bb40e 477
04ae6d84
AF
478- **Undefined variable ids in CRM\Core\Payment\AuthorizeNetIPN.php
479 ([dev/core#2685](https://lab.civicrm.org/dev/core/-/issues/2685):
480 [20818](https://github.com/civicrm/civicrm-core/pull/20818))**
ba3bb40e 481
04ae6d84
AF
482- **Send pcp notification only when the contribution is completed
483 ([20523](https://github.com/civicrm/civicrm-core/pull/20523))**
ba3bb40e 484
04ae6d84
AF
485- **Add missing "View Recurring Contribution" link to contribution view
486 ([20750](https://github.com/civicrm/civicrm-core/pull/20750))**
ba3bb40e 487
04ae6d84
AF
488 Add missing "View Recurring Contribution" link to contribution view when
489 displaying line items.
ba3bb40e 490
04ae6d84 491### CiviEvent
ba3bb40e 492
04ae6d84
AF
493- **Fix bug where only one participant registration is completed
494 ([20654](https://github.com/civicrm/civicrm-core/pull/20654))**
ba3bb40e 495
04ae6d84 496### CiviMail
ba3bb40e 497
04ae6d84
AF
498- **Unwanted mail blast sent by Scheduled Reminders
499 ([dev/core#365](https://lab.civicrm.org/dev/core/-/issues/365):
500 [20432](https://github.com/civicrm/civicrm-core/pull/20432) and
501 [19973](https://github.com/civicrm/civicrm-core/pull/19973))**
ba3bb40e 502
04ae6d84 503 Adds Effective start and end date to the Schedule Reminder UI.
ba3bb40e 504
04ae6d84
AF
505- **Specifying a "Selection Method" without a location type gives a DB error
506 ([dev/mail#96](https://lab.civicrm.org/dev/mail/-/issues/96):
507 [20536](https://github.com/civicrm/civicrm-core/pull/20536))**
ba3bb40e 508
04ae6d84
AF
509- **Mailing label prints name twice
510 ([dev/core#2681](https://lab.civicrm.org/dev/core/-/issues/2681):
511 [20783](https://github.com/civicrm/civicrm-core/pull/20783))**
ba3bb40e 512
04ae6d84
AF
513- **Fix invalid defaults for Mailing.update_email_resetdate API
514 ([20751](https://github.com/civicrm/civicrm-core/pull/20751))**
ba3bb40e 515
04ae6d84
AF
516- **Use mysql to set mailing.created_date
517 ([20630](https://github.com/civicrm/civicrm-core/pull/20630))**
ba3bb40e 518
04ae6d84 519### Drupal Integration
ba3bb40e 520
04ae6d84
AF
521- **hook_civicrm_buildProfile not working on Drupal 8
522 ([dev/drupal#113](https://lab.civicrm.org/dev/drupal/-/issues/113):
523 [65](https://github.com/civicrm/civicrm-drupal-8/pull/65))**
ba3bb40e 524
04ae6d84 525## <a name="misc"></a>Miscellany
ba3bb40e 526
04ae6d84
AF
527- **Unused smarty variable
528 ([20796](https://github.com/civicrm/civicrm-core/pull/20796))**
ba3bb40e 529
04ae6d84
AF
530- **Remove unreachable code from admin page
531 ([20642](https://github.com/civicrm/civicrm-core/pull/20642))**
ba3bb40e 532
04ae6d84
AF
533- **replace unnecessary function call with string literal
534 ([20634](https://github.com/civicrm/civicrm-core/pull/20634))**
ba3bb40e 535
04ae6d84
AF
536- **APIv4 - Remove POC code leftover from early alpha development
537 ([20709](https://github.com/civicrm/civicrm-core/pull/20709))**
ba3bb40e 538
04ae6d84
AF
539- **Move upgrade code to correct version
540 ([20643](https://github.com/civicrm/civicrm-core/pull/20643))**
ba3bb40e 541
04ae6d84
AF
542- **Move determination of priceSetID to the internal order class
543 ([20669](https://github.com/civicrm/civicrm-core/pull/20669))**
ba3bb40e 544
04ae6d84
AF
545- **CRM_Utils_Array::asColumns() - Add helper to rotate a matrix (from rows to
546 columns) ([20788](https://github.com/civicrm/civicrm-core/pull/20788))**
ba3bb40e 547
04ae6d84
AF
548- **CRM_Utils_Array - Implement pathUnset() method
549 ([20787](https://github.com/civicrm/civicrm-core/pull/20787))**
ba3bb40e 550
04ae6d84
AF
551- **Handle participant payment create in line item
552 ([20790](https://github.com/civicrm/civicrm-core/pull/20790))**
ba3bb40e 553
04ae6d84
AF
554- **APIv4 Explorer - Render joins using addJoin function in OOP
555 ([20723](https://github.com/civicrm/civicrm-core/pull/20723))**
ba3bb40e 556
04ae6d84
AF
557- **Deprecate duplicate getLoggedInContactID() function
558 ([20321](https://github.com/civicrm/civicrm-core/pull/20321))**
ba3bb40e 559
04ae6d84
AF
560- **Remove deprecated function
561 ([20760](https://github.com/civicrm/civicrm-core/pull/20760))**
ba3bb40e 562
04ae6d84
AF
563- **Hopefully fix time rollover problem in MessageTemplateTest
564 ([20714](https://github.com/civicrm/civicrm-core/pull/20714))**
ba3bb40e 565
04ae6d84
AF
566- **Extract feeBlock to it's own tpl
567 ([20679](https://github.com/civicrm/civicrm-core/pull/20679))**
ba3bb40e 568
04ae6d84
AF
569- **Deprecate passing in 'null' for tax
570 ([20671](https://github.com/civicrm/civicrm-core/pull/20671))**
ba3bb40e 571
04ae6d84
AF
572- **Add test validation for Membership & participant payments
573 ([20621](https://github.com/civicrm/civicrm-core/pull/20621))**
ba3bb40e 574
04ae6d84
AF
575- **Fix up on invalid test data
576 ([20667](https://github.com/civicrm/civicrm-core/pull/20667))**
ba3bb40e 577
04ae6d84
AF
578- **Fix test to use valid amounts
579 ([20668](https://github.com/civicrm/civicrm-core/pull/20668))**
ba3bb40e 580
04ae6d84
AF
581- **Fix test to use valid financials
582 ([20676](https://github.com/civicrm/civicrm-core/pull/20676))**
ba3bb40e 583
04ae6d84
AF
584- **Improve CustomGroupTest
585 ([20617](https://github.com/civicrm/civicrm-core/pull/20617))**
ba3bb40e 586
04ae6d84
AF
587- **Test cleanup - specify return
588 ([20570](https://github.com/civicrm/civicrm-core/pull/20570))**
ba3bb40e 589
04ae6d84
AF
590- **Clean up code to determine line items for membership batch entry
591 ([20779](https://github.com/civicrm/civicrm-core/pull/20779))**
ba3bb40e 592
04ae6d84
AF
593- **AssetBuilderTest - Raise threshold for timeout
594 ([20810](https://github.com/civicrm/civicrm-core/pull/20810))**
ba3bb40e 595
04ae6d84
AF
596- **Reduce test api calls with no 'return'
597 ([20574](https://github.com/civicrm/civicrm-core/pull/20574))**
ba3bb40e 598
04ae6d84
AF
599- **Fix BaseIPN test to (mostly) pass invalid financials checks
600 ([20785](https://github.com/civicrm/civicrm-core/pull/20785))**
ba3bb40e 601
04ae6d84
AF
602- **Fix test set up to user Order api
603 ([20780](https://github.com/civicrm/civicrm-core/pull/20780))**
ba3bb40e 604
04ae6d84
AF
605- **[REF] Membership api for v4 (Work Towards
606 [dev/core#2634](https://lab.civicrm.org/dev/core/-/issues/2634):
607 [20759](https://github.com/civicrm/civicrm-core/pull/20759))**
ba3bb40e 608
04ae6d84
AF
609- **[Ref] Remove (more) unreachable code from order api
610 ([20793](https://github.com/civicrm/civicrm-core/pull/20793))**
ba3bb40e 611
04ae6d84
AF
612- **[REF] Add in template guard for not being always set as per html format
613 ([20747](https://github.com/civicrm/civicrm-core/pull/20747))**
ba3bb40e 614
04ae6d84
AF
615- **[REF] Remove isPayLater from membership batch screen
616 ([20396](https://github.com/civicrm/civicrm-core/pull/20396))**
ba3bb40e 617
04ae6d84
AF
618- **[REF] Extend testing on membership batch entry & minor cleanup
619 ([20394](https://github.com/civicrm/civicrm-core/pull/20394))**
ba3bb40e 620
04ae6d84
AF
621- **[REF] Fix trying to access array offset from boolean value
622 ([20734](https://github.com/civicrm/civicrm-core/pull/20734))**
ba3bb40e 623
04ae6d84
AF
624- **[REF] Alter new Setup process to use CiviCRM's Event Dispatcher
625 ([20717](https://github.com/civicrm/civicrm-core/pull/20717))**
ba3bb40e 626
04ae6d84
AF
627- **[REF] - Improve efficiency of APIv4 GetInfo
628 ([20708](https://github.com/civicrm/civicrm-core/pull/20708))**
ba3bb40e 629
04ae6d84
AF
630- **REF - Get Contact Summary tab counts after calling hook to avoid wasting
631 time ([20673](https://github.com/civicrm/civicrm-core/pull/20673))**
ba3bb40e 632
04ae6d84
AF
633- **[REF] Remove always false if
634 ([20653](https://github.com/civicrm/civicrm-core/pull/20653))**
ba3bb40e 635
04ae6d84
AF
636- **[REF] Extract CKEditor into its own core extension
637 ([20392](https://github.com/civicrm/civicrm-core/pull/20392))**
ba3bb40e 638
04ae6d84
AF
639- **(REF) crmUi - Support onCrmUiSelect for using select2 as a picklist
640 ([20789](https://github.com/civicrm/civicrm-core/pull/20789))**
ba3bb40e 641
04ae6d84
AF
642- **[REF] Tidy up param transforms
643 ([20778](https://github.com/civicrm/civicrm-core/pull/20778))**
ba3bb40e 644
04ae6d84
AF
645- **[REF] Follow up clean up - remove contribution_mode
646 ([20656](https://github.com/civicrm/civicrm-core/pull/20656))**
ba3bb40e 647
04ae6d84
AF
648- **[REF] Remove unnecessary variable wrangling in case roles section
649 ([20729](https://github.com/civicrm/civicrm-core/pull/20729))**
ba3bb40e 650
04ae6d84
AF
651- **[REF] Follow up fix to fixing note entity tables in views
652 ([144](https://github.com/civicrm/civicrm-backdrop/pull/144))**
ba3bb40e 653
04ae6d84
AF
654- **[REF] Follow up fix to fixing note entity tables in views
655 ([646](https://github.com/civicrm/civicrm-drupal/pull/646))**
ba3bb40e 656
04ae6d84
AF
657- **[NFC] - update code comment
658 ([20599](https://github.com/civicrm/civicrm-core/pull/20599))**
ba3bb40e 659
04ae6d84
AF
660- **[NFC] Fix test failure on MySQL8 because of lack of order in API
661 ([20605](https://github.com/civicrm/civicrm-core/pull/20605))**
ba3bb40e 662
04ae6d84
AF
663- **[NFC] [Test] Remove duplicate cleanup
664 ([20647](https://github.com/civicrm/civicrm-core/pull/20647))**
ba3bb40e 665
04ae6d84
AF
666- **[NFC] [TEST] cleanup, more use of return in ActivityTest
667 ([20633](https://github.com/civicrm/civicrm-core/pull/20633))**
ba3bb40e 668
04ae6d84
AF
669- **[NFC] Cleanup on membership test
670 ([20636](https://github.com/civicrm/civicrm-core/pull/20636))**
ba3bb40e 671
04ae6d84
AF
672- **[NFC] [Test] Remove duplicate cleanup
673 ([20637](https://github.com/civicrm/civicrm-core/pull/20637))**
ba3bb40e 674
04ae6d84
AF
675- **[NFC] Cleanup on contribution v3 api test
676 ([20638](https://github.com/civicrm/civicrm-core/pull/20638))**
ba3bb40e 677
04ae6d84
AF
678- **[NFC] Add in unit test to lock in the fix for the is_deleted in where clause
679 issue ([20733](https://github.com/civicrm/civicrm-core/pull/20733))**
ba3bb40e 680
04ae6d84
AF
681- **[NFC] Afform - Regenerate civix files
682 ([20615](https://github.com/civicrm/civicrm-core/pull/20615))**
ba3bb40e 683
04ae6d84
AF
684- **[NFC] Fix test setup on a couple of tests to make them pass in php8
685 ([20614](https://github.com/civicrm/civicrm-core/pull/20614))**
ba3bb40e 686
04ae6d84
AF
687- **[NFC] Update various npm depdencies used only in unit testing
688 ([20748](https://github.com/civicrm/civicrm-core/pull/20748))**
ba3bb40e 689
04ae6d84
AF
690- **[NFC] Improve use of return parameters in ContributionPage test class
691 ([20648](https://github.com/civicrm/civicrm-core/pull/20648))**
ba3bb40e 692
04ae6d84
AF
693- **[NFC] Unit test for 20602
694 ([20745](https://github.com/civicrm/civicrm-core/pull/20745))**
ba3bb40e 695
04ae6d84
AF
696- **[NFC] Remove boilerplate comment block from APIv4 classes
697 ([20700](https://github.com/civicrm/civicrm-core/pull/20700))**
ba3bb40e 698
04ae6d84
AF
699- **[NFC] Github action script to run regen.sh for you
700 ([20680](https://github.com/civicrm/civicrm-core/pull/20680))**
ba3bb40e 701
04ae6d84
AF
702- **[NFC] Regenerate ContributeProduct DAO and also fix search_kit install on
703 MySQL 5.6 on test boxes
704 ([20674](https://github.com/civicrm/civicrm-core/pull/20674))**
ba3bb40e 705
04ae6d84
AF
706- **[NFC] Fixes an issue in this unit test where we are trying to do an array
707 access on an integer
708 ([20652](https://github.com/civicrm/civicrm-core/pull/20652))**
ba3bb40e 709
04ae6d84
AF
710- **[NFC] [Test] Cleanup on membership type test
711 ([20649](https://github.com/civicrm/civicrm-core/pull/20649))**
ba3bb40e 712
04ae6d84
AF
713- **[NFC/Unit test] - Add a test for getCaseRoles when there's a lot of roles
714 assigned ([20657](https://github.com/civicrm/civicrm-core/pull/20657))**
ba3bb40e 715
04ae6d84
AF
716- **[NFC] [TEST] cleanup, more use of return in AddressTest
717 ([20635](https://github.com/civicrm/civicrm-core/pull/20635))**
718
719- **[NFC] [Test] Specify return values on get calls
720 ([20632](https://github.com/civicrm/civicrm-core/pull/20632))**
721
722- **[TEST][NFC] CiviCRM reaching MySQL join limit (Work Towards
723 [dev/core#1191](https://lab.civicrm.org/dev/core/-/issues/1191):
724 [20618](https://github.com/civicrm/civicrm-core/pull/20618) and
725 [20622](https://github.com/civicrm/civicrm-core/pull/20622))**
726
727- **[php8-compact][NFC] Update testGroupClause unit test to work on php8
728 ([20624](https://github.com/civicrm/civicrm-core/pull/20624))**
729
730- **[php8-compact][REF] Fix failing custom group test on php8 by better handling
731 strings in 2nd key of the extends array and also validating the child and main
732 entity work ([20616](https://github.com/civicrm/civicrm-core/pull/20616))**
733
734- **[php8-compact] Fix APIv4 Group Concat Test by setting dataType to be NULL if
735 the first expression is a SQL Function
736 ([20655](https://github.com/civicrm/civicrm-core/pull/20655))**
737
738- **[php8-compact] Fix issues with participant message templates causing Event
739 Tests to fail ([20613](https://github.com/civicrm/civicrm-core/pull/20613))**
740
741- **[php8-compact] Add in guards into common templates to assit with fixing test
742 failures on php8
743 ([20543](https://github.com/civicrm/civicrm-core/pull/20543))**
744
745- **[php8-compact] Fix Array to String in formButtons in CRM_Core_FormTest
746 ([20608](https://github.com/civicrm/civicrm-core/pull/20608))**
747
748- **[php8-compact] Fix Event Form test for php8 by setting totalAmount in the
749 form params ([20623](https://github.com/civicrm/civicrm-core/pull/20623))**
750
751- **[php8-compat] Alternate to the alternate for testOpeningForms
752 ([20603](https://github.com/civicrm/civicrm-core/pull/20603))**
753
754- **[php8-compact] Fix apiv4 tests in php8 by not incrementing an array
755 ([20594](https://github.com/civicrm/civicrm-core/pull/20594))**
756
757- **[php8-compact] Further test fixes for php8
758 ([20597](https://github.com/civicrm/civicrm-core/pull/20597))**
759
760- **[php8-compact] Fix failing AuthorizeNetIPN tests on php8
761 ([20596](https://github.com/civicrm/civicrm-core/pull/20596))**
762
763- **[php8-compact] Fix failing CRM_Core_InvokeTest on php8
764 ([20595](https://github.com/civicrm/civicrm-core/pull/20595))**
765
766- **[php8-compact] Fix Session Test errors in php8
767 ([20593](https://github.com/civicrm/civicrm-core/pull/20593))**
768
769- **[php8-compact] Fix Case Activity Message Template to fix test failure in
770 php8 ([20592](https://github.com/civicrm/civicrm-core/pull/20592))**
771
772- **[php8-compact] Fix PDF Letter Test by ensuring that all actual DB fields
773 are in the tokens array and also by resetting the static cache of tokens
774 ([20591](https://github.com/civicrm/civicrm-core/pull/20591))**
775
776- **[php8-compact] Add in guards into various templates to fix the
777 CRM_Contact_Form_IndividualTest suite
778 ([20579](https://github.com/civicrm/civicrm-core/pull/20579))**
779
780- **[php8-compact] Fixes test failures in the
781 CRM_Contribute_Form_ContributionTest class due to template issues
782 ([20581](https://github.com/civicrm/civicrm-core/pull/20581))**
783
784- **[php8-compact] Fix Dashboard Tests by adding in if guards into smarty
785 templates ([20575](https://github.com/civicrm/civicrm-core/pull/20575))**
786
787- **[php8-compact] Add in guards into various templates to fix issues in test
788 runs on php8 ([20544](https://github.com/civicrm/civicrm-core/pull/20544))**
ba3bb40e
AH
789
790## <a name="credits"></a>Credits
791
792This release was developed by the following code authors:
793
88bd6b02 794AGH Strategies - Alice Frumin, Andie Hunt; Agileware - Francis Whittle, Justin
04ae6d84
AF
795Freeman; Akos Garai; Australian Greens - John Twyman; Blackfly Solutions - Alan
796Dixon; Christian Wach; Circle Interactive - Pradeep Nayak; CiviCoop - Jaap
797Jansma; CiviCRM - Coleman Watts, Tim Otten; CompuCorp - Debarshi Bhaumik; Dave
798D; Gokhalemethod- Sadashiv; iXiam - Luciano Spiegel; JMA Consulting - Monish
799Deb, Seamus Lee; Lemniscus - Noah Miller; Lighthouse Consulting and Design -
800Brian Shaughnessy; Megaphone Technology Consulting - Jon Goldberg; MJW
801Consulting - Matthew Wire; Skvare - Sunil Pawar; Wikimedia Foundation - Eileen
802McNaughton
ba3bb40e
AH
803
804Most authors also reviewed code for this release; in addition, the following
805reviewers contributed their comments:
806
04ae6d84
AF
807Artful Robot - Rich Lott; Bob Silvern; CiviCoop - Klaas Eikelboom; CiviDesk -
808Yashodha Chaku; Coop SymbioTIC - Mathieu Lutfy; Freeform Solutions - Herb van
809den Dool; Fuzion - Jitendra Purohit; JMA Consulting - Joe Murray; Ray Wright;
810Semper IT - Karin Gerritsen; Squiffle Consulting - Aidan Saunders; Tadpole
811Collective - Kevin Cristiano; Tech To The People - Xavier Dutoit; Third Sector
0ca33b8c 812Design - Michael McAndrew; Web Access - Kurund Jalmi
d30fe70a
AH
813
814## <a name="feedback"></a>Feedback
815
88bd6b02 816These release notes are edited by Alice Frumin and Andie Hunt. If you'd like
d30fe70a
AH
817to provide feedback on them, please log in to https://chat.civicrm.org/civicrm
818and contact `@agh1`.