# CiviCRM 4.7.21
-Released FIX DATE
+Released July 5, 2017
+- **[Security advisories](#security)**
- **[Features](#features)**
- **[Bugs resolved](#bugs)**
+- **[Miscellany](#misc)**
- **[Credits](#credits)**
+## <a name="security"></a>Security advisories
+
+- **[CIVI-SA-2017-01](https://civicrm.org/advisory/civi-sa-2017-01-pingback-url-not-encrypted)** Pingback URL not encrypted
+- **[CIVI-SA-2017-02](https://civicrm.org/advisory/civi-sa-2017-02-privilage-escalation-via-leaked-key)** Privilage escalation via leaked key
+- **[CIVI-SA-2017-03](https://civicrm.org/advisory/civi-sa-2017-03-cross-site-scritping-in-the-recently-viewed-block)** Cross-site scripting in "Recently Viewed" block
+- **[CIVI-SA-2017-04](https://civicrm.org/advisory/civi-sa-2017-04-incorrect-escaping-for-on-behalf-of-block)** Incorrect escaping for "On Behalf Of" block
+- **[CIVI-SA-2017-05](https://civicrm.org/advisory/civi-sa-2017-05-incorrect-escaping-for-search-results-column)** Incorrect escaping for "Search Results" column
+- **[CIVI-SA-2017-06](https://civicrm.org/advisory/civi-sa-2017-06-incorrect-escaping-in-drupal-views-integration)** Incorrect escaping in Drupal Views integration
+- **[CIVI-SA-2017-07](https://civicrm.org/advisory/civi-sa-2017-07-insuffient-permission-check-in-mailing-report)** Insuffient permission-check in mailing report
+- **[CIVI-SA-2017-08](https://civicrm.org/advisory/civi-sa-2017-08-upgrade-multiple-js-libraries)** Upgrade multiple JS libraries
+
+
## <a name="features"></a>Features
### Core CiviCRM
-- **[CRM-20243](https://issues.civicrm.org/jira/browse/CRM-20243) ([10567](https://github.com/civicrm/civicrm-core/pull/10567), [10495](https://github.com/civicrm/civicrm-core/pull/10495), [10494](https://github.com/civicrm/civicrm-core/pull/10494), [10425](https://github.com/civicrm/civicrm-core/pull/10425), and [188](https://github.com/civicrm/civicrm-packages/pull/188))**
+- **[CRM-18081](https://issues.civicrm.org/jira/browse/CRM-18081) Allow search
+ of active relationships during a custom range of dates
+ ([10333](https://github.com/civicrm/civicrm-core/pull/10333))**
-- **[CRM-20744](https://issues.civicrm.org/jira/browse/CRM-20744) Use bower_compoents images for datatable rather than packages ([10520](https://github.com/civicrm/civicrm-core/pull/10520))**
+ It is now possible to filter on the active dates of a relationship in Advanced
+ Search and the Relationship Report. If relationship start and end dates are
+ filled accurately, this allows finding active relationships at a specified
+ point in time.
-- **[CRM-20561](https://issues.civicrm.org/jira/browse/CRM-20561) Load Net_SMTP, Auth_SASL, Net_Socket via Composer ([10384](https://github.com/civicrm/civicrm-core/pull/10384), [4](https://github.com/civicrm/civicrm-core/pull/4), [10385](https://github.com/civicrm/civicrm-core/pull/10385), and [185](https://github.com/civicrm/civicrm-packages/pull/185))**
+- **[CRM-20692](https://issues.civicrm.org/jira/browse/CRM-20692) Support jQuery
+ options in AngularJS `crm-ui-tab-set`
+ ([10477](https://github.com/civicrm/civicrm-core/pull/10477))**
-- **[CRM-20692](https://issues.civicrm.org/jira/browse/CRM-20692) Support jQuery options in AngularJS crm-ui-tab-set ([10477](https://github.com/civicrm/civicrm-core/pull/10477))**
+ jQuery UI supports various tab set options. This change allows for the
+ options to be passed through from `crm-ui-tab-set` `<div>` elements in
+ AngularJS.
-- **[CRM-20680](https://issues.civicrm.org/jira/browse/CRM-20680) Make the CiviCRM logo spin while waiting for next page to load ([10465](https://github.com/civicrm/civicrm-core/pull/10465))**
+- **[CRM-20680](https://issues.civicrm.org/jira/browse/CRM-20680) Make the
+ CiviCRM logo spin while waiting for next page to load
+ ([10465](https://github.com/civicrm/civicrm-core/pull/10465))**
-- **[CRM-18081](https://issues.civicrm.org/jira/browse/CRM-18081) Allow search of active relationships during a custom range of dates ([10333](https://github.com/civicrm/civicrm-core/pull/10333))**
+ The spinning logo in the navigation menu provides visual indication that a new
+ page is loading.
-- **[CRM-20698](https://issues.civicrm.org/jira/browse/CRM-20698) Make "disabled" table rows appear greyed-out ([10481](https://github.com/civicrm/civicrm-core/pull/10481))**
+- **[CRM-20679](https://issues.civicrm.org/jira/browse/CRM-20679) Make the
+ CiviCRM logo spin while quicksearch is running
+ ([10464](https://github.com/civicrm/civicrm-core/pull/10464))**
-- **[CRM-20687](https://issues.civicrm.org/jira/browse/CRM-20687) Issue numbers used as variables ([10473](https://github.com/civicrm/civicrm-core/pull/10473))**
+ This provides confirmation that the search is running.
-- **[CRM-20715](https://issues.civicrm.org/jira/browse/CRM-20715) Add index on is_deceased column in civicrm_contact ([10489](https://github.com/civicrm/civicrm-core/pull/10489))**
+- **[CRM-20715](https://issues.civicrm.org/jira/browse/CRM-20715) Add index on
+ `is_deceased` column in `civicrm_contact`
+ ([10489](https://github.com/civicrm/civicrm-core/pull/10489))**
-- **[CRM-20309](https://issues.civicrm.org/jira/browse/CRM-20309) Ensure A/B tests can be sent in parallel ([10227](https://github.com/civicrm/civicrm-core/pull/10227))**
+ Queries filtering deceased contacts will have improved performance now that the `is_deceased` field is indexed.
-- **[CRM-](https://issues.civicrm.org/jira/browse/CRM-) ([10360](https://github.com/civicrm/civicrm-core/pull/10360))**
+- **[CRM-20552](https://issues.civicrm.org/jira/browse/CRM-20552) Task for "Add
+ Relationship - to individual" is missing
+ ([10360](https://github.com/civicrm/civicrm-core/pull/10360)) (completes prior
+ work)**
-- **[CRM-20684](https://issues.civicrm.org/jira/browse/CRM-20684) Standalone form for contact bulk actions ([10471](https://github.com/civicrm/civicrm-core/pull/10471))**
+ The various search result actions for adding relationships based on different
+ contact types are now abstracted to a single class.
-- **[CRM-20679](https://issues.civicrm.org/jira/browse/CRM-20679) Make the CiviCRM logo spin while quicksearch is running ([10464](https://github.com/civicrm/civicrm-core/pull/10464))**
+- **[CRM-20684](https://issues.civicrm.org/jira/browse/CRM-20684) Standalone
+ form for contact bulk actions
+ ([10471](https://github.com/civicrm/civicrm-core/pull/10471))**
-- **[CRM-20642](https://issues.civicrm.org/jira/browse/CRM-20642) Show/Hide Case activity toggle ([10451](https://github.com/civicrm/civicrm-core/pull/10451))**
+ A number of search result actions for contacts can now be accessed directly
+ from their own URLs rather than solely from search results.
-- **[CRM-20475](https://issues.civicrm.org/jira/browse/CRM-20475) People involved tab ([10438](https://github.com/civicrm/civicrm-core/pull/10438))**
+- **[CRM-20594](https://issues.civicrm.org/jira/browse/CRM-20594) Optimze
+ Relationship Count on Contact Summary View
+ ([10371](https://github.com/civicrm/civicrm-core/pull/10371))**
-- **[CRM-20590](https://issues.civicrm.org/jira/browse/CRM-20590) Add pre and post hook for EntityBatch ([10366](https://github.com/civicrm/civicrm-core/pull/10366))**
+ The relationship count for a contact is now calculated by using the `COUNT()`
+ SQL function rather than counting the number of rows in the query result.
-- **[CRM-20442](https://issues.civicrm.org/jira/browse/CRM-20442) ([10421](https://github.com/civicrm/civicrm-core/pull/10421))**
+- **[CRM-20238](https://issues.civicrm.org/jira/browse/CRM-20238) Hook for
+ inbound SMS messages
+ ([10347](https://github.com/civicrm/civicrm-core/pull/10347))**
-- **[CRM-20588](https://issues.civicrm.org/jira/browse/CRM-20588) Pre and Post hook for Batch ([10364](https://github.com/civicrm/civicrm-core/pull/10364))**
+ See
+ [hook_civicrm_inboundSMS](https://docs.civicrm.org/dev/en/latest/hooks/hook_civicrm_inboundSMS/)
-- **[CRM-20585](https://issues.civicrm.org/jira/browse/CRM-20585) Correct the from and to accounts for deferred revenue transactions ([10367](https://github.com/civicrm/civicrm-core/pull/10367))**
+- **[CRM-20575](https://issues.civicrm.org/jira/browse/CRM-20575) Allow user to
+ set created_id field for batch
+ ([10358](https://github.com/civicrm/civicrm-core/pull/10358))**
-- **[CRM-20594](https://issues.civicrm.org/jira/browse/CRM-20594) Optimze Relationship Count on Contact Summary View ([10371](https://github.com/civicrm/civicrm-core/pull/10371))**
+ If custom code modifies the batch creation form, it can specify the contact ID
+ creating the batch.
-- **[CRM-20040](https://issues.civicrm.org/jira/browse/CRM-20040) ([9854](https://github.com/civicrm/civicrm-core/pull/9854))**
+- **[CRM-20091](https://issues.civicrm.org/jira/browse/CRM-20091) Case custom
+ fields blocks ([10540](https://github.com/civicrm/civicrm-core/pull/10540),
+ [10482](https://github.com/civicrm/civicrm-core/pull/10482), and
+ [10460](https://github.com/civicrm/civicrm-core/pull/10460)) (tangential work)**
-- **[CRM-20238](https://issues.civicrm.org/jira/browse/CRM-20238) Hook for inbound SMS messages ([10347](https://github.com/civicrm/civicrm-core/pull/10347))**
+ A new CustomValue.getTree API action retrieves the labels and values for all
+ of an entity's custom fields, given the entity's type and ID.y54
-- **[CRM-20159](https://issues.civicrm.org/jira/browse/CRM-20159) ([10378](https://github.com/civicrm/civicrm-core/pull/10378))**
+- **[CRM-20600](https://issues.civicrm.org/jira/browse/CRM-20600) Expose
+ AngularJS screens to hooks
+ ([10085](https://github.com/civicrm/civicrm-core/pull/10085) and
+ [10381](https://github.com/civicrm/civicrm-core/pull/10381))**
-- **[CRM-20301](https://issues.civicrm.org/jira/browse/CRM-20301) ([10379](https://github.com/civicrm/civicrm-core/pull/10379))**
+ HTML partials in AngularJS can now be modified using
+ `hook_civicrm_alterAngular`. In addition, manipulated and compiled HTML is
+ now cached in the files directory.
-- **[CRM-20046](https://issues.civicrm.org/jira/browse/CRM-20046) ([10009](https://github.com/civicrm/civicrm-core/pull/10009))**
+- **Surface errors from API calls to user on status page.
+ ([10380](https://github.com/civicrm/civicrm-core/pull/10380))**
-- **[CRM-20487](https://issues.civicrm.org/jira/browse/CRM-20487) ([10373](https://github.com/civicrm/civicrm-core/pull/10373))**
-
-- **[CRM-20575](https://issues.civicrm.org/jira/browse/CRM-20575) Allow user to set created_id field for batch ([10358](https://github.com/civicrm/civicrm-core/pull/10358))**
+ API debug information in status checks now appear with the resulting message.
### CiviCase
-- **[CRM-20091](https://issues.civicrm.org/jira/browse/CRM-20091) Case custom fields blocks ([10540](https://github.com/civicrm/civicrm-core/pull/10540), [10482](https://github.com/civicrm/civicrm-core/pull/10482), and [10460](https://github.com/civicrm/civicrm-core/pull/10460))**
+- **[CRM-20475](https://issues.civicrm.org/jira/browse/CRM-20475) People
+ involved tab ([10438](https://github.com/civicrm/civicrm-core/pull/10438))**
-- **[CRM-20097](https://issues.civicrm.org/jira/browse/CRM-20097) Case action menu ([10288](https://github.com/civicrm/civicrm-core/pull/10288))**
+ The phone number for related contacts is now avaiable in the API.
-### CiviMail, Core CiviCRM
+- **[CRM-20097](https://issues.civicrm.org/jira/browse/CRM-20097) Case action
+ menu ([10288](https://github.com/civicrm/civicrm-core/pull/10288)) (unrelated
+ fixes)**
-- **[CRM-20600](https://issues.civicrm.org/jira/browse/CRM-20600) Expose AngularJS screens to hooks ([10085](https://github.com/civicrm/civicrm-core/pull/10085) and [10381](https://github.com/civicrm/civicrm-core/pull/10381))**
+ The Case API now has better handling for activities with multiple related
+ cases.
### CiviMail
-- **[CRM-20694](https://issues.civicrm.org/jira/browse/CRM-20694) CiviMail Report is missing Resubscribe Message ([10479](https://github.com/civicrm/civicrm-core/pull/10479))**
+- **[CRM-20309](https://issues.civicrm.org/jira/browse/CRM-20309) Ensure A/B
+ tests can be sent in parallel
+ ([10227](https://github.com/civicrm/civicrm-core/pull/10227))**
+
+ This change improves A/B testing where the test group is larger than the
+ mailer job size. In these cases, each mailer job is scheduled one second
+ after the prior one, ensuring that the first *A* job is followed by the first
+ *B* job, then the next *A* job, and so on.
-### CiviMail, NYSS
+- **[CRM-20370](https://issues.civicrm.org/jira/browse/CRM-20370) include
+ additional stats in mailing opened/click reports
+ ([10089](https://github.com/civicrm/civicrm-core/pull/10089))**
-- **[CRM-20370](https://issues.civicrm.org/jira/browse/CRM-20370) include additional stats in mailing opened/click reports ([10089](https://github.com/civicrm/civicrm-core/pull/10089))**
+ Open date and click date are now available as CiviMail reports.
-### CiviHR, Extension System, Joomla Integration
+### Drupal Integration
-- **[CRM-12059](https://issues.civicrm.org/jira/browse/CRM-12059) Support hook_civicrm_permissions on Joomla ([10344](https://github.com/civicrm/civicrm-core/pull/10344) and [43](https://github.com/civicrm/civicrm-joomla/pull/43))**
+- **[CRM-20462](https://issues.civicrm.org/jira/browse/CRM-20462) Add filter for
+ current employer in views
+ ([443](https://github.com/civicrm/civicrm-drupal/pull/443))**
-### Drupal Integration Modules
+ This feature is now available in Drupal 6.x for CiviCRM 4.7.x. It was
+ previously added for other Drupal-CiviCRM version combinations.
-- **[CRM-20462](https://issues.civicrm.org/jira/browse/CRM-20462) Add filter for current employer in views ([443](https://github.com/civicrm/civicrm-drupal/pull/443))**
+- **[CRM-20205](https://issues.civicrm.org/jira/browse/CRM-20205) Expose current
+ employer id to views
+ ([434](https://github.com/civicrm/civicrm-drupal/pull/434) and
+ [433](https://github.com/civicrm/civicrm-drupal/pull/433))**
-- **[CRM-20205](https://issues.civicrm.org/jira/browse/CRM-20205) Expose current employer id to views ([434](https://github.com/civicrm/civicrm-drupal/pull/434) and [433](https://github.com/civicrm/civicrm-drupal/pull/433))**
+ The current employer ID is now available as a display, contextual filter,
+ filter, and sort field in Views.
+
+### Joomla Integration
+
+- **[CRM-12059](https://issues.civicrm.org/jira/browse/CRM-12059) Support
+ hook_civicrm_permissions on Joomla
+ ([10344](https://github.com/civicrm/civicrm-core/pull/10344) and
+ [43](https://github.com/civicrm/civicrm-joomla/pull/43))**
+
+ CiviCRM permissions in Joomla can now be defined dynamically, allowing
+ extensions using `hook_civicrm_permissions` to work properly
## <a name="bugs"></a>Bugs resolved
### Core CiviCRM
-- **[CRM-20675](https://issues.civicrm.org/jira/browse/CRM-20675) Membership status update creates renewal activity ([10598](https://github.com/civicrm/civicrm-core/pull/10598))**
+- **[CRM-20642](https://issues.civicrm.org/jira/browse/CRM-20642) Show/Hide Case
+ activity toggle
+ ([10451](https://github.com/civicrm/civicrm-core/pull/10451)) (preliminary
+ work)**
+
+ This fixes a bug in the Activity.get API where filtering on null case, tag, or
+ file ID would yield inconsistent results.
+
+- **[CRM-20590](https://issues.civicrm.org/jira/browse/CRM-20590) Add pre and
+ post hook for EntityBatch
+ ([10366](https://github.com/civicrm/civicrm-core/pull/10366))**
+
+- **[CRM-20588](https://issues.civicrm.org/jira/browse/CRM-20588) Pre and Post
+ hook for Batch ([10364](https://github.com/civicrm/civicrm-core/pull/10364))**
+
+- **[CRM-20585](https://issues.civicrm.org/jira/browse/CRM-20585) Correct the
+ from and to accounts for deferred revenue transactions
+ ([10367](https://github.com/civicrm/civicrm-core/pull/10367))**
+
+ The from and to accounts for deferred revenue transactions were reversed. This
+ change corrects them moving forward, but it does not affect previously-created
+ transactions.
+
+- **[CRM-20768](https://issues.civicrm.org/jira/browse/CRM-20768) Web-based
+ installation should accept non-standard MySQL port
+ ([10555](https://github.com/civicrm/civicrm-core/pull/10555))**
+
+- **[CRM-20644](https://issues.civicrm.org/jira/browse/CRM-20644) Column names
+ on Advanced search results displayed on contacts are out of order.
+ ([10556](https://github.com/civicrm/civicrm-core/pull/10556))**
+
+- **[CRM-18408](https://issues.civicrm.org/jira/browse/CRM-18408) SMTP
+ connection via SSL and TLS in PHP 5.6
+ ([10329](https://github.com/civicrm/civicrm-core/pull/10329)) (preliminary
+ work)**
+
+ This loads a more recent build of `cacert.pem` for use on hosts which lack one.
-- **[CRM-20768](https://issues.civicrm.org/jira/browse/CRM-20768) Web-based installation should accept non-standard MySQL port ([10555](https://github.com/civicrm/civicrm-core/pull/10555))**
+- **[CRM-20556](https://issues.civicrm.org/jira/browse/CRM-20556) DataTables
+ warning on merge screen
+ ([10503](https://github.com/civicrm/civicrm-core/pull/10503))**
-- **[CRM-20644](https://issues.civicrm.org/jira/browse/CRM-20644) Column names on Advanced search results displayed on contacts are out of order. ([10556](https://github.com/civicrm/civicrm-core/pull/10556))**
+ This resolves a warning appearing on the duplicate contact merge listing
+ indicating that it could not reinitialize DataTable.
-- **(NFC) re add in animated-overlay.gif is no longer provided by jquery-ui ([10523](https://github.com/civicrm/civicrm-core/pull/10523))**
+- **[CRM-20672](https://issues.civicrm.org/jira/browse/CRM-20672) Related Fields
+ don't populate for relationships with contact type "All Contacts" when mapping
+ an export ([10456](https://github.com/civicrm/civicrm-core/pull/10456))**
-- **(NFC) Fix clearing messages to ensure test accuracy ([10525](https://github.com/civicrm/civicrm-core/pull/10525))**
+- **[CRM-20226](https://issues.civicrm.org/jira/browse/CRM-20226) Parent Group
+ do not inherit child group contacts
+ ([10428](https://github.com/civicrm/civicrm-core/pull/10428))**
-- **(NFC) Attribution Chirojeugd Vlaanderen ([10519](https://github.com/civicrm/civicrm-core/pull/10519))**
+ A bug was fixed where members of smart groups would not appear as members of
+ parent groups of the smart group.
-- **[CRM-18408](https://issues.civicrm.org/jira/browse/CRM-18408) SMTP connection via SSL and TLS in PHP 5.6 ([10329](https://github.com/civicrm/civicrm-core/pull/10329))**
+- **[CRM-20381](https://issues.civicrm.org/jira/browse/CRM-20381) Can't stop
+ geocoding on import
+ ([10181](https://github.com/civicrm/civicrm-core/pull/10181))**
-- **[CRM-8597](https://issues.civicrm.org/jira/browse/CRM-8597) PHP strict warning: Only variables should be assigned by reference. ([3](https://github.com/civicrm/civicrm-core/pull/3))**
+ This fixes a regression where imported contacts' addresses were geocoded
+ despite bypassing geocoding in the import settings.
-- **[CRM-20611](https://issues.civicrm.org/jira/browse/CRM-20611) Cancelling a line-item by changing fee selection of event, leads to incorrect financial records ([10390](https://github.com/civicrm/civicrm-core/pull/10390))**
+- **[CRM-20655](https://issues.civicrm.org/jira/browse/CRM-20655) Notice error
+ on batch listing
+ ([10436](https://github.com/civicrm/civicrm-core/pull/10436))**
-- **[CRM-20620](https://issues.civicrm.org/jira/browse/CRM-20620) Use batch api to retrieve all the batches ([10397](https://github.com/civicrm/civicrm-core/pull/10397))**
+- **Add help text to civicrm.settings.php re: DSNs containing quotes/backslashes
+ ([10437](https://github.com/civicrm/civicrm-core/pull/10437))**
-- **[CRM-20660](https://issues.civicrm.org/jira/browse/CRM-20660) Mail Summary Report showing same number for Total Opens and Unique Opens ([10443](https://github.com/civicrm/civicrm-core/pull/10443))**
+- **[CRM-20618](https://issues.civicrm.org/jira/browse/CRM-20618) Generate
+ contact image if contact id is present
+ ([10396](https://github.com/civicrm/civicrm-core/pull/10396))**
-- **[CRM-20556](https://issues.civicrm.org/jira/browse/CRM-20556) DataTables warning on merge screen ([10503](https://github.com/civicrm/civicrm-core/pull/10503))**
+ This prevents a contact image from being generated for a transaction unless
+ the transaction is actually related to a contact.
-- **[CRM-20718](https://issues.civicrm.org/jira/browse/CRM-20718) CiviCRM, Contribution page, when using the "On behalf of" Organisation Profile, fieldset title uses hardcoded "Organization Details" ([10499](https://github.com/civicrm/civicrm-core/pull/10499))**
+- **[CRM-20606](https://issues.civicrm.org/jira/browse/CRM-20606) Incorrect
+ state/province names for Austria
+ ([10391](https://github.com/civicrm/civicrm-core/pull/10391))**
-- **API allows creating multiple addresses same location type ([10510](https://github.com/civicrm/civicrm-core/pull/10510))**
+ Two states of Austria were missing umlauts.
-- **CRM 20672 - Fix access to fields for relationship with target type all contacts in export mapping ([10456](https://github.com/civicrm/civicrm-core/pull/10456))**
+- **[CRM-20589](https://issues.civicrm.org/jira/browse/CRM-20589) Warning on
+ Batch listing page
+ ([10365](https://github.com/civicrm/civicrm-core/pull/10365))**
-- **[CRM-20690](https://issues.civicrm.org/jira/browse/CRM-20690) No more than 25 Price Options listed ([10476](https://github.com/civicrm/civicrm-core/pull/10476))**
+- **Remove call to nonexistent method
+ ([10382](https://github.com/civicrm/civicrm-core/pull/10382))**
-- **There's a better way to say it than "poor man's". ([10500](https://github.com/civicrm/civicrm-core/pull/10500))**
+ A failure in Redis caching would call a nonexistent cache method.
-- **[CRM-20706](https://issues.civicrm.org/jira/browse/CRM-20706) Notice error on using Contribution.getfield API ([10484](https://github.com/civicrm/civicrm-core/pull/10484))**
+- **[CRM-20578](https://issues.civicrm.org/jira/browse/CRM-20578) Empty update
+ of Activity assignee/target results into DB error
+ ([10361](https://github.com/civicrm/civicrm-core/pull/10361))**
-- **[CRM-20651](https://issues.civicrm.org/jira/browse/CRM-20651) Change partial_amount_pay to partial_amount_to_pay for Partial Payment workflow ([10433](https://github.com/civicrm/civicrm-core/pull/10433))**
+- **[CRM-19896](https://issues.civicrm.org/jira/browse/CRM-19896)
+ customTranslateFunction not mapped in MagicMerge
+ ([9790](https://github.com/civicrm/civicrm-core/pull/9790))**
-- **[CRM-20226](https://issues.civicrm.org/jira/browse/CRM-20226) Parent Group do not inherit child group contacts ([10428](https://github.com/civicrm/civicrm-core/pull/10428))**
+- **[CRM-20740](https://issues.civicrm.org/jira/browse/CRM-20740) Api fails to
+ check on custom field is null in some cases
+ ([10512](https://github.com/civicrm/civicrm-core/pull/10512))**
-- **(NFC) Fix fileperms ([10470](https://github.com/civicrm/civicrm-core/pull/10470))**
+- **[CRM-19610](https://issues.civicrm.org/jira/browse/CRM-19610) Fatal when
+ creating InnoDB fts indexes
+ ([10453](https://github.com/civicrm/civicrm-core/pull/10453) and
+ [10491](https://github.com/civicrm/civicrm-core/pull/10491))**
-- **[CRM-20381](https://issues.civicrm.org/jira/browse/CRM-20381) Can't stop geocoding on import ([10181](https://github.com/civicrm/civicrm-core/pull/10181))**
+- **[CRM-20581](https://issues.civicrm.org/jira/browse/CRM-20581) Civi event
+ users do not have access to StateProvince entity via the API
+ ([10363](https://github.com/civicrm/civicrm-core/pull/10363))**
-- **4.7.20 rc ([10462](https://github.com/civicrm/civicrm-core/pull/10462))**
+ All contacts with "Access CiviCRM" permission now can access all states and
+ provinces.
-- **[CRM-20655](https://issues.civicrm.org/jira/browse/CRM-20655) Notice error on batch listing ([10436](https://github.com/civicrm/civicrm-core/pull/10436))**
+### CiviContribute
-- **Add help text to civicrm.settings.php re: DSNs containing quotes/backslashes ([10437](https://github.com/civicrm/civicrm-core/pull/10437))**
+- **[CRM-20253](https://issues.civicrm.org/jira/browse/CRM-20253) backend
+ contribution receipt sent when option not selected
+ ([10502](https://github.com/civicrm/civicrm-core/pull/10502),
+ [10509](https://github.com/civicrm/civicrm-core/pull/10509),
+ [10508](https://github.com/civicrm/civicrm-core/pull/10508), and
+ [10506](https://github.com/civicrm/civicrm-core/pull/10506))**
-- **method cannot be a protected static ([10404](https://github.com/civicrm/civicrm-core/pull/10404))**
+- **[CRM-20718](https://issues.civicrm.org/jira/browse/CRM-20718) CiviCRM,
+ Contribution page, when using the "On behalf of" Organisation Profile,
+ fieldset title uses hardcoded "Organization Details"
+ ([10499](https://github.com/civicrm/civicrm-core/pull/10499))**
-- **(NFC) Civi\API\Kernel - Add more docblocks ([10416](https://github.com/civicrm/civicrm-core/pull/10416))**
+ The on-behalf profile now uses the profile's name rather than "Organization
+ Details".
-- **[CRM-20618](https://issues.civicrm.org/jira/browse/CRM-20618) Generate contact image if contact id is present ([10396](https://github.com/civicrm/civicrm-core/pull/10396))**
+- **[CRM-20690](https://issues.civicrm.org/jira/browse/CRM-20690) No more than
+ 25 Price Options listed
+ ([10476](https://github.com/civicrm/civicrm-core/pull/10476))**
-- **[CRM-20606](https://issues.civicrm.org/jira/browse/CRM-20606) Incorrect state/province names for Austria ([10391](https://github.com/civicrm/civicrm-core/pull/10391))**
+ This displays all options on a price field rather than the first 25.
-- **[CRM-20613](https://issues.civicrm.org/jira/browse/CRM-20613) User deprecated function: Deprecated function for New Participant ([10392](https://github.com/civicrm/civicrm-core/pull/10392))**
+- **[CRM-20706](https://issues.civicrm.org/jira/browse/CRM-20706) Notice error
+ on using Contribution.getfield API
+ ([10484](https://github.com/civicrm/civicrm-core/pull/10484))**
-- **[CRM-20574](https://issues.civicrm.org/jira/browse/CRM-20574) Deprecated: Group=''. Name='cvv_backoffice_required'. ([10357](https://github.com/civicrm/civicrm-core/pull/10357))**
+- **[CRM-20574](https://issues.civicrm.org/jira/browse/CRM-20574) Deprecated:
+ Group=''. Name='cvv_backoffice_required'.
+ ([10357](https://github.com/civicrm/civicrm-core/pull/10357))**
-- **[CRM-20589](https://issues.civicrm.org/jira/browse/CRM-20589) Warning on Batch listing page ([10365](https://github.com/civicrm/civicrm-core/pull/10365))**
+- **[CRM-20516](https://issues.civicrm.org/jira/browse/CRM-20516) Card type
+ widget appears on front end when a different processor selected
+ ([10375](https://github.com/civicrm/civicrm-core/pull/10375))**
-- **Remove call to nonexistent method ([10382](https://github.com/civicrm/civicrm-core/pull/10382))**
+- **[CRM-20564](https://issues.civicrm.org/jira/browse/CRM-20564) custom date
+ fields in on-behalf-of forms broken
+ ([10354](https://github.com/civicrm/civicrm-core/pull/10354))**
-- **[CRM-20612](https://issues.civicrm.org/jira/browse/CRM-20612) Error: undefined function config() when installing on Backdrop ([10389](https://github.com/civicrm/civicrm-core/pull/10389))**
+- **[CRM-20747](https://issues.civicrm.org/jira/browse/CRM-20747)
+ `{contribution.campaign}` token not working on Contribution ThankYou letter
+ ([10575](https://github.com/civicrm/civicrm-core/pull/10575))**
-- **Surface errors from API calls to user on status page. ([10380](https://github.com/civicrm/civicrm-core/pull/10380))**
+- **[CRM-20678](https://issues.civicrm.org/jira/browse/CRM-20678)
+ Repeattransaction produces contribution in default currency - instead of the
+ series' currency
+ ([10490](https://github.com/civicrm/civicrm-core/pull/10490))**
-- **[CRM-20516](https://issues.civicrm.org/jira/browse/CRM-20516) Card type widget appears on front end when a different processor selected ([10375](https://github.com/civicrm/civicrm-core/pull/10375))**
+- **[CRM-19963](https://issues.civicrm.org/jira/browse/CRM-19963) Paypal Express
+ not working in German
+ ([9779](https://github.com/civicrm/civicrm-core/pull/9779))**
-- **[CRM-20562](https://issues.civicrm.org/jira/browse/CRM-20562) Wrong Activities created during participant registration via completetransaction. ([10362](https://github.com/civicrm/civicrm-core/pull/10362))**
+ Various conditions were conditional upon the locally-translated label of
+ PayPal rather than the fixed name.
-- **[CRM-20578](https://issues.civicrm.org/jira/browse/CRM-20578) Empty update of Activity assignee/target results into DB error ([10361](https://github.com/civicrm/civicrm-core/pull/10361))**
+### CiviEvent
-- **[CRM-20564](https://issues.civicrm.org/jira/browse/CRM-20564) custom date fields in on-behalf-of forms broken ([10354](https://github.com/civicrm/civicrm-core/pull/10354))**
+- **[CRM-20611](https://issues.civicrm.org/jira/browse/CRM-20611) Cancelling a
+ line-item by changing fee selection of event, leads to incorrect financial
+ records ([10390](https://github.com/civicrm/civicrm-core/pull/10390))**
-- **Improve Views checkbox value handling ([449](https://github.com/civicrm/civicrm-drupal/pull/449))**
+- **method cannot be a protected static
+ ([10404](https://github.com/civicrm/civicrm-core/pull/10404))**
-- **Fix passing null object ([452](https://github.com/civicrm/civicrm-drupal/pull/452))**
+ The method CRM_Event_Form_Registration_Register::getRegistrationContactID was
+ marked as protected, even though it was called from
+ CRM_Event_Form_Registration_AdditionalParticipant.
-- **Improve Views checkbox value handling ([448](https://github.com/civicrm/civicrm-drupal/pull/448))**
+- **[CRM-20613](https://issues.civicrm.org/jira/browse/CRM-20613) User
+ deprecated function: Deprecated function for New Participant
+ ([10392](https://github.com/civicrm/civicrm-core/pull/10392))**
-- **Legacy function param cleanup ([30](https://github.com/civicrm/civicrm-backdrop/pull/30))**
+ This avoids notices when creating new participants from the backend.
-- **Remove Net_SMTP and Net_Socket files as they are now provided through… ([186](https://github.com/civicrm/civicrm-packages/pull/186))**
+- **[CRM-20562](https://issues.civicrm.org/jira/browse/CRM-20562) Wrong
+ Activities created during participant registration via completetransaction.
+ ([10362](https://github.com/civicrm/civicrm-core/pull/10362))**
### CiviMail
-- **[CRM-20789](https://issues.civicrm.org/jira/browse/CRM-20789) Unsubscribing from an AB test does not work in 4.7.21 ([10583](https://github.com/civicrm/civicrm-core/pull/10583))**
+- **[CRM-20694](https://issues.civicrm.org/jira/browse/CRM-20694) CiviMail
+ Report is missing Resubscribe Message
+ ([10479](https://github.com/civicrm/civicrm-core/pull/10479))**
-### CiviContribute, CiviMail
+- **[CRM-20660](https://issues.civicrm.org/jira/browse/CRM-20660) Mail Summary
+ Report showing same number for Total Opens and Unique Opens
+ ([10443](https://github.com/civicrm/civicrm-core/pull/10443))**
-- **[CRM-20747](https://issues.civicrm.org/jira/browse/CRM-20747) {contribution.campaign} token not working on Contribution ThankYou letter ([10575](https://github.com/civicrm/civicrm-core/pull/10575))**
+ This resolves a problem where the Total Opens count was only querying
+ `DISTINCT` open results.
-### Drupal Integration Modules
+- **[CRM-20789](https://issues.civicrm.org/jira/browse/CRM-20789) Unsubscribing
+ from an AB test does not work in 4.7.21
+ ([10583](https://github.com/civicrm/civicrm-core/pull/10583))**
-- **[CRM-19303](https://issues.civicrm.org/jira/browse/CRM-19303) CKEditor configuration can't be edited on a Drupal multisite installation ([10577](https://github.com/civicrm/civicrm-core/pull/10577) and [10511](https://github.com/civicrm/civicrm-core/pull/10511))**
+### CiviMember
-### Internationalisation
+- **[CRM-20675](https://issues.civicrm.org/jira/browse/CRM-20675) Membership
+ status update creates renewal activity
+ ([10598](https://github.com/civicrm/civicrm-core/pull/10598))**
-- **[CRM-19896](https://issues.civicrm.org/jira/browse/CRM-19896) customTranslateFunction not mapped in MagicMerge ([9790](https://github.com/civicrm/civicrm-core/pull/9790))**
+### Backdrop Integration
-### CiviCRM API
+- **[CRM-20612](https://issues.civicrm.org/jira/browse/CRM-20612) Error:
+ undefined function config() when installing on Backdrop
+ ([10389](https://github.com/civicrm/civicrm-core/pull/10389))**
-- **[CRM-20740](https://issues.civicrm.org/jira/browse/CRM-20740) Api fails to check on custom field is null in some cases ([10512](https://github.com/civicrm/civicrm-core/pull/10512))**
+### Drupal Integration
-### CiviContribute
+- **[CRM-20698](https://issues.civicrm.org/jira/browse/CRM-20698) Make
+ "disabled" table rows appear greyed-out
+ ([10481](https://github.com/civicrm/civicrm-core/pull/10481))**
-- **[CRM-20253](https://issues.civicrm.org/jira/browse/CRM-20253) backend contribution receipt sent when option not selected ([10502](https://github.com/civicrm/civicrm-core/pull/10502), [10509](https://github.com/civicrm/civicrm-core/pull/10509), [10508](https://github.com/civicrm/civicrm-core/pull/10508), and [10506](https://github.com/civicrm/civicrm-core/pull/10506))**
+ CSS in the Seven theme conflicts with CiviCRM's CSS, preventing rows of
+ disabled records from having grey text.
-- **[CRM-20678](https://issues.civicrm.org/jira/browse/CRM-20678) Repeattransaction produces contribution in default currency - instead of the series' currency ([10490](https://github.com/civicrm/civicrm-core/pull/10490))**
+- **Improve Views checkbox value handling
+ ([448](https://github.com/civicrm/civicrm-drupal/pull/448) and
+ [449](https://github.com/civicrm/civicrm-drupal/pull/449))**
-- **[CRM-19963](https://issues.civicrm.org/jira/browse/CRM-19963) Paypal Express not working in German ([9779](https://github.com/civicrm/civicrm-core/pull/9779))**
+- **[CRM-19303](https://issues.civicrm.org/jira/browse/CRM-19303) CKEditor
+ configuration can't be edited on a Drupal multisite installation
+ ([10577](https://github.com/civicrm/civicrm-core/pull/10577) and
+ [10511](https://github.com/civicrm/civicrm-core/pull/10511))**
-### Core CiviCRM, NYSS
+## <a name="misc"></a>Miscellany
-- **[CRM-19610](https://issues.civicrm.org/jira/browse/CRM-19610) Fatal when creating InnoDB fts indexes ([10453](https://github.com/civicrm/civicrm-core/pull/10453) and [10491](https://github.com/civicrm/civicrm-core/pull/10491))**
+- **[CRM-20744](https://issues.civicrm.org/jira/browse/CRM-20744) Use
+ bower_compoents images for datatable rather than packages
+ ([10520](https://github.com/civicrm/civicrm-core/pull/10520))**
-### CiviEvent
+- **[CRM-20561](https://issues.civicrm.org/jira/browse/CRM-20561) Load
+ Net_SMTP, Auth_SASL, Net_Socket via Composer
+ ([10384](https://github.com/civicrm/civicrm-core/pull/10384),
+ [3](https://github.com/seamuslee001/civicrm-core/pull/3),
+ [4](https://github.com/seamuslee001/civicrm-core/pull/4),
+ [10385](https://github.com/civicrm/civicrm-core/pull/10385),
+ [185](https://github.com/civicrm/civicrm-packages/pull/185), and
+ [186](https://github.com/civicrm/civicrm-packages/pull/186))**
+
+- **[CRM-20687](https://issues.civicrm.org/jira/browse/CRM-20687) Issue numbers
+ used as variables
+ ([10473](https://github.com/civicrm/civicrm-core/pull/10473))**
+
+- **(NFC) re add in animated-overlay.gif is no longer provided by jquery-ui
+ ([10523](https://github.com/civicrm/civicrm-core/pull/10523))**
+
+- **(NFC) Fix clearing messages to ensure test accuracy
+ ([10525](https://github.com/civicrm/civicrm-core/pull/10525))**
+
+- **(NFC) Attribution Chirojeugd Vlaanderen
+ ([10519](https://github.com/civicrm/civicrm-core/pull/10519))**
+
+- **[CRM-20620](https://issues.civicrm.org/jira/browse/CRM-20620) Use batch api
+ to retrieve all the batches
+ ([10397](https://github.com/civicrm/civicrm-core/pull/10397))**
+
+ When retrieving the list of transaction batches, the BAO now uses the API
+ rather than a direct SQL query.
+
+- **API allows creating multiple addresses same location type
+ ([10510](https://github.com/civicrm/civicrm-core/pull/10510))**
+
+ This adds a test to confirm that two addresses with the same location type
+ *can* be added in APIv3, even though it is not the desired behavior in the
+ form layer or APIv4.
+
+- **There's a better way to say it than "poor man's".
+ ([10500](https://github.com/civicrm/civicrm-core/pull/10500))**
+
+ Various comments referring to a "poor man's" version of something have been
+ modified to be more specific. Many contain implicit references to the Drupal
+ module [poormanscron](https://www.drupal.org/project/poormanscron), which has
+ less to do with poverty or masculinity than checking periodically for the
+ duration since the previous run of a task.
+
+- **[CRM-20651](https://issues.civicrm.org/jira/browse/CRM-20651) Change
+ partial_amount_pay to partial_amount_to_pay for Partial Payment workflow
+ ([10433](https://github.com/civicrm/civicrm-core/pull/10433))**
+
+- **(NFC) Civi\API\Kernel - Add more docblocks
+ ([10416](https://github.com/civicrm/civicrm-core/pull/10416))**
+
+- **Fix passing null object
+ ([452](https://github.com/civicrm/civicrm-drupal/pull/452))**
-- **[CRM-20581](https://issues.civicrm.org/jira/browse/CRM-20581) Civi event users do not have access to StateProvince entity via the API ([10363](https://github.com/civicrm/civicrm-core/pull/10363))**
+- **Legacy function param cleanup
+ ([30](https://github.com/civicrm/civicrm-backdrop/pull/30))**
## <a name="credits"></a>Credits
This release was developed by the following code authors:
-Agileware - Agileware Team; Arkadiusz Rzadkowolski; Australian Greens - Seamus Lee; Blackfly Solutions - Alan Dixon; British Humanist Association - Andrew West; chrisfromredfin; Circle Interactive - Dave Jenkins; CiviCRM - Coleman Watts, Tim Otten; CiviDesk - Yashodha Chaku; CompuCorp - Camilo Rodriguez, Michael Devery; Coop SymbioTIC - Mathieu Lutfy; devarun; Effy Elden; elisseck; Francesc Bassas i Bullich; Freeform Solutions - Herb van den Dool; Fuzion - Chris Burgess, Eileen McNaughton, Jitendra Purohit; Ginkgo Street Labs - Frank Gómez; JMA Consulting - Monish Deb, Pradeep Nayak; Joinery - Allen Shaw; Jon Goldberg; Lemniscus - Noah Miller; Lighthouse Design and Consulting - Brian Shaughnessy; Oxfam Germany - Thomas Schüttler; Progressive Technology Project - Jamie McClelland; Romain Thouvenin; Sean Madsen; Systopia - Björn Endres; Web Access - Kurund Jalmi; Wikimedia Foundation - Eileen McNaughton
+Agileware - Agileware Team; Arkadiusz Rzadkowolski; Arun Singh; Australian
+Greens - Seamus Lee; Blackfly Solutions - Alan Dixon; British Humanist
+Association - Andrew West; Circle Interactive - Dave Jenkins; CiviCRM - Coleman
+Watts, Tim Otten; CiviDesk - Yashodha Chaku; CompuCorp - Camilo Rodriguez,
+Michael Devery; Coop SymbioTIC - Mathieu Lutfy; Effy Elden; Eli Lisseck;
+Francesc Bassas i Bullich; Freeform Solutions - Herb van den Dool; Fuzion -
+Chris Burgess, Eileen McNaughton, Jitendra Purohit; Ginkgo Street Labs - Frank
+Gómez; JMA Consulting - Monish Deb, Pradeep Nayak; Joinery - Allen Shaw; Jon
+Goldberg; Lemniscus - Noah Miller; Lighthouse Design and Consulting - Brian
+Shaughnessy; Oxfam Germany - Thomas Schüttler; Progressive Technology Project -
+Jamie McClelland; Redfin Solutions - Chris Wells; Romain Thouvenin; Sean Madsen;
+Systopia - Björn Endres; Web Access - Kurund Jalmi; Wikimedia Foundation -
+Eileen McNaughton
Most authors also reviewed code for this release; in addition, the following
reviewers contributed their comments:
-Agileware - Agileware Team; alainb; Alcohol Justice - Bruce Wolfe; alexmarketaccess; Arkadiusz Rzadkowolski; aruns6578; Australian Greens - Seamus Lee; axon-obriend; Blackfly Solutions - Alan Dixon; Bob Silvern; British Humanist Association - Andrew West; Circle Interactive - Dave Jenkins, Martin Castle; civicrm-builder; CiviCRM - Coleman Watts, Tim Otten; CiviDesk - Nicolas Ganivet, Yashodha Chaku; CiviHosting - Hershel Robinson; clarkac; CompuCorp - Guanhuan Chen, Michael Devery, Mirela Stanila; Coop SymbioTIC - Mathieu Lutfy; devarun; dvhirst; Effy Elden; elisseck; fabian (systopia); fabian_SYSTOPIA; Francesc Bassas i Bullich; Freeform Solutions - Herb van den Dool; Fuzion - Chris Burgess, Eileen McNaughton, Jitendra Purohit, Peter Davis; Ginkgo Street Labs - Frank Gómez; JMA Consulting - Joe Murray, Monish Deb, Pradeep Nayak; Joanne Chester; Johan Vervloet; Joinery - Allen Shaw; Jon Goldberg; Korlon - Stuart Gaston; Lighthouse Design and Consulting - Brian Shaughnessy; MC3 - Graham Mitchell; Michal Mach; Milton Zurita; Miya27; MJW Consulting - Matthew Wire; Nubay Services - David Tarrant; Oxfam Germany - Thomas Schüttler; pillarsdotnet; Progressive Technology Project - Jamie McClelland; Redfin Solutions - Chris Wells; Registered Nurses' Association of Ontario - Thomas Mannell; Richard van Oosterhout; rohan; Romain Thouvenin; Sean Madsen; Semper IT - Karin Gerritsen; sixfootjames; Skvare - Mark Hanna; Systopia - Björn Endres; tttp; wdecraene; Wikimedia Foundation - Eileen McNaughton; xavier
\ No newline at end of file
+Alcohol Justice - Bruce Wolfe; Alex Block; Andy Clarke; Blackfly Solutions -
+Alan Dixon; Bob Silvern; Bob Vincent; Business & Code - Alain Benbassat; Circle
+Interactive - Martin Castle; CiviDesk - Nicolas Ganivet; CiviHosting - Hershel
+Robinson; CompuCorp - Guanhuan Chen, Mirela Stanila; Donald Hirst; Fuzion -
+Peter Davis; Ginkgo Street Labs - Dan O'Brien; James van der Hoven; JMA
+Consulting - Joe Murray; Joanne Chester; Johan Vervloet; Korlon - Stuart Gaston;
+MC3 - Graham Mitchell; Michal Mach; Milton Zurita; MJW Consulting - Matthew
+Wire; Nubay Services - David Tarrant; Registered Nurses' Association of Ontario -
+Thomas Mannell; Richard van Oosterhout; Semper IT - Karin Gerritsen; Skvare -
+Mark Hanna; Systopia - Fabian Schuttenberg; Tech To The People - Xavier Dutoit;
+Web Access - Rohan Chavan; Wim De Craene