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.
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 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.
Matthew Wire [Mon, 25 May 2020 14:33:29 +0000 (15:33 +0100)]
Add a bit more clarity to createEmailActivity function
Matthew Wire [Mon, 25 May 2020 14:29:03 +0000 (15:29 +0100)]
Set default using spec for activity_date_time
Mathieu Lu [Mon, 25 May 2020 12:33:45 +0000 (08:33 -0400)]
Merge pull request #17228 from mattwire/fixmultilingualoptiongroups
Fix adding languages in multilingual
Matthew Wire [Mon, 25 May 2020 11:33:32 +0000 (12:33 +0100)]
Merge pull request #17308 from colemanw/BAOcleanup
Various BAO create/add cleanups to use writeRecord()
Matthew Wire [Mon, 25 May 2020 11:31:59 +0000 (12:31 +0100)]
Merge pull request #17348 from eileenmcnaughton/payex
Remove instantiation of transaction from payment express ipn class
Seamus Lee [Mon, 25 May 2020 10:43:50 +0000 (20:43 +1000)]
Add in domain tokens onto the Message Template admin interface
Seamus Lee [Mon, 25 May 2020 05:32:51 +0000 (15:32 +1000)]
Merge pull request #17381 from eileenmcnaughton/dao
Remove null code
Seamus Lee [Mon, 25 May 2020 05:30:53 +0000 (15:30 +1000)]
Merge pull request #17384 from eileenmcnaughton/abort
Remove validation bypass
Eileen McNaughton [Mon, 25 May 2020 01:50:07 +0000 (13:50 +1200)]
Merge pull request #17383 from eileenmcnaughton/ids
[NFC] Remove some more of the old cvs blocks
Seamus Lee [Mon, 25 May 2020 01:47:13 +0000 (11:47 +1000)]
dev/core#1775 Fix fee amount reversals when doing a change of financial type
eileen [Mon, 25 May 2020 00:15:55 +0000 (12:15 +1200)]
Remove validation bypass
I was trying to understand why executeQuery allows validation to be bypassed. That seems
intuitively like something that should be handled by the calling function. This is one of the few
places that calls it - but I can't see a reason for it to by pass validation....
My best guess is that a parameter could legitimately be NULL - and the group properly is the
only one that seems to be a candidate
I also note the case for passing i18nRewrite seems dubious as the table has no localisation
eileen [Sun, 24 May 2020 22:52:53 +0000 (10:52 +1200)]
[NFC] Remove some more of the old cvs blocks
eileen [Sun, 24 May 2020 22:32:00 +0000 (10:32 +1200)]
Remove null code
Eileen McNaughton [Sun, 24 May 2020 22:25:35 +0000 (10:25 +1200)]
Merge pull request #17358 from seamuslee001/d8_prevnext_cache_test_fix
[TEST] Fix test failure on Drupal 8 E2E PrevNextTest by only includin…
Eileen McNaughton [Sun, 24 May 2020 22:15:26 +0000 (10:15 +1200)]
Merge pull request #16541 from bhahumanists/subtype-issue-991
#991 subtypes not filled in when editing a smart group
Eileen McNaughton [Sun, 24 May 2020 22:12:07 +0000 (10:12 +1200)]
Merge pull request #17379 from colemanw/del
Don't exclude deleted contacts from ACL cache when user has permission
Seamus Lee [Sun, 24 May 2020 21:11:33 +0000 (07:11 +1000)]
Use Syfony 3.4 as minimum now
Seamus Lee [Sat, 23 May 2020 21:25:13 +0000 (07:25 +1000)]
WIP allow for installation on Symfony 4.4
Seamus Lee [Fri, 22 May 2020 20:54:50 +0000 (06:54 +1000)]
Merge pull request #17318 from agh1/aria-hidden-icon
Make all icons aria-hidden
Seamus Lee [Fri, 22 May 2020 20:52:13 +0000 (06:52 +1000)]
Merge pull request #17378 from agh1/cleanup-feed-urls
CiviEvent Dashboard and Manage Events: clean up disused url template vars
Coleman Watts [Fri, 22 May 2020 18:45:33 +0000 (14:45 -0400)]
ACL - Don't exclude deleted contacts from ACL cache when user has permission to see them
Test failures seem to be due to assumptions of the test.
Removed via Hume's guillotine
When the user has 'access deleted contacts' permission, deleted contacts
should not be excluded from the ACL cache.
Andrew Hunt [Fri, 22 May 2020 15:15:33 +0000 (11:15 -0400)]
CiviEvent Dashboard and Manage Events: clean up disused url template vars
Andrew Hunt [Wed, 13 May 2020 18:10:44 +0000 (14:10 -0400)]
Add aria-hidden to extant icons
Andrew Hunt [Wed, 13 May 2020 16:15:52 +0000 (12:15 -0400)]
Add aria-hidden to icon helpers
Seamus Lee [Fri, 22 May 2020 06:59:10 +0000 (16:59 +1000)]
Merge pull request #17282 from agh1/calendar-icons
Replace ical and office calendar image icons
Seamus Lee [Fri, 22 May 2020 06:40:24 +0000 (16:40 +1000)]
Merge pull request #17345 from eileenmcnaughton/ev_batch
Preliminary cleanup on form
eileen [Wed, 20 May 2020 02:58:52 +0000 (14:58 +1200)]
Fix pricefield pseudoconstant.
The price field turns out not to be returning pseudoconstant fields for 2 reasons
1) the label field is defined but the name field is not
2) any price fields with no domain are filtered out. In my single domain db this is
all of them.
I think we can safely understand NULL domain_id as 'not restricted by domain'. For some tables
(membershipType) it is a required field but for PriceField it is not.
I would be inclined to say it should be required less often. However, where it is required thenn
the OR IS NULL should never be true
Eileen McNaughton [Thu, 21 May 2020 21:13:25 +0000 (09:13 +1200)]
Merge pull request #17376 from artfulrobot/artfulrobot-public-status-messages
Public status messages should show correct class/icon like error
Matthew Wire [Thu, 21 May 2020 14:20:24 +0000 (15:20 +0100)]
Merge pull request #17373 from eileenmcnaughton/post_simp
[REF] Minor code simplification