Eileen McNaughton [Tue, 2 Jun 2020 23:49:04 +0000 (11:49 +1200)]
Merge pull request #17471 from colemanw/customSpec
APIv4 - Improve custom field spec gathering
Eileen McNaughton [Tue, 2 Jun 2020 20:43:11 +0000 (08:43 +1200)]
Merge pull request #17469 from colemanw/memberTypeTest
[REF] Fix serialized membership field handling in RelationshipTest
Coleman Watts [Tue, 2 Jun 2020 15:13:56 +0000 (11:13 -0400)]
APIv4 - Improve custom field spec gathering
Uses the basicTypes() function instead of hard-coding contact types,
Includes all the weird variants of Participant.
Coleman Watts [Tue, 2 Jun 2020 14:16:03 +0000 (10:16 -0400)]
Fix serialized membership field handling in RelationshipTest
These fields were being unnecessarily and incorrectly serialized by the test.
Passing an array is preferred and it will handle the serialization correctly.
colemanw [Tue, 2 Jun 2020 14:06:55 +0000 (10:06 -0400)]
Merge pull request #17372 from eileenmcnaughton/opts
Add more search options
colemanw [Tue, 2 Jun 2020 14:05:10 +0000 (10:05 -0400)]
Merge pull request #17413 from scoobird/assign_relationship_1287
Allow bidirectional assignment of relationships from search results
Seamus Lee [Tue, 2 Jun 2020 13:38:00 +0000 (23:38 +1000)]
Merge pull request #17467 from civicrm/5.26
5.26
Seamus Lee [Tue, 2 Jun 2020 13:28:06 +0000 (23:28 +1000)]
Merge pull request #17466 from mattwire/subscriptiondetail
Add actual field name for processor_id to getSubscriptionDetails
Seamus Lee [Tue, 2 Jun 2020 13:26:10 +0000 (23:26 +1000)]
Merge pull request #17465 from seamuslee001/upgrde_required_fields
[REF] Implement required fields database changes that have occured du…
Yashodha Chaku [Tue, 2 Jun 2020 11:46:37 +0000 (17:16 +0530)]
Merge pull request #17462 from eileenmcnaughton/526ex
dev/core#1780 Fix bug where non-household merge contacts were being skipped
Seamus Lee [Tue, 2 Jun 2020 11:08:23 +0000 (21:08 +1000)]
Merge pull request #17424 from kcristiano/5.26.upgrade-message
Add Upgrade Warning. Limit to WP Only.
Seamus Lee [Tue, 2 Jun 2020 09:31:56 +0000 (19:31 +1000)]
[REF] Implement required fields database changes that have occured during 5.27.alpha1 development cycle
Matthew Wire [Tue, 2 Jun 2020 09:45:44 +0000 (10:45 +0100)]
Add actual field name for processor_id to getSubscriptionDetails
Kevin Cristiano [Mon, 1 Jun 2020 17:44:38 +0000 (13:44 -0400)]
get link to Blog Post
Kevin Cristiano [Fri, 29 May 2020 18:31:32 +0000 (14:31 -0400)]
Add PostUpgrade Message
Signed-off-by: Kevin Cristiano <kcristiano@kcristiano.com>
Kevin Cristiano [Fri, 29 May 2020 14:26:39 +0000 (10:26 -0400)]
Add Upgrade Warning. Limit to WP Only.
Signed-off-by: Kevin Cristiano <kcristiano@kcristiano.com>
Seamus Lee [Tue, 2 Jun 2020 06:03:25 +0000 (16:03 +1000)]
Merge pull request #17443 from eileenmcnaughton/renew
[REF] Minor simplification
eileen [Thu, 28 May 2020 21:45:44 +0000 (09:45 +1200)]
Add more search fields for contacts - city, postal_code, street_address
eileen [Thu, 21 May 2020 03:38:34 +0000 (15:38 +1200)]
Add more search options
This adds more fields to the filters on search for individual
- organization_name (Employer Name)
- first_name
- nick_name
- last_name
Note
1) organization_name is populated for individuals with employers - it's handy to be able
to filter by as a quick way to narrow down. I wasn't too worried about declaring it only
for individuals as sort_name covers this for organizations
2) Last name these feels a bit unnecessary as it co-incides with sort_name
but it also feels odd not to add it
3) Ideally for these text fields they would be always or optionally 'like' searches
(respecting the site +wildcard setting). I took a a quick look but decided to leave it
out of scope at this stage.
4) I thought 'email' might have been useful too but given 3 & the fact that the main use I saw
was as a proxy for 1 (employer) and that email is the preferred search for email anyway (
which was the entity I was working on) I excluded it too in the end.
The use case for this is narrowing down in a large database. Take finding Johnathan Smith.
Being able to add 'Johnathan' as a filter helps get past all the Johns quicker.
Lastly - I have a sneaky feeling that users in our org will abuse the nick name filter heavily &
add nicknames to all contacts they frequently email....
Eileen McNaughton [Tue, 2 Jun 2020 05:55:34 +0000 (17:55 +1200)]
Merge pull request #17430 from mattwire/eileenmcnaughton-cancel
Nuance cancel options for processors
Eileen McNaughton [Tue, 2 Jun 2020 05:52:47 +0000 (17:52 +1200)]
Merge pull request #17298 from demeritcowboy/activity-attachment-delete
dev/core#1753 - Attachments aren't deleted when deleting activity
Seamus Lee [Tue, 2 Jun 2020 04:43:47 +0000 (14:43 +1000)]
Merge pull request #17460 from seamuslee001/pear_log_version_bump
[REF] Bump Pear Log version to fix compatability with Drupal 8 / Drup…
Seamus Lee [Tue, 2 Jun 2020 04:33:37 +0000 (14:33 +1000)]
Merge pull request #17463 from eileenmcnaughton/memtype
Update MembershipType.name to be a required field
Morgan [Wed, 27 May 2020 21:48:57 +0000 (17:48 -0400)]
Allow bidirectional assignment of relationships from search results
eileen [Tue, 2 Jun 2020 01:36:24 +0000 (13:36 +1200)]
Update MembershipType.name to be a required field
Seamus Lee [Tue, 2 Jun 2020 00:43:12 +0000 (10:43 +1000)]
[REF] Bump Pear Log version to fix compatability with Drupal 8 / Drupal 9
eileen [Tue, 2 Jun 2020 01:18:29 +0000 (13:18 +1200)]
dev/core#1780 Fix bug where non-household merge contacts were being skipped
Eileen McNaughton [Tue, 2 Jun 2020 00:41:20 +0000 (12:41 +1200)]
Merge pull request #17459 from civicrm/5.26
5.26 to master
Seamus Lee [Tue, 2 Jun 2020 00:27:38 +0000 (10:27 +1000)]
Merge pull request #17438 from eileenmcnaughton/cust
dev/core#1747 don't drop temp tables on class destruct.
Eileen McNaughton [Tue, 2 Jun 2020 00:03:36 +0000 (12:03 +1200)]
Merge pull request #17457 from agh1/5.26.0-release-notes-initial
5.26.0 release notes initial run
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.
Andrew Hunt [Mon, 1 Jun 2020 21:31:24 +0000 (17:31 -0400)]
5.26.0 release notes: added boilerplate
Andrew Hunt [Mon, 1 Jun 2020 20:23:24 +0000 (16:23 -0400)]
5.26.0 release notes: raw from script
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.
Matthew Wire [Sat, 30 May 2020 17:19:04 +0000 (18:19 +0100)]
Don't set isNotifyProcessorOnCancelRecur if it has not been set - this allows the payment processor to know if the user made a choice or not independently of supportsCancelRecurringNotifyOptional
eileen [Wed, 22 Apr 2020 23:08:05 +0000 (11:08 +1200)]
Nuance cancel options for processors.
This PR addresses an issue where we have insufficient nuance on processor capabilities for cancel.
There are 2 behaviours that we are trying to support with one capability
1) can this processor cope with us cancelling a recurring donation within CiviCRM
2) should we present the option of whether to or not to a user. This option is appropriate
when the processor manages the schedule (e.g Paypal) as the user may just be updating Civi to
match reality. However, for token driven processors it generally doesnt' apply.
This PR adds a new overridable capability - 'supportsOptionalCancelRecurring' which is the same as
supportsCancelRecurring by default. For the manual processor it is FALSE.
Call cancelRecurring for all cancels.
In almost all cases this will be no change as processors would have to implement the new-ish
doCancelRecurring themselves to have any change
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
eileen [Mon, 1 Jun 2020 06:50:07 +0000 (18:50 +1200)]
[REF] Minor simplification
This code used to be shared with other functions. No longer, so we only need to return what is returned for
this form
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 [Sun, 31 May 2020 23:21:01 +0000 (11:21 +1200)]
dev/core#1747 don't drop temp tables on class destruct.
Recent code clean up means the search class is now dropped more quickly - meaning that dropping
these tables in the destructors is too aggressive. Since they are memory tables & temp tables they get
cleaned up anyway I think. We should move this search to an extension that ships with core, not necessarily
enabled on initial install but that is up for discussion
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