Eileen McNaughton [Wed, 29 Jun 2022 05:09:35 +0000 (17:09 +1200)]
Merge pull request #23900 from totten/5.51-sticky-classloader
(dev/core#3660) CRM_Extension_ClassLoader - Defend against redundant refreshes
Tim Otten [Wed, 29 Jun 2022 01:27:01 +0000 (18:27 -0700)]
(dev/core#3660) CRM_Extension_ClassLoader - Defend against redundant refreshes
Overview
--------
This is a follow-up to #23824 (
c24dd7db7e1e91120fd7daeb7e151f856d6b78c3) which addresses a
regressive edge-case.
Steps to Reproduce
------------------
* Write an extension like `wmf-civicrm` which (a) calls `System.flush` (`rebuildMenuAndCaches()`)
during `hook_install` -- and then (b) loads some class from the same extension.
```php
function foo_civicrm_install() {
civicrm_api3('System', 'flush', []);
CRM_Foo_Helper::doStuff();
}
```
* Try to install the extension.
Before
------
Crashes on loading the class `CRM_Foo_Helper`
After
-----
Loads the class `CRM_Foo_Helper`.
Comments
--------
(1) To see what's happening, consider `CRM_Extension_Manager_Module::onPreInstall()`.
This registers the new classloader and then fires `hook_install` which eventually
fires `rebuildMenuAndCaches()`. With
c24dd7db, this resets the classloader again.
But the extension isn't fully installed yet - so it forgets about the new extension.
(2) Is it safe to have some (temporarily) sticky items? Ish. You might
say: "Ah, but what if we need to remove an extension? Won't this static
variable retain stale things?" Doesn't matter. In PHP, classloading is a
one-way-street. (You cannot unload.) So you'll still have old classes in
memory, regardless of whether the `ClassLoader` has some old metadata
about where to find classes.
(3) I'm on the fence about whether this patch is a good idea. Calling
`System.flush` explicitly in this context seems like an invitation to
trouble. OTOH, it worked before #23824, so it can be called a regression.
Eileen McNaughton [Tue, 28 Jun 2022 23:00:17 +0000 (11:00 +1200)]
Merge pull request #23897 from agh1/5.51.0-releasenotes-initial
5.51.0 release notes initial run
Andie Hunt [Tue, 28 Jun 2022 20:23:55 +0000 (16:23 -0400)]
5.51.0 release notes: added boilerplate
Eileen McNaughton [Tue, 28 Jun 2022 03:21:41 +0000 (15:21 +1200)]
Merge pull request #23854 from totten/master-mixin-wfmsg
Scan for classes based on the PHP interface (WorkflowMessageInterface, ExampleDataInterface)
Tim Otten [Mon, 27 Jun 2022 23:40:10 +0000 (16:40 -0700)]
ExampleDataInterface - Switch to ClassScanner (part 3, swap scanner)
Tim Otten [Thu, 23 Jun 2022 05:25:54 +0000 (22:25 -0700)]
ExampleDataInterface - Switch to ClassScanner (part 2, use new names)
Tim Otten [Tue, 21 Jun 2022 11:12:00 +0000 (04:12 -0700)]
ExampleDataInterface - Switch to ClassScanner (part 1, rename *.ex.php => *.php)
Tim Otten [Tue, 21 Jun 2022 09:12:23 +0000 (02:12 -0700)]
WorkflowMessage - Switch to `ClassScanner` (was: bespoke `include_path` search)
Tim Otten [Tue, 21 Jun 2022 09:39:53 +0000 (02:39 -0700)]
mixin/scan-classes@1 - Allow extensions to opt-in to class scanning
Tim Otten [Tue, 21 Jun 2022 09:11:44 +0000 (02:11 -0700)]
ClassScanner - Add utility for scanning classes based on PHP interfaces
Tim Otten [Tue, 21 Jun 2022 10:33:42 +0000 (03:33 -0700)]
CRM_Utils_System::flushCache - More consistent behavior. Prepare for interface-php test.
* The interface-php test registers an instance of WorkflowMessageInterface.
* The list of WorkflowMessageInterface's is stored in the 'long' cache.
* When you enable/disable an extension, it should clear WorkflowMessage list (and other things).
* Before this patch, interface-php's `LifecycleTest` is inconsistent: it passes with
`testLifecycleWithSubprocesses()` and fails with `testLifecycleWithLocalFunctions()`.
* After this patch, interface-php's `LifecycleTest` is consistent: it passes with both
`testLifecycleWithSubprocesses()` and `testLifecycleWithLocalFunctions()`.
* The problem - while executing `testLifecycleWithLocalFunctions()`, it evidentally uses
`Arraycache` as the backend -- and thus skips the flushes. However, I cannot fathom why
one would want to clear-caches for SQL+memcache+redis but keep them for Arraycache.
Eileen McNaughton [Sat, 25 Jun 2022 22:27:55 +0000 (10:27 +1200)]
Merge pull request #23874 from AlainBenbassat/empty-weight-column-during-upgrade
returns weight 0 when weight column name is empty
demeritcowboy [Sat, 25 Jun 2022 11:29:48 +0000 (07:29 -0400)]
Merge pull request #23876 from colemanw/checkRecentItemsPerms
RecentItems - Enforce permissions before adding item
Andie Hunt [Fri, 24 Jun 2022 13:46:22 +0000 (09:46 -0400)]
5.51.0 release notes: raw from script
Coleman Watts [Fri, 24 Jun 2022 00:32:50 +0000 (20:32 -0400)]
RecentItems - Enforce permissions before adding item
Alain Benbassat [Thu, 23 Jun 2022 21:00:47 +0000 (23:00 +0200)]
returns weight 0 when weight column name is empty
Eileen McNaughton [Wed, 22 Jun 2022 21:38:29 +0000 (09:38 +1200)]
Merge pull request #23867 from demeritcowboy/currency551
dev/core#3680 - Currency incorrectly displayed for price set when default is not USD
demeritcowboy [Wed, 22 Jun 2022 13:34:12 +0000 (09:34 -0400)]
use the actual currency if there is one not the default
Eileen McNaughton [Wed, 22 Jun 2022 09:50:42 +0000 (21:50 +1200)]
Merge pull request #23865 from colemanw/behalf
dev/core#3675 Fix Permissioned Relationship pseudoconstant
Coleman Watts [Wed, 22 Jun 2022 08:05:40 +0000 (04:05 -0400)]
dev/core#3675 Fix Permissioned Relationship pseudoconstant
Fixes dev/core#3675 Permissioned Relationship no longer set up
for "On Behalf of Organization" Membership Contribution Form submissions
Seamus Lee [Tue, 21 Jun 2022 23:58:10 +0000 (09:58 +1000)]
Merge pull request #23839 from eileenmcnaughton/import_outy
dev/core#3665 import summary fixes
Seamus Lee [Tue, 21 Jun 2022 23:27:32 +0000 (09:27 +1000)]
Merge pull request #23849 from eileenmcnaughton/import_55
dev/core#3673 do not attempt to import empty related contact
Eileen McNaughton [Tue, 21 Jun 2022 23:08:41 +0000 (11:08 +1200)]
Merge pull request #23836 from stesi561/dev/core/#3671
Refs: dev/core#3671 Fix regression involving CiviCRM Webform + Cases.
Eileen McNaughton [Tue, 21 Jun 2022 22:59:55 +0000 (10:59 +1200)]
Merge pull request #23858 from seamuslee001/guzzle_658
[REF] Update Guzzle to be 6.5.8
Seamus Lee [Tue, 21 Jun 2022 21:37:50 +0000 (07:37 +1000)]
[REF] Update Guzzle to be 6.5.8
Eileen McNaughton [Tue, 21 Jun 2022 03:36:11 +0000 (15:36 +1200)]
dev/core#3673 do not attempt to report empty related contact
Eileen McNaughton [Tue, 21 Jun 2022 02:27:10 +0000 (14:27 +1200)]
Merge pull request #23822 from MegaphoneJon/3661-551
fixes core#3661: Don't check API permissions in CRM_Mailing_BAO_Mailing::getGroupNames()
Seamus Lee [Tue, 21 Jun 2022 00:12:19 +0000 (10:12 +1000)]
Merge pull request #23842 from seamuslee001/regen_3658
[REF] dev/core#3658 Regenerate civicrm_generated to ensure that group…
Seamus Lee [Mon, 20 Jun 2022 22:22:23 +0000 (08:22 +1000)]
[REF] dev/core#3658 Regenerate civicrm_generated to ensure that grouping is added on installs
Eileen McNaughton [Mon, 20 Jun 2022 05:47:22 +0000 (17:47 +1200)]
Add related contacts to the group too, per prior version
Eileen McNaughton [Mon, 20 Jun 2022 05:27:49 +0000 (17:27 +1200)]
dev/core#3665 import summary fixes
m
Jon Goldberg [Thu, 16 Jun 2022 17:13:38 +0000 (13:13 -0400)]
fixes core#3661: Don't check API permissions in CRM_Mailing_BAO_Mailing::getGroupNames()
colemanw [Mon, 20 Jun 2022 14:10:03 +0000 (10:10 -0400)]
Merge pull request #23838 from eileenmcnaughton/import_out
Add view link to user job monitoring page
colemanw [Mon, 20 Jun 2022 14:06:31 +0000 (10:06 -0400)]
Merge pull request #23821 from eileenmcnaughton/import_long
dev/core#3662 increase length of import table status message
colemanw [Mon, 20 Jun 2022 14:01:06 +0000 (10:01 -0400)]
Merge pull request #23835 from eileenmcnaughton/related
dev/core#3667 fix failure to match existing contacts in skip mode
Eileen McNaughton [Mon, 20 Jun 2022 02:14:28 +0000 (14:14 +1200)]
Make monitoring page degrade gracefully if the import job is deleted
Eileen McNaughton [Mon, 20 Jun 2022 01:45:34 +0000 (13:45 +1200)]
Add view link to user job monitoring page
Eileen McNaughton [Mon, 20 Jun 2022 00:51:20 +0000 (12:51 +1200)]
Merge pull request #23823 from eileenmcnaughton/contact_test
dev/core#3663 fix output regression on csv output for import
Eileen McNaughton [Sun, 19 Jun 2022 21:15:05 +0000 (09:15 +1200)]
Merge pull request #23818 from colemanw/afformDep
Afform - fix dependency injection for autogenerated forms
Eileen McNaughton [Sat, 18 Jun 2022 23:30:33 +0000 (11:30 +1200)]
dev/core#3667 fix failure to match existing contacts in skip mode
As reported by Andy C and verified by me 5.48 does create new related
contacts in skip mode
Luke Stewart [Sat, 18 Jun 2022 23:58:01 +0000 (11:58 +1200)]
Refs: dev/core#3671 Fix regression involving CiviCRM Webform + Cases.
Ignores permissions on api4 call in Recent::getTitle()
Eileen McNaughton [Fri, 17 Jun 2022 21:52:00 +0000 (09:52 +1200)]
Always throw exception in tests for pdf out
headers_sent() was always true before and hence the tests were written to expect the
exception would be called. Fixing that caused the tests to fail - but fixing it is good
Tim Otten [Fri, 17 Jun 2022 06:03:23 +0000 (23:03 -0700)]
Merge pull request #23827 from eileenmcnaughton/empty_date
Handle empty date token gracefully
Eileen McNaughton [Fri, 17 Jun 2022 04:15:51 +0000 (16:15 +1200)]
Handle empty date token gracefully
Eileen McNaughton [Fri, 17 Jun 2022 03:39:02 +0000 (15:39 +1200)]
Output to stdErr rather than echo
colemanw [Fri, 17 Jun 2022 03:08:35 +0000 (23:08 -0400)]
Merge pull request #23824 from totten/mixin-refresh
(dev/core#3660) Ensure that rebuildMenuAndCaches has current mixins+classloaders
Eileen McNaughton [Fri, 17 Jun 2022 00:11:12 +0000 (12:11 +1200)]
dev/core#3663 fix output regression on csv output
This fixes a very-recent rc regression whereby the file error output was
not correctly referring to the fields to be exported.
Note that in order to make it testable I had to
- remove header-setting that duplicates work done by the csv package
- remove extraneous echos in the GenCode
Tim Otten [Fri, 17 Jun 2022 00:00:48 +0000 (17:00 -0700)]
(dev/core#3660) Ensure that rebuildMenuAndCaches has current mixins+classloaders
Overview
--------
This fixes an issue in transitioning from `hook_managed` to `mixin/mgd-php@1`, wherein
managed-entities are briefly deleted (but later recreated).
Steps to Reproduce
------------------
1. (Web) Install an extension with a revision that uses `hook_managed`
2. (CLI) Switch the extension to a revision that uses `mixin/mgd-php@1`
3. (CLI) View contents of `civicrm_managed`
4. (Web) Run `civicrm/menu/rebuild`
5. (CLI) View contents of `civicrm_managed`
6. (Web) Run `civicrm/menu/rebuild`
7. (CLI) View contents of `civicrm_managed`
Before
------
While processing step 4 (`civicrm/menu/rebuild`), it fails to run the hooks for `mgd-php`.
Consequently, the list of managed-entities is lost and will disappear at step 5.
After
-----
While processing step 4 (`civicrm/menu/rebuild`), it activates the hooks for `mgd-php`.
Technical Details
------------------
When processing `civicrm/menu/rebuild`, there are a couple big substeps:
* `Civi\Core\Container::boot()` - During this process, it loads extensions. As usual,
this reads cached metadata, sets up classloaders, sets up mixins/hooks, etc.
* `CRM_Core_Invoke::rebuildMenuAndCaches()` - During this process, it clears
out caches and rebuilds several things (menus, managed-entities, etc).
The problem is this:
* The cache used during `boot()` has stale metadata (specifically,
`civicrm_cache` has old values of `mixinScan` and `mixinBoot`).
So it doesn't setup any new mixins/hooks.
* Then `rebuildMenuAndCaches()` depends on the mixins/hooks that are already setup.
While the function does clear persistent caches, it assumes that the
PHP runtime environment is up-to-spec. But it's not -- becuase our hooks
were based on the caches.
The patch uses the same `refresh()` mechanism as the extension-administration subsystem (which
has to reset the classloaders+mixins after enabling or disabling an extension).
Eileen McNaughton [Thu, 16 Jun 2022 22:11:16 +0000 (10:11 +1200)]
dev/core#3662 increase length of import table status message
This addresses https://lab.civicrm.org/dev/core/-/issues/3662 but
I think the underlying issue is that it has matched so many contacts, for
some reason, that the list of them is longer than 65,535 characters
so it is addressing a symptom, not the cause. 65,535 characters
feels like it should be long enough but changing to LONGTEXT
for a single field seems harmless so I'm a little on the
fence - but even if it just helps us debug....
Mathieu Lu [Thu, 16 Jun 2022 19:49:15 +0000 (15:49 -0400)]
Merge pull request #23807 from colemanw/fixAfformTitle
SearchKit - Only add filter values to Afform title if passed internally
Coleman Watts [Wed, 15 Jun 2022 21:49:51 +0000 (17:49 -0400)]
SearchKit - Only add filter values to Afform title if passed internally
This narrows the scope of contextual titles from #22319 to
only those filters passed internally, as used in drilldown forms.
It makes sense to exclude values from exposed filters because that
can lead to a confusing UI.
Coleman Watts [Thu, 16 Jun 2022 14:21:24 +0000 (10:21 -0400)]
Afform - fix dependency injection for autogenerated forms
Eileen McNaughton [Thu, 16 Jun 2022 10:47:47 +0000 (22:47 +1200)]
Merge pull request #23815 from seamuslee001/date_second_customformat
[REF] Fix second output in customFormat function and extend unit test
Seamus Lee [Thu, 16 Jun 2022 07:49:51 +0000 (17:49 +1000)]
[REF] Fix second output in customFormat function and extend unit test
Tim Otten [Thu, 16 Jun 2022 01:03:59 +0000 (18:03 -0700)]
Merge pull request #23801 from eileenmcnaughton/cont_work
Fix breakage in message preview on workflow contributions
Monish Deb [Wed, 15 Jun 2022 14:43:43 +0000 (20:13 +0530)]
Merge pull request #23805 from mattwire/devfinancial197alt
dev/financial#197 Revert freezing on total_amount field on recurring form (alt to #23796)
Matthew Wire [Wed, 15 Jun 2022 11:21:39 +0000 (12:21 +0100)]
Revert freezing on total_amount field on recurring form
Monish Deb [Wed, 15 Jun 2022 11:19:47 +0000 (16:49 +0530)]
Merge pull request #23798 from seamuslee001/fix_auto_renew_membership
Fix Automatic renewal membership from front end contribution forms
Eileen McNaughton [Wed, 15 Jun 2022 03:44:52 +0000 (15:44 +1200)]
Fix breakage in message preview on workflow contributions
Seamus Lee [Tue, 14 Jun 2022 23:49:26 +0000 (09:49 +1000)]
[REF] Fix Automatic renewal membership from front end contribution forms
Properly fix regression and update unit tests to match what the form does
Tim Otten [Tue, 14 Jun 2022 21:11:43 +0000 (14:11 -0700)]
Merge pull request #23785 from totten/5.51-hook-log
dev/core#3502 - CiviEventDispatcher - Softer errors for not-ready. More comments.
colemanw [Tue, 14 Jun 2022 20:13:04 +0000 (16:13 -0400)]
Merge pull request #23753 from eileenmcnaughton/import_validate_int
Add integer validation to import
colemanw [Tue, 14 Jun 2022 20:12:21 +0000 (16:12 -0400)]
Merge pull request #23763 from eileenmcnaughton/act_test
Fix target contact label back to include target
colemanw [Tue, 14 Jun 2022 20:11:37 +0000 (16:11 -0400)]
Merge pull request #23764 from eileenmcnaughton/activity_update_mutli
dev/core#2706 dev/core#2308 fix activity import to update multi-select fields
Eileen McNaughton [Tue, 14 Jun 2022 20:08:40 +0000 (08:08 +1200)]
Merge pull request #23788 from ufundo/5.51
only check batch currency match when adding a financial_trxn
demeritcowboy [Tue, 14 Jun 2022 17:12:47 +0000 (13:12 -0400)]
Merge pull request #23786 from mattwire/devfinancial199
dev/financial#199 Fix additional details on edit template contribution
Matthew Wire [Tue, 14 Jun 2022 14:45:13 +0000 (15:45 +0100)]
Fix additional details on edit template contribution
ufundo [Thu, 9 Jun 2022 16:29:32 +0000 (16:29 +0000)]
only check batch currency match when adding a financial_trxn
Tim Otten [Thu, 9 Jun 2022 04:17:51 +0000 (21:17 -0700)]
dev/core#3502 - CiviEventDispatcher - Tune down the warning
Tim Otten [Thu, 9 Jun 2022 02:14:04 +0000 (19:14 -0700)]
dev/core#3502 - CiviEventDispatcher - Tweak error message. Add explanation.
Eileen McNaughton [Tue, 14 Jun 2022 03:58:59 +0000 (15:58 +1200)]
Merge pull request #23783 from totten/5.51-snapshots
FiveFiftyOne - Enable snapshots for data modified data
Tim Otten [Tue, 14 Jun 2022 02:06:05 +0000 (19:06 -0700)]
FiveFiftyOne - Enable snapshots for data modified data
Before
------
The 5.51.alpha upgrade modifies a some data-structures (`civicrm_mapping_*`, `civicrm_queue`),
but it doesn't take any snapshots.
After
-----
It does snapshots.
Comments
--------
Both tables should generally be quite small.
Strictly, the `civicrm_mapping_*` updates are more in-place modifications,
so that's more important. The `civicrm_queue` changes are only adding new
columns. But the table is so small - it doesn't hurt.
I suppose one could argue that these particular fields aren't likely to have
problems - but it's important to get in the habit of enabling snapshots so
that we have them when they do matter.
Eileen McNaughton [Tue, 14 Jun 2022 00:00:29 +0000 (12:00 +1200)]
Merge pull request #23771 from eileenmcnaughton/cont_update
dev/core#3651 dev/core#1337 Fix failure to show last column data in output, spaces in names
Eileen McNaughton [Mon, 13 Jun 2022 22:19:02 +0000 (10:19 +1200)]
Merge pull request #23780 from totten/5.51-hush
(dev/core#3653) CRM_Queue_Runner - Fix upgrade warnings. Extract disableBackgroundExecution().
Tim Otten [Mon, 13 Jun 2022 20:34:06 +0000 (13:34 -0700)]
Merge pull request #23766 from eileenmcnaughton/cont_up
dev/core#3513 Remove 'done' from sumary/import monitoring page
Tim Otten [Mon, 13 Jun 2022 19:55:51 +0000 (12:55 -0700)]
CRM_Queue_Runner - Fix upgrade warnings. Extract disableBackgroundExecution().
This is a revision to #23775. As before, it prevents a hard error when
upgrading to 5.51. However, the try-catch produces confusing error messages
in the `CiviCRM.log.*` (ie they indicate a SQL error, but the situation is
actually a normal/expected during upgrade). This avoids the error messages.
Tested (`r-run`) with `civicrm/upgrade`, `drush civicrm-upgrade-db`, and `cv
upgrade:db` -- for both 5.45=>5.51 and 5.45=>5.49=>5.51.
Eileen McNaughton [Mon, 13 Jun 2022 06:01:48 +0000 (18:01 +1200)]
Merge pull request #23777 from darrick/fix_import_disableUSPS
fix disableUSPS since import running in separate context of Queue.
Darrick Servis [Sat, 11 Jun 2022 22:53:56 +0000 (15:53 -0700)]
fix disableUSPS since import running in separate context of Queue.
demeritcowboy [Mon, 13 Jun 2022 00:54:20 +0000 (20:54 -0400)]
Merge pull request #23775 from eileenmcnaughton/5.51
dev/core#3653 Fix on queue runner not working in upgrade
Eileen McNaughton [Sun, 12 Jun 2022 22:13:07 +0000 (10:13 +1200)]
dev/core#3653 Fix on queue runner not working in upgrade
Eileen McNaughton [Sun, 12 Jun 2022 06:03:38 +0000 (18:03 +1200)]
Merge pull request #23772 from eileenmcnaughton/cont_contact_fields
Fix import regression - contribution import borks on do_not_import
Eileen McNaughton [Sun, 12 Jun 2022 00:29:37 +0000 (12:29 +1200)]
Merge pull request #23757 from colemanw/dupeFixAgain
Deduepe - Fix form buttons (again)
Eileen McNaughton [Sat, 11 Jun 2022 23:36:09 +0000 (11:36 +1200)]
dev/core#3651 dev/core#1337 Fix failure to show last column data in output, spaces in names
Eileen McNaughton [Sun, 12 Jun 2022 00:21:18 +0000 (12:21 +1200)]
Fix import regression - contribution import borks on do_not_import
Eileen McNaughton [Sat, 11 Jun 2022 02:59:20 +0000 (14:59 +1200)]
dev/core#3513 Remove 'done' from sumary/import monitoring page
See dev/core#3513 for why it's confusing
demeritcowboy [Sat, 11 Jun 2022 19:38:42 +0000 (15:38 -0400)]
Merge pull request #23759 from colemanw/fixTotalCount
[REGRESSION] SearchKit - Fix angular console error when totalCount is not given
demeritcowboy [Sat, 11 Jun 2022 19:19:38 +0000 (15:19 -0400)]
Merge pull request #23754 from eileenmcnaughton/act_date
dev/core#2325 import second-handling fix
colemanw [Sat, 11 Jun 2022 15:41:21 +0000 (11:41 -0400)]
Merge pull request #23765 from eileenmcnaughton/guzzle_it
Catch & convert Guzzle exception
demeritcowboy [Sat, 11 Jun 2022 15:37:01 +0000 (11:37 -0400)]
Merge pull request #23758 from colemanw/noCiviGrant
Setup - Remove CiviGrant from available components
colemanw [Sat, 11 Jun 2022 14:11:06 +0000 (10:11 -0400)]
Merge pull request #23760 from eileenmcnaughton/validate_fields
dev/core#3511 Improve handling of invalid saved mapping fields
colemanw [Sat, 11 Jun 2022 13:56:47 +0000 (09:56 -0400)]
Merge pull request #23761 from eileenmcnaughton/invalid_state_with_country
dev/core#3512 fix rc fatal error when state is invalid
Coleman Watts [Fri, 10 Jun 2022 16:25:32 +0000 (12:25 -0400)]
Setup - Remove CiviGrant from available components
Fixes dev/core#3485
Coleman Watts [Fri, 10 Jun 2022 16:37:56 +0000 (12:37 -0400)]
SearchKit - Fix angular console error when totalCount is not given
Before: Error: [$compile:nonassign] Expression 'undefined' in attribute 'totalCount' used with directive 'crmSearchDisplayTable' is non-assignable!
After: Fixed, and totalCount still functions correctly for its indended purpose with SearchSegments.
Coleman Watts [Fri, 10 Jun 2022 16:08:52 +0000 (12:08 -0400)]
Deduepe - Fix form buttons (again)
Fixes dev/core#3421
Also see dev/core#3135
And the original cause:
a6f2a80
Eileen McNaughton [Sat, 11 Jun 2022 01:25:36 +0000 (13:25 +1200)]
Catch & convert Guzzle exception
Eileen McNaughton [Fri, 10 Jun 2022 23:57:49 +0000 (11:57 +1200)]
dev/core#2706 fix activity import to update multi-select fields
Eileen McNaughton [Fri, 10 Jun 2022 23:27:53 +0000 (11:27 +1200)]
Fix target contact label back to include target
Eileen McNaughton [Fri, 10 Jun 2022 06:50:53 +0000 (18:50 +1200)]
dev/core#2325 import second-handling fix
Eileen McNaughton [Fri, 10 Jun 2022 23:09:20 +0000 (11:09 +1200)]
dev/core#3512 fix rc fatal error when state is invalid