| 1 | # CiviCRM 5.4.0 |
| 2 | |
| 3 | Released August 1, 2018 |
| 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?** | **yes** | |
| 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 | - **[CRM-20430](https://issues.civicrm.org/jira/browse/CRM-20430) A permission |
| 29 | 'save Report Criteria' |
| 30 | ([12107](https://github.com/civicrm/civicrm-core/pull/12107))** |
| 31 | |
| 32 | Permission to edit the criteria for saved reports is now separate from the |
| 33 | permission to access and preview modifications of report criteria. This will |
| 34 | prevent non-privileged users from modifying the criteria of an organization's |
| 35 | standard reports. However when upgrading, site administrators will need to |
| 36 | grant the Save Report Criteria permission to roles that need that capability. |
| 37 | |
| 38 | - **[dev/core#174](https://lab.civicrm.org/dev/core/issues/174) Consistently use |
| 39 | swappable cache interfaces |
| 40 | ([12321](https://github.com/civicrm/civicrm-core/pull/12321), |
| 41 | [12322](https://github.com/civicrm/civicrm-core/pull/12322), |
| 42 | [12323](https://github.com/civicrm/civicrm-core/pull/12323), |
| 43 | [12330](https://github.com/civicrm/civicrm-core/pull/12330), |
| 44 | [12331](https://github.com/civicrm/civicrm-core/pull/12331), |
| 45 | [12336](https://github.com/civicrm/civicrm-core/pull/12336), |
| 46 | [12342](https://github.com/civicrm/civicrm-core/pull/12342), |
| 47 | [12348](https://github.com/civicrm/civicrm-core/pull/12348), |
| 48 | [12354](https://github.com/civicrm/civicrm-core/pull/12354), |
| 49 | [12362](https://github.com/civicrm/civicrm-core/pull/12362), |
| 50 | [12368](https://github.com/civicrm/civicrm-core/pull/12368), |
| 51 | [12376](https://github.com/civicrm/civicrm-core/pull/12376), |
| 52 | [12378](https://github.com/civicrm/civicrm-core/pull/12378), |
| 53 | [12379](https://github.com/civicrm/civicrm-core/pull/12379), |
| 54 | [12380](https://github.com/civicrm/civicrm-core/pull/12380), |
| 55 | [12381](https://github.com/civicrm/civicrm-core/pull/12381), |
| 56 | [12389](https://github.com/civicrm/civicrm-core/pull/12389), and |
| 57 | [215](https://github.com/civicrm/civicrm-packages/pull/215))** |
| 58 | |
| 59 | Sites using Redis or Memcache for caches and sessions will now use those |
| 60 | facilities exclusively rather than retaining the `civicrm_cache` table as |
| 61 | a backstop. This improves performance for these sites, especially those |
| 62 | using multiple MySQL servers. |
| 63 | |
| 64 | As a precaution, Redis or Memcache administrators with very active sites |
| 65 | may wish to double-check that they have ample capacity for their caches and |
| 66 | sessions. |
| 67 | |
| 68 | For developers, the `CRM_Utils_Cache` APIs now support expiration/TTL |
| 69 | times and [PSR-16 CacheInterface](https://www.php-fig.org/psr/psr-16/). |
| 70 | The Civi implementation is slightly more permissive than the PSR-16 |
| 71 | specification; for full compliance, enable `CIVICRM_PSR16_STRICT`. |
| 72 | |
| 73 | - **[CRM-21574](https://issues.civicrm.org/jira/browse/CRM-21574) Allow to |
| 74 | disable sending of email from source contact for tell a friend on pcp |
| 75 | ([12355](https://github.com/civicrm/civicrm-core/pull/12355)) (preliminary |
| 76 | work)** |
| 77 | |
| 78 | Emails from the "tell a friend" feature are sent as if they are from the |
| 79 | donor's address. This can cause delivery failures as the site may not be a |
| 80 | valid source for the donor's email domain. Changes here are preliminary |
| 81 | cleanup. |
| 82 | |
| 83 | - **[dev/core#32](https://lab.civicrm.org/dev/core/issues/32) Add option to |
| 84 | disable cancel button on a profile form |
| 85 | ([11883](https://github.com/civicrm/civicrm-core/pull/11883))** |
| 86 | |
| 87 | The Cancel button is now optional on profile forms. |
| 88 | |
| 89 | - **[CRM-21392](https://issues.civicrm.org/jira/browse/CRM-21392) Allow viewing |
| 90 | groups/smartgroups as as other entities (eg. memberships, events) |
| 91 | ([11241](https://github.com/civicrm/civicrm-core/pull/11241))** |
| 92 | |
| 93 | The Find Groups page now has a similar "View Results As" feature as the |
| 94 | Advanced Search: you can choose to view memberships, events, activities, etc. |
| 95 | of group subscribers rather than the contacts themselves. |
| 96 | |
| 97 | - **[CRM-21622](https://issues.civicrm.org/jira/browse/CRM-21622) Make the Add |
| 98 | Parent Groups on Group Settings be a multiselect |
| 99 | ([11481](https://github.com/civicrm/civicrm-core/pull/11481))** |
| 100 | |
| 101 | The New Group form now allows you to set multiple parent groups for a single |
| 102 | group. |
| 103 | |
| 104 | - **[CRM-21460](https://issues.civicrm.org/jira/browse/CRM-21460) Programmatic |
| 105 | access to job execution status |
| 106 | ([11337](https://github.com/civicrm/civicrm-core/pull/11337))** |
| 107 | |
| 108 | Extension developers can implement two new hooks, `hook_civicrm_preJob` and |
| 109 | `hook_civicrm_postJob`, which are invoked before and after executing a |
| 110 | scheduled job. |
| 111 | |
| 112 | - **Change default for `CIVICRM_CONTAINER_CACHE` to simplify admin/developer |
| 113 | experience ([12426](https://github.com/civicrm/civicrm-core/pull/12426))** |
| 114 | |
| 115 | - **[dev/core#223](https://lab.civicrm.org/dev/core/issues/223) Expose prefix |
| 116 | and suffix in reports |
| 117 | ([12394](https://github.com/civicrm/civicrm-core/pull/12394))** |
| 118 | |
| 119 | Individuals' prefix and suffix fields are now available as columns and filters |
| 120 | among the contact fields in most reports. |
| 121 | |
| 122 | - **[dev/core#101](https://lab.civicrm.org/dev/core/issues/101) Allow further |
| 123 | customization of search form in hooks |
| 124 | ([12078](https://github.com/civicrm/civicrm-core/pull/12078))** |
| 125 | |
| 126 | Fields are no longer explicitly included in the search form template since |
| 127 | that makes it hard to add or remove fields. Instead, the fields are listed in |
| 128 | template variables, and the template iterates over the list to render the |
| 129 | field elements. |
| 130 | |
| 131 | - **[dev/core#183](https://lab.civicrm.org/dev/core/issues/183) Temporary tables |
| 132 | should follow consistent naming convention |
| 133 | ([12311](https://github.com/civicrm/civicrm-core/pull/12311)) (partially |
| 134 | completed)** |
| 135 | |
| 136 | This moves towards naming temporary tables--both true temporary tables in |
| 137 | MySQL and regular tables created for temporary use--in a consistent manner in |
| 138 | order to help database administrators employ replication policies based upon |
| 139 | table names. |
| 140 | |
| 141 | - **[dev/core#144](https://lab.civicrm.org/dev/core/issues/144) |
| 142 | `getCustomFieldID` switch to API, add caching, add full string return option |
| 143 | ([12218](https://github.com/civicrm/civicrm-core/pull/12218) and |
| 144 | [12283](https://github.com/civicrm/civicrm-core/pull/12283))** |
| 145 | |
| 146 | The function to retrieve a custom field ID now relies upon APIv3 rather than |
| 147 | an *ad hoc* SQL query. It also contains an option to return the ID preceded |
| 148 | by `custom_`. Finally, the function caches the result and attempts to return |
| 149 | the cached value rather than looking it up each time. |
| 150 | |
| 151 | - **[dev/core#47](https://lab.civicrm.org/dev/core/issues/47) Add "clone" |
| 152 | functionality to scheduled jobs |
| 153 | ([11945](https://github.com/civicrm/civicrm-core/pull/11945))** |
| 154 | |
| 155 | Scheduled jobs can now be copied, including their parameters, both from the |
| 156 | Scheduled Jobs page and through a new `Job.clone` API method. |
| 157 | |
| 158 | ### CiviCase |
| 159 | |
| 160 | - **[dev/core#107](https://lab.civicrm.org/dev/core/issues/107) After creating a |
| 161 | new case, the assignee for each activity must be selected manually |
| 162 | ([11998](https://github.com/civicrm/civicrm-core/pull/11998))** |
| 163 | |
| 164 | You can now select the default assignee for each activity in the standard |
| 165 | timeline for a case type. This may be defined according to a relationship |
| 166 | with the client, a single specific contact, or the contact who created the |
| 167 | case. |
| 168 | |
| 169 | - **CiviCase, added reference of activities from different timelines. |
| 170 | ([12236](https://github.com/civicrm/civicrm-core/pull/12236))** |
| 171 | |
| 172 | From an activity on a case timeline, you can now reference any activity |
| 173 | available to the case--not just those on that case timeline. |
| 174 | |
| 175 | ### CiviContribute |
| 176 | |
| 177 | - **Add support for hidden fields in general (and 'token' specifically) on the |
| 178 | payment form. ([12332](https://github.com/civicrm/civicrm-core/pull/12332) |
| 179 | and [12391](https://github.com/civicrm/civicrm-core/pull/12391))** |
| 180 | |
| 181 | A new authorization token field is added to the payment form to support |
| 182 | token-based payment processors. |
| 183 | |
| 184 | - **[CRM-21808](https://issues.civicrm.org/jira/browse/CRM-21808) Install custom |
| 185 | group for Contribution or ContributioRecur subtypes based on XML file |
| 186 | ([11726](https://github.com/civicrm/civicrm-core/pull/11726))** |
| 187 | |
| 188 | Extensions created custom data sets for contributions can now specify the |
| 189 | custom data to apply only to a single financial type. |
| 190 | |
| 191 | - **(dev/core/50) and |
| 192 | [dev/core#195](https://lab.civicrm.org/dev/core/issues/195) Add Separate |
| 193 | Sub-tabs for Contributions and Recurring Contributions |
| 194 | ([11956](https://github.com/civicrm/civicrm-core/pull/11956) and |
| 195 | [12345](https://github.com/civicrm/civicrm-core/pull/12345))** |
| 196 | |
| 197 | The Contributions tab on a contact now contains two sub-tabs--one for single |
| 198 | contributions, and the other for recurring contribution series--instead of |
| 199 | displaying one after the other. |
| 200 | |
| 201 | - **[dev/core#96](https://lab.civicrm.org/dev/core/issues/96) Expose source |
| 202 | column in booking report |
| 203 | ([12374](https://github.com/civicrm/civicrm-core/pull/12374))** |
| 204 | |
| 205 | The contribution Source field is now available as a column and filter on the |
| 206 | Bookkeeping Transactions report. |
| 207 | |
| 208 | - **Use html5 color input for contribution page widget |
| 209 | ([12339](https://github.com/civicrm/civicrm-core/pull/12339))** |
| 210 | |
| 211 | ### CiviMail |
| 212 | |
| 213 | - **[dev/mail#1](https://lab.civicrm.org/dev/mail/issues/1) Add pause/resume |
| 214 | functionality to civicrm bulk mailing. |
| 215 | ([11803](https://github.com/civicrm/civicrm-core/pull/11803) and |
| 216 | [12284](https://github.com/civicrm/civicrm-core/pull/12284))** |
| 217 | |
| 218 | A CiviMail mailing that is scheduled or in progress can now be paused in order |
| 219 | to allow an urgent message to go out first. |
| 220 | |
| 221 | - **Add in bootstrap button classes to CiviMail interface |
| 222 | ([12013](https://github.com/civicrm/civicrm-core/pull/12013) and |
| 223 | [12338](https://github.com/civicrm/civicrm-core/pull/12338))** |
| 224 | |
| 225 | This allows the interfaces to be themed more easily by Bootstrap-based themes. |
| 226 | |
| 227 | ## <a name="bugs"></a>Bugs resolved |
| 228 | |
| 229 | ### Core CiviCRM |
| 230 | |
| 231 | - **[dev/core#222](https://lab.civicrm.org/dev/core/issues/222) Importing |
| 232 | contacts with dedupe rule does not use the rule |
| 233 | ([12393](https://github.com/civicrm/civicrm-core/pull/12393))** |
| 234 | |
| 235 | - **[dev/core#284](https://lab.civicrm.org/dev/core/issues/284) Aggressive cache |
| 236 | clearing significantly increases test time |
| 237 | ([12590](https://github.com/civicrm/civicrm-core/pull/12590))** |
| 238 | |
| 239 | Settings, compiled Javascript, extension, and other caches are now only |
| 240 | flushed along with the `default` CiviCRM cache if an external cache like Redis or |
| 241 | Memcache is in use. (This reproduces the `5.3` behavior.) |
| 242 | |
| 243 | - **[dev/core#279](https://lab.civicrm.org/dev/core/issues/279) When Merging two |
| 244 | contacts, Flip between original and duplicate link not working in WordPress |
| 245 | ([12568](https://github.com/civicrm/civicrm-core/pull/12568))** |
| 246 | |
| 247 | - **Handle 'Check for Matching Contact(s)' button with ajax |
| 248 | ([12552](https://github.com/civicrm/civicrm-core/pull/12552))** |
| 249 | |
| 250 | This resolves a bug where the "Check for Matching Contact(s)" button would not |
| 251 | work if AJAX Deduping is enabled. |
| 252 | |
| 253 | - **[dev/core#131](https://lab.civicrm.org/dev/core/issues/131) Add in missing |
| 254 | UK shire Monmouthshire |
| 255 | ([12538](https://github.com/civicrm/civicrm-core/pull/12538)) (follow-up on |
| 256 | previous work)** |
| 257 | |
| 258 | Many individual sites had manually added the county of Monmouthshire in Wales |
| 259 | to the `civicrm_state_province` table, and upgrading to 5.3.0, which added the |
| 260 | missing record, would cause them a database error. |
| 261 | |
| 262 | - **[dev/core#258](https://lab.civicrm.org/dev/core/issues/258) Possible |
| 263 | unreleased regression - message template update altered customised template |
| 264 | ([12492](https://github.com/civicrm/civicrm-core/pull/12492))** |
| 265 | |
| 266 | - **[dev/core#249](https://lab.civicrm.org/dev/core/issues/249) Contact Export |
| 267 | fails in 5.4 when trying to export using the All radio button |
| 268 | ([12447](https://github.com/civicrm/civicrm-core/pull/12447))** |
| 269 | |
| 270 | - **[dev/core#234](https://lab.civicrm.org/dev/core/issues/234) Upgrade Steps in |
| 271 | 5.3.alpha1 may not have been run |
| 272 | ([12419](https://github.com/civicrm/civicrm-core/pull/12419), |
| 273 | [12420](https://github.com/civicrm/civicrm-core/pull/12420), and |
| 274 | [12425](https://github.com/civicrm/civicrm-core/pull/12425))** |
| 275 | |
| 276 | - **[dev/core#155](https://lab.civicrm.org/dev/core/issues/155) Improvements and |
| 277 | bugfixes to Option Groups UI |
| 278 | ([12233](https://github.com/civicrm/civicrm-core/pull/12233) and |
| 279 | [12411](https://github.com/civicrm/civicrm-core/pull/12411))** |
| 280 | |
| 281 | The Option Groups page now displays whether each option group is reserved or |
| 282 | enabled. In addition, sites using sample data no longer have the sample |
| 283 | custom fields reserved. |
| 284 | |
| 285 | - **[CRM-20184](https://issues.civicrm.org/jira/browse/CRM-20184) Some System |
| 286 | Workflow templates still miss {contact.email_greeting} |
| 287 | ([12296](https://github.com/civicrm/civicrm-core/pull/12296))** |
| 288 | |
| 289 | This makes receipt templates more consistent in using the contact's email |
| 290 | greeting when sent to individuals. |
| 291 | |
| 292 | - **[dev/core#41](https://lab.civicrm.org/dev/core/issues/41) Search Builder: |
| 293 | Not empty with date or integer custom fields gives a sql warning |
| 294 | ([12351](https://github.com/civicrm/civicrm-core/pull/12351) and |
| 295 | [12363](https://github.com/civicrm/civicrm-core/pull/12363))** |
| 296 | |
| 297 | - **Make all form tasks inherit from `CRM_Core_Form_Task` |
| 298 | ([12318](https://github.com/civicrm/civicrm-core/pull/12318))** |
| 299 | |
| 300 | This addresses some export problems caused by tasks lacking certain properties |
| 301 | because their classes did not extend `CRM_Core_Form_Task`. |
| 302 | |
| 303 | - **[dev/core#178](https://lab.civicrm.org/dev/core/issues/178) Redis driver - |
| 304 | Error messages are invisible |
| 305 | ([12303](https://github.com/civicrm/civicrm-core/pull/12303))** |
| 306 | |
| 307 | The log now contains error messages passed from Redis. |
| 308 | |
| 309 | - **[dev/core#180](https://lab.civicrm.org/dev/core/issues/180) Deleting custom |
| 310 | values and custom_hook parameter `$entity_id` empty |
| 311 | ([12309](https://github.com/civicrm/civicrm-core/pull/12309))** |
| 312 | |
| 313 | The ID of the affected entity is now passed to `hook_civicrm_custom` when a |
| 314 | value is deleted from a custom field. |
| 315 | |
| 316 | - **Fix access to scheduled reminders for admins without event access |
| 317 | ([11733](https://github.com/civicrm/civicrm-core/pull/11733))** |
| 318 | |
| 319 | Users with Administer CiviCRM permission but lacking Manage Events permission |
| 320 | would get an error when trying to create a non-event scheduled reminder. |
| 321 | |
| 322 | - **Only treat a request as a get request (and hence use GET) if it starts with |
| 323 | get ([12308](https://github.com/civicrm/civicrm-core/pull/12308))** |
| 324 | |
| 325 | - **[dev/core#179](https://lab.civicrm.org/dev/core/issues/179) Redis driver - |
| 326 | Allow anonymous connections |
| 327 | ([12304](https://github.com/civicrm/civicrm-core/pull/12304))** |
| 328 | |
| 329 | Redis no longer attempts to authenticate when no password is set, such as on |
| 330 | local development environments. |
| 331 | |
| 332 | - **[dev/core#177](https://lab.civicrm.org/dev/core/issues/177) Redis driver - |
| 333 | Reports incorrect value for cache-miss |
| 334 | ([12302](https://github.com/civicrm/civicrm-core/pull/12302))** |
| 335 | |
| 336 | When a cache key is undefined, Redis now returns `NULL` rather than `FALSE`. |
| 337 | |
| 338 | - **[dev/core#175](https://lab.civicrm.org/dev/core/issues/175) Smart group |
| 339 | involving relationship type filter display incorrect results. |
| 340 | ([12301](https://github.com/civicrm/civicrm-core/pull/12301))** |
| 341 | |
| 342 | - **Make Send SMS permission independent of Edit Contact permission |
| 343 | ([12067](https://github.com/civicrm/civicrm-core/pull/12067))** |
| 344 | |
| 345 | You no longer need the permission to edit a contact (in addition to the Send |
| 346 | SMS permission) to send the contact a SMS message. |
| 347 | |
| 348 | - **[dev/core#134](https://lab.civicrm.org/dev/core/issues/134) Search Builder |
| 349 | broken filter for Source Contact ID |
| 350 | ([12181](https://github.com/civicrm/civicrm-core/pull/12181))** |
| 351 | |
| 352 | - **[dev/core#140](https://lab.civicrm.org/dev/core/issues/140) add missing |
| 353 | pseudoconstant for `option_group_id` in CustomField.xml |
| 354 | ([12195](https://github.com/civicrm/civicrm-core/pull/12195))** |
| 355 | |
| 356 | Extensions creating custom fields can now refer to option groups by name |
| 357 | rather than ID. |
| 358 | |
| 359 | - **[dev/accessiblity#3](https://lab.civicrm.org/dev/accessibility/issues/3) Add |
| 360 | aria-label (and label?) to form elements missing them |
| 361 | ([12209](https://github.com/civicrm/civicrm-core/pull/12209) and |
| 362 | [213](https://github.com/civicrm/civicrm-packages/pull/213)) (partial work)** |
| 363 | |
| 364 | Besides adding `aria-label` attributes to sub-elements of the Quickform |
| 365 | date field, event info pages no longer wrap basic information labels in |
| 366 | `<label>` tags. |
| 367 | |
| 368 | - **[CRM-20711](https://issues.civicrm.org/jira/browse/CRM-20711) Error - DB |
| 369 | Constraint Violation - GroupContact, get API |
| 370 | ([12408](https://github.com/civicrm/civicrm-core/pull/12408))** |
| 371 | |
| 372 | This adds the `location_id` field to the `civicrm_group_contact` table on |
| 373 | older sites that lack it. |
| 374 | |
| 375 | - **[dev/core#152](https://lab.civicrm.org/dev/core/issues/152) - |
| 376 | AdvMulti-Select cleanup |
| 377 | ([531](https://github.com/civicrm/civicrm-drupal/pull/531)) (follow-up work)** |
| 378 | |
| 379 | This removes a couple of references to the now-removed "Advanced Multi-select" |
| 380 | custom field type |
| 381 | |
| 382 | - **Upgrade Mime_mail to fix issues with PHP7.2 |
| 383 | ([205](https://github.com/civicrm/civicrm-packages/pull/205))** |
| 384 | |
| 385 | - **Apply fixes to have DB package support PHP7.2 |
| 386 | ([207](https://github.com/civicrm/civicrm-packages/pull/207))** |
| 387 | |
| 388 | - **[dev/core#117](https://lab.civicrm.org/dev/core/issues/117) Remove usage of |
| 389 | `each()` This is deprecated in php7.2 |
| 390 | ([211](https://github.com/civicrm/civicrm-packages/pull/211)) (follow-up |
| 391 | work)** |
| 392 | |
| 393 | - **Declare Subparts as array in mimePart to support PHP7.2 |
| 394 | ([210](https://github.com/civicrm/civicrm-packages/pull/210))** |
| 395 | |
| 396 | - **[CRM-19798](https://issues.civicrm.org/jira/browse/CRM-19798) Memory leak in |
| 397 | API3 EntityTag get operations |
| 398 | ([12276](https://github.com/civicrm/civicrm-core/pull/12276))** |
| 399 | |
| 400 | ### CiviCase |
| 401 | |
| 402 | - **Fix regression on case export from recent export fix |
| 403 | ([12588](https://github.com/civicrm/civicrm-core/pull/12588))** |
| 404 | |
| 405 | This resolves undefined property PHP notices when exporting cases. |
| 406 | |
| 407 | - **[dev/core#24](https://lab.civicrm.org/dev/core/issues/24) Passing an array |
| 408 | for contact_id/client_id to Case.Create API when updating an existing case |
| 409 | causes case to be "reassigned" |
| 410 | ([11830](https://github.com/civicrm/civicrm-core/pull/11830))** |
| 411 | |
| 412 | - **[CRM-21815](https://issues.civicrm.org/jira/browse/CRM-21815) On re-opening |
| 413 | a civicase - Case Coordinator (and other roles) are not reinstated |
| 414 | ([11736](https://github.com/civicrm/civicrm-core/pull/11736))** |
| 415 | |
| 416 | - **[dev/core#165](https://lab.civicrm.org/dev/core/issues/165) Bad link in |
| 417 | civicrm/case/activity/view breadcrumb |
| 418 | ([12279](https://github.com/civicrm/civicrm-core/pull/12279))** |
| 419 | |
| 420 | ### CiviContribute |
| 421 | |
| 422 | - **[CRM-21637](https://issues.civicrm.org/jira/browse/CRM-21637) Search |
| 423 | Criteria for Card Type ID and Card Number not respected in Batch |
| 424 | ([11495](https://github.com/civicrm/civicrm-core/pull/11495))** |
| 425 | |
| 426 | The card type and card number filters for financial transactions in the |
| 427 | accounting batch interface now work as expected. |
| 428 | |
| 429 | - **[CRM-21854](https://issues.civicrm.org/jira/browse/CRM-21854) Contribution |
| 430 | start date and end dates are not respected |
| 431 | ([11881](https://github.com/civicrm/civicrm-core/pull/11881) and |
| 432 | [12504](https://github.com/civicrm/civicrm-core/pull/12504))** |
| 433 | |
| 434 | - **[dev/core#264](https://lab.civicrm.org/dev/core/issues/264) Fatal Error on |
| 435 | editing Financial Transaction |
| 436 | ([12502](https://github.com/civicrm/civicrm-core/pull/12502))** |
| 437 | |
| 438 | - **[dev/core#220](https://lab.civicrm.org/dev/core/issues/220) State |
| 439 | province/country doesn't show properly in the report |
| 440 | ([12390](https://github.com/civicrm/civicrm-core/pull/12390))** |
| 441 | |
| 442 | This resolves a bug in the Contribution History by Relationship report where |
| 443 | strange values would appear for the State/Province and Country fields. |
| 444 | |
| 445 | - **[dev/core#202](https://lab.civicrm.org/dev/core/issues/202) Empty row under |
| 446 | currency drop down |
| 447 | ([12356](https://github.com/civicrm/civicrm-core/pull/12356))** |
| 448 | |
| 449 | A warning now appears when a site has a disabled currency that is set as |
| 450 | default. |
| 451 | |
| 452 | - **[dev/core#88](https://lab.civicrm.org/dev/core/issues/88) Make sure |
| 453 | `financial_type_id` is set when a contribution is created |
| 454 | ([11907](https://github.com/civicrm/civicrm-core/pull/11907))** |
| 455 | |
| 456 | This resolves a bug where the financial type would not be set on a one-time |
| 457 | contribution made through a contribution page. |
| 458 | |
| 459 | - **[dev/core#170](https://lab.civicrm.org/dev/core/issues/170) contribution |
| 460 | detail report errors when soft credits column is exposed |
| 461 | ([12281](https://github.com/civicrm/civicrm-core/pull/12281) and |
| 462 | [12282](https://github.com/civicrm/civicrm-core/pull/12282))** |
| 463 | |
| 464 | - **Fix e-notice, remove legacy code pattern |
| 465 | ([12298](https://github.com/civicrm/civicrm-core/pull/12298))** |
| 466 | |
| 467 | This resolves a PHP notice when printing contribution receipts in bulk. |
| 468 | |
| 469 | - **[dev/core#56](https://lab.civicrm.org/dev/core/issues/56) Cancel Recurring |
| 470 | Contribution activity should have a source record id |
| 471 | ([11964](https://github.com/civicrm/civicrm-core/pull/11964))** |
| 472 | |
| 473 | The activity created when cancelling a recurring contribution now has the |
| 474 | recurring contribution ID as the `source_record_id`. |
| 475 | |
| 476 | - **[dev/financial#14](https://lab.civicrm.org/dev/financial/issues/14) PayPal |
| 477 | Express recurring payment causes warning messages |
| 478 | ([12091](https://github.com/civicrm/civicrm-core/pull/12091))** |
| 479 | |
| 480 | - **[CRM-20697](https://issues.civicrm.org/jira/browse/CRM-20697) Online pay now |
| 481 | anomalies (contribution transfer to new contact) |
| 482 | ([11578](https://github.com/civicrm/civicrm-core/pull/11578))** |
| 483 | |
| 484 | The Pay Now form now uses contact ID and checksum to validate the |
| 485 | contribution's contact to avoid creating new contacts when an anonymous |
| 486 | visitor fulfills a pending contribution. |
| 487 | |
| 488 | ### CiviEvent |
| 489 | |
| 490 | - **[dev/core#272](https://lab.civicrm.org/dev/core/issues/272) Fatal Error |
| 491 | (Regression) on PCP pages associated with Events |
| 492 | ([12533](https://github.com/civicrm/civicrm-core/pull/12533))** |
| 493 | |
| 494 | - **[dev/core#124](https://lab.civicrm.org/dev/core/issues/124) Registration |
| 495 | approval issues ([12160](https://github.com/civicrm/civicrm-core/pull/12160) |
| 496 | and [12417](https://github.com/civicrm/civicrm-core/pull/12417))** |
| 497 | |
| 498 | This resolves a PHP warning and some confusing aspects of handling event |
| 499 | registration approvals. |
| 500 | |
| 501 | ### CiviGrant |
| 502 | |
| 503 | - **[dev/core#187](https://lab.civicrm.org/dev/core/issues/187) Fix typo in |
| 504 | `CRM_Grant_Form_Task` that prevents retrieving session key from URL |
| 505 | ([12317](https://github.com/civicrm/civicrm-core/pull/12317))** |
| 506 | |
| 507 | ### CiviMail |
| 508 | |
| 509 | - **[dev/core#133](https://lab.civicrm.org/dev/core/issues/133) Reply-to field |
| 510 | with empty string get saved in DB as `NULL` |
| 511 | ([12176](https://github.com/civicrm/civicrm-core/pull/12176))** |
| 512 | |
| 513 | - **[CRM-20320](https://issues.civicrm.org/jira/browse/CRM-20320) Error in PEAR |
| 514 | SMTP causes mailing job to fail when an error occurs during one connection |
| 515 | ([11840](https://github.com/civicrm/civicrm-core/pull/11840))** |
| 516 | |
| 517 | CiviMail will now disconnect the SMTP connection when a connection error is |
| 518 | detected and record the group of messages as not delivered. This allows it to |
| 519 | reconnect later and send the messages. |
| 520 | |
| 521 | - **[CRM-17753](https://issues.civicrm.org/jira/browse/CRM-17753) Newsletter |
| 522 | confirmation emails shouldn't use do-not-reply@yourdomain.org |
| 523 | ([12270](https://github.com/civicrm/civicrm-core/pull/12270)) (preliminary |
| 524 | work)** |
| 525 | |
| 526 | - **[CRM-21779](https://issues.civicrm.org/jira/browse/CRM-21779) Civimail |
| 527 | allows adding current draft mailing recipients to recipients field |
| 528 | ([11724](https://github.com/civicrm/civicrm-core/pull/11724))** |
| 529 | |
| 530 | ### CiviMember |
| 531 | |
| 532 | - **[dev/membership#4](https://lab.civicrm.org/dev/membership/issues/4) Admin |
| 533 | Membership type is displayed on Public contribution page. |
| 534 | ([12178](https://github.com/civicrm/civicrm-core/pull/12178))** |
| 535 | |
| 536 | - **[dev/core#276](https://lab.civicrm.org/dev/core/issues/276) Undefined index: |
| 537 | is_override on submit credit card membership |
| 538 | ([12563](https://github.com/civicrm/civicrm-core/pull/12563))** |
| 539 | |
| 540 | - **[dev/core#151](https://lab.civicrm.org/dev/core/issues/151) Action to Update |
| 541 | Recurring Contributions From Membership View is Never Shown |
| 542 | ([12228](https://github.com/civicrm/civicrm-core/pull/12228))** |
| 543 | |
| 544 | The table to view recurring contributions on a membership now displays the |
| 545 | Edit action where appropriate. |
| 546 | |
| 547 | - **[CRM-21682](https://issues.civicrm.org/jira/browse/CRM-21682) Automatic |
| 548 | membership renewal fixes |
| 549 | ([12313](https://github.com/civicrm/civicrm-core/pull/12313) and |
| 550 | [12314](https://github.com/civicrm/civicrm-core/pull/12314)) (preliminary |
| 551 | work)** |
| 552 | |
| 553 | - **[CRM-21177](https://issues.civicrm.org/jira/browse/CRM-21177) Wrong interval |
| 554 | of recurring payment for auto-renewing membership |
| 555 | ([12289](https://github.com/civicrm/civicrm-core/pull/12289)) (preliminary |
| 556 | work)** |
| 557 | |
| 558 | ### Joomla Integration |
| 559 | |
| 560 | - **[dev/joomla#1](https://lab.civicrm.org/dev/joomla/issues/1) CiviEvent menu |
| 561 | listing showing old events |
| 562 | ([46](https://github.com/civicrm/civicrm-joomla/pull/46))** |
| 563 | |
| 564 | ### WordPress Integration |
| 565 | |
| 566 | - **[dev/wordpress#1](https://lab.civicrm.org/dev/wordpress/issues/1) |
| 567 | CiviCRM-WordPress - Gutenberg Compatibility: Do not parse shortcodes in REST |
| 568 | context ([130](https://github.com/civicrm/civicrm-wordpress/pull/130))** |
| 569 | |
| 570 | - **[CRM-21565](https://issues.civicrm.org/jira/browse/CRM-21565) Change mkdir |
| 571 | to use correct and more secure mode numbers |
| 572 | ([120](https://github.com/civicrm/civicrm-wordpress/pull/120))** |
| 573 | |
| 574 | ## <a name="misc"></a>Miscellany |
| 575 | |
| 576 | - **(NFC) Convert files to use linux line endings not windows |
| 577 | ([12531](https://github.com/civicrm/civicrm-core/pull/12531))** |
| 578 | |
| 579 | - **Move DAO function to DAO class, call it from Merge class |
| 580 | ([12340](https://github.com/civicrm/civicrm-core/pull/12340))** |
| 581 | |
| 582 | - **NFC code cleanup for AuthNet, Paypal, PaypalPro IPNs |
| 583 | ([12386](https://github.com/civicrm/civicrm-core/pull/12386))** |
| 584 | |
| 585 | - **[dev/core#203](https://lab.civicrm.org/dev/core/issues/203) Cruft code in |
| 586 | `CRM_Core_BAO_OptionGroup::add()` |
| 587 | ([12357](https://github.com/civicrm/civicrm-core/pull/12357))** |
| 588 | |
| 589 | - **Remove unused instances of usedTable |
| 590 | ([12341](https://github.com/civicrm/civicrm-core/pull/12341) and |
| 591 | [12349](https://github.com/civicrm/civicrm-core/pull/12349))** |
| 592 | |
| 593 | - **(NFC) CiviUnitTestCase - Fix edge-case for mis-reported error |
| 594 | ([12347](https://github.com/civicrm/civicrm-core/pull/12347))** |
| 595 | |
| 596 | - **NFC Code cleanup to core task class |
| 597 | ([12316](https://github.com/civicrm/civicrm-core/pull/12316))** |
| 598 | |
| 599 | - **[NFC] Stop passing no-longer-part-of-signature variable |
| 600 | ([12329](https://github.com/civicrm/civicrm-core/pull/12329))** |
| 601 | |
| 602 | - **Fix typo in api explorer sample code |
| 603 | ([12324](https://github.com/civicrm/civicrm-core/pull/12324))** |
| 604 | |
| 605 | - **Remove unused code variable |
| 606 | ([12299](https://github.com/civicrm/civicrm-core/pull/12299))** |
| 607 | |
| 608 | - **Confirm & lock in group.get handling of is_active |
| 609 | ([12295](https://github.com/civicrm/civicrm-core/pull/12295))** |
| 610 | |
| 611 | - **Remove unused function getRecuringTransactionStatus from PayflowPro c… |
| 612 | ([12294](https://github.com/civicrm/civicrm-core/pull/12294))** |
| 613 | |
| 614 | - **Add upgrade function for message templates that does not involve copying the |
| 615 | whole template ([12224](https://github.com/civicrm/civicrm-core/pull/12224))** |
| 616 | |
| 617 | - **Function extraction BAO_Export class |
| 618 | ([12288](https://github.com/civicrm/civicrm-core/pull/12288))** |
| 619 | |
| 620 | - **Partial refactor of completeMembershipFromContribution |
| 621 | ([12271](https://github.com/civicrm/civicrm-core/pull/12271))** |
| 622 | |
| 623 | - **[NFC] Fix line endings (Jenkins where were you) |
| 624 | ([12280](https://github.com/civicrm/civicrm-core/pull/12280))** |
| 625 | |
| 626 | - **Towards fixing household merge export, extract function, add test, fix prev |
| 627 | ([12272](https://github.com/civicrm/civicrm-core/pull/12272))** |
| 628 | |
| 629 | - **Standardise line endings away from windows line endings to linux |
| 630 | ([212](https://github.com/civicrm/civicrm-packages/pull/212))** |
| 631 | |
| 632 | ## <a name="credits"></a>Credits |
| 633 | |
| 634 | This release was developed by the following code authors: |
| 635 | |
| 636 | AGH Strategies - Alice Frumin, Andrew Hunt; Agileware - Alok Patel; Australian |
| 637 | Greens - Seamus Lee; Bastien Ho; Caltha - Tomasz Pietrzkowski; CiviCoop - Jaap |
| 638 | Jansma; CiviCRM - Coleman Watts, Tim Otten; CiviDesk - Yashodha Chaku; CompuCorp - |
| 639 | Camilo Rodriguez, Michael Devery, René Olivo, Vinu Varshith Sekar; Electronic |
| 640 | Frontier Foundation - Mark Burdett; Fuzion - Jitendra Purohit; Ginkgo Street |
| 641 | Labs - Frank Gómez; JMA Consulting - Monish Deb; Johan Vervloet; John |
| 642 | Kingsnorth; Kanzu Code - Carl Andrew Lema; Left Join Labs - Sean Madsen; MJW |
| 643 | Consulting - Matthew Wire; Pradeep Nayak; Romain Thouvenin; Squiffle Consulting - |
| 644 | Aidan Saunders; Tadpole Collective - Kevin Cristiano; Third Sector Design - |
| 645 | Michael McAndrew; Tom Bloor; Wikimedia Foundation - Eileen McNaughton |
| 646 | |
| 647 | Most authors also reviewed code for this release; in addition, the following |
| 648 | reviewers contributed their comments: |
| 649 | |
| 650 | Agileware - Justin Freeman; baernm; Blackfly Solutions - Alan Dixon; Bob |
| 651 | Silvern; Borislav Zlatanov; Caltha - Michal Mach; cartbar; Christian Wach; |
| 652 | Circle Interactive - Dave Jenkins; CiviCoop - Erik Hommel; Community Builders - |
| 653 | Andrew Perry; CompuCorp - Guanhuan Chen, Omar Abu Hussein; Coop SymbioTIC - |
| 654 | Mathieu Lutfy; Drupal Association - Lizz Trudeau; Evan Chute; Forest CRM |
| 655 | Consulting - Tamar Meir; Freeform Solutions - Herb van den Dool; Ginkgo Street |
| 656 | Labs - Dan O'Brien; Hugo do Carmo; JMA Consulting - Joe Murray; Lemniscus - Noah |
| 657 | Miller; Lighthouse Design and Consulting - Brian Shaughnessy; Megaphone |
| 658 | Technology Consulting - Jon Goldberg; MJCO - Mikey O'Toole; Oxfam Germany - |
| 659 | Thomas Schüttler; Richard van Oosterhout; Robin Fenwick; Semper IT - Karin |
| 660 | Gerritsen; Stephen Palmstrom; Tech To The People - Xavier Dutoit; Timbsoft |
| 661 | Technologies - Tunbola Ogunwande |
| 662 | |
| 663 | ## <a name="feedback"></a>Feedback |
| 664 | |
| 665 | These release notes are edited by Andrew Hunt. If you'd like to provide |
| 666 | feedback on them, please log in to https://chat.civicrm.org/civicrm and contact |
| 667 | `@agh1`. |