Merge pull request #23967 from colemanw/angularCleanup
[civicrm-core.git] / release-notes / 5.28.0.md
CommitLineData
94a1f6ae
AH
1# CiviCRM 5.28.0
2
0cee7083 3Released August 5, 2020
94a1f6ae 4
0cee7083 5- **[Synopsis](#synopsis)**
94a1f6ae
AH
6- **[Features](#features)**
7- **[Bugs resolved](#bugs)**
8- **[Miscellany](#misc)**
9- **[Credits](#credits)**
0cee7083
AH
10- **[Feedback](#feedback)**
11
12## <a name="synopsis"></a>Synopsis
13
14| *Does this version...?* | |
15|:--------------------------------------------------------------- |:-------:|
73f7a7a9
AF
16| Fix security vulnerabilities? | no |
17| **Change the database schema?** | **yes** |
18| **Alter the API?** | **yes** |
80078c3e 19| **Require attention to configuration options?** | **yes** |
73f7a7a9
AF
20| **Fix problems installing or upgrading to a previous version?** | **yes** |
21| **Introduce features?** | **yes** |
22| **Fix bugs?** | **yes** |
94a1f6ae
AH
23
24## <a name="features"></a>Features
25
73f7a7a9 26### CiviCRM Core
94a1f6ae 27
4dab446f
AH
28- **End of life planning for MySQL server 5.0 - 5.6 (Work Towards
29 [dev/core#1681](https://lab.civicrm.org/dev/core/-/issues/1681):
30 [17558](https://github.com/civicrm/civicrm-core/pull/17558))**
31
32 Block sites from upgrading if on a MySQL version less than 5.6.5.
33
29b35cc5
TO
34- **Ability to enable SSL for database connection. (Work Towards
35 [dev/core#1137](https://lab.civicrm.org/dev/core/-/issues/1137):
73f7a7a9 36 [298](https://github.com/civicrm/civicrm-packages/pull/298))**
94a1f6ae 37
29b35cc5 38 Makes SSL database connections without client certificates work in PHP 7.
94a1f6ae 39
4dab446f
AH
40- **Create new customPre hook
41 ([dev/core#1716](https://lab.civicrm.org/dev/core/-/issues/1716):
42 [17144](https://github.com/civicrm/civicrm-core/pull/17144))**
43
44 Creates a new hook customPre which makes it so one can impact or observe
45 custom data before it is saved.
46
29b35cc5 47- **Investigate PHP currency library
73f7a7a9
AF
48 ([dev/translation#48](https://lab.civicrm.org/dev/translation/-/issues/48):
49 [17608](https://github.com/civicrm/civicrm-core/pull/17608))**
94a1f6ae 50
73f7a7a9
AF
51 Implements the PHP library [brick/money](https://github.com/brick/money) to
52 better handle currency amounts.
94a1f6ae 53
73f7a7a9
AF
54- **Replace all instances of CRM_Core_Fatal with throw new CRM_Core_Exception
55 (Work Towards [dev/core#560](https://lab.civicrm.org/dev/core/-/issues/560):
56 [17555](https://github.com/civicrm/civicrm-core/pull/17555),
57 [295](https://github.com/civicrm/civicrm-packages/pull/295),
58 [602](https://github.com/civicrm/civicrm-drupal/pull/602),
59 [17550](https://github.com/civicrm/civicrm-core/pull/17550),
60 [17534](https://github.com/civicrm/civicrm-core/pull/17534),
61 [17541](https://github.com/civicrm/civicrm-core/pull/17541),
62 [17545](https://github.com/civicrm/civicrm-core/pull/17545) and
63 [17539](https://github.com/civicrm/civicrm-core/pull/17539))**
94a1f6ae 64
73f7a7a9 65 Work towards throwing exceptions instead of fatal errors.
94a1f6ae 66
29b35cc5 67- **APIv4 - Activity has no default for activity_date_time
80078c3e
AH
68 ([dev/core#1782](https://lab.civicrm.org/dev/core/-/issues/1782):
69 [17450](https://github.com/civicrm/civicrm-core/pull/17450))**
94a1f6ae 70
80078c3e
AH
71 Sets the default for `activity_date_time` and `created_date` as the current
72 date when using the APIv4 Activity.
94a1f6ae 73
80078c3e
AH
74- **Update guzzle to d8 latest
75 ([dev/core#1803](https://lab.civicrm.org/dev/core/-/issues/1803):
76 [17551](https://github.com/civicrm/civicrm-core/pull/17551))**
94a1f6ae 77
80078c3e
AH
78 This updates guzzle to version 6.5.4, civicrm/civicrm-cxn-rpc to "version"
79 "v0.19.01.00", guzzlehttp/psr7 to version 1.6.1 and psr/log to version 1.1.3
94a1f6ae 80
80078c3e
AH
81- **APIv4 - Improve row_count to work with HAVING, GROUP BY, and SELECT
82 ([17704](https://github.com/civicrm/civicrm-core/pull/17704))**
94a1f6ae 83
80078c3e
AH
84 This changes the meaning of $result->count(), to give a total count of
85 filtered items, ignoring limit and offset.
94a1f6ae 86
80078c3e
AH
87- **APIv4 - Add more SQL functions
88 ([17692](https://github.com/civicrm/civicrm-core/pull/17692))**
94a1f6ae 89
80078c3e
AH
90 Adds support for additional SQL functions in APIv4. Also categorizes them and
91 adds translated titles for the new Search Builder.
94a1f6ae 92
73f7a7a9
AF
93- **APIv4 - Add titles and icons to entities
94 ([17527](https://github.com/civicrm/civicrm-core/pull/17527) and
95 [17685](https://github.com/civicrm/civicrm-core/pull/17685))**
94a1f6ae 96
73f7a7a9
AF
97 Adds titles and icons to DAO entities and expose them to APIv4 Entity::get and
98 adds meta-metadata.
94a1f6ae 99
73f7a7a9
AF
100- **APIv4 Explorer - UI support for join ON clause
101 ([17682](https://github.com/civicrm/civicrm-core/pull/17682))**
94a1f6ae 102
73f7a7a9 103 Improves the APIv4 explorer to give selectable clauses when adding a JOIN.
94a1f6ae 104
73f7a7a9
AF
105- **Add permission metadata to contact is_deleted field
106 ([17721](https://github.com/civicrm/civicrm-core/pull/17721))**
94a1f6ae 107
73f7a7a9 108 Improves the contact schema metadata.
94a1f6ae 109
73f7a7a9
AF
110- **API/DAO Metadata - Retain versioning metadata for possible usage in
111 runtime+tooling
112 ([17735](https://github.com/civicrm/civicrm-core/pull/17735))**
94a1f6ae 113
73f7a7a9 114 Adds metadata to indicate when fields are created.
94a1f6ae 115
73f7a7a9
AF
116- **Connect to database using SET NAMES utf8mb4
117 ([17716](https://github.com/civicrm/civicrm-core/pull/17716))**
94a1f6ae 118
4dab446f
AH
119 This change makes it so one can use utf8mb4 characters. However, databases
120 that do not support utf8mb4 will not be affected.
94a1f6ae 121
73f7a7a9
AF
122- **Remove slow join from activity search
123 ([17250](https://github.com/civicrm/civicrm-core/pull/17250))**
94a1f6ae 124
73f7a7a9 125 Improves performance of the activity search.
94a1f6ae 126
73f7a7a9
AF
127- **Add icons to standalone contact tasks
128 ([17667](https://github.com/civicrm/civicrm-core/pull/17667))**
94a1f6ae 129
4dab446f
AH
130 This adds icon data to contact tasks that appear in the new search builder
131 extension.
94a1f6ae 132
73f7a7a9
AF
133- **Add icons to multi-valued custom groups and display on contact tab
134 ([17531](https://github.com/civicrm/civicrm-core/pull/17531))**
94a1f6ae 135
4dab446f
AH
136 Custom data sets that appear as tabs can now have configurable icons to
137 display on the tab.
94a1f6ae 138
73f7a7a9
AF
139- **Add serialize metadata to domain.locales field
140 ([17651](https://github.com/civicrm/civicrm-core/pull/17651))**
94a1f6ae 141
73f7a7a9
AF
142 Adds metadata to help APIv4 serialize/unserialize the domain.locales
143 field correctly.
94a1f6ae 144
29b35cc5 145- **Add Smarty error event
73f7a7a9
AF
146 ([16918](https://github.com/civicrm/civicrm-core/pull/16918) and
147 [292](https://github.com/civicrm/civicrm-packages/pull/292))**
94a1f6ae 148
29b35cc5 149 Improves debugging errors in Smarty templates.
94a1f6ae 150
73f7a7a9
AF
151- **Allow HEAD requests to generate a form key
152 ([17321](https://github.com/civicrm/civicrm-core/pull/17321))**
94a1f6ae 153
73f7a7a9 154 Avoids generating crashes (500 errors) when bots check links.
94a1f6ae 155
73f7a7a9
AF
156- **Include a new SqlParallel queue type that enables multiple queue runners to
157 process in parallel
158 ([15422](https://github.com/civicrm/civicrm-core/pull/15422))**
94a1f6ae 159
29b35cc5 160 Adds a new SQL queue type which will allow multiple runners to fetch the next
73f7a7a9 161 available job from a queue and run in parallel.
94a1f6ae 162
73f7a7a9
AF
163- **Allow adding datepicker to metadata based settings pages
164 ([16610](https://github.com/civicrm/civicrm-core/pull/16610))**
94a1f6ae 165
73f7a7a9
AF
166 Makes it so that datepicker can be added to metadata based settings pages by
167 specifying html_Type='datepicker' in settings metadata.
94a1f6ae 168
73f7a7a9 169### CiviContribute
94a1f6ae 170
73f7a7a9
AF
171- **Add payment processor to details on list of recurring contributions
172 ([17179](https://github.com/civicrm/civicrm-core/pull/17179))**
94a1f6ae 173
4dab446f
AH
174 The list of recurring contributions now has a column showing the payment
175 processor.
94a1f6ae 176
73f7a7a9
AF
177- **Fix all core processors to throw exceptions and not rely on the
178 CRM_Core_Payment to convert errors to exceptions
179 ([dev/financial#131](https://lab.civicrm.org/dev/financial/-/issues/131):
180 [17565](https://github.com/civicrm/civicrm-core/pull/17565),
181 [17559](https://github.com/civicrm/civicrm-core/pull/17559),
182 [17542](https://github.com/civicrm/civicrm-core/pull/17542),
183 [17502](https://github.com/civicrm/civicrm-core/pull/17502),
29b35cc5 184 [17500](https://github.com/civicrm/civicrm-core/pull/17500),
73f7a7a9
AF
185 [17597](https://github.com/civicrm/civicrm-core/pull/17597),
186 [17592](https://github.com/civicrm/civicrm-core/pull/17592) and
187 [17596](https://github.com/civicrm/civicrm-core/pull/17596))**
94a1f6ae 188
4dab446f 189 Makes it so that core payment processors fail gracefully more often.
94a1f6ae 190
73f7a7a9
AF
191- **Add selfService flag to cancelSubscription getText so we can display
192 different text for each case
193 ([17687](https://github.com/civicrm/civicrm-core/pull/17687))**
94a1f6ae 194
73f7a7a9
AF
195 Makes it so payment processor developers can identify the different contexts
196 someone may be canceling from and display appropriate messaging.
94a1f6ae 197
29b35cc5 198- **Price Field Form - Save the fid for the postProcess hook
4dab446f
AH
199 ([17639](https://github.com/civicrm/civicrm-core/pull/17639))**
200
201 Improves `postProcess` hook for Price Field Form by making the field id
202 available.
203
80078c3e
AH
204- **Improve error handling on IPN
205 ([18062](https://github.com/civicrm/civicrm-core/pull/18062))**
206
207 The error message and backtrace from a failed PayPal Website Payments Standard
208 instant payment notification (IPN) are now logged.
209
73f7a7a9 210### CiviMember
94a1f6ae 211
73f7a7a9
AF
212- **Display start/end adjustment on membership status page.
213 ([dev/core#1809](https://lab.civicrm.org/dev/core/-/issues/1809):
214 [17571](https://github.com/civicrm/civicrm-core/pull/17571))**
94a1f6ae 215
73f7a7a9
AF
216 Improves the Membership Status administration page by adding columns for the
217 start/end adjustment.
94a1f6ae 218
80078c3e
AH
219### WordPress Integration
220
221- **Provide concrete details about civicrm.files
222 ([18011](https://github.com/civicrm/civicrm-core/pull/18011) follows on
223 [dev/wordpress#66](https://lab.civicrm.org/dev/wordpress/-/issues/66), see
224 also [17868](https://github.com/civicrm/civicrm-core/pull/17868))**
225
226 A message will appear after an upgrade to 5.28.0 or later specifying the
227 calculated and expected file upload locations.
228
229 Changes appearing in 5.27 have been reverted but will be reapplied in 5.29
230 after more notice is provided.
231
73f7a7a9 232## <a name="bugs"></a>Bugs resolved
94a1f6ae 233
73f7a7a9 234### Core CiviCRM
94a1f6ae 235
80078c3e
AH
236- **Contact image is broken
237 ([dev/wordpress#62](https://lab.civicrm.org/dev/wordpress/-/issues/62):
238 [17853](https://github.com/civicrm/civicrm-core/pull/17853))**
239
240 This resolves a problem on sites managed with Git where the `db.json` file
241 would be missed.
242
73f7a7a9
AF
243- **Evaluate if any indexed fields are unused (Work Towards
244 [dev/core#1634](https://lab.civicrm.org/dev/core/-/issues/1634):
245 [17686](https://github.com/civicrm/civicrm-core/pull/17686))**
94a1f6ae 246
73f7a7a9 247 Remove database index on `medium_id` from `civicrm_activity`.
94a1f6ae 248
29b35cc5 249- **Activity - Default priority value when adding an activity
73f7a7a9
AF
250 ([dev/core#1801](https://lab.civicrm.org/dev/core/-/issues/1801):
251 [17557](https://github.com/civicrm/civicrm-core/pull/17557))**
94a1f6ae 252
73f7a7a9
AF
253 Ensures when creating a new activity the priority field defaults correctly for
254 sites not in english.
94a1f6ae 255
73f7a7a9
AF
256- **The multi-lingual multi-domain problem
257 ([dev/core#1852](https://lab.civicrm.org/dev/core/-/issues/1852):
258 [17738](https://github.com/civicrm/civicrm-core/pull/17738) and
259 [17733](https://github.com/civicrm/civicrm-core/pull/17733))**
94a1f6ae 260
73f7a7a9
AF
261 Ensures that the list of languages civicrm_domain.locales is the same for all
262 domains in a multi-domain set up.
94a1f6ae 263
73f7a7a9
AF
264- **APIv4 - Skip empty leaves in WHERE clause
265 ([17576](https://github.com/civicrm/civicrm-core/pull/17576))**
94a1f6ae 266
29b35cc5 267 Fixes a bug in search builder where APIv4 gives a SQL error while building
4dab446f 268 your where clause.
94a1f6ae 269
80078c3e
AH
270- **Offset is not respected in Date Preferences
271 ([dev/core#1847](https://lab.civicrm.org/dev/core/-/issues/1847) and
272 [dev/core#1874](https://lab.civicrm.org/dev/core/-/issues/1874):
273 [17762](https://github.com/civicrm/civicrm-core/pull/17762) and
274 [17836](https://github.com/civicrm/civicrm-core/pull/17836))**
275
73f7a7a9
AF
276- **Fix CRM_Utils_JS::dedupeClosures to ignore comments
277 ([17717](https://github.com/civicrm/civicrm-core/pull/17717))**
94a1f6ae 278
73f7a7a9 279 Ensures comments do not interfere with deduping.
94a1f6ae 280
29b35cc5
TO
281- **Use PHPUnit7 as the primary test runner
282 ([17615](https://github.com/civicrm/civicrm-core/pull/17615),
283 [17661](https://github.com/civicrm/civicrm-core/pull/17661),
284 [120](https://github.com/civicrm/civicrm-backdrop/pull/120),
285 [605](https://github.com/civicrm/civicrm-drupal/pull/605),
286 [206](https://github.com/civicrm/civicrm-wordpress/pull/206))**
94a1f6ae 287
73f7a7a9
AF
288- **Fix isMultilingual to use static caching and respect current domain
289 ([17646](https://github.com/civicrm/civicrm-core/pull/17646))**
94a1f6ae 290
73f7a7a9
AF
291 Improves the efficiency and accuracy of the `CRM_Core_I18n::isMultilingual`
292 function, preventing a large number of duplicate queries on every request.
94a1f6ae 293
73f7a7a9
AF
294- **Update has_separator field in civicrm_navigation
295 ([17579](https://github.com/civicrm/civicrm-core/pull/17579))**
94a1f6ae 296
73f7a7a9
AF
297 This field was incorrectly marked as a boolean; it's actually an int with an
298 option list.
94a1f6ae 299
29b35cc5 300- **Civi\Payment\PropertyBag - Remove warning
73f7a7a9 301 ([17506](https://github.com/civicrm/civicrm-core/pull/17506))**
94a1f6ae 302
73f7a7a9
AF
303- **Fix duplicate upgrade function
304 ([17582](https://github.com/civicrm/civicrm-core/pull/17582))**
94a1f6ae 305
73f7a7a9 306 Fixes a fatal error on upgrade caused by a merge conflict.
94a1f6ae 307
73f7a7a9
AF
308- **CRM_Case_XMLProcessor::allActivityTypes() doesn't do caching right
309 ([dev/core#1433](https://lab.civicrm.org/dev/core/-/issues/1433):
310 [17627](https://github.com/civicrm/civicrm-core/pull/17627),
311 [17616](https://github.com/civicrm/civicrm-core/pull/17616) and
312 [17614](https://github.com/civicrm/civicrm-core/pull/17614))**
94a1f6ae 313
73f7a7a9
AF
314- **CustomValue.GetTree API Does Not Return Display Value for Money Select/Radio
315 Custom field ([dev/core#1566](https://lab.civicrm.org/dev/core/-/issues/1566):
316 [17008](https://github.com/civicrm/civicrm-core/pull/17008))**
94a1f6ae 317
73f7a7a9
AF
318- **whom_url missing contact ID parameter in detailed logging report
319 ([dev/core#1749](https://lab.civicrm.org/dev/core/-/issues/1749):
320 [17440](https://github.com/civicrm/civicrm-core/pull/17440))**
94a1f6ae 321
29b35cc5 322- **Regression - File fields export results in DB error
73f7a7a9
AF
323 ([dev/core#1787](https://lab.civicrm.org/dev/core/-/issues/1787):
324 [17578](https://github.com/civicrm/civicrm-core/pull/17578))**
94a1f6ae 325
73f7a7a9
AF
326- **Relative date filter - End of yesterday not working properly
327 ([dev/core#1798](https://lab.civicrm.org/dev/core/-/issues/1798):
328 [17512](https://github.com/civicrm/civicrm-core/pull/17512))**
94a1f6ae 329
73f7a7a9
AF
330- **Editing a custom field choice label changes the `name` if you do it from the
331 custom field admin screens
332 ([dev/core#1817](https://lab.civicrm.org/dev/core/-/issues/1817):
333 [17681](https://github.com/civicrm/civicrm-core/pull/17681))**
94a1f6ae 334
73f7a7a9
AF
335- **Custom Date field with format=yy displays calendar icon that doesn't work
336 ([dev/core#1829](https://lab.civicrm.org/dev/core/-/issues/1829):
337 [17664](https://github.com/civicrm/civicrm-core/pull/17664))**
94a1f6ae 338
73f7a7a9
AF
339- **Unable to install 5.28 on Maria DB 10.3 on Ubuntu
340 ([dev/core#1860](https://lab.civicrm.org/dev/core/-/issues/1860):
341 [17772](https://github.com/civicrm/civicrm-core/pull/17772))**
94a1f6ae 342
29b35cc5 343- **APIv4 - Filter getActions results based on user permissions
4dab446f 344 ([17540](https://github.com/civicrm/civicrm-core/pull/17540))**
94a1f6ae 345
73f7a7a9
AF
346- **Pre-upgrade message for php-intl shows twice
347 ([17748](https://github.com/civicrm/civicrm-core/pull/17748))**
94a1f6ae 348
73f7a7a9
AF
349- **Fix saving of State/Province Multi-select values
350 ([17737](https://github.com/civicrm/civicrm-core/pull/17737))**
94a1f6ae 351
73f7a7a9
AF
352- **[regression] Attempting to access Multi-Record Custom Field import results
353 in crash ([dev/core#1841](https://lab.civicrm.org/dev/core/-/issues/1841):
354 [17697](https://github.com/civicrm/civicrm-core/pull/17697))**
94a1f6ae 355
29b35cc5 356- **Use PSR-4 instead of PSR-0 in Civi directory
73f7a7a9 357 ([17690](https://github.com/civicrm/civicrm-core/pull/17690))**
94a1f6ae 358
73f7a7a9
AF
359- **Sort options without relying on unavailable buildOptions param
360 ([17621](https://github.com/civicrm/civicrm-core/pull/17621))**
94a1f6ae 361
73f7a7a9
AF
362- **Throw exception if id not passed into discard
363 ([17666](https://github.com/civicrm/civicrm-core/pull/17666))**
94a1f6ae 364
73f7a7a9
AF
365- **Fix validation of select2 fields in "On behalf of Organisation" block
366 ([17672](https://github.com/civicrm/civicrm-core/pull/17672))**
94a1f6ae 367
73f7a7a9 368- **Pass required attribute for quickform fields through to form
80078c3e
AH
369 ([16488](https://github.com/civicrm/civicrm-core/pull/16488) and
370 [17929](https://github.com/civicrm/civicrm-core/pull/17929) related to
371 [dev/core#1903](https://lab.civicrm.org/dev/core/-/issues/1903))**
94a1f6ae 372
73f7a7a9
AF
373- **CRM_Core_I18n::setLocale() - Fix bug with repeated usage
374 ([17374](https://github.com/civicrm/civicrm-core/pull/17374))**
94a1f6ae 375
73f7a7a9
AF
376- **Fix retrieving MySQL version for checking as part of install requirements
377 ([17593](https://github.com/civicrm/civicrm-core/pull/17593))**
94a1f6ae 378
73f7a7a9 379- **Set ContactType.name as required in the schema.
80078c3e
AH
380 ([17548](https://github.com/civicrm/civicrm-core/pull/17548),
381 [17570](https://github.com/civicrm/civicrm-core/pull/17570), and
382 [18070](https://github.com/civicrm/civicrm-core/pull/18070) related to
383 [dev/core#1927](https://lab.civicrm.org/dev/core/-/issues/1927))**
94a1f6ae 384
73f7a7a9
AF
385- **Fix "Undefined variable: entryFound" notice on Bookkeeping report
386 ([17554](https://github.com/civicrm/civicrm-core/pull/17554))**
94a1f6ae 387
73f7a7a9
AF
388- **Zip code range search only supports numeric zip codes
389 ([17523](https://github.com/civicrm/civicrm-core/pull/17523))**
94a1f6ae 390
4dab446f
AH
391 Rather than causing a database error, this displays an error message when
392 attempting to search a postal code range using non-numeric postal codes.
393
73f7a7a9
AF
394- **Remove isThrowException from CRM_Utils_Type::validate() signature
395 ([17546](https://github.com/civicrm/civicrm-core/pull/17546))**
94a1f6ae 396
29b35cc5 397- **`codeVersion` not displayed in system status check error message about db
80078c3e
AH
398 version vs codeversion
399 ([dev/core#1882](https://lab.civicrm.org/dev/core/-/issues/1882):
400 [17854](https://github.com/civicrm/civicrm-core/pull/17854))**
401
29b35cc5
TO
402- **"Merge" form moves unchecked related entities (intra-RC regression)
403 ([dev/core#1930](https://lab.civicrm.org/dev/core/-/issues/1930):
404 [18079](https://github.com/civicrm/civicrm-core/pull/18079))**
405
4dab446f
AH
406### CiviCase
407
29b35cc5 408- **Non-compliant query leads to (semi-)random sorting and failing unit test
4dab446f
AH
409 CRM_Case_BAO_CaseTest::testSortByCaseContact
410 ([dev/core#1844](https://lab.civicrm.org/dev/core/-/issues/1844):
411 [17708](https://github.com/civicrm/civicrm-core/pull/17708))**
412
73f7a7a9 413### CiviContribute
94a1f6ae 414
73f7a7a9
AF
415- **Payment instrument ID is not required at processorform level
416 ([17510](https://github.com/civicrm/civicrm-core/pull/17510))**
94a1f6ae 417
73f7a7a9 418 Do not throw warning if payment instrument is not sent.
94a1f6ae 419
73f7a7a9
AF
420- **Bank fee has wrong date on import in civicrm_financial_item.transaction_date
421 incorrected uses import date rather than payment date on
422 ([dev/core#1776](https://lab.civicrm.org/dev/core/-/issues/1776):
423 [17389](https://github.com/civicrm/civicrm-core/pull/17389))**
94a1f6ae 424
73f7a7a9
AF
425 Ensures the `civicrm_financial_item.transaction_date` gets recorded correctly
426 when importing a transaction with a bank fee.
94a1f6ae 427
73f7a7a9
AF
428- **Payment.create should not set contribution date to today
429 ([17688](https://github.com/civicrm/civicrm-core/pull/17688))**
94a1f6ae 430
73f7a7a9
AF
431- **Fix PHP notice when we don't have credit card params
432 ([16514](https://github.com/civicrm/civicrm-core/pull/16514) and
433 [17584](https://github.com/civicrm/civicrm-core/pull/17584))**
94a1f6ae 434
4dab446f
AH
435- **Improve PropertyBag handling of offsetGet and custom properties; add more
436 tests ([17588](https://github.com/civicrm/civicrm-core/pull/17588) and
437 [17654](https://github.com/civicrm/civicrm-core/pull/17654))**
438
439- **Graphs on Contribution Summary report replace final row with grand total
440 value ([dev/report#40](https://lab.civicrm.org/dev/report/-/issues/40):
441 [17412](https://github.com/civicrm/civicrm-core/pull/17412))**
442
29b35cc5
TO
443- **"Undefined offset" bug in BAO/FinancialAccount.php
444 ([dev/wordpress#61](https://lab.civicrm.org/dev/wordpress/-/issues/61):
445 [17701](https://github.com/civicrm/civicrm-core/pull/17701) and
446 [17689](https://github.com/civicrm/civicrm-core/pull/17689))**
447
448 Ensures that the financial account is set correctly even when the name does
449 not match the label.
450
73f7a7a9 451### CiviEvent
94a1f6ae 452
73f7a7a9
AF
453- **Event participant_listing_id field defaults to 0 instead of Null
454 ([dev/core#1833](https://lab.civicrm.org/dev/core/-/issues/1833):
455 [17677](https://github.com/civicrm/civicrm-core/pull/17677))**
94a1f6ae 456
4dab446f
AH
457- **Multiple line item shown on view contribution if participant is transferred
458 to another contact.
459 ([dev/core#890](https://lab.civicrm.org/dev/core/-/issues/890):
460 [16956](https://github.com/civicrm/civicrm-core/pull/16956))**
461
462### CiviGrant
463
464- **Bug in Grant statistics report
465 ([17640](https://github.com/civicrm/civicrm-core/pull/17640))**
466
73f7a7a9 467### CiviSMS
94a1f6ae 468
73f7a7a9
AF
469- **Can't change SMS recipient on non-bulk SMS
470 ([dev/core#1840](https://lab.civicrm.org/dev/core/-/issues/1840):
471 [17691](https://github.com/civicrm/civicrm-core/pull/17691))**
94a1f6ae 472
80078c3e
AH
473### Drupal Integration
474
475- **Error: Class 'CRM_Upgrade_Incremental_General' not found in
476 Civi\Install\Requirements->checkMysqlVersion()
477 ([dev/drupal#131](https://lab.civicrm.org/dev/drupal/-/issues/131):
478 [18066](https://github.com/civicrm/civicrm-core/pull/18066))**
479
73f7a7a9 480### Joomla Integration
94a1f6ae 481
73f7a7a9
AF
482- **Ensure that when normal routing trackable urls and opens in Joomla go to the
483 frontend not administrator site
484 ([17760](https://github.com/civicrm/civicrm-core/pull/17760))**
94a1f6ae 485
73f7a7a9 486### WordPress Integration
94a1f6ae 487
73f7a7a9
AF
488- **Remove `/` from the beginning and end of query string
489 ([207](https://github.com/civicrm/civicrm-wordpress/pull/207))**
94a1f6ae 490
73f7a7a9
AF
491 Fixes a 'You do not have permission to access this content.' error resulting
492 from an extra '/' in the `q=` string in the url.
94a1f6ae 493
73f7a7a9
AF
494- **Base page fails to recognise Page Templates in subdirectories.
495 ([dev/wordpress#58](https://lab.civicrm.org/dev/wordpress/-/issues/58):
496 [204](https://github.com/civicrm/civicrm-wordpress/pull/204))**
94a1f6ae 497
73f7a7a9
AF
498 Ensures that the CiviCRM base page is correctly identified when it does not
499 reside in the theme root directory.
94a1f6ae 500
80078c3e
AH
501- **Prevent session from starting during WordPress pseudo cron procedures
502 ([dev/core#1889](https://lab.civicrm.org/dev/core/-/issues/1889):
503 [17890](https://github.com/civicrm/civicrm-core/pull/17890) and
504 [210](https://github.com/civicrm/civicrm-wordpress/pull/210))**
505
73f7a7a9
AF
506## <a name="misc"></a>Miscellany
507
29b35cc5
TO
508- **Ship Flexmailer extension with civicrm-core
509 ([17669](https://github.com/civicrm/civicrm-core/pull/17669),
510 ([17768](https://github.com/civicrm/civicrm-core/pull/17768))**
511
73f7a7a9
AF
512- **Support passing old method name into deprecatedFunctionWarning
513 ([17552](https://github.com/civicrm/civicrm-core/pull/17552))**
94a1f6ae 514
73f7a7a9
AF
515- **Add CRM_Core_Form::isFormInViewMode and CRM_Core_Form::isFormInEditMode
516 ([17637](https://github.com/civicrm/civicrm-core/pull/17637))**
94a1f6ae 517
29b35cc5 518- **CRM_Utils_JS - Dedupe 'use strict' directive
73f7a7a9 519 ([17711](https://github.com/civicrm/civicrm-core/pull/17711))**
94a1f6ae 520
73f7a7a9
AF
521- **Add isBackOffice, isPayLater, getPaymentMode helpers to
522 frontendpaymentformtrait
523 ([17511](https://github.com/civicrm/civicrm-core/pull/17511))**
94a1f6ae 524
73f7a7a9
AF
525- **Fix issue $this
526 ([589](https://github.com/civicrm/civicrm-drupal/pull/589))**
94a1f6ae 527
73f7a7a9
AF
528- **Fix validateAll to no longer support unused abort param
529 ([17544](https://github.com/civicrm/civicrm-core/pull/17544))**
94a1f6ae 530
73f7a7a9
AF
531- **Remove deprecated billingID from baseIPN
532 ([17525](https://github.com/civicrm/civicrm-core/pull/17525))**
94a1f6ae 533
73f7a7a9
AF
534- **Add EntityFormTrait to pricefieldForm - stdised getEntityId()
535 ([17516](https://github.com/civicrm/civicrm-core/pull/17516))**
94a1f6ae 536
73f7a7a9
AF
537- **Update contributor-key.yml
538 ([17553](https://github.com/civicrm/civicrm-core/pull/17553))**
94a1f6ae 539
73f7a7a9 540- **Export fix ([17644](https://github.com/civicrm/civicrm-core/pull/17644))**
94a1f6ae 541
73f7a7a9
AF
542- **Upgrade HTML Purifier to v4.12.0 to support for PHP7.4
543 ([297](https://github.com/civicrm/civicrm-packages/pull/297))**
94a1f6ae 544
73f7a7a9
AF
545- **Temporary tables should follow consistent naming convention
546 ([dev/core#183](https://lab.civicrm.org/dev/core/-/issues/183):
547 [15796](https://github.com/civicrm/civicrm-core/pull/15796))**
94a1f6ae 548
73f7a7a9
AF
549- **Remove unreachable lines
550 ([17563](https://github.com/civicrm/civicrm-core/pull/17563))**
94a1f6ae 551
73f7a7a9
AF
552- **EventInfo template cleanup
553 ([17581](https://github.com/civicrm/civicrm-core/pull/17581))**
94a1f6ae 554
29b35cc5 555- **[NFC] Misspelled word
73f7a7a9 556 ([17652](https://github.com/civicrm/civicrm-core/pull/17652))**
94a1f6ae 557
73f7a7a9
AF
558- **Remove a usage of deprecated funtion get_magic_quotes_gpc and also switch out
559 {} for [] whne acecssing string or array offsets
560 ([296](https://github.com/civicrm/civicrm-packages/pull/296))**
94a1f6ae 561
73f7a7a9
AF
562- **Remove unused deprecated class
563 ([17535](https://github.com/civicrm/civicrm-core/pull/17535))**
94a1f6ae 564
73f7a7a9
AF
565- **Remove obsolete function formatWikiURL
566 ([17726](https://github.com/civicrm/civicrm-core/pull/17726))**
94a1f6ae 567
29b35cc5 568- **[REF] Simplify the replacing of the email with the email from the url
73f7a7a9 569 ([17491](https://github.com/civicrm/civicrm-core/pull/17491))**
94a1f6ae 570
73f7a7a9
AF
571- **[REF] Replace incorrect usages of array_key_exists when the variable is not
572 an array with property_exists and also fix the parameter order for an implode
573 statement ([17573](https://github.com/civicrm/civicrm-core/pull/17573))**
94a1f6ae 574
29b35cc5 575- **[REF] Convert Authorize.net to use Guzzle for update subscription class, add
73f7a7a9 576 test ([17585](https://github.com/civicrm/civicrm-core/pull/17585))**
94a1f6ae 577
73f7a7a9
AF
578- **[REF] Using {} to access string or array offsets has been deprecated in
579 PHP7.4 ([17574](https://github.com/civicrm/civicrm-core/pull/17574))**
94a1f6ae 580
29b35cc5 581- **[REF] Mark unused date functions as deprecated
73f7a7a9 582 ([17487](https://github.com/civicrm/civicrm-core/pull/17487))**
94a1f6ae 583
73f7a7a9
AF
584- **[REF] Using ternary operation without nesting is deprecated and also using
585 methods and properly instanciate the CiviCase Info object in test
586 ([17575](https://github.com/civicrm/civicrm-core/pull/17575))**
94a1f6ae 587
29b35cc5 588- **[REF] Convert Authorize.net doDirectPayment to use guzzle & add test
73f7a7a9 589 ([17501](https://github.com/civicrm/civicrm-core/pull/17501))**
94a1f6ae 590
73f7a7a9
AF
591- **[REF] Replace the deprecated system_rebuild_module_data function with
592 equivilant extension.list.module service function calls to be Drupal 9
593 compatiable ([17515](https://github.com/civicrm/civicrm-core/pull/17515))**
94a1f6ae 594
29b35cc5 595- **[REF] Remove never reachable lines.
73f7a7a9 596 ([17556](https://github.com/civicrm/civicrm-core/pull/17556))**
94a1f6ae 597
29b35cc5 598- **[REF] Remove another instance of fatal()
73f7a7a9 599 ([17549](https://github.com/civicrm/civicrm-core/pull/17549))**
94a1f6ae 600
29b35cc5 601- **[REF] Readability extraction in Dummy class
73f7a7a9 602 ([17543](https://github.com/civicrm/civicrm-core/pull/17543))**
94a1f6ae 603
73f7a7a9
AF
604- **[REF] Replace some instances of fatal with thrown exceptions.
605 ([17533](https://github.com/civicrm/civicrm-core/pull/17533))**
94a1f6ae 606
29b35cc5 607- **[REF] Remove calls to, and deprecate, unhandled function
73f7a7a9 608 ([17499](https://github.com/civicrm/civicrm-core/pull/17499))**
94a1f6ae 609
73f7a7a9
AF
610- **[REF] Remove handling for 2 fields not on the form
611 ([17504](https://github.com/civicrm/civicrm-core/pull/17504))**
94a1f6ae 612
29b35cc5 613- **[REF] Remove some instances of fatal in BAO classes
73f7a7a9 614 ([17536](https://github.com/civicrm/civicrm-core/pull/17536))**
94a1f6ae 615
29b35cc5 616- **[REF] Access the method not the property directly to check if a payment
73f7a7a9
AF
617 processor supports recurring
618 ([17602](https://github.com/civicrm/civicrm-core/pull/17602))**
94a1f6ae 619
29b35cc5 620- **[REF] Ensure that our custom error handler is called when jQuery validates
73f7a7a9
AF
621 and expand any collapsed accordions that are hiding required fields that
622 haven't been filled in
623 ([17673](https://github.com/civicrm/civicrm-core/pull/17673))**
94a1f6ae 624
73f7a7a9
AF
625- **[REF] Consolidate code in processMembership
626 ([17611](https://github.com/civicrm/civicrm-core/pull/17611))**
94a1f6ae 627
73f7a7a9
AF
628- **[REF] Cleanup function for retrieving contact types.
629 ([17676](https://github.com/civicrm/civicrm-core/pull/17676))**
94a1f6ae 630
29b35cc5 631- **[REF] Fix Javascript syntax error
73f7a7a9 632 ([17678](https://github.com/civicrm/civicrm-core/pull/17678))**
94a1f6ae 633
29b35cc5 634- **[REF] Fix jQuery error message display on select2 field validation
73f7a7a9 635 ([17671](https://github.com/civicrm/civicrm-core/pull/17671))**
94a1f6ae 636
73f7a7a9
AF
637- **[REF] Fix allowing users to clear values for raido custom fields when not
638 required ([17670](https://github.com/civicrm/civicrm-core/pull/17670))**
94a1f6ae 639
73f7a7a9
AF
640- **[REF] Extract getTestTrxnID
641 ([17642](https://github.com/civicrm/civicrm-core/pull/17642))**
94a1f6ae 642
29b35cc5
TO
643- **Update Flexmailer to be PHP7.4 compatible
644 ([17779](https://github.com/civicrm/civicrm-core/pull/17779), [17660](https://github.com/civicrm/civicrm-core/pull/17660))**
94a1f6ae 645
73f7a7a9
AF
646- **[REF] Ensure that the Manual Payment Processor sets the _paymentProcessor
647 variable like other Processors to fix issues in PHP7.4 and UnitTests
648 ([17648](https://github.com/civicrm/civicrm-core/pull/17648))**
94a1f6ae 649
73f7a7a9
AF
650- **[REF] Fix PHP7.4 Test fails when we are accessing array keys when the value
651 is not an array
652 ([17649](https://github.com/civicrm/civicrm-core/pull/17649))**
94a1f6ae 653
73f7a7a9
AF
654- **[REF] Fix parts of code where curly brackets were being used for array or
655 string access which is deprecated in PHP7.4
656 ([17647](https://github.com/civicrm/civicrm-core/pull/17647))**
94a1f6ae 657
73f7a7a9
AF
658- **[REF] Fix issue with using array access tools on NULL values
659 ([17600](https://github.com/civicrm/civicrm-core/pull/17600))**
94a1f6ae 660
73f7a7a9
AF
661- **[REF] Replace incorrect usage of array_key_exists with property_exists in
662 Group BAO Class
663 ([17604](https://github.com/civicrm/civicrm-core/pull/17604))**
94a1f6ae 664
73f7a7a9
AF
665- **[REF] Add test for renewing old expired membership via form
666 ([17564](https://github.com/civicrm/civicrm-core/pull/17564))**
94a1f6ae 667
73f7a7a9
AF
668- **[REF] Update packages to work with PHP7.4
669 ([17598](https://github.com/civicrm/civicrm-core/pull/17598))**
94a1f6ae 670
73f7a7a9
AF
671- **[REF] Fix another couple of uses of array_key_exists when the variable being
672 checked is an object
673 ([17601](https://github.com/civicrm/civicrm-core/pull/17601))**
94a1f6ae 674
29b35cc5
TO
675- **[REF] Remove deprecated methods of booting Drupal container and getting
676 Drupal timezone information
73f7a7a9 677 ([17522](https://github.com/civicrm/civicrm-core/pull/17522))**
94a1f6ae 678
73f7a7a9
AF
679- **[REF] Fix some additional issues where curly braces were being used to
680 access string or array offsets
681 ([17599](https://github.com/civicrm/civicrm-core/pull/17599))**
94a1f6ae 682
73f7a7a9
AF
683- **[NFC] Update existing APIv3 MembershipType Tests to also test against APIv4
684 as appropriate ([17528](https://github.com/civicrm/civicrm-core/pull/17528))**
94a1f6ae 685
29b35cc5 686- **[NFC] cleanup docblocks in CRM_Utils_JS
73f7a7a9 687 ([17714](https://github.com/civicrm/civicrm-core/pull/17714))**
94a1f6ae 688
73f7a7a9
AF
689- **[NFC] Fix some outdated wiki links
690 ([17739](https://github.com/civicrm/civicrm-core/pull/17739))**
94a1f6ae 691
73f7a7a9
AF
692- **[NFC] Fix contributor key for Lighthouse Consulting and Design
693 ([17727](https://github.com/civicrm/civicrm-core/pull/17727))**
94a1f6ae 694
29b35cc5 695- **[NFC] Fix unit test failure on MySQL 8 due to ordering issue
73f7a7a9
AF
696 ([17674](https://github.com/civicrm/civicrm-core/pull/17674))**
697
73f7a7a9
AF
698- **[NFC] Remove instances where html is passed to crmMoney
699 ([17612](https://github.com/civicrm/civicrm-core/pull/17612))**
700
701- **[NFC] Add assertions to existing test to lock in current behaviour
702 ([17605](https://github.com/civicrm/civicrm-core/pull/17605))**
703
704- **[NFC] Update mocking to use getMockBuilder instead instead of createMock
705 ([17606](https://github.com/civicrm/civicrm-core/pull/17606))**
706
29b35cc5 707- **[NFC] Formatting cleanup on contribution/recur templates
73f7a7a9
AF
708 ([17603](https://github.com/civicrm/civicrm-core/pull/17603))**
709
710- **[NFC] Minor code cleanup
711 ([17566](https://github.com/civicrm/civicrm-core/pull/17566))**
712
80078c3e
AH
713- **MembershipRenewalTest - Fix failure
714 ([17830](https://github.com/civicrm/civicrm-core/pull/17830))**
715
716- **[REF] Fix regression where adding any date based field onto a profile
717 triggers an error date preferences not configured when previewing the profile
718 ([17973](https://github.com/civicrm/civicrm-core/pull/17973))**
719
720- **[NFC] Port some recent test fixes from master to 5.28
721 ([18053](https://github.com/civicrm/civicrm-core/pull/18053))**
722
94a1f6ae
AH
723## <a name="credits"></a>Credits
724
725This release was developed by the following code authors:
726
88bd6b02 727AGH Strategies - Alice Frumin, Andie Hunt; British Humanist Association -
73f7a7a9
AF
728Andrew West; Christian Wach; Circle Interactive - Pradeep Nayak; CiviCRM -
729Coleman Watts, Tim Otten; CiviDesk - Yashodha Chaku; CompuCorp - Ivan; Coop
730SymbioTIC - Mathieu Lutfy, Samuel Vanhove; Dave D; Dietermartens; ES-Progress -
731Sandor Semsey; Flinders University of South Australia - Tom Anderson; Fuzion -
732Jitendra Purohit; JMA Consulting - Seamus Lee; Lighthouse Consulting and
733Design- Brian Shaughnessy; Marcin Lewandowski; Megaphone Technology Consulting -
734Jon Goldberg; MJW Consulting - Matthew Wire; Tadpole Collective - Kevin
735Cristiano; Wikimedia Foundation - Eileen McNaughton
94a1f6ae
AH
736
737Most authors also reviewed code for this release; in addition, the following
738reviewers contributed their comments:
739
73f7a7a9
AF
740a-n The Artists Information Company - William Mortada; Agileware - Francis
741Whittle, Justin Freeman; Andrew Thompson; Artful Robot - Rich Lott; Betty
742Dolfing; Blackfly Solutions - Alan Dixon; CiviCoop - Jaap Jansma; Fuzion - Luke
743Stewart, Peter Davis; JMA Consulting - Joe Murray; MJCO - Mikey O'Toole; Semper
744IT - Karin Gerritsen; Squiffle Consulting - Aidan Saunders; Third Sector Design:
4dab446f 745Eriol Fox; Timbsoft Technologies - Tunbola Ogunwande
0cee7083
AH
746
747## <a name="feedback"></a>Feedback
748
88bd6b02 749These release notes are edited by Alice Frumin and Andie Hunt. If you'd like
0cee7083
AH
750to provide feedback on them, please log in to https://chat.civicrm.org/civicrm
751and contact `@agh1`.