Extensions issueshttps://lab.civicrm.org/groups/extensions/-/issues2016-06-22T00:58:40Zhttps://lab.civicrm.org/extensions/anonymize/-/issues/4Some fields are not recalculated on API save2016-06-22T00:58:40ZxurizaemonSome fields are not recalculated on API saveWhen saving the contact, some autocalculated fields are not regenerated.
Does this need to be done separately? Fields with preserved non-anonymized data are things like -
- addressee_display
- email_greeting_display
- postal_greeting_di...When saving the contact, some autocalculated fields are not regenerated.
Does this need to be done separately? Fields with preserved non-anonymized data are things like -
- addressee_display
- email_greeting_display
- postal_greeting_display
https://lab.civicrm.org/extensions/anonymize/-/issues/14issues with is_deceased data2018-02-02T19:04:54Zxurizaemonissues with is_deceased dataIn #11, @com2 said:
> After anonymizing the search for non-deceased contacts stopped working, always returning zero results.
> I think I don't agree that anonymizing is that you let contacts randomly die, because that seems to have h...In #11, @com2 said:
> After anonymizing the search for non-deceased contacts stopped working, always returning zero results.
> I think I don't agree that anonymizing is that you let contacts randomly die, because that seems to have happened here with my dataset.
> I can agree that the decease date is changed when it is there, but a contact that is alive should remain alive.
So to address this:
* Ensure that search for non-deceased works after an anonymization
* Ensure contacts retain deceased value after anonymization.
* Ensure date of death is randomized if it happens (and presumably no earlier than date of birth or latest recorded interaction if we want to be clever).https://lab.civicrm.org/extensions/anonymize/-/issues/6Contact.anonymize could hit more default data2017-03-28T11:41:44ZxurizaemonContact.anonymize could hit more default dataDid a quick test, some fields were missed.
![anonymize](https://cloud.githubusercontent.com/assets/105608/24403245/751e1736-1418-11e7-812c-b3cadfc918fe.gif)
Did a quick test, some fields were missed.
![anonymize](https://cloud.githubusercontent.com/assets/105608/24403245/751e1736-1418-11e7-812c-b3cadfc918fe.gif)
https://lab.civicrm.org/extensions/anonymize/-/issues/15Handle custom data2018-02-02T22:14:31ZxurizaemonHandle custom dataThis extension doesn't yet handle custom fields at all. Needs to identify each custom field and then handle it based on the available options / input type for that field.This extension doesn't yet handle custom fields at all. Needs to identify each custom field and then handle it based on the available options / input type for that field.https://lab.civicrm.org/extensions/anonymize/-/issues/2Issues with Fake people born before 1970?2016-06-21T23:51:11ZxurizaemonIssues with Fake people born before 1970?```
$ for ii in $( seq 20 ) ; do drush cvapi contact.anonymize id=75636 locale=fr_FR | grep birth_date ; done
[birth_date] => 1982-10-21
[birth_date] => 1970-07-30
[birth_date] => 1970-09-30
mt_rand(): max(-48224137) is smaller than min(...```
$ for ii in $( seq 20 ) ; do drush cvapi contact.anonymize id=75636 locale=fr_FR | grep birth_date ; done
[birth_date] => 1982-10-21
[birth_date] => 1970-07-30
[birth_date] => 1970-09-30
mt_rand(): max(-48224137) is smaller than min(0) DateTime.php:32 [warning]
[birth_date] => 1973-03-14
```
https://lab.civicrm.org/extensions/anonymize/-/issues/16Street address not randomized2019-08-04T02:33:36ZxurizaemonStreet address not randomizedI tested this just now and:
- I created a contact id=203 with a specific address ("123 Glorious Lane")
- I ran `cv api Contact.anonymize locale="en_NZ" id=203`
- I checked and the contact was mostly updated, but still resided at "12...I tested this just now and:
- I created a contact id=203 with a specific address ("123 Glorious Lane")
- I ran `cv api Contact.anonymize locale="en_NZ" id=203`
- I checked and the contact was mostly updated, but still resided at "123 Glorious Lane"https://lab.civicrm.org/extensions/mjwshared/-/issues/17Separation of concerns concern (!) in IPN Trait2022-08-26T13:32:26ZRichSeparation of concerns concern (!) in IPN TraitYou may not want to fix this @mattwire but I'm noting it here because it's something that stops me chosing to use this trait, and thought it might be helpful to log why.
The IPN class is a request controller that takes whatever the PP t...You may not want to fix this @mattwire but I'm noting it here because it's something that stops me chosing to use this trait, and thought it might be helpful to log why.
The IPN class is a request controller that takes whatever the PP throws its way, and is responsible for parsing and processing that data and producing some sort of output suitable to the external PP's needs.
If all PPs sent one event per IPN, then this trait would be fine. However it's very common for an IPN to bundle a few events in one IPN call, which is where things get knotty.
e.g. Most of the properties added by the IPN trait belong to a **single event**, not to the **IPN**. e.g. [contributionRecurID](https://lab.civicrm.org/extensions/mjwshared/-/blob/707b262724729ba6a163d3f6a955dde73cd61159/CRM/Core/Payment/MJWIPNTrait.php#L37) - and the associated getter/setter methods.
This means that the same instance of this IPN class holds data that belongs to different events. I think it's better separation of concerns to have a separate event processing class to encapsulate all the data to do with a single event.
e.g. the following error becomes easy to make, and it becomes easier the more event-level properties you add to the IPN trait:
```php
class myIPN {
use CRM_Core_Payment_MJWIPNTrait;
public function processTheIPN(array $events) {
foreach ($events as $event) {
if (!empty($event->thirdPartyRefToContributionRecurID)) {
$this->setContributionRecurID($event->thirdPartyRefToContributionRecurID);
}
// ...
$this->carryOnProcessingEvent($event);
}
}
```
The error here being that if event 1 has a recur ID, but event 2 doesn't, event 2 inherits the recur of event 1.
Of course you can solve this by verbose code that resets all these at the end of the event loop, but it's a foot-gun. I prefer a pattern like:
```php
class myIPN {
use CRM_Core_Payment_MJWIPNTrait;
public function processTheIPN(array $events) {
foreach ($events as $event) {
$eventProcessor = new \Civi\MyProcessor\EventProcessor($event);
$eventProcessor->doYourThing();
}
}
}
```
then
```php
class Civi\MyProcessor\EventProcessor {
protected ?int $contributionRecurID = NULL;
public function __construct($event) {
if (!empty($event->thirdPartyRefToContributionRecurID)) {
$this->contributionRecurID = $event->thirdPartyRefToContributionRecurID;
}
// ...
$this->carryOnProcessingEvent($event);
}
}
```
Obviously the constructor might sensibly need extra data (like the payment processor, which *does* belong to the IPN data, typically), but the point is that this code:
- has good separation of concerns: the event processor class does just that.
- saves us from ourselves; as the object is not reused between events, we don't need to worry about remembering to reset all the vars.
Anyway, I realise nobody *has* to use mjwshared, and nobody *has* to use the ipn trait, but I thought I'd pen this rather than silently moving away.https://lab.civicrm.org/extensions/ukgiftaid/-/issues/33Civicrm Gift Aid Extension Doesn't provide for single donation2022-08-24T17:04:31ZRichardACivicrm Gift Aid Extension Doesn't provide for single donationWhen using the Gift Aid extension for civicrm, there are currently three options for a user to choose from on the Gift Aid Declaration - Yes, today and in future, yes, today and last four years, and No. There is no option for the user to...When using the Gift Aid extension for civicrm, there are currently three options for a user to choose from on the Gift Aid Declaration - Yes, today and in future, yes, today and last four years, and No. There is no option for the user to just choose 'this donation only', which is a valid option under HMRC rules. Please update the code to provide this option, along with the appropriate behaviour for this option.
Using Civicrm version 5.52.2 and Gift Aid Extension version 3.5.1 (Wordpress)https://lab.civicrm.org/extensions/stripe/-/issues/383Webform won't allow user to submit if total is zero2023-05-19T04:39:54ZUpperholmeWebform won't allow user to submit if total is zeroI have a Drupal 7 webform that enables users to register for up to two optional events. I've configured the conditional logic on the webform to support a discount code that can be entered into a field, which then sets the registration fe...I have a Drupal 7 webform that enables users to register for up to two optional events. I've configured the conditional logic on the webform to support a discount code that can be entered into a field, which then sets the registration fee for one of the events to zero. If the user chooses not to register for the second event, then the total amount is zero.
When Stripe is selected as the payment processor, the form submit button does nothing, and the user is stranded having entered all their data.
Expected behaviour: The user should be able to submit the form regardless of whether the total is zero.https://lab.civicrm.org/extensions/caldera-civicrm/caldera-forms/-/issues/3Incompatibly with PHP8+2024-01-14T08:55:12ZJonGoldIncompatibly with PHP8+On PHP 8.0, I received this error:
```
PHP Fatal error: Uncaught Error: Failed opening required '/home/jon/local/mysite/web/wp-content/plugins/caldera-forms/vendor/symfony/polyfill-mbstring/bootstrap80.php' (include_path='.:/usr/share/p...On PHP 8.0, I received this error:
```
PHP Fatal error: Uncaught Error: Failed opening required '/home/jon/local/mysite/web/wp-content/plugins/caldera-forms/vendor/symfony/polyfill-mbstring/bootstrap80.php' (include_path='.:/usr/share/php') in /home/jon/local/mysite/web/wp-content/plugins/caldera-forms/vendor/symfony/polyfill-mbstring/bootstrap.php:15"
```
The problem is `polyfill-mbstring` is pinned to version 1.20, and we're packing 1.20-dev. I assume that was a mistake, and we should be specifying version `^1.20` instead of exactly `1.20`.
1.20-dev is fundamentally broken in that it tries to include a file on PHP 8 that isn't part of the package until version 1.22. Updating the package should resolve this. I'd submit a PR but I don't have a Caldera Form build environment.https://lab.civicrm.org/extensions/grantapplications/-/issues/189Grants is missing as an option for a new profile field2023-07-05T23:19:04ZAlanDixonGrants is missing as an option for a new profile fieldAs described here: https://civicrm.stackexchange.com/questions/42365/profile-with-civigrant-custom-field-not
Short version: grant fields (of any kind) are unavailable to select into a profile. Existing grant fields in profiles are unaff...As described here: https://civicrm.stackexchange.com/questions/42365/profile-with-civigrant-custom-field-not
Short version: grant fields (of any kind) are unavailable to select into a profile. Existing grant fields in profiles are unaffected and work.
I notice that a new install does not have this issue, but my existing one does (which was created a few versions ago and got upgraded).
I suspect if I was smarter I'd know where this configuration lives, but I don't. Any hints?AlanDixonAlanDixonhttps://lab.civicrm.org/extensions/civimobileapi/-/issues/72Clicking on Agenda tab in Events with civimobileapi extension causes fatal DB...2022-07-24T14:14:25ZTOCM_MMatthewsClicking on Agenda tab in Events with civimobileapi extension causes fatal DB errorRunning CiviCRM 5.51.1, CiviMobileAPI 6.0.1. Searched for this as an existing issue, did not find it.
A user tried to click on the Agenda tab when creating a new event (which is only there with the CiviMobileAPI extension enabled) and g...Running CiviCRM 5.51.1, CiviMobileAPI 6.0.1. Searched for this as an existing issue, did not find it.
A user tried to click on the Agenda tab when creating a new event (which is only there with the CiviMobileAPI extension enabled) and gets a network disconnection. The log file shows:
(
[callback] => Array
(
[0] => CRM_Core_Error
[1] => exceptionHandler
)
[code] => -1
[message] => DB Error: unknown error
[mode] => 16
[debug_info] => SELECT
esspeaker.id,
esspeaker.event_session_id,
esspeaker.speaker_id
, participant.id as participant_id,
contact.first_name,
contact.last_name,
contact.organization_name,
contact.job_title,
contact.image_URL,
contact.employer_id,
contact.display_name
FROM civicrm_civimobile_event_session_speaker esspeaker
INNER join civicrm_participant participant ON participant.id = esspeaker.speaker_id
LEFT join civicrm_contact contact ON contact.id = participant.contact_id
WHERE (event_session_id IN (SELECT id FROM civicrm_civimobile_event_session WHERE event_id=194))
GROUP BY esspeaker.speaker_id
LIMIT 25
OFFSET 0
[nativecode=1055 ** Expression #1 of SELECT list is not in GROUP BY clause and contains nonaggregated column 'civicrm_members.esspeaker.id' which is not functionally dependent on columns in GROUP BY clause; this is incompatible with sql_mode=only_full_group_by]
[type] => DB_Error
[user_info] => SELECT
esspeaker.id,
esspeaker.event_session_id,
esspeaker.speaker_id
, participant.id as participant_id,
contact.first_name,
contact.last_name,
contact.organization_name,
contact.job_title,
contact.image_URL,
contact.employer_id,
contact.display_name
FROM civicrm_civimobile_event_session_speaker esspeaker
INNER join civicrm_participant participant ON participant.id = esspeaker.speaker_id
LEFT join civicrm_contact contact ON contact.id = participant.contact_id
WHERE (event_session_id IN (SELECT id FROM civicrm_civimobile_event_session WHERE event_id=194))
GROUP BY esspeaker.speaker_id
LIMIT 25
OFFSET 0
[nativecode=1055 ** Expression #1 of SELECT list is not in GROUP BY clause and contains nonaggregated column 'civicrm_members.esspeaker.id' which is not functionally dependent on columns in GROUP BY clause; this is incompatible with sql_mode=only_full_group_by]
[to_string] => [db_error: message="DB Error: unknown error" code=-1 mode=callback callback=CRM_Core_Error::exceptionHandler prefix="" info="SELECT
esspeaker.id,
esspeaker.event_session_id,
esspeaker.speaker_id
, participant.id as participant_id,
contact.first_name,
contact.last_name,
contact.organization_name,
contact.job_title,
contact.image_URL,
contact.employer_id,
contact.display_name
FROM civicrm_civimobile_event_session_speaker esspeaker
INNER join civicrm_participant participant ON participant.id = esspeaker.speaker_id
LEFT join civicrm_contact contact ON contact.id = participant.contact_id
WHERE (event_session_id IN (SELECT id FROM civicrm_civimobile_event_session WHERE event_id=194))
GROUP BY esspeaker.speaker_id
LIMIT 25
OFFSET 0
[nativecode=1055 ** Expression #1 of SELECT list is not in GROUP BY clause and contains nonaggregated column 'civicrm_members.esspeaker.id' which is not functionally dependent on columns in GROUP BY clause; this is incompatible with sql_mode=only_full_group_by]"]
)
I know one workaround is to disable the only_full_group_by sql_mode but would rather not do that. The current workaround is telling users to not click the Agenda tab.
Hopefully this is a relatively easy fix.
Michaelhttps://lab.civicrm.org/extensions/haystacktheme/-/issues/9Missing styling for SearchKit2023-10-04T22:48:12ZrbaughMissing styling for SearchKitWhen using this theme, the searchkit page is missing a lot of styling. The tabs for the different types of saved searches are stacked on top of each other. The pagination at the bottom is off.
![Screen_Shot_2022-07-22_at_10.04.47_AM](/u...When using this theme, the searchkit page is missing a lot of styling. The tabs for the different types of saved searches are stacked on top of each other. The pagination at the bottom is off.
![Screen_Shot_2022-07-22_at_10.04.47_AM](/uploads/bfaf8a7547a56888c037653985b396f0/Screen_Shot_2022-07-22_at_10.04.47_AM.png)
Other action buttons/menus need some styling as well:
![Screen_Shot_2022-07-22_at_10.21.18_AM](/uploads/f98e66a67a3d37446ac3799fd7c0c8d2/Screen_Shot_2022-07-22_at_10.21.18_AM.png)
I assume this is all because SearchKit wasn't as far along when this last release was made? When using a theme with a framework, Greenwich (Bootstrap), most of this is already styled out.https://lab.civicrm.org/extensions/ckeditor5/-/issues/10Posting emoticons2022-07-22T02:05:38ZDevAppPosting emoticonsIs it possible to copy and paste emoticons into the CKEditor 5. When doing so it either freezes with a block of text, or as its own comes out blank. There are no configuration options.Is it possible to copy and paste emoticons into the CKEditor 5. When doing so it either freezes with a block of text, or as its own comes out blank. There are no configuration options.https://lab.civicrm.org/extensions/lineitemedit/-/issues/66Random participant added when adding line item2022-07-21T07:22:15Zaiden_gRandom participant added when adding line itemWhen adding a line item to a contribution that contains a participant line item, the new line item uses "civicrm_participant" as the entity type but the contribution ID as the entity ID, resulting in a random participant being added to t...When adding a line item to a contribution that contains a participant line item, the new line item uses "civicrm_participant" as the entity type but the contribution ID as the entity ID, resulting in a random participant being added to the contribution.
In addEntity() in Util.php where the entity type is set as "civicrm_participant" the correct ID is assigned to $entityId, but $entityID (difference in capitalisation) is what the function returns.
Even when the correct participant ID is used it results in the same participant being listed twice under "associated participants" which isn't ideal...https://lab.civicrm.org/extensions/multisite/-/issues/4Feature: Multisite parent domain membership types behavior2022-10-06T15:31:04ZandyburnsFeature: Multisite parent domain membership types behavior## Feature
Membership types are partially domain aware, but for parent-child based affiliate organizations, add the ability to add an exception for parent domain ID 1 memberships so that other child domains (chapters) can easily search ...## Feature
Membership types are partially domain aware, but for parent-child based affiliate organizations, add the ability to add an exception for parent domain ID 1 memberships so that other child domains (chapters) can easily search for these membership types.
## Before
Parent domain memberships cannot be searched on domains other than domain ID 1.
In search Kit, these memberships do not show. If you use the "empty placeholder function" you can get them to be linked and do a popup modal for instance, which then shows the membership OK. Note: I am using civicampaign in 3rd column as a workaround and identifier of what organization these membership belong to.
![image](/uploads/1143218f056ceee49abea1bf9b9b2ed5/image.png)
## After
Parent domain memberships can be searched on domains other than domain ID 1.
## Technical details
Allow an exception for parent domain ID 1 membership types to show in any place where membership type dropdown exists.
- Advanced Search
- Find Memberships
- Search Kit
- Form Builder
I'm logging here, as it could be rolled into this extension as an this optional feature to enable. Certainly many multi-level membership orgs with a parent structure would be using this extension already. Generally, I think rolling multisite tweaks into this extension could be a good direction to go akin to how CiviCRM Admin Utilities does tweaks to WordPress installs. @eileen thoughts?
Add a setting on parent domain ID 1 only with a checkbox to enable this?
[ ] Enable membership on all domains
![image](/uploads/0d824cc937194430a0b6cbaec75f0440/image.png)
Looking to fund this improvement.
## Notes
Showing all memberships a contact has regardless of domain organization on the contact summary screen is expected and wanted.https://lab.civicrm.org/extensions/dataprocessor/-/issues/113Using CSV file as datasource2022-07-19T13:14:15ZclementUsing CSV file as datasourceI was trying to use the CSV file as a datasource but couldn't find documentation on how to form the URI. Having the CSV file hosted and using the URL https://... to refer to the csv doesn't work as the field names remain empty. Also, if...I was trying to use the CSV file as a datasource but couldn't find documentation on how to form the URI. Having the CSV file hosted and using the URL https://... to refer to the csv doesn't work as the field names remain empty. Also, if I were to host the CSV file on the CIVICRM server itself, how should the URI be formed ? Thanks.https://lab.civicrm.org/extensions/ode/-/issues/23FROM email whitelisting isn't working2018-10-22T14:24:11ZMonish DebFROM email whitelisting isn't working*Created by: lcdservices*
The FROM email address whitelisting functionality isn't actually working. A review of the code indicates the setting and form to enable that functionality exists, but the email check doesn't actually review the...*Created by: lcdservices*
The FROM email address whitelisting functionality isn't actually working. A review of the code indicates the setting and form to enable that functionality exists, but the email check doesn't actually review the from email addresses to find if there's a match. It only looks at the site domain.
Here's a proposed patch:
https://gist.github.com/lcdservices/ce1f90cf18c42f44c0648acc3de5a58d
Actually, that would need to be conditioned on whether the setting is enabled. Let me know if you want me to file a PR.https://lab.civicrm.org/extensions/ode/-/issues/26error incorrectly thrown on scheduled reminder form2020-03-04T19:39:49ZMonish Deberror incorrectly thrown on scheduled reminder form*Created by: lcdservices*
We're seeing errors incorrectly thrown when creating a scheduled reminder. The email field is flagged as not valid, even when it does match the system domain.*Created by: lcdservices*
We're seeing errors incorrectly thrown when creating a scheduled reminder. The email field is flagged as not valid, even when it does match the system domain.https://lab.civicrm.org/extensions/ode/-/issues/24Redisplay error message on settings page2018-10-10T21:29:29ZJoeMurrayRedisplay error message on settings pageCurrently, on install/enable a list of invalid emails is displayed, eg
![2018-10-10_17-06-02](https://user-images.githubusercontent.com/300943/46766889-54df5400-ccb1-11e8-9d7a-8716414a5b24.png)
I believe there is a settings page (see...Currently, on install/enable a list of invalid emails is displayed, eg
![2018-10-10_17-06-02](https://user-images.githubusercontent.com/300943/46766889-54df5400-ccb1-11e8-9d7a-8716414a5b24.png)
I believe there is a settings page (see https://github.com/JMAConsulting/biz.jmaconsulting.ode/issues/23) that allows one to choose to allow FROM email address (civicrm/admin/options/from_email_address?reset=1) to be valid in addition to the Org email provided at civicrm/admin/domain?action=update&reset=1. Please redisplay the errors when that page is visited, and document that page in the README.md.