Seamus Lee [Tue, 21 Apr 2020 02:27:10 +0000 (12:27 +1000)]
Merge pull request #17119 from agh1/5.25.0-releasenotes
5.25.0 release notes first run
Andrew Hunt [Mon, 20 Apr 2020 21:52:21 +0000 (17:52 -0400)]
5.25.0 release notes: added boilerplate
Andrew Hunt [Mon, 20 Apr 2020 21:47:41 +0000 (17:47 -0400)]
5.25.0 release notes: raw from script
Seamus Lee [Mon, 20 Apr 2020 08:54:32 +0000 (18:54 +1000)]
Merge pull request #17108 from colemanw/revertSqlFn
Revert #16947 from 5.25RC
Coleman Watts [Sun, 19 Apr 2020 23:56:26 +0000 (19:56 -0400)]
Revert "APIv4 - Add rudimentary support for groupBy"
This reverts commit
fba513f62ec8815e08fa838e0d0501279bf34501.
Coleman Watts [Sun, 19 Apr 2020 23:56:25 +0000 (19:56 -0400)]
Revert "Api4SelectQuery - add more metadata to apiFieldSpec"
This reverts commit
9b06167d3c8dc54bb51e22e3583b18799a46c930.
Coleman Watts [Sun, 19 Apr 2020 23:56:20 +0000 (19:56 -0400)]
Revert "APIv4 - Add SQL expression handling and aggregate functions"
This reverts commit
3176b04cb62b0e8f94454e367736f50454f89de8.
Seamus Lee [Fri, 17 Apr 2020 09:43:20 +0000 (19:43 +1000)]
Merge pull request #17097 from seamuslee001/5.25
Add release-notes/5.24.4.md
Tim Otten [Fri, 17 Apr 2020 09:30:06 +0000 (02:30 -0700)]
Add release-notes/5.24.4.md
Tim Otten [Fri, 17 Apr 2020 03:56:19 +0000 (20:56 -0700)]
Merge pull request #17085 from seamuslee001/typo3_drupal8
Generalise typo3/phar-stream-wrapper so CiviCRM can be installed on d…
Seamus Lee [Fri, 17 Apr 2020 02:04:38 +0000 (12:04 +1000)]
Merge pull request #17081 from eileenmcnaughton/session
Fix unsubscribe regression
Seamus Lee [Thu, 16 Apr 2020 04:45:16 +0000 (14:45 +1000)]
Generalise typo3/phar-stream-wrapper so CiviCRM can be installed on drupal8
eileen [Thu, 16 Apr 2020 01:37:00 +0000 (13:37 +1200)]
Fix issue with form values not being available onn submit
Possible fix for https://civicrm.stackexchange.com/questions/35323/missing-parameters-error-in-unsubscribe-confirmation
The theory is that not having committed the transaction is causing the session not to be saved
CiviCRM [Thu, 16 Apr 2020 02:04:24 +0000 (02:04 +0000)]
Set version to 5.25.beta2
Tim Otten [Thu, 16 Apr 2020 01:28:50 +0000 (18:28 -0700)]
release-notes - Small copy edits
Seamus Lee [Thu, 16 Apr 2020 01:02:23 +0000 (11:02 +1000)]
Add in release notes for 5.24.3
Tim Otten [Fri, 3 Apr 2020 02:45:21 +0000 (19:45 -0700)]
Update composer.lock (`composer update --lock`)
Tim Otten [Fri, 3 Apr 2020 02:34:00 +0000 (19:34 -0700)]
[MOSS] CIV-01-001 - Display sensible error if someone tries to use "qunit" when it's missing
Tim Otten [Fri, 3 Apr 2020 02:23:03 +0000 (19:23 -0700)]
[MOSS] CIV-01-001 - Remove more unnecessary files from google-code-prettifier
Seamus Lee [Wed, 18 Mar 2020 01:25:01 +0000 (12:25 +1100)]
[MOSS] CIV-01-001 Remove Qunit and google-code-prettifier demo html file
Seamus Lee [Thu, 12 Dec 2019 20:08:34 +0000 (07:08 +1100)]
Include the job name and job details on the popup notice and also on the form asking if your sure about executing it
Allow disabled jobs to be executed and fix copy
Seamus Lee [Tue, 10 Dec 2019 20:07:57 +0000 (07:07 +1100)]
security/core#10 Ensure there is CSRF Protection when running Scheduled Jobs from the Admin scheduled jobs UI
Seamus Lee [Sun, 29 Mar 2020 21:23:33 +0000 (08:23 +1100)]
Remove code handling for profile search listing
Seamus Lee [Sun, 29 Mar 2020 20:55:14 +0000 (07:55 +1100)]
Also escape when value starts with a [ and validate the negative operation as well
Seamus Lee [Tue, 3 Mar 2020 20:48:35 +0000 (07:48 +1100)]
[MOSS] CIV-01-020 Validate value in the query building logic for privacy flag fields
Seamus Lee [Sat, 29 Feb 2020 22:32:21 +0000 (09:32 +1100)]
[MOSS] CIV-01-014 Validate status_id and campaign_type_id for camapginSummary function and the source_record_id and activity_type_id for Activity delete function
Seamus Lee [Sun, 9 Feb 2020 08:32:48 +0000 (19:32 +1100)]
security/core#40 Purify activity details when viewing case activities and case reports
Patrick Figel [Tue, 18 Feb 2020 19:44:11 +0000 (20:44 +0100)]
security/core#60 - Fix PHP Object Injection via Phar Deserialization
This mitigates Phar deserialization vulnerabilities by registering an
alternative Phar stream wrapper that filters out insecure Phar files.
PHP makes it possible to trigger Object Injection vulnerabilities by using
a side-effect of the phar:// stream wrapper that unserializes Phar
metadata. To mitigate this vulnerability, projects such as TYPO3 and Drupal
have implemented an alternative Phar stream wrapper that disallows
inclusion of phar files based on certain parameters. This change implements
a similar approach for Civi in environments where the vulnerability isn't
mitigated by the CMS.
Fixes security/core#60
Tim Otten [Wed, 4 Mar 2020 02:54:50 +0000 (18:54 -0800)]
CIV-01-021 - Improve entity name sanitization
Before
------
* There exist two functions which purport to take an API entity name and sanitize it,
producing a canonical API entity name. (`\Civi\API\Request::normalizeEntityName`
and `_civicrm_api_get_camel_name`)
* The two functions are identical for typical inputs. Both call `convertStringToCamel()`.
* The difference relates to unusual/unspecified input characters like `/` or `.` or `+`.
* `_civicrm_api_get_camel_name()` allows/returns unusual characters.
* `normalizeEntityName()` filters them out via `\CRM_Utils_String::munge()`
After
-----
* `_civicrm_api_get_camel_name()` just calls `normalizeEntityName()`
* A unit-test provides some comparison/contrast between the old+new behaviors.
Comments
--------
I came into this because CIV-01-021 pointed out that `_civicrm_api_get_camel_name()` had
insufficient sanitization of wonky inputs and could potentially lead to unexpected file-reads.
You can potentially address those wonky inputs by filtering them out or by throwing an exception.
I initially started doing an exception... but it turned out that `normalizeEntityName()` was already
filtering out and didn't really need a change. Also, regardless of the policy, the functions should be
brought into alignment.
Anyway, it seemed like this was the simpler change - it keeps `normalizeEntityName()` working exactly
as before, and only changes `_civicrm_api_get_camel_name()` to match.
Patrick Figel [Tue, 18 Feb 2020 20:54:05 +0000 (21:54 +0100)]
security/core#73 - Fix Contact.getquick API key exposure
This fixes an issue where API keys can be exposed via the field_name
parameter of the Contact.getquick API. Since there is no valid use-case
for requesting API keys via getquick, the fix simply triggers an API
error if the API key is requested.
davejenx [Thu, 9 Apr 2020 10:01:29 +0000 (11:01 +0100)]
Update 5.24.2.md
Fix version number in title.
Tim Otten [Thu, 9 Apr 2020 07:21:03 +0000 (00:21 -0700)]
Merge pull request #17041 from seamuslee001/5.25
Add release-notes/5.24.2
Tim Otten [Thu, 9 Apr 2020 06:22:33 +0000 (23:22 -0700)]
Add release-notes/5.24.2
Eileen McNaughton [Wed, 8 Apr 2020 22:12:09 +0000 (10:12 +1200)]
Merge pull request #17033 from seamuslee001/5.25
Revert "temp workaround for dev/core#1675"
Seamus Lee [Wed, 8 Apr 2020 21:28:14 +0000 (07:28 +1000)]
Merge pull request #17021 from totten/5.25-language-labels
CRM_Core_I18n - Provide a better label for new/unknown locales
Seamus Lee [Wed, 8 Apr 2020 21:20:48 +0000 (07:20 +1000)]
Revert "temp workaround for dev/core#1675"
This reverts commit
fcd23b884537a19ff2acbc98ca20a43f292c4c42.
Eileen McNaughton [Wed, 8 Apr 2020 04:57:48 +0000 (16:57 +1200)]
Merge pull request #17004 from pradpnayak/fixhookissue
Fixed fatal error for class not found when managed hook is invoked du…
Tim Otten [Wed, 8 Apr 2020 04:14:38 +0000 (21:14 -0700)]
CRM_Core_I18n - Provide a better label for new/unknown locales
Overview
--------
Suppose you add new/unrecognized data files in the `l10n` folder - and then
you navigate to the screen `civicrm/admin/setting/localization?reset=1`.
Before
------
The new language appears in the admin UI as a blank item.
Every page in the app displays a warning about the unrecognized locale.
After
-----
The new language appears in the admin UI with a placeholder name (based on the code).
The warnings are not displayed.
Comment
-------
We've just had an issue where a new language was added to the `l10n`
data-set, and then all automated test-suites for all versions (incl `5.25`
RC and `5.24` stable) started to throw blocker errors on unrelated PRs.
This is because the `l10n` data is generally evergreen, but each branch/tag
of `civicrm-core` has the list hard-coded in multiple spots.
This patch tries to make the symptom less painful when mixing/matching
different revisions of `civicrm-core.git` and `l10n.git`.
Seamus Lee [Wed, 8 Apr 2020 01:53:29 +0000 (11:53 +1000)]
Merge pull request #17014 from seamuslee001/nl_be_5_25
add nl_BE language
demeritcowboy [Thu, 2 Apr 2020 21:59:21 +0000 (17:59 -0400)]
add nl_BE language
Pradeep Nayak [Tue, 7 Apr 2020 02:16:44 +0000 (03:16 +0100)]
Fixed fatal error for class not found when managed hook is invoked during upgrade
Seamus Lee [Sun, 5 Apr 2020 20:17:23 +0000 (06:17 +1000)]
Merge pull request #16978 from seamuslee001/5.25
Add release-notes/5.24.1
Tim Otten [Sun, 5 Apr 2020 00:50:45 +0000 (17:50 -0700)]
Add release-notes/5.24.1
Seamus Lee [Fri, 3 Apr 2020 23:49:28 +0000 (10:49 +1100)]
Merge pull request #16971 from totten/5.25-seqcredit
dev/financial#84 - Fix upgrade failure. Thin-out activation logic for `sequentialcreditnotes`.
Tim Otten [Fri, 3 Apr 2020 22:22:44 +0000 (15:22 -0700)]
dev/financial#84 - Simplify upgrader. Fix "wp-demo" upgrade scenario.
Steps to reproduce
------------------
* Create a site based on `wp-demo` with Civi 5.21
* Make a DB snapshot
* Update code to 5.24
* In the web UI, run the DB upgrade
* Note: It's important to use the web UI. The problem does not reproduce in CLI.
Before
------
The upgrader freezes on "Upgrade DB to 5.24.alpha1". The `CiviCRM.log` includes:
```
Apr 03 14:41:50 [info] Running task: Upgrade DB to 5.24.alpha1: SQL
Apr 03 14:41:55 [info] Running task: Install sequential creditnote extension
Apr 03 14:42:14 [info] $CRM_Queue_ErrorPolicy_reportError = Array
(
[is_error] => 1
[is_continue] => 0
[exception] => Error 1: Uncaught Error: Class 'CRM_Volunteer_Permission' not found in /home/me/bknix/build/wpmaster/web/wp-content/plugins/civicrm/civicrm/tools/extensions/civivolunteer/volunteer.php:497
Stack trace:
0 /home/me/bknix/build/wpmaster/web/wp-content/plugins/civicrm/civicrm/CRM/Utils/Hook.php(286): volunteer_civicrm_permission(Array)
1 /home/me/bknix/build/wpmaster/web/wp-content/plugins/civicrm/civicrm/CRM/Utils/Hook/WordPress.php(139): CRM_Utils_Hook->runHooks(Array, 'civicrm_permiss...', 1, Array, NULL, NULL, NULL, NULL, NULL)
2 /home/me/bknix/build/wpmaster/web/wp-content/plugins/civicrm/civicrm/Civi/Core/CiviEventDispatcher.php(86): CRM_Utils_Hook_WordPress->invokeViaUF(1, Array, NULL, NULL, NULL, NULL, NULL, 'civicrm_permiss...')
3 /home/me/bknix/build/wpmaster/web/wp-content/plugins/civicrm/civicrm/vendor/symfony/event-dispatcher/EventDispatcher.php(184): Civi\Core\CiviEventDispatcher::delegateToUF(Object(Civi\Core\Event\GenericHookEvent), 'hook_civicrm_p
[last_task_title] => Install sequential creditnote extension
)
```
After
-----
The upgrade completes. After installation, the `sequentialcreditnotes` extension is active.
Seamus Lee [Fri, 3 Apr 2020 00:54:34 +0000 (11:54 +1100)]
Merge pull request #16961 from MegaphoneJon/core-1688-525
core#1688 - false positive on missing custom field check
Jon Goldberg [Thu, 2 Apr 2020 18:07:33 +0000 (14:07 -0400)]
core#1688 - false positive on missing custom field check
CiviCRM [Thu, 2 Apr 2020 05:26:58 +0000 (05:26 +0000)]
Set version to 5.25.beta1
Tim Otten [Thu, 2 Apr 2020 04:57:15 +0000 (21:57 -0700)]
Merge pull request #16753 from agh1/consolidated-php-version
dev/core#1528 - Consolidate to single constant for minimum PHP version
Tim Otten [Thu, 2 Apr 2020 04:21:07 +0000 (21:21 -0700)]
CRM_Report_DAO_ReportInstance - Update checksum
Tim Otten [Thu, 2 Apr 2020 04:14:16 +0000 (21:14 -0700)]
Merge pull request #16948 from eileenmcnaughton/email4
[REF] move buildQuickForm function to the trait
Tim Otten [Thu, 2 Apr 2020 04:11:58 +0000 (21:11 -0700)]
Merge pull request #16951 from colemanw/dirtyMoney
Revert "APIv4 - Fix contribution create"
Coleman Watts [Thu, 2 Apr 2020 01:21:10 +0000 (21:21 -0400)]
Revert "APIv4 - Fix contribution create"
This reverts commit
2f97c5641cceec44c02585c2d1d212bda1c6228e.
It should no longer be needed due to the improvement made in
243320eda23195985815ceb65ec7ee9079ae3014.
Seamus Lee [Thu, 2 Apr 2020 00:40:14 +0000 (11:40 +1100)]
Merge pull request #16950 from eileenmcnaughton/clean_money
Remove deprecated cleaning of money in the BAO layer
eileen [Wed, 1 Apr 2020 23:01:00 +0000 (12:01 +1300)]
Remove deprecated cleaning of money in the BAO layer
Any code that passed dirty money to the Contribution::create BAO will have been seeing
deprecation notices for some time. The supported method is via the api & v3 api does the cleaning
whereas v4 expects it to be pre-cleaned - perhaps it's time to remove this & leave it to the
calling code
Eileen McNaughton [Wed, 1 Apr 2020 22:57:04 +0000 (11:57 +1300)]
Merge pull request #16947 from colemanw/groupByFunctions
APIv4 - Support GROUP BY and aggregate functions
Eileen McNaughton [Wed, 1 Apr 2020 22:33:31 +0000 (11:33 +1300)]
Merge pull request #16943 from jitendrapurohit/core-1682
dev/core#1682 - Invalid currency on sending offline membership receipt.
Tim Otten [Wed, 1 Apr 2020 22:06:31 +0000 (15:06 -0700)]
Merge pull request #16919 from jaapjansma/dev-1674
dev/core#1674: fix rebuilding of container on every request
Tim Otten [Wed, 1 Apr 2020 22:03:33 +0000 (15:03 -0700)]
(REF) CRM_Api4_Services - Cleanup extra comment/try/catch
eileen [Tue, 31 Mar 2020 22:19:44 +0000 (11:19 +1300)]
[REF] move buildQuickForm function to the trait
Note that Contact had an extra assign. It seems likely the extra assign is not required but it
would not be a bad thing on the others
colemanw [Wed, 1 Apr 2020 21:51:26 +0000 (17:51 -0400)]
Merge pull request #16940 from eileenmcnaughton/email4
[REF] Move properties to Trait
Coleman Watts [Wed, 1 Apr 2020 21:26:32 +0000 (17:26 -0400)]
APIv4 - Fix contribution create
Coleman Watts [Tue, 31 Mar 2020 21:33:19 +0000 (17:33 -0400)]
APIv4 - Add SQL expression handling and aggregate functions
Adds a series of SqlExpression classes to parse and validate sql expressions used in SELECT, GROUP BY and ORDER BY clauses.
The framework can handle most sql functions, but this first commit adds support for the aggregate functions AVG, COUNT, MAX, MIN & SUM
Eileen McNaughton [Wed, 1 Apr 2020 21:33:16 +0000 (10:33 +1300)]
Merge pull request #16941 from jitendrapurohit/16845-followup
Follow up PR for #16845 - Fix form error when variable is NULL
Eileen McNaughton [Wed, 1 Apr 2020 21:24:33 +0000 (10:24 +1300)]
Merge pull request #16945 from lcdservices/dev-core-1683
fixes dev/core#1683 set profile frontend title
Coleman Watts [Mon, 30 Mar 2020 16:22:43 +0000 (12:22 -0400)]
Api4SelectQuery - add more metadata to apiFieldSpec
Coleman Watts [Sat, 21 Mar 2020 23:48:24 +0000 (19:48 -0400)]
APIv4 - Add rudimentary support for groupBy
Seamus Lee [Wed, 1 Apr 2020 21:06:01 +0000 (08:06 +1100)]
Merge pull request #16946 from civicrm/5.24
5.24
Seamus Lee [Wed, 1 Apr 2020 20:40:40 +0000 (07:40 +1100)]
Merge pull request #16944 from alifrumin/5.24-rn
[NFC] adding late changes to release notes for 5.24
Brian Shaughnessy [Wed, 1 Apr 2020 18:52:10 +0000 (14:52 -0400)]
fixes dev/core#1683 set profile frontend title
Alice Frumin [Wed, 1 Apr 2020 15:37:42 +0000 (11:37 -0400)]
late changes to release notes
Jitendra Purohit [Wed, 1 Apr 2020 11:32:30 +0000 (17:02 +0530)]
dev/core#1682 - Invalid currency on sending offline membership receipt.
Jitendra Purohit [Wed, 1 Apr 2020 10:50:08 +0000 (16:20 +0530)]
Follow up PR for #16845 - Fix form error when variable is NULL
eileen [Tue, 31 Mar 2020 22:14:44 +0000 (11:14 +1300)]
Move properties to Trait
colemanw [Wed, 1 Apr 2020 09:37:32 +0000 (05:37 -0400)]
Merge pull request #16935 from eileenmcnaughton/email_common
[REF] Start transitioning EmailCommon class to a trait
Tim Otten [Wed, 1 Apr 2020 08:00:07 +0000 (01:00 -0700)]
dev/core#1674 - Update container cache when folder is removed or created
Conceptually, you want to:
* (A) Keep the container cache when nothing has changed (regardless of whether that status-quo has an API4 subscriber folder).
* (B) Update the cache if Civi/Api4/Event/Subscriber/*.php has been newly created
* (C) Update the cache if Civi/Api4/Event/Subscriber/*.php has been newly removed
To test this out, I hacked `Civi\Core\Container::loadContainer()` to emit a debug message
to indicate if it is reusing the cache or updating. Then, I prepared two terminals for running alternate steps:
* In terminal 1, go back and forth with adding/removing folders/files like `Civi/Api4/Event/Subscriber`.
* In terminal 2, periodically run `cv ev 'echo "Hello\n";'` and note whether the cache is update.
In this way, we can see if a developer action (adding a file) leads to an automatic update in the cache.
I found that the previous commit fixed (A) and did (C), but it failed to
update per (B). This commit should handle (A), (B), and (C).
Eileen McNaughton [Wed, 1 Apr 2020 03:54:28 +0000 (16:54 +1300)]
Merge pull request #16885 from demeritcowboy/test-getrelatedcases
[NFC/TEST] Resurrect unfinished test for getRelatedCases()
Yashodha Chaku [Wed, 1 Apr 2020 03:18:37 +0000 (08:48 +0530)]
Merge pull request #16921 from pradpnayak/newHook
Add hook to alter display value or Custom field value
Eileen McNaughton [Wed, 1 Apr 2020 02:33:11 +0000 (15:33 +1300)]
Merge pull request #16938 from civicrm/5.24
5.24
Eileen McNaughton [Wed, 1 Apr 2020 02:32:53 +0000 (15:32 +1300)]
Merge pull request #16937 from seamuslee001/5.24
[REF] Fix handling of owner url parameter from Membership Dashboard
eileen [Tue, 31 Mar 2020 21:08:20 +0000 (10:08 +1300)]
[REF] Start transitioning EmailCommon class to a trait
This is a really awful class - I've added a trait & moved the calls from the various forms to that trait
so the code on EmailCommon for buildForm is now only called once. I will follow up with more the same
Seamus Lee [Wed, 1 Apr 2020 00:51:26 +0000 (11:51 +1100)]
[REF] Fix handling of owner url parameter from Membership Dashboard
Seamus Lee [Wed, 1 Apr 2020 00:45:40 +0000 (11:45 +1100)]
Merge pull request #16933 from eileenmcnaughton/member_search
dev/user-interface#14 Fix membership_status_id url handling (recent regression).
Seamus Lee [Wed, 1 Apr 2020 00:38:32 +0000 (11:38 +1100)]
Merge pull request #16930 from eileenmcnaughton/524
dev/core#1677 Fix multisite regression on domain membership types
colemanw [Tue, 31 Mar 2020 20:50:09 +0000 (16:50 -0400)]
Merge pull request #16928 from eileenmcnaughton/email
[REF] Remove fatal, fix some code comments
colemanw [Tue, 31 Mar 2020 15:43:28 +0000 (11:43 -0400)]
Merge pull request #16932 from eileenmcnaughton/mailing_name
dev/core#1656 Remove duplicate label
colemanw [Tue, 31 Mar 2020 14:12:58 +0000 (10:12 -0400)]
Merge pull request #16929 from eileenmcnaughton/email2
[REF] extract code to getEmails
colemanw [Tue, 31 Mar 2020 14:09:46 +0000 (10:09 -0400)]
Merge pull request #16927 from eileenmcnaughton/campaign
[REF] Minor simplification - do not use variable variables
Yashodha Chaku [Tue, 31 Mar 2020 10:23:14 +0000 (15:53 +0530)]
Merge pull request #16868 from twomice/contribution_detail_pledge
Add "pledge id" as column and filter in Contribution Detail report.
eileen [Tue, 31 Mar 2020 08:31:44 +0000 (21:31 +1300)]
dev/user-interface#14 Fix membership_status_id url handling (recent regression).
The right fix here is to fix the xml to the field setting it to export & adding a uniquename.
However, with our search focus moving on to the new search functionality in the pipeline & us having had
a hiatus on dealing with search code I think this more conservative change + a rc focus makes sense
at the moment
eileen [Tue, 31 Mar 2020 07:25:15 +0000 (20:25 +1300)]
Remove duplicate label
Eileen McNaughton [Tue, 31 Mar 2020 06:04:10 +0000 (19:04 +1300)]
Merge pull request #16931 from civicrm/5.24
5.24 to master
Eileen McNaughton [Tue, 31 Mar 2020 05:57:54 +0000 (18:57 +1300)]
Merge pull request #16926 from demeritcowboy/quickfix-case-addtimeline
dev/core#1675 - Temporary regression fix for case add timeline
eileen [Tue, 31 Mar 2020 05:12:33 +0000 (18:12 +1300)]
dev/core#1677 Fix multisite regression on domain membership types
Fixes a regression where membership types bleed between domains
eileen [Tue, 31 Mar 2020 04:51:01 +0000 (17:51 +1300)]
[REF] extract code to getEmails
eileen [Tue, 31 Mar 2020 03:48:38 +0000 (16:48 +1300)]
[REF] Remove fatal, fix some code comments
eileen [Tue, 31 Mar 2020 03:38:23 +0000 (16:38 +1300)]
[REF] Minor simplification - do not use variable variables
This is a minor readabilty improvement because it's awful. Much more could be done....
demeritcowboy [Mon, 30 Mar 2020 20:12:12 +0000 (16:12 -0400)]
temp workaround for dev/core#1675
Pradeep Nayak [Sun, 29 Mar 2020 19:57:39 +0000 (20:57 +0100)]
Added unit test
Pradeep Nayak [Thu, 11 Jul 2019 20:11:38 +0000 (21:11 +0100)]
Add hook to alter display value or Custom field value