weird file
[civicrm-core.git] / release-notes / 5.36.0.md
1 # CiviCRM 5.36.0
2
3 Released April 7, 2021
4
5 - **[Synopsis](#synopsis)**
6 - **[Features](#features)**
7 - **[Bugs resolved](#bugs)**
8 - **[Miscellany](#misc)**
9 - **[Credits](#credits)**
10 - **[Feedback](#feedback)**
11
12 ## <a name="synopsis"></a>Synopsis
13
14 | *Does this version...?* | |
15 |:--------------------------------------------------------------- |:-------:|
16 | Fix security vulnerabilities? | 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** |
23
24 ## <a name="features"></a>Features
25
26 ### Core CiviCRM
27
28 - **Remove campaign_id pseudoconstants
29 ([19463](https://github.com/civicrm/civicrm-core/pull/19463))**
30
31 Improves performance by not loading (potentially huge) list of campaigns
32 into memory.
33
34 - **Custom setting for boolean checkbox is serialized as int value
35 ([dev/core#2371](https://lab.civicrm.org/dev/core/-/issues/2371):
36 [19576](https://github.com/civicrm/civicrm-core/pull/19576))**
37
38 Serializes setting value as boolean for checkbox in CRM_Admin_Form_Generic.
39
40 - **Apply bootstrap theme to searchKit dashlets
41 ([19577](https://github.com/civicrm/civicrm-core/pull/19577))**
42
43 Themes SearchKit dashlets.
44
45 - **Crypto - Add support for signing and verifying JSON Web Tokens
46 ([19599](https://github.com/civicrm/civicrm-core/pull/19599))**
47
48 Introduces a mechanism for working with JSON Web Tokens.
49
50 - **Add 'readonly' attribute to fields in schema
51 ([dev/core#2397](https://lab.civicrm.org/dev/core/-/issues/2397):
52 [19627](https://github.com/civicrm/civicrm-core/pull/19627))**
53
54 Adds 'readonly' metadata to all id fields, custom fields with 'is_view' and
55 appropriate contact fields.
56
57 - **Show Contact age on deceased date
58 ([19348](https://github.com/civicrm/civicrm-core/pull/19348))**
59
60 Shows age of contact when it was deceased if deceased date is present.
61
62 - **View sent emails in activities
63 ([dev/core#1750](https://lab.civicrm.org/dev/core/-/issues/1750):
64 [18299](https://github.com/civicrm/civicrm-core/pull/18299))**
65
66 Replaces tokens in Activity content for sent emails.
67
68 - **Expose a REST end-point through standard routing
69 ([dev/core#2077](https://lab.civicrm.org/dev/core/-/issues/2077):
70 [19728](https://github.com/civicrm/civicrm-core/pull/19728))**
71
72 Provides a binding for CRM_Utils_REST in the conventional routing system.
73
74 - **Improve activity import to support updates (Work Towards
75 [dev/core#2308](https://lab.civicrm.org/dev/core/-/issues/2308):
76 [19421](https://github.com/civicrm/civicrm-core/pull/19421),
77 [19553](https://github.com/civicrm/civicrm-core/pull/19553) and
78 [19555](https://github.com/civicrm/civicrm-core/pull/19555))**
79
80 Clean up and tests in preparation for changes to the Activity Import.
81
82 - **Support chain-select elements in .setting.php files
83 ([dev/core#2386](https://lab.civicrm.org/dev/core/-/issues/2386):
84 [19629](https://github.com/civicrm/civicrm-core/pull/19629))**
85
86 Makes it possible to create metadata-driven chain select fields.
87
88 - **Add no results found on empty civireports dashlet
89 ([dev/core#2420](https://lab.civicrm.org/dev/core/-/issues/2420):
90 [19668](https://github.com/civicrm/civicrm-core/pull/19668))**
91
92 Adds text to report template saying no results found if that is the case.
93
94 - **Search kit navigation - once I've created an afform it's hard to edit it
95 ([dev/core#2389](https://lab.civicrm.org/dev/core/-/issues/2389):
96 [19617](https://github.com/civicrm/civicrm-core/pull/19617))**
97
98 Improves SearchKit admin page by including links to edit.
99
100 - **Afform - Add 'View Page' link from afform edit screen
101 ([19645](https://github.com/civicrm/civicrm-core/pull/19645))**
102
103 Improves Afform edit screen by adding a link to "View Page".
104
105 - **Afform - Add link to edit form in breadcrumbs
106 ([19691](https://github.com/civicrm/civicrm-core/pull/19691))**
107
108 If the user has permission to edit the Afform form (and the afform_admin
109 extension is enabled), shows a breadcrumb back to edit the form.
110
111 - **Afform - Remove ngRoute from afformStandalone page
112 ([19703](https://github.com/civicrm/civicrm-core/pull/19703))**
113
114 Removes an unused dependency from the Afform standalone page, making it
115 more flexible and reusable.
116
117 - **Afform Gui - Block editing enhancements
118 ([19530](https://github.com/civicrm/civicrm-core/pull/19530))**
119
120 Improves block editing in the Afform GUI.
121
122 - **Add created_id & modified_id to civicrm_saved_search
123 ([dev/core#2422](https://lab.civicrm.org/dev/core/-/issues/2422):
124 [19709](https://github.com/civicrm/civicrm-core/pull/19709))**
125
126 Sites using search kit will rapidly start to accumulate a large number of saved
127 searches and will want better filtering (& cleanup). This adds created_id and
128 modified_id and starts populating them as well as expires_date (which won't
129 start populating until it is exposed in the search kit UI).
130
131 - **afform_mock - Hide extension. Clearly indicate as development-only
132 ([19541](https://github.com/civicrm/civicrm-core/pull/19541))**
133
134 Hides the afform_mock extensio and clearly indicates it as development-only.
135
136 - **Afform - Support date range filters for search displays
137 ([19632](https://github.com/civicrm/civicrm-core/pull/19632))**
138
139 Adds support for date range filters for Afform search displays.
140
141 - **Afform - Allow public submission (PUB-CONTACT). Expand E2E test coverage.
142 ([19579](https://github.com/civicrm/civicrm-core/pull/19579))**
143
144 Makes it possible to submit new contact records to Afform as an anonymous
145 user, and includes E2E test-coverage to that effect.
146
147 - **Afform - SearchKit support for calculated fields
148 ([19612](https://github.com/civicrm/civicrm-core/pull/19612))**
149
150 Adds support for calculated fields as afform search filters.
151
152 - **Search kit select current user
153 ([19620](https://github.com/civicrm/civicrm-core/pull/19620))**
154
155 Adds the ability to choose "Current User" for search criteria which allows
156 displays to show different results to different users.
157
158 - **Search Kit - Use wrapper api to run searches
159 ([19585](https://github.com/civicrm/civicrm-core/pull/19585))**
160
161 Adds a new `SearchDisplay.Run` api action to centralize the logic and
162 permissions for retrieving results for search displays.
163
164 - **SearchKit - Enable links for implicit joins
165 ([19631](https://github.com/civicrm/civicrm-core/pull/19631))**
166
167 Improves SearchKit to show links for implicitly joined entities.
168
169 - **SearchKit - cleanup display configuration and add "rewrite" feature
170 ([19662](https://github.com/civicrm/civicrm-core/pull/19662))**
171
172 Adds the ability to rewrite fields in search displays, while streamlining the
173 display administration screen.
174
175 - **SearchKit - Take search filters from the url when viewing a standalone
176 display ([19713](https://github.com/civicrm/civicrm-core/pull/19713))**
177
178 Passes all query params from the url fragment as search filters to
179 the display.
180
181 - **SearchKit - Add links/menus/buttons to search displays
182 ([19673](https://github.com/civicrm/civicrm-core/pull/19673))**
183
184 Gives the ability to configure sets of links, buttons or menus in SearchKit
185 search displays.
186
187 - **SearchKit - Add implicit joins for displaying labels of related entities
188 ([19554](https://github.com/civicrm/civicrm-core/pull/19554))**
189
190 Gives SearchKit the ability to display labels of related entities, for
191 example, displaying the Campaign title instead of just the Campaign ID.
192
193 - **SearchKit - Add links to view multi-record custom data
194 ([19626](https://github.com/civicrm/civicrm-core/pull/19626))**
195
196 When creating a search display, you can now add a link to view a Multi-Record
197 custom entity.
198
199 - **APIv4 - Add option lists to getFields html_type and data_type
200 ([19596](https://github.com/civicrm/civicrm-core/pull/19596))**
201
202 Adds option lists to html_type and data_type in APIv4 getFields to make them
203 easier to discover in the API Explorer.
204
205 - **Add is empty filter to search / api
206 ([19736](https://github.com/civicrm/civicrm-core/pull/19736))**
207
208 Adds 2 new operators, "Is Empty" & "Not Empty" to SearchKit (and APIv4 in
209 general). Removes the "Is Null / Not Null" operators from SearchKit because
210 they are overly technical and have confusingly similar names to the new
211 operators (they are still available in the API generally, just not the SearchKit
212 UI).
213
214 - **Improve search display filter validation
215 ([19720](https://github.com/civicrm/civicrm-core/pull/19720))**
216
217 When viewing a SearchDisplay, this will verify all filters are permitted by
218 first checking the SELECT clause, and secondly checking for a containing Afform
219 with exposed filters.
220
221 - **AuthX - Extended authentication support (portable and router-friendly)
222 ([19590](https://github.com/civicrm/civicrm-core/pull/19590))**
223
224 Introduces an extension, authx, which broadly improves
225 support for HTTP authentication on any CiviCRM route.
226
227 - **info.xml - Allow multiple `<author>`s
228 ([19684](https://github.com/civicrm/civicrm-core/pull/19684))**
229
230 Allows info.xml files to list multiple authors.
231
232 - **APIv3 - Improve array-based apis to support sorting and operators
233 ([19690](https://github.com/civicrm/civicrm-core/pull/19690))**
234
235 Backports some APIv4 code to v3, for the purpose of supporting entityRef
236 widgets for Afform.
237
238 - **Metadata: Add html:label for Contribution Status ID
239 ([19669](https://github.com/civicrm/civicrm-core/pull/19669))**
240
241 Adds html:label for Contribution Status ID to the metadata.
242
243 - **APIv4 explorer, search kit - entity reference fields tricky if you know the
244 id ([dev/core#2400](https://lab.civicrm.org/dev/core/-/issues/2400):
245 [19638](https://github.com/civicrm/civicrm-core/pull/19638))**
246
247 Ensures when the user types an integer into an EntityRef field, the record
248 with that ID is returned first.
249
250 - **Enable-"Do-no-trade"-filter
251 ([19650](https://github.com/civicrm/civicrm-core/pull/19650))**
252
253 Adds a Do not trade filter.
254
255 ### CiviCase
256
257 - **Investigate replacing civicase views with something that is not views (Add
258 test for [dev/core#2385](https://lab.civicrm.org/dev/core/-/issues/2385):
259 [19609](https://github.com/civicrm/civicrm-core/pull/19609))**
260
261 Adds test coverage for getCaseActivityQuery.
262
263 ### CiviContribute
264
265 - **Delay on rendering contribution dashboard charts seems unnecessary
266 ([dev/core#2365](https://lab.civicrm.org/dev/core/-/issues/2365):
267 [19544](https://github.com/civicrm/civicrm-core/pull/19544))**
268
269 Speeds up rendering of contribution dashboard charts.
270
271 ### Joomla Integration
272
273 - **Use Joomla style language strings to allow translations
274 ([56](https://github.com/civicrm/civicrm-joomla/pull/56))**
275
276 Changes some hardcoded english strings to use the Joomla translation system
277 so users can create translation overrides.
278
279 ## <a name="bugs"></a>Bugs resolved
280
281 ### Core CiviCRM
282
283 - **Ensure dispatcher has loaded listeners
284 ([19614](https://github.com/civicrm/civicrm-core/pull/19614))**
285
286 Fixes an edge case where the dispatcher can fail to load listeners
287
288 - **Correct sms numbers
289 ([19509](https://github.com/civicrm/civicrm-core/pull/19509))**
290
291 When sending SMS messages to contacts in search results, under some
292 conditions a single contact's mobile phone number is repeated over and over
293 again for remaining contacts.
294
295 - **Asset building breaks the site (Work towards
296 [dev/core#2137](https://lab.civicrm.org/dev/core/-/issues/2137):
297 [19559](https://github.com/civicrm/civicrm-core/pull/19559) and
298 [18830](https://github.com/civicrm/civicrm-core/pull/18830))**
299
300 Enhances log messages when AssetBuilder fails and put it inside a try/catch.
301
302 - **documentation on CIVICRM_CRED_KEYS (Work Towards
303 [dev/core#2370](https://lab.civicrm.org/dev/core/-/issues/2370):
304 [19568](https://github.com/civicrm/civicrm-core/pull/19568))**
305
306 Slightly expands the amount of entropy for certain auto-generated values.
307
308 - **Prevent double clicking submit button
309 ([dev/core#2372](https://lab.civicrm.org/dev/core/-/issues/2372):
310 [19610](https://github.com/civicrm/civicrm-core/pull/19610))**
311
312 Prevents double clicking of submit button on any standard form without ajax
313 (ex: New Contribution Form).
314
315 - **Geocoding saves values that web UI doesn't accept (Work Towards
316 [dev/core#2379](https://lab.civicrm.org/dev/core/-/issues/2379):
317 [19588](https://github.com/civicrm/civicrm-core/pull/19588))**
318
319 The CiviCRM UI doesn't allow saving more than 14 characters in a geocoding
320 field. However, geocoders themselves aren't restricted to 14 characters. This
321 means that geocoders can enter a geocode that prevents editing the address.
322
323 - **Afform permissions - open access didn't seem to work (search kit)
324 ([dev/core#2404](https://lab.civicrm.org/dev/core/-/issues/2404):
325 [19657](https://github.com/civicrm/civicrm-core/pull/19657))**
326
327 Addresses some ambiguities/confusion in permission for Afform. The basic
328 question -- if permission is omitted (in various ways -- unset, null,
329 empty-string), then what is the effective permission?
330
331 - **Navigation menu order
332 ([dev/core#2424](https://lab.civicrm.org/dev/core/-/issues/2424):
333 [19671](https://github.com/civicrm/civicrm-core/pull/19671))**
334
335 Ensures one can change the order of navigation items from an extension.
336
337 - **Create followup section at bottom of non-bulk email activities crashes
338 ([dev/core#2473](https://lab.civicrm.org/dev/core/-/issues/2473):
339 [19874](https://github.com/civicrm/civicrm-core/pull/19874))**
340
341 Prevents a crash when the assignee is left blank when creating followup on
342 email activity.
343
344 - **Afform - Show breadcrumbs appropriate to whether a form can be edited
345 ([19739](https://github.com/civicrm/civicrm-core/pull/19739))**
346
347 Removes the "Edit" link from non-editable forms, and adds the current
348 form back into the breadcrumbs, for the sake of forms which use url params for
349 routing.
350
351 - **APIv4 - Improve handling of joins & custom fields
352 ([19562](https://github.com/civicrm/civicrm-core/pull/19562))**
353
354 Fixes some apparent bugs in SearchKit where certain fields were apparently
355 supported in the UI but the API would crash when trying to query them.
356
357 - **APIv4 - Increase alias max length to 256
358 ([19537](https://github.com/civicrm/civicrm-core/pull/19537))**
359
360 Fixes a bug in Search Kit where fields derived from long complex joins would
361 disappear because their alias was longer than the default length of 63 output
362 by CRM_Utils_String::munge().
363
364 - **GuzzleMiddleware::url() - Distinguish frontend and backend routes
365 ([19678](https://github.com/civicrm/civicrm-core/pull/19678))**
366
367 GuzzleMiddlware::url() is a helper that simplifies writing URLs within
368 Guzzle-based tests. For example, $http->get('route://civicrm/dashboard') send
369 a GET request to the local site's civicrm/dashboard page.
370
371 - **Cannot create proper `Group`s on multilingual with MySQL 5.6 and Civi
372 5.31-rc
373 ([dev/translation#58](https://lab.civicrm.org/dev/translation/-/issues/58):
374 [19740](https://github.com/civicrm/civicrm-core/pull/19740))**
375
376 - **fieldOptions hook fatal error
377 ([dev/core#1132](https://lab.civicrm.org/dev/core/-/issues/1132):
378 [19580](https://github.com/civicrm/civicrm-core/pull/19580))**
379
380 - **CiviCRM Find and Merge Duplicate Contacts, does not validate the weight and
381 weight threshold, possible to set a weight threshold which can never be
382 achieved. ([dev/core#2309](https://lab.civicrm.org/dev/core/-/issues/2309):
383 [19604](https://github.com/civicrm/civicrm-core/pull/19604))**
384
385 - **SearchKit : use of rows in query cause mysql errors
386 ([dev/core#2360](https://lab.civicrm.org/dev/core/-/issues/2360):
387 [19535](https://github.com/civicrm/civicrm-core/pull/19535))**
388
389 - **Searchkit bug - not displaying grouped by field
390 ([dev/core#2388](https://lab.civicrm.org/dev/core/-/issues/2388):
391 [19618](https://github.com/civicrm/civicrm-core/pull/19618))**
392
393 - **On mail accounts form, pressing save and test followed by save creates a
394 duplicate account
395 ([dev/core#2398](https://lab.civicrm.org/dev/core/-/issues/2398):
396 [19636](https://github.com/civicrm/civicrm-core/pull/19636))**
397
398 - **5.36 upgrade should check if foreign keys exist before adding them
399 ([dev/core#2452](https://lab.civicrm.org/dev/core/-/issues/2452):
400 [19773](https://github.com/civicrm/civicrm-core/pull/19773))**
401
402 - **Afform (et al) - Fetch more complete list of permissions via APIv4
403 ([19536](https://github.com/civicrm/civicrm-core/pull/19536))**
404
405 - **Afform: Only permit Date fields to be made into a select list if it is a
406 search form ([19665](https://github.com/civicrm/civicrm-core/pull/19665))**
407
408 - **SearchKit - Don't save on enter key
409 ([19643](https://github.com/civicrm/civicrm-core/pull/19643))**
410
411 - **SearchKit - Fix token menu positioning
412 ([19780](https://github.com/civicrm/civicrm-core/pull/19780))**
413
414 - **SearchKit - Fix broken update dialog and add input type float
415 ([19758](https://github.com/civicrm/civicrm-core/pull/19758))**
416
417 - **SearchKit - Fix removing all related fields from SELECT when removing a JOIN
418 ([19747](https://github.com/civicrm/civicrm-core/pull/19747))**
419
420 - **SearchKit - Fix clearing selection behavior
421 ([19686](https://github.com/civicrm/civicrm-core/pull/19686))**
422
423 - **APIv4 - Rename 'controlField' property to 'control_field'
424 ([19699](https://github.com/civicrm/civicrm-core/pull/19699))**
425
426 - **APIv4 - Fix HTTP status code selection
427 ([19533](https://github.com/civicrm/civicrm-core/pull/19533))**
428
429 - **APIv4 - AJAX errors should say *something* useful
430 ([19526](https://github.com/civicrm/civicrm-core/pull/19526))**
431
432 - **avoid error when reserving respondents in a survey.
433 ([19811](https://github.com/civicrm/civicrm-core/pull/19811))**
434
435 - **Search display fixes
436 ([19683](https://github.com/civicrm/civicrm-core/pull/19683))**
437
438 - **Fix migrateUtf8mb4 for special database names
439 ([19708](https://github.com/civicrm/civicrm-core/pull/19708))**
440
441 - **Angular - Remove deprecated js file
442 ([19704](https://github.com/civicrm/civicrm-core/pull/19704))**
443
444 - **Fix for missing function CodeGen_Util::removeDir
445 ([19688](https://github.com/civicrm/civicrm-core/pull/19688))**
446
447 - **Reduce wasted space in civicrm dashboard margins
448 ([19682](https://github.com/civicrm/civicrm-core/pull/19682))**
449
450 - **Fix i18n issue with changeLog in data templates
451 ([19651](https://github.com/civicrm/civicrm-core/pull/19651))**
452
453 - **Improve consistency of field titles, labels, types across the schema
454 ([19531](https://github.com/civicrm/civicrm-core/pull/19531))**
455
456 - **Remove single use of extraParams in CRM_Utils_Token::getTokenDetails()
457 ([19640](https://github.com/civicrm/civicrm-core/pull/19640))**
458
459 - **Fix incorrect use of ts when setting custom data form title
460 ([19625](https://github.com/civicrm/civicrm-core/pull/19625))**
461
462 - **Remove check for safe_mode/open_basedir on extension downloader because it
463 triggers false positives
464 ([19582](https://github.com/civicrm/civicrm-core/pull/19582))**
465
466 - **Delete repeated title and fix some labels
467 ([19565](https://github.com/civicrm/civicrm-core/pull/19565))**
468
469 - **Fix angular error when user is not logged in.
470 ([19575](https://github.com/civicrm/civicrm-core/pull/19575))**
471
472 - **Fix 'Unsupported html-element' error on forms using EntityFormTrait
473 ([19560](https://github.com/civicrm/civicrm-core/pull/19560))**
474
475 - **php 7.4 deprecated squiggly brackets - html/quickform date
476 ([316](https://github.com/civicrm/civicrm-packages/pull/316))**
477
478 - **php 7.4 - E_NOTICE on membership dashboard
479 ([19545](https://github.com/civicrm/civicrm-core/pull/19545))**
480
481 - **php 7.4 E_NOTICE in Contact/BAO/Query
482 ([19552](https://github.com/civicrm/civicrm-core/pull/19552))**
483
484 ### CiviCase
485
486 - **Users with 'view own cases' permission can't open resolved cases
487 ([dev/core#1400](https://lab.civicrm.org/dev/core/-/issues/1400):
488 [19674](https://github.com/civicrm/civicrm-core/pull/19674),
489 [19666](https://github.com/civicrm/civicrm-core/pull/19666) and
490 [19675](https://github.com/civicrm/civicrm-core/pull/19675))**
491
492 - **"My Cases" dashlet gives datatables error
493 ([dev/core#1207](https://lab.civicrm.org/dev/core/-/issues/1207):
494 [19689](https://github.com/civicrm/civicrm-core/pull/19689))**
495
496 ### CiviContribute
497
498 - **Account IIF Export Amount Format improper
499 ([dev/financial#166](https://lab.civicrm.org/dev/financial/-/issues/166):
500 [19634](https://github.com/civicrm/civicrm-core/pull/19634))**
501
502 Ensures money fields are formatted properly (no $ sign) when exporting.
503
504 - **Remove legacy php money_format use, switch to brickmoney
505 ([dev/translation#65](https://lab.civicrm.org/dev/translation/-/issues/65):
506 [19605](https://github.com/civicrm/civicrm-core/pull/19605))**
507
508 - **Recurring contributions: ThankYou page does not translate the contribution
509 unit
510 ([dev/translation#32](https://lab.civicrm.org/dev/translation/-/issues/32):
511 [19655](https://github.com/civicrm/civicrm-core/pull/19655))**
512
513 - **Deprecated force url for contribution dashboard links
514 ([dev/core#2392](https://lab.civicrm.org/dev/core/-/issues/2392):
515 [19621](https://github.com/civicrm/civicrm-core/pull/19621))**
516
517 - **Use specific function when formatting money for a default
518 ([19602](https://github.com/civicrm/civicrm-core/pull/19602))**
519
520 - **Use specific function when formatting money for a default ([19652]
521 (https://github.com/civicrm/civicrm-core/pull/19652))**
522
523 ### CiviEvent
524
525 - **deprecated function error
526 ([dev/event#50](https://lab.civicrm.org/dev/event/-/issues/50):
527 [19637](https://github.com/civicrm/civicrm-core/pull/19637))**
528
529 Fixes a Deprecated function error: "Non-static method
530 CRM_Event_ICalendar::run() should not be called statically in
531 CRM_Core_Invoke::runItem()" when clicking on the ical button on the Manage
532 Events form.
533
534 - **Obsolete wkhtmltopdfPath causes hard fail in event registration due to
535 internal fatal error for the missing package
536 (Revert: [dev/core#2028](https://lab.civicrm.org/dev/core/-/issues/2028):
537 [19942](https://github.com/civicrm/civicrm-core/pull/19942))**
538
539 Reverts the fix for this issue because it caused a regression.
540
541 - **Partial payments fail on events in a modal dialog box
542 ([dev/event#48](https://lab.civicrm.org/dev/event/-/issues/48):
543 [19572](https://github.com/civicrm/civicrm-core/pull/19572))**
544
545 ### CiviMember
546
547 - **Sales tax and Vat issue within memberships - membership fee increases
548 incorrectly when the membership has an error
549 ([dev/core#778](https://lab.civicrm.org/dev/core/-/issues/778):
550 [19648](https://github.com/civicrm/civicrm-core/pull/19648))**
551
552 Fixes a bug where when sales tax is enabled and is used for a membership form
553 sales tax was added every time the form validation failed.
554
555 - **Fix display of membership dates on receipts when lineitems do not have a
556 price_set_id ([19508](https://github.com/civicrm/civicrm-core/pull/19508))**
557
558 - **Fix membership form to correctly calculate tax when a discount is applied
559 ([19476](https://github.com/civicrm/civicrm-core/pull/19476))**
560
561 ### Drupal Integration
562
563 - **system_get_info() is deprecated in drupal 9
564 ([dev/drupal#156](https://lab.civicrm.org/dev/drupal/-/issues/156):
565 [19583](https://github.com/civicrm/civicrm-core/pull/19583))**
566
567 Fixes fatal errors when viewing any CiviReport on a Drupal 9 integration.
568
569 - **'Recent Items' fails to show list of Recent Items
570 ([dev/core#2387](https://lab.civicrm.org/dev/core/-/issues/2387):
571 [62](https://github.com/civicrm/civicrm-drupal-8/pull/62))**
572
573 Ensures that the "Recent Items" block shows the list of recent items.
574
575 - **drush install - Bump up entropy for autogenerated creds. Add signing key.
576 #640 ([58](https://github.com/civicrm/civicrm-drupal-8/pull/58))**
577
578 ### Joomla Integration
579
580 - **Joomla::synchronizeUsers - Fix notice due to old style reference
581 ([19677](https://github.com/civicrm/civicrm-core/pull/19677))**
582
583 - **Joomla - Implement getUfId(). Fix `@user:<name>`.
584 ([19615](https://github.com/civicrm/civicrm-core/pull/19615))**
585
586 ### WordPress Integration
587
588 - **WordPress - If we hit a "permission denied" error, return HTTP 403
589 ([19608](https://github.com/civicrm/civicrm-core/pull/19608))**
590
591 Ensures if the user hits a permission denied error http 403 is returned
592 instead of 200.
593
594 ## <a name="misc"></a>Miscellany
595
596 - **Add contactlayouteditor to gitignore
597 ([19611](https://github.com/civicrm/civicrm-core/pull/19611))**
598
599 - **Convert Smarty & domain token processing to use token processor
600 ([19598](https://github.com/civicrm/civicrm-core/pull/19598))**
601
602 - **HttpTestTrait - Define helper methods for E2E tests of Civi's HTTP routes
603 ([19600](https://github.com/civicrm/civicrm-core/pull/19600))**
604
605 - **Mark Old Cividiscount hook support deprecated
606 ([19649](https://github.com/civicrm/civicrm-core/pull/19649))**
607
608 - **Cleanup - Remove old unused schema/xml files.
609 ([19570](https://github.com/civicrm/civicrm-core/pull/19570))**
610
611 - **Afform - move contentEditable directive into crmUI library for reusability
612 ([19672](https://github.com/civicrm/civicrm-core/pull/19672))**
613
614 - **Remove unreachable code & variable cleanup in membership back office form
615 template ([19647](https://github.com/civicrm/civicrm-core/pull/19647))**
616
617 - **Remove unused code
618 ([19567](https://github.com/civicrm/civicrm-core/pull/19567))**
619
620 - **Remove empty {ts}
621 ([19622](https://github.com/civicrm/civicrm-core/pull/19622))**
622
623 - **Remove always-true-if
624 ([19566](https://github.com/civicrm/civicrm-core/pull/19566))**
625
626 - **REF Regenerate DAOs and I18n Schema Structure following merge of #19565
627 ([19581](https://github.com/civicrm/civicrm-core/pull/19581))**
628
629 - **[REF] do not needlessly pass as reference, enforce valid param
630 ([19478](https://github.com/civicrm/civicrm-core/pull/19478))**
631
632 - **[REF] Simplfy parameter
633 ([19654](https://github.com/civicrm/civicrm-core/pull/19654))**
634
635 - **[REF] Use form property rather than formValues to pass generated invoice ID
636 on membership forms
637 ([19549](https://github.com/civicrm/civicrm-core/pull/19549))**
638
639 - **[REF] simplify parameter, use preferred strict
640 ([19597](https://github.com/civicrm/civicrm-core/pull/19597))**
641
642 - **[REF] Stop passing contribution into completeOrder, id is enough
643 ([19571](https://github.com/civicrm/civicrm-core/pull/19571))**
644
645 - **[REF] replace deprecated calls with buildOptions
646 ([19578](https://github.com/civicrm/civicrm-core/pull/19578))**
647
648 - **[REF] Fully remove contribution object from repeattransaction function
649 ([19547](https://github.com/civicrm/civicrm-core/pull/19547))**
650
651 - **[REF] Remove unused pcp & soft credit handling from previously shared code
652 ([19525](https://github.com/civicrm/civicrm-core/pull/19525))**
653
654 - **[REF] Rename variable to clarify it's usage
655 ([19556](https://github.com/civicrm/civicrm-core/pull/19556))**
656
657 - **[REF] Load participant id within completeOrder rather than passing it in
658 ([19641](https://github.com/civicrm/civicrm-core/pull/19641))**
659
660 - **[REF] Move code that relates to receipts when paying by credit card out of
661 the shared function
662 ([19658](https://github.com/civicrm/civicrm-core/pull/19658))**
663
664 - **[REF] Complete order Unset contribution once we have finished with it.
665 ([19527](https://github.com/civicrm/civicrm-core/pull/19527))**
666
667 - **[REF] Further extract the portion of sendTemplate that relates to rendering
668 ([19522](https://github.com/civicrm/civicrm-core/pull/19522))**
669
670 - **(REF) APIv4 - Add hook for whitelisting select AJAX API's for anonymous
671 invocation ([19494](https://github.com/civicrm/civicrm-core/pull/19494))**
672
673 - **[REF] [Repeattransaction] Stop setting contribution->id
674 ([19538](https://github.com/civicrm/civicrm-core/pull/19538))**
675
676 - **[REF] [Repeattransaction] use financial_type_id from getTemplateContribution
677 (which already has handling)
678 ([19539](https://github.com/civicrm/civicrm-core/pull/19539))**
679
680 - **[REF] [Repeattransaction] Remove loading contribution page id from passed in
681 object ([19540](https://github.com/civicrm/civicrm-core/pull/19540))**
682
683 - **[REF] Fix array access on NULL error when running afform unit tests o…
684 ([19542](https://github.com/civicrm/civicrm-core/pull/19542))**
685
686 - **[REF] clean up if
687 ([19693](https://github.com/civicrm/civicrm-core/pull/19693))**
688
689 - **[REF] Simplify is_email_receipt handling
690 ([19524](https://github.com/civicrm/civicrm-core/pull/19524))**
691
692 - **Add unit test cover for the MessageTemplate::renderMessageTemplate function
693 ([19551](https://github.com/civicrm/civicrm-core/pull/19551))**
694
695 - **[NFC/Unit Test] Fix passing test that should pass but also should fail
696 ([19607](https://github.com/civicrm/civicrm-core/pull/19607))**
697
698 - **[NFC] Code cleanup - use use statements, hints
699 ([19595](https://github.com/civicrm/civicrm-core/pull/19595))**
700
701 - **[NFC] Add in unit test to prove that domain tokens are able to be inc…
702 ([19702](https://github.com/civicrm/civicrm-core/pull/19702))**
703
704 - **NFC Update comments in token classes
705 ([19715](https://github.com/civicrm/civicrm-core/pull/19715))**
706
707 - **[NFC] minor cleanup in testCaseCreateWithResolvedStatus
708 ([19664](https://github.com/civicrm/civicrm-core/pull/19664))**
709
710 - **Minor cleanup - ChangeCaseStatus
711 ([19663](https://github.com/civicrm/civicrm-core/pull/19663))**
712
713 ## <a name="credits"></a>Credits
714
715 This release was developed by the following code authors:
716
717 AGH Strategies - Alice Frumin, Andie Hunt; Blackfly Solutions - Alan Dixon;
718 CiviCoop - Jaap Jansma, Klaas Eikelboom; CiviCRM - Coleman Watts, Tim Otten;
719 CompuCorp - Ahed Eid; Coop SymbioTIC - Mathieu Lutfy; Dave D; elinw; iXiam -
720 Luciano Spiegel; J0WI; JMA Consulting - Monish Deb, Seamus Lee; lunar-debian;
721 Megaphone Technology Consulting - Jon Goldberg; MJW Consulting - Matthew Wire;
722 Progressive Technology Project - Jamie McClelland; Skvare - Sunil Pawar; Tadpole
723 Collective - Kevin Cristiano; tapashdatta; Timbsoft Technologies - Tunbola
724 Ogunwande; Wikimedia Foundation - Eileen McNaughton
725
726 Most authors also reviewed code for this release; in addition, the following
727 reviewers contributed their comments:
728
729 a-n The Artists Information Company - William Mortada; Agileware - Justin
730 Freeman; Artful Robot - Rich Lott; Christian Wach; CiviDesk - Yashodha Chaku;
731 Dave T; Fuzion - Peter Davis; JMA Consulting - Joe Murray; MJCO - Mikey O'Toole;
732 Nicol Wistreich; Semper IT - Karin Gerritsen;
733
734 ## <a name="feedback"></a>Feedback
735
736 These release notes are edited by Alice Frumin and Andie Hunt. If you'd like
737 to provide feedback on them, please log in to https://chat.civicrm.org/civicrm
738 and contact `@agh1`.