| 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`. |