Skip to content

Latest commit

 

History

History
949 lines (644 loc) · 36.6 KB

5.47.0.md

File metadata and controls

949 lines (644 loc) · 36.6 KB

CiviCRM 5.47.0

Released March 4, 2022

Synopsis

Does this version...?
Fix security vulnerabilities? no
Change the database schema? yes
Alter the API? yes
Require attention to configuration options? no
Fix problems installing or upgrading to a previous version? no
Introduce features? yes
Fix bugs? yes

Features

Core CiviCRM

  • Add created_date & modified_date to civicrm_relationship (22480)

    Adds created_date & modified_date to the civicrm_relationship table.

  • Add option to display money tokens without formatting (22548)

    Adds an option to display money tokens without formatting.

  • SearchKit - Improve field/operator/value selection UI (22604)

    Improves the SearchKit UI for selecting field/operator/value conditions. Affects various parts of the UI, like css conditions, link conditions, where/on/having clauses, etc.

  • SearchKit - Support operators in conditional css rules (22552)

    Allows operators other than = in SearchKit conditional style rules.

  • SearchKit - Allow Smarty in field rewrite (22592)

    Gives the ability to use Smarty syntax in the "rewrite" of SearchKit displays.

  • SearchKit: Relationship Description unavailable (dev/core#3019: 22606)

    Exposes relationship description, created/modified_date & permissions fields in SearchKit.

  • SearchKit - add/remove tags action for all taggable entities (21865)

    Adds a new angular-based action to SearchKit for bulk adding/removing tags from contacts, cases, activities, etc.

  • SearchKit - Support conditional links (22557)

    Adds an advanced feature to conditionally show/hide links in a links/buttons/menu column, based on user permissions or row values.

  • SearchKit - Update operator labels (22554)

    Updates SearchKit labels to hopefully better describe ReGex.

  • SearchKit - Enable joins for custom fields and option groups (22355)

    Enables SearchKit to join custom groups to custom fields, and option groups to option values.

  • APIv4 - Add SubscriptionHistory entity (22435)

    Adds a SubscriptionHistory entity to APIv4.

  • APIv4 - Make Permission 'group' discoverable in API Explorer (22559)

    Makes group options for the Permission API discoverable.

  • Improve field accessibility in legacycustomsearches (22710)

    Improves accessibility of legacy custom searches.

  • Expose a REST end-point through standard routing (Work Towards dev/core#2077: 19727 and 22058)

    Makes 'civicrm/ajax/rest' interoperable with 'extern/rest.php' parameters and adds an AuthX configuration screen.

  • Define more usable queue DX for multithreaded background work (Work Towards dev/core#1304: 22324 and 22657)

    Adds a high-level queue tracking table and updates the programmatic APIs to make it easier to work with persistent queues.

  • Civi::pipe - Add support for background worker-processes with JSON pipes (22262)

    Add an entry-point for external scripts to send multiple API calls to a CiviCRM worker-process - while only bootstrapping one time.

  • Expose email on hold as filter for reports (Work towards dev/core#3012: 22368 and 22572)

    Exposes email on hold as filter on contribution reports.

  • Extensions - Add dependency status check (22464)

    Adds a system status check to ensure extension dependencies are met, and warn the admin of missing dependencies.

  • Add metadata so Activity Created Date is available in Form Builder (22320)

    Makes the Activity Created date available in Form Builder.

  • Move permission access handling for civicrm/admin/financial/financialType?reset=1 to extension (22685 and 22499)

    Moves permission access handling for civicrm/admin/financial/financialType?reset=1 to extension.

  • Add setting "format_locale" (dev/core#3095: 22885)

    Adds a new setting, "Formatting Locale", which specifies that dates and numbers should formatted according to designated localization rules. This setting may be useful for a locale (eg en_NZ) whose language closely resembles another (eg en_US) but which has a different currency.

CiviContribute

  • Why are unique labels for price fields required? (dev/event#66: 22508)

    Makes it so duplicate price field labels are allowed.

  • Use tokens in offline contribution receipt (new installs) (22560)

    Use tokens instead of Smarty Variables in the offline contribution receipt template for new installs.

CiviEvent

  • Event Registration: allow default Price Set values from the URL (22313)

    Makes it so one can set the default price field on event registration forms using URL parameters.

  • Account for time zone on event registration pages (dev/core#2122: 22620, 22622, 20476, 22619, 22645 and 22644)

    Adds timezone support for events.

  • updating misleading labels on buttons to confirmation pages (dev/core#1613: 20251)

    Changes the event registration button text based on if there are additional participants.

CiviGrant

  • CiviGrant - Use SearchKit for contact summary tab (22467)

    switches the Grants tab on the contact summary page to use a SearchKit Display. It looks nearly identical before and after, but is now easily customizable via the SearchKit & Form-Builder GUI.

  • Migrate CiviGrant component to an extension (22064)

    Moves the CiviGrant component to an extension.

CiviMail

  • Start phasing out 'preferred_mail_format' (Work towards dev/core#2866: 22634 and 22632)

    Generates text version of message at send time if one is not present.

WordPress Integration

  • wp-cli/civicrm.php - Add 'civicrm pipe' subcommand (270)

    Adds support for subcommand wp civicrm pipe.

Bugs resolved

Core CiviCRM

  • Only format Smarty aliases as money if specified (22547)

  • Avoid PHP notices on activity form (22666)

  • Fix typo preventing uninstalling ckeditor4 (22691)

  • Fix return values for APIv3 Job.delete (22561)

  • enforce required fields on Contact.duplicatecheck (22741)

  • APIv4 SortableEntity - Fix sorting custom fields with option groups (22716)

  • APIv4 - Correctly return date-only custom field values without the time (22649)

  • APIv4 - Use empty string instead of 'null' to pass null values to the db (22587)

  • APIv4 - Fix incorrect placement of decodeRows in loop (22413)

  • SearchKit: In-place edit for custom dropdown field - can't blank it out (dev/report#92: 22358)

  • Minor SearchKit UI filtering annoyance (dev/core#3032: 22505)

  • SearchKit - Fix selecting operators and values in clauses (22653)

  • SearchKit - Refresh contents after saving a popup when in a block/tab (22809)

  • Don't throw PHP notice when rendering dedupefind template. (22709)

  • Enotice fixes with datepicker (22705)

  • Enotice fix with priceset template (22708)

  • Enotice fixes (22697)

  • Enotice fix (22436)

  • Enotice fixes (22471)

  • CustomGroup - Ensure 'name' is always unique (22675)

  • Another set of PHPdoc corrections (22658)

  • Fix batch summary to use the api (22618)

  • Fix Smarty notices in footer files (22613)

  • Remove use of .font-size11pt and .font-size12pt (22314)

  • Don't pass redundent empty strings when instantiating CRM_Core_ShowHideBlocks (22605)

  • Fix call to log method warn (should be warning) (22602)

  • tpl notices and docblocks (22449)

  • Ensure assigned Smarty array has empty keys (not no keys) (22379)

  • Stop calling hook twice (22404)

  • Activity Details field on batch update via profile has wrong fieldname (22568)

  • Re-fix enotice on searchType to work with default modifiers (22466)

  • Unable to add new custom field set or new fields (to existing field set) after enabling multilingual setting. (dev/translation#38: 22647)

  • System.check permissions changed in Civi 5.46 (dev/core#3055: 22733)

    Fixes the dedupe check to not require elevated permissions.

  • Search Builder crashes if you have admin access and CiviGrant is not enabled (dev/core#3056: 22714)

  • CiviGrant info.xml update missing from 5.47 and CRM_Utils_VersioncheckTest::testGetSiteStats should have been failing for a while (dev/core#3057: 22717)

  • Regression - fatal error when viewing custom fields with money > 1000 (dev/core#3059: 22727)

  • Fix broken function reference (22474)

  • Use rolling window for translating 2-digit years into 4-digit years (22581)

    Fixes outdated hard-coded import logic: translates 2-digit years to 4 using rolling -95yr to +5yr window

  • Rationalise relationship validation (22491)

  • Stop calling confusing function that doesn't do much ..... (22468)

  • Navigation - Make required fields NOT NULL (22430)

  • Fight back against copy & paste gone wild (22417)

CiviCampaign

CiviCase

  • CiviCase - Denote created_date as readonly (22608)

  • Remove category from case activity template (22530)

    Remove category from case activity template to fix e-notices.

CiviContribute

  • Fix ContributionRecur.payment_processor_id pseudoconstant (22750)

  • Manage Contribution page, the link to "Online Contribution (Test-drive)" is an admin-only URL to register in the backend, should be a frontend URL (22672)

  • Avoid PHP notice on 'Manage Contribution Pages' screen (22661)

  • PCP is still active after contribution page is disabled. (dev/core#899: 20845)

  • don't allow multiple currencies in a batch (20884)

  • Foreign constraint violation on APIv3 contribution create if financial_type_id is numeric (dev/core#3063: 22740)

  • Error cancelling a contribution if CiviPledge is disabled (dev/core#3066: 22779)

  • Import of contribution fails when invalid campaign ID is provided (dev/core#2989: 22235)

  • Simplify getting contact_id from recurring contribution when generating subscription URLs (22448)

  • Fix Fatal Error on contribution tab and user dashboard when recurring payment generated using extension get disabled (22264)

CiviEvent

  • CiviCRM Event, the link to "On-line Registration (Test Drive)" is an admin-only URL to register in the backend, should be a frontend URL (22669)

  • Set default values to avoid notices when rendering (event templates screen) (22663)

CiviGrant

  • Fix Grant::retrieve to meet full phpcs standard (22558)

  • CiviGrant - Fix installation of dependencies during upgrade (22881)

  • CiviGrant - Menu appears twice (dev/core#3087: 22855)

  • CiviGrant - Don't return grant fields as contact fields (dev/core#3069: 22851)

  • CiviGrant - Declare API permissions (22791)

CiviMail

  • Editing a mailing triggers two autosaves instead of one (dev/core#2587: 20561)

  • MailingEventQueue - Use consistent CamelCaseName. Prevent conflicts. (22343)

  • add contact_id to email params in emailLetter function (22538)

  • Fix syntax error in CRM_Mailing_Event_BAO_Reply (22453)

  • Smarty notice fix on Email help (22470)

  • CiviMail - Fix undeclared Javascript variables (22879)

CiviMember

  • Fix spelling mistake in function name, addMembershipToRealtedContacts should be addMembershipToRelatedContacts (22673)

  • Fix Smarty notices in membership dashboard (22660)

  • Don't default membership type create to inactive (22498)

WordPress Integration

  • 404 Error when I use the APIv4 with WordPress Multisite -> because no "do not delete" post was generated for the subsite (dev/wordpress#59: 271)

Miscellany

  • Move permission checks from Query & BAO to financialacl extension (22495)

  • Add billingStateProvince and standardized property names (21583)

  • Extensions - Revise prose for status check (22638)

  • Add type to phpdoc comment for report statistic function (22514)

  • Update phpdoc references to $self to include type (22513)

  • Improve method phpdoc for CRM_Utils_System (22492)

  • Run 'full Drupal strictness' standard over api/v3/examples (22528)

  • Run stricter phpcs on Civi dir (22527)

  • Fixes to spaces from phpcs (22535)

  • Various phpdoc fixes (22509)

  • Clarify contents of ids for further fixes (22402)

  • Replace all isset checks on line.tax_rate (22421)

  • Move function to the class that 'owns' it (22472)

  • PHPCS standards on css.... (22529)

  • More comments & style fixes (22533)

  • Re-run regen (22536)

  • Add consistency between checkTemplateFileExists functions, (22586)

  • Increase GroupContact:create deprecation (22416)

  • APIv4 - Docblock updates, mark BAO::create functions deprecated (22415)

  • DAO - Centralize logic to derive unique name from label (22570)

  • Pass remove-by-reference (22593)

  • Mark function as private (22457)

  • Stop returning unused parameters (22410)

  • Duplicate function from deprecated utils onto calling classes & remove (22481)

  • Fix phpdoc types for $_query in CRM_Core_Selector_Base subclasses (22424)

  • Correctly document types for class consts (22659)

  • Make phpType definitions in generated DAO objects more accurate. (22607)

  • Ensure all APIv3 functions have documented types (22674)

  • CRM_Core_Component (et al) - Deprecate unused functions (22566)

  • Move deprecated function back to the only class that calls it (22517)

  • Fix PHP comments (22526)

  • A whole bunch of phpdoc fixes (22454)

  • Another set of PHPDoc fixes (22522)

  • Fix more phpdoc comments in member links functions (22521)

  • Fix PHP comments (22515)

  • Merge function back into parent function (22516)

  • Simplify variables pass in & out of function (22439)

  • Clean up input and outputs (22440)

  • Tidy CRM_Report_Page_Options code (22432)

  • Refactor buildPremiumPreviewBlock function to make intended usage clearer (22541)

  • Fix class references in phpdoc comments (22434)

  • Contact BAO - Deprecate unused function (22610)

  • report cleanup - no functional change (22611)

  • Split View Relationship tpl ito own file (22617)

  • Fix inaccuracy in docblock for method calculateBaseScheduleDate (22631)

  • Resolve inaccuracies in CRM_Core_BAO_File::attachmentInfo docblock (22629)

  • Tidy up functions related to printing. (22601)

  • Do not pass in tablename (22625)

  • More phpcbs code cleanups (22551)

  • Resolve docblock inaccuracy in CRM_Contribute_Form_Task_TaskTrait (22646)

  • Contributor key: Add Ian Wilson (22781)

  • Bump follow-redirects from 1.11.0 to 1.14.7 (22696)

  • Bump engine.io from 4.1.1 to 4.1.2 (22695)

  • Bump ansi-regex from 5.0.0 to 5.0.1 (22693)

  • Bump log4js from 6.3.0 to 6.4.1 (22694)

  • Update composer.json for composer 2.2 allow-plugins (22692)

  • Follow up fn removal (22556)

  • Fully remove contactAB function (22485)

  • Remove support for deprecated key (22443)

  • Remove duplicate file (22569)

  • Remove obsolete scripts (22549)

  • Remove method getWordReplacement. (22577)

  • Remove unused variable (22545)

  • Remove some old scripts (22534)

  • Remove handling for impossible array (22494)

  • Remove obsolete postIPN script (22550)

  • Remove / deprecate case param handling (22420)

  • Remove useless function (22585)

  • Remove param default (22590)

  • Remove htmlFile validation rule, as it can't possibly work. (22425)

  • Remove broken script (22473)

  • Remove unreachable else (22406)

  • Remove & deprecate silly function (22456)

  • Remove always-true-if (22486)

  • Remove seemingly unreachable help text (22469)

  • Remove unused variable (22462)

  • Remove IF that only loops through one value (22455)

  • Remove if & foreach that no longer do anything (22447)

  • Remove call to PHP 4 function (22446)

  • Remove empty check (22444)

  • Remove unreachable, nonsensical code (22518)

  • Remove deprecated code (22411)

  • Remove check for contact_check as it is always an array here (22407)

  • Remove unreachable code (22594)

  • Remove unnecessary pass-by-ref (22397)

  • Remove always-true IF (22399)

  • Remove deprecated language construct (22627)

  • Remove isset from online contribution receipt (22615)

  • Remove unused invalidProfiles variable, and simplify template. (22704)

  • (REF) Switch to using new CRM_Core_Component::isEnabled() (22687)

  • (REF) Remove unused variable (22398)

  • (REF) Tidy up group.tpl (22668)

  • (REF) Switch OptionGroup BAO to use new centralized logic to make name from title (22654)

  • (REF) Rename variable to be meaningful (22431)

  • (REF) Improve APIv4 save functions (22403)

  • (REF) CRM_Core_Resources - Limit visibility of getEntityRefMetadata (22511)

  • (REF) ContactUtils - Rename local variables (22510)

  • (REF) CoreResources - Simplify disabled component check (22506)

  • (REF) Remove constructors that do nothing (22544)

  • (REF) Extract function CRM_Core_Component::isEnabled() (22567)

  • (REF) SearchKit docblock cleanup (22603)

  • (REF) SearchKit - Function extraction (22598)

  • (REF) SearchKit - Simplify import/export popup code (22507)

  • (REF) Upgrade jQuery UI to 1.13.0 (22576)

  • (REF) Components - Use extracted function (22573)

  • (REF) SavedSearch - Deprecate/remove redundant/unused functions (22542)

  • (REF) Use CRM_Contact_BAO_ContactType::basicTypes() (22520)

  • (REF) Remove unused _colours property (22525)

  • (REF) Tidy up formatting in gotv.tpl, remove extra (22433)

  • (REF) Stop returning unused variables (22401)

  • (REF) Centralize BAO handling of custom data (22426)

  • (REF) Remove handling for no organization being passed (22395)

  • (REF) APIv4 - Rename trait 'SoftDelete' to 'SoftDeleteEntity' (22662)

  • (REF) Cleanup Contact BAO variables (22609)

  • (REF) Queues - Expand docblocks. Extract SQL trait. (22681)

  • (REF) APIv4 - Deprecate and stop using PreSaveSubscriber (22648)

  • (REF) CustomField Admin - Decouple page code from form code (22519)

  • (NFC) Fix typo in docblock (22409)

  • (NFC) Tidy up phpdoc in CRM_Utils_QueryFormatter (22423)

  • (NFC) Update test example template and regenerate examples (22531)

  • (NFC) Correct type hints for bad null default values (22600)

  • (NFC) Minor phpdoc fixes to CRM_Mailing_Event_BAO_Unsubscribe::send_unsub_response (22574)

  • (NFC) CiviReport, etal - More phpdoc fixes (22565)

  • (NFC) Minor amends to getGroupByFromSelectColumns (22575)

  • (NFC) Correctly document CRM_Utils_Hook::pre to allow null ID (22562)

  • (NFC) Update PHPDoc for alterDeferredRevenueItems (22563)

  • (NFC) Comment fixes Stricter phpcs (22555)

  • (NFC) Remaining css phpcs fixes (22553)

  • (NFC) Fixes to the type definitions for contactType methods (22524)

  • (NFC) Civi::pipe - Swap various quotes (22503)

  • NFC: Clean up description for alterDisplayName hook (22501)

  • (NFC) Membership Tests - Update assertions to match behavior circa leap-day (22871)

  • (NFC) Update Contribution Recur DAO following regen (22858)

  • (NFC) RestTest - Skip testNotCMSUser_q when it's not supported (22817)

  • APIv4 - Fix test (22414)

  • Test cleanup - remove direct calls to BAO_Membership::add (22497)

  • Unit tests for 22429 and apply same treatment to other money format functions (22442)

  • Simplify APIv4 conformance test (22579)

  • Add unit test on updateGreeting & remove deprecated fn call (22482)

  • [test] - Add test coverage for adjusting custom group weights (22512)

  • Fix testMultipleMembershipsContribution to use order api (22274)

  • Port test form earlier PR (22502)

  • Test for APIv4 contact delete bug (dev/core#2757: 22458)

Credits

This release was developed by the following code authors:

AGH Strategies - Andie Hunt; Agileware - Francis Whittle, Justin Freeman; BrightMinded Ltd - Bradley Taylor; Christian Wach; CiviCoop - Klaas Eikelboom; CiviCRM - Coleman Watts, Tim Otten; CiviDesk - Yashodha Chaku; Coop SymbioTIC - Mathieu Lutfy; Dave D; Freeform Solutions - Herb van den Dool; Jens Schuppe; JMA Consulting - Seamus Lee; Joinery - Allen Shaw; Lemniscus - Noah Miller; Megaphone Technology Consulting - Jon Goldberg; MJW Consulting - Matthew Wire; PERORA SRL - Samuele Masetto; Registered Nurses' Association of Ontario - Ian Wilson; Romain Thouvenin; Skvare - Sunil Pawar; Third Sector Design - Kurund Jalmi; Wikimedia Foundation - Eileen McNaughton

Most authors also reviewed code for this release; in addition, the following reviewers contributed their comments:

Andy Burns; Artful Robot - Rich Lott; Betty Dolfing; Blackfly Solutions - Alan Dixon; Circle Interactive - Pradeep Nayak; CiviCoop - Jaap Jansma; Coop SymbioTIC - Shane Bill; Fuzion - Luke Stewart; in2part; JMA Consulting - Joe Murray, Monish Deb; Korlon - Stuart Gaston; Mikey O'Toole; Peter Boling; Tadpole Collective - Kevin Cristiano; Wildsight - Lars Sanders-Green