eileen [Mon, 1 Jun 2020 12:40:07 +0000 (00:40 +1200)]
[REF] Start to convert Dummy processor to use PropertyBag
Seamus Lee [Mon, 1 Jun 2020 23:16:05 +0000 (09:16 +1000)]
Merge pull request #17449 from eileenmcnaughton/guzzle
[REF] Convert one of the http calls in Authorize.net class to use guzzle.
eileen [Mon, 1 Jun 2020 12:09:45 +0000 (00:09 +1200)]
[REF] Convert one of the http calls in Authorize.net class to use guzzle.
This achieves the following
1) addresses a cause of intermittent test failures
2) starts the process of modelling how payment processors should be written in a best-practice, tested way in core
3) stops us interacting with A.net during tests
4) starts to reduce curl dependency
Matthew Wire [Mon, 1 Jun 2020 17:00:31 +0000 (18:00 +0100)]
Merge pull request #17451 from mlutfy/navNewSubType
Navigation menu: fix translation of new-subtype entries
Mathieu Lutfy [Mon, 1 Jun 2020 12:34:06 +0000 (08:34 -0400)]
Navigation menu: fix translation of new-subtype entries.
Seamus Lee [Mon, 1 Jun 2020 09:08:00 +0000 (19:08 +1000)]
Merge pull request #17425 from colemanw/customLinks
APIv4 - Fix entity name on custom groups in schemaMapper
Seamus Lee [Mon, 1 Jun 2020 06:46:20 +0000 (16:46 +1000)]
Merge pull request #17441 from eileenmcnaughton/email2
[REF] Simplify contributionIDs code
Eileen McNaughton [Mon, 1 Jun 2020 06:45:02 +0000 (18:45 +1200)]
Merge pull request #17439 from seamuslee001/karma_upgrade_162020
[NFC] Update Karma to be latest version
Coleman Watts [Fri, 29 May 2020 18:32:45 +0000 (14:32 -0400)]
APIv4 - Fix entity name on custom groups in schemaMapper
Only multi-record groups are considered an api "entity", so for other groups the entity should be null.
Yashodha Chaku [Mon, 1 Jun 2020 04:38:14 +0000 (10:08 +0530)]
Merge pull request #17436 from eileenmcnaughton/email
[REF] Simplify subject code.
eileen [Tue, 26 May 2020 03:01:00 +0000 (15:01 +1200)]
[REF] Simplify contributionIDs code
Seamus Lee [Mon, 1 Jun 2020 01:07:12 +0000 (11:07 +1000)]
Merge pull request #17435 from seamuslee001/dev_membership_24_revert
Revert Matt's fix for dev/membership#24 as it is incomplete and add a…
Seamus Lee [Mon, 1 Jun 2020 00:56:23 +0000 (10:56 +1000)]
[NFC] Update Karma to be latest version
Seamus Lee [Mon, 1 Jun 2020 00:09:34 +0000 (10:09 +1000)]
Merge pull request #17420 from seamuslee001/request_guzzle
[REF] Refactor to switch from pear HTTP Request class to using Guzzle
Seamus Lee [Mon, 1 Jun 2020 00:02:23 +0000 (10:02 +1000)]
Merge pull request #17437 from demeritcowboy/tests-for-deleterestore
[NFC/TEST] dev/core#1784 - Unit tests for contact delete/restore
Eileen McNaughton [Sun, 31 May 2020 22:44:00 +0000 (10:44 +1200)]
Merge pull request #17421 from seamuslee001/more_560
dev/core#560 Replace various CRM_Core_Error::fatal with statusBounces…
Seamus Lee [Sun, 31 May 2020 22:28:19 +0000 (08:28 +1000)]
Merge pull request #17328 from eileenmcnaughton/mailing_seach
Make is_archived work as a url-search parameter
demeritcowboy [Sun, 31 May 2020 22:27:27 +0000 (18:27 -0400)]
tests for contact delete/restore
eileen [Tue, 26 May 2020 02:58:37 +0000 (14:58 +1200)]
[REF] Simplify subject code. Note sendEmail
is only called from this, some tests, and a deprecated function (unused in core) so we can change
it to not pass by reference safely
Seamus Lee [Sun, 31 May 2020 22:13:36 +0000 (08:13 +1000)]
Revert Matt's fix for dev/membership#24 as it is incomplete and add a unit test in to cover the financial type acls side of the code
Eileen McNaughton [Sun, 31 May 2020 21:52:58 +0000 (09:52 +1200)]
Merge pull request #17434 from demeritcowboy/bad-user
dev/core#1791 - E_WARNINGS when viewing list of pledge payments
Eileen McNaughton [Sun, 31 May 2020 21:32:43 +0000 (09:32 +1200)]
Merge pull request #17432 from mattwire/repeattransactionpendingdefault
Make 'Pending' the default status for Contribution.repeattransaction
demeritcowboy [Sun, 31 May 2020 14:55:46 +0000 (10:55 -0400)]
bad user
Matthew Wire [Sun, 31 May 2020 12:04:11 +0000 (13:04 +0100)]
Make 'Pending' the default status for Contribution.repeattransaction as that is the preferred way to call this API
Eileen McNaughton [Sun, 31 May 2020 06:31:07 +0000 (18:31 +1200)]
Merge pull request #17220 from eileenmcnaughton/lines
Fetch line items from correct contribution when repeating a contribution
Eileen McNaughton [Sun, 31 May 2020 06:30:47 +0000 (18:30 +1200)]
Merge pull request #17431 from civicrm/5.26
5.26 to masterr
Eileen McNaughton [Sun, 31 May 2020 06:28:29 +0000 (18:28 +1200)]
Merge pull request #17418 from eileenmcnaughton/trash
dev/core#1784 fix regression on restore contacts button not working.
eileen [Sun, 31 May 2020 04:47:15 +0000 (16:47 +1200)]
Fix use of static var breaking tests
Pradeep Nayak [Tue, 17 Mar 2020 12:26:04 +0000 (12:26 +0000)]
Fetch latest contribution id for building line items
Seamus Lee [Sat, 30 May 2020 07:40:22 +0000 (17:40 +1000)]
Merge pull request #17278 from mattwire/paymentcreateorderreference
Support order_reference param in API3 Payment.create
Seamus Lee [Sat, 30 May 2020 06:02:50 +0000 (16:02 +1000)]
Merge pull request #17147 from kartik1000/Fix#1650
dev/core#1650 Updated Financial Type title to Financial Type ID
Matthew Wire [Fri, 29 May 2020 11:04:15 +0000 (12:04 +0100)]
Merge pull request #17143 from mattwire/donthidedisabledmemberships
dev/membership#24 Don't hide disabled memberships from the contact membership tab
Matthew Wire [Sun, 10 May 2020 15:36:11 +0000 (16:36 +0100)]
Support order_reference param in Api3 Payment.create
Matthew Wire [Fri, 29 May 2020 09:02:56 +0000 (10:02 +0100)]
Merge pull request #17419 from eileenmcnaughton/groups
dev/core#1745 Fix caching bug when adding a contact to a group
Seamus Lee [Fri, 29 May 2020 06:40:29 +0000 (16:40 +1000)]
dev/core#560 Replace various CRM_Core_Error::fatal with statusBounces and Exceptions
Seamus Lee [Fri, 29 May 2020 06:43:36 +0000 (16:43 +1000)]
[REF] Refactor to switch from pear HTTP Request class to using Guzzle
Seamus Lee [Fri, 29 May 2020 05:30:45 +0000 (15:30 +1000)]
Merge pull request #17192 from jmdh/log_config
Configurable logfile size and hashing
Seamus Lee [Fri, 29 May 2020 05:24:13 +0000 (15:24 +1000)]
Merge pull request #17405 from eileenmcnaughton/email
[REF] Extract getAttachments
Seamus Lee [Fri, 29 May 2020 04:52:24 +0000 (14:52 +1000)]
Merge pull request #17415 from eileenmcnaughton/recur
Remove always-true if block.
Eileen McNaughton [Fri, 29 May 2020 00:42:57 +0000 (12:42 +1200)]
Merge pull request #17417 from eileenmcnaughton/ev
[REF] Preliminary cleanup for #17339
eileen [Fri, 29 May 2020 00:11:38 +0000 (12:11 +1200)]
dev/core#1745 Fix caching bug when adding a contact to a group
eileen [Thu, 28 May 2020 23:42:07 +0000 (11:42 +1200)]
dev/core#1784 fix regression on restore contacts button not working.
This should fix https://lab.civicrm.org/dev/core/-/issues/1784
I think the message from deleting multiple contacts is a bit wonky, but no worse
eileen [Thu, 28 May 2020 21:56:09 +0000 (09:56 +1200)]
[REF] Preliminary cleanup for #17339
This merges changes to code around event cart to simplify the larger PR
eileen [Thu, 28 May 2020 02:35:52 +0000 (14:35 +1200)]
Remove always-true if block.
We actually already removed the 'else' on the basis this is always true. This removes the whole
block & reformats
Eileen McNaughton [Thu, 28 May 2020 02:55:04 +0000 (14:55 +1200)]
Merge pull request #17414 from totten/master-settime
dev/core#1781 - CRM_Utils_Time - Allow TIME_FUNC to better isolate timing bugs
Seamus Lee [Thu, 28 May 2020 00:29:55 +0000 (10:29 +1000)]
Merge pull request #17380 from seamuslee001/symfony_4_4
Allow for installation on Symfony 4.4
Tim Otten [Wed, 27 May 2020 23:48:27 +0000 (16:48 -0700)]
dev/core#1781 - CRM_Utils_Time - Allow TIME_FUNC to better isolate timing bugs
Overview
--------
`CRM_Utils_Time` is a helper for (a) getting the time and (b) setting the time
to a mocked value (for testing purposes).
Timing bugs can manifest as flaky tests.
This provides a new option, `TIME_FUNC`, which may help isolate some timing
bugs (provided the test consistently uses `CRM_Utils_Time`).
Before
------
When using `CRM_Utils_Time::setTime()`, it simulates a change in the clock, and
the clock is allowed to proceed at a natural/real pace.
This policy aims to be representative of real-world execution (wherein the
clock also executes at a natural pace). However, consider that the pace at
which the code executes depends on numerous factors (CPU speed, memory
managers, system-load, system-caches, the specific code/use-case, etc). If
your use-case relies on multiple calls to `getTime()`, and if you run the
use-case in repeated trials, then you may find somewhat chaotic variations
in the exact values of `getTime()`.
Consequently, if there is a timing-sensitive bug, you may find that some trials
pass while others fail, and it is impossible to reproduce the natural
circumstance of the failure.
After
-----
By default, `CRM_Utils_Time` still performs simulations where the clock
proceeds a natural/real pace.
However, if you see flaky results and suspect a timing bug, you can re-run the
test suite with alternative time functions (`TIME_FUNC`):
```bash
TIME_FUNC=frozen ## every call to getTime() yields the same, static value
TIME_FUNC=natural ## every call to getTime() progresses in tandem with the real/natural clock
TIME_FUNC=linear:333 ## every call to getTime() progresses by 333ms
TIME_FUNC=prng:333 ## every call to getTime() progresses by a random interval, up to 333ms
```
Now "time" is not so natural or chaotic - it's more synthetic and
deterministic, which can help with debugging.
For example, consider `CRM_Core_BAO_ActionScheduleTest` and its functions
`testMembershipEndDateRepeat`, `testEventTypeEndDateRepeat`, and
`testRepetitionFrequencyUnit` -- which (anecdotally) appear to be flaky. We
can run one of these tests with deterministic time functions:
```bash
for TIME_FUNC in frozen prng:333 prng:666 prng:1000 prng:1500 linear:333 linear:666 linear:1000 ; do
export TIME_FUNC
echo
echo "Running with TIME_FUNC=$TIME_FUNC"
env CIVICRM_UF=UnitTests phpunit6 tests/phpunit/CRM/Core/BAO/ActionScheduleTest.php --filter testRepetitionFrequencyUnit
done
```
We get different results depending on the `TIME_FUNC`. I've done multiple trials with each `TIME_FUNC`, and
results have been stable so far:
* PASSING: `frozen` `prng:333` `prng:666` `linear:333` `linear:666` `linear:1000` `linear:1500`
* FAILING: `prng:1000` `prng:1500`
This doesn't specifically tell you what the bug is. It could be a real bug
in the main logic or less important bug in the test logic. However, you can
now *reproduce it* (locally, in an IDE, etc) by setting `TIME_FUNC=prng:1500`.
Seamus Lee [Wed, 27 May 2020 22:06:02 +0000 (08:06 +1000)]
Merge pull request #17406 from eileenmcnaughton/email2
[REF] Pass params not-by-reference
Eileen McNaughton [Wed, 27 May 2020 20:34:27 +0000 (08:34 +1200)]
Merge pull request #17411 from mattwire/apivactivity
Use now instead of date for activity API3 spec
colemanw [Wed, 27 May 2020 12:25:11 +0000 (08:25 -0400)]
Merge pull request #17409 from MikeyMJCO/patch-5
Typo Fix
Matthew Wire [Wed, 27 May 2020 12:06:38 +0000 (13:06 +0100)]
Use now instead of date for activity API3 spec
Mikey O'Toole [Wed, 27 May 2020 11:02:11 +0000 (12:02 +0100)]
Fix Typo on Search Settings page.
Seamus Lee [Wed, 27 May 2020 06:42:47 +0000 (16:42 +1000)]
Merge pull request #17407 from eileenmcnaughton/recur
[REF] Remove unreachable block.
Tim Otten [Wed, 27 May 2020 06:06:07 +0000 (23:06 -0700)]
(REF) CiviEventDispatcher - Replace addListenerService()
This function was previously provided by inheriting from
ContainerAwareEventDispatcher, but that class isn't available in Symfony
4.4.
This is a work-a-like implementation.
eileen [Wed, 27 May 2020 00:36:18 +0000 (12:36 +1200)]
[REF] Remove unreachable block.
This code was duplicated onto this form for cleanup. Since this is the
renewal form there should always be a current membership. I haven't removed the IF yet
for readability but that would follow on
Seamus Lee [Wed, 27 May 2020 00:11:52 +0000 (10:11 +1000)]
Merge pull request #17400 from eileenmcnaughton/recurr
[REF] duplicate function.
eileen [Tue, 26 May 2020 03:50:04 +0000 (15:50 +1200)]
[REF] Pass params not-by-reference
This is only called by one place in core + a deprecated unused class. The details are not used again
eileen [Tue, 26 May 2020 02:53:00 +0000 (14:53 +1200)]
Extract getAttachments
Eileen McNaughton [Tue, 26 May 2020 21:04:28 +0000 (09:04 +1200)]
Merge pull request #17203 from artfulrobot/artfulrobot-cleanup-job-improvements
Fix logic for job log cleanup and make SQL safer
Eileen McNaughton [Tue, 26 May 2020 20:49:26 +0000 (08:49 +1200)]
Merge pull request #17163 from jitendrapurohit/core-1731
dev/core#1731 - Unable to import relationship
eileen [Tue, 26 May 2020 10:37:31 +0000 (22:37 +1200)]
[REF] duplicate function.
This seems like the opposite of good principles but I've found that when facing a nasty chunk of code it's
often better to copy it & then start to clean it up, knowing that other places are not affected & not
having as much complexity to deal with
colemanw [Tue, 26 May 2020 20:39:10 +0000 (16:39 -0400)]
Merge pull request #17399 from seamuslee001/custom_field_fail_test
APIv4 - fix returning custom field values with API4
Matthew Wire [Tue, 26 May 2020 20:33:54 +0000 (21:33 +0100)]
Merge pull request #17377 from artfulrobot/artfulrobot-remove-incorrect-calls-to-request-retrieve
Remove $_REQUEST passed into CRM_Utils_Request::retrieve NFC
Eileen McNaughton [Tue, 26 May 2020 20:24:19 +0000 (08:24 +1200)]
Merge pull request #17402 from artfulrobot/artfulrobot-core-issue-1773
Fix core#1773 unsubscribe form causes errors if submitted twice
Eileen McNaughton [Tue, 26 May 2020 20:14:13 +0000 (08:14 +1200)]
Merge pull request #17404 from eileenmcnaughton/master
5.26 to master
eileen [Tue, 26 May 2020 20:12:29 +0000 (08:12 +1200)]
Merge branch '5.26' of https://github.com/civicrm/civicrm-core
Eileen McNaughton [Tue, 26 May 2020 20:08:35 +0000 (08:08 +1200)]
Merge pull request #17292 from eileenmcnaughton/prop
Fixes a regression when cancelling a recurring with no processor_id
Eileen McNaughton [Tue, 26 May 2020 19:39:25 +0000 (07:39 +1200)]
Merge pull request #16629 from WeMoveEU/core-1620
dev/core#1620 - Add campaign_id to template for alterMailContent hook
Rich Lott / Artful Robot [Mon, 25 May 2020 11:51:22 +0000 (12:51 +0100)]
Clean up calls to CRM_Utils_Request::retrieve
Matthew Wire [Tue, 26 May 2020 15:22:33 +0000 (16:22 +0100)]
Merge pull request #17393 from eileenmcnaughton/to
[REF] Code simplification & unit test on suppressed emails in task
Matthew Wire [Tue, 26 May 2020 15:16:43 +0000 (16:16 +0100)]
Merge pull request #17391 from mattwire/createEmailActivityclarity
NFC Add a bit more clarity to createEmailActivity function
Rich Lott / Artful Robot [Tue, 26 May 2020 14:29:26 +0000 (15:29 +0100)]
Fix core#1773 unsubscribe form causes errors if submitted twice
Coleman Watts [Tue, 26 May 2020 13:26:26 +0000 (09:26 -0400)]
APIv4 - skip acl clause for 1-1 custom fields
Matthew Wire [Tue, 26 May 2020 12:22:14 +0000 (13:22 +0100)]
Merge pull request #17388 from seamuslee001/domain_tokens_message_template_admin_interface
Add in domain tokens onto the Message Template admin interface
Matthew Wire [Tue, 26 May 2020 11:28:00 +0000 (12:28 +0100)]
Merge pull request #17253 from mattwire/utf8convertblocksize
utf8mb4 - If strict mode enabled query will fail if KEY_BLOCK_SIZE is not 0
eileen [Mon, 11 May 2020 23:25:53 +0000 (11:25 +1200)]
Permit empty processorID
On deploying this code I'm seeing InvalidArgumentException: 'processorID field has max length of 255'
Jitendra Purohit [Fri, 24 Apr 2020 11:18:40 +0000 (16:48 +0530)]
dev/core#1731 - Unable to import relationship
Fix additional problem mentioned by demeritcowboy
Eileen McNaughton [Tue, 26 May 2020 11:11:01 +0000 (23:11 +1200)]
Merge pull request #17178 from mattwire/simplifyrecurtemplates
Simplify recurring contribution template inheritance
Matthew Wire [Tue, 26 May 2020 11:00:46 +0000 (12:00 +0100)]
Merge pull request #17398 from eileenmcnaughton/mem_recur
[REF] Pass an array of correct params to the function to create a recurring contribution.
Seamus Lee [Tue, 26 May 2020 10:28:02 +0000 (20:28 +1000)]
[REF] Add in unit test of returning custom field values with API4
eileen [Tue, 26 May 2020 07:21:21 +0000 (19:21 +1200)]
[REF] Pass an array of correct params to the function to create a recurring contribution.
This is getting away from 'passing whatever params we have' to 'passing the right params', which makes it easier
to see what can and can't be altered.
Note that from https://issues.civicrm.org/jira/browse/CRM-17636 we can see that is_email_receipt is not set
for payment purposes but contributionRecur purposes and since it's not a propertyBag param we can leave it off
here
Eileen McNaughton [Tue, 26 May 2020 09:36:03 +0000 (21:36 +1200)]
Merge pull request #17395 from seamuslee001/update_DAO
Update DAO and L10n Schema file
Seamus Lee [Tue, 26 May 2020 04:31:16 +0000 (14:31 +1000)]
Update DAO and L10n Schema file
Seamus Lee [Tue, 26 May 2020 04:28:33 +0000 (14:28 +1000)]
Merge pull request #17394 from colemanw/api4CustomJoins
APIv4 - support custom entity joins
Seamus Lee [Tue, 26 May 2020 03:55:45 +0000 (13:55 +1000)]
Merge pull request #17363 from eileenmcnaughton/price_field
Api4: Add Price api entities
eileen [Tue, 26 May 2020 01:26:29 +0000 (13:26 +1200)]
[REF] Code simplification & unit test on suppressed emails in task
Eileen McNaughton [Tue, 26 May 2020 00:58:20 +0000 (12:58 +1200)]
Merge pull request #17118 from lcdservices/dev-core-1722
dev/core#1722 Allow for first name and last name to be searched on
Seamus Lee [Tue, 26 May 2020 00:24:17 +0000 (10:24 +1000)]
Merge pull request #17244 from totten/master-preboot
dev/translation#39 - Fix `core:install --lang`. Realign boot plugins.
Seamus Lee [Tue, 26 May 2020 00:23:07 +0000 (10:23 +1000)]
Merge pull request #17392 from eileenmcnaughton/ct
Remove unused 'reset' param, other NFC tidy up:
Seamus Lee [Tue, 26 May 2020 00:08:07 +0000 (10:08 +1000)]
Merge pull request #17364 from eileenmcnaughton/price_pseudo
Fix pricefield pseudoconstant.
Coleman Watts [Wed, 20 May 2020 19:57:33 +0000 (15:57 -0400)]
PriceFieldValue - Make name and label required in DB
Coleman Watts [Wed, 20 May 2020 13:04:32 +0000 (09:04 -0400)]
Fix notice and redundant code in PriceFieldValue BAO
eileen [Wed, 20 May 2020 02:25:15 +0000 (14:25 +1200)]
Add Price api entities
Api4 entities for Price, PriceField & PriceFieldValue.
All 3 entities are accessed in the PriceFieldTest
Eileen McNaughton [Mon, 25 May 2020 23:55:04 +0000 (11:55 +1200)]
Merge pull request #17390 from mattwire/api3activitydatetimedefault
Set default using spec for activity_date_time
Eileen McNaughton [Mon, 25 May 2020 22:53:31 +0000 (10:53 +1200)]
Merge pull request #17386 from seamuslee001/dev_core_1775
dev/core#1775 Fix fee amount reversals when doing a change of financi…
eileen [Mon, 25 May 2020 22:48:12 +0000 (10:48 +1200)]
Remove unused 'reset' param, other NFC tidy up:
Coleman Watts [Fri, 22 May 2020 20:45:11 +0000 (16:45 -0400)]
APIv4 - Fix explicit joins to custom entities
colemanw [Mon, 25 May 2020 22:40:14 +0000 (18:40 -0400)]
Merge pull request #17387 from eileenmcnaughton/ct
Use apiv4, cache infra for basicTypes
Coleman Watts [Fri, 8 May 2020 13:49:10 +0000 (09:49 -0400)]
APIv4 - Improve joins test coverage
eileen [Mon, 25 May 2020 06:51:33 +0000 (18:51 +1200)]
Use apiv4, cache infra for basicTypes
I came across this as using an old weird pattern accessing the DAO. On looking it made most
sense just to switch to an apiv4 call. The caching was not convoluted but effectively
used an array cache, if loaded, and the array or Redis or sql cache if not. This
is the same as using the 'metadata' or 'contactTypes' cache so I switched to the latter.
I was inclined towards the former as I lean towards thinking this metadata all belongs in one - but there
is already another function in the same class going to the latter.