Development issueshttps://lab.civicrm.org/groups/dev/-/issues2023-09-02T22:17:27Zhttps://lab.civicrm.org/dev/core/-/issues/4461search kit: activity search with activity contacts no longer working2023-09-02T22:17:27ZDaveDsearch kit: activity search with activity contacts no longer workingJust set up a simple search on activities with activity contacts. No results and console has `TypeError: apiResults is undefined`
Happens on dmaster.demo too.
If you remove the "if contact role = ..." then it does work.
FYI @colemanwJust set up a simple search on activities with activity contacts. No results and console has `TypeError: apiResults is undefined`
Happens on dmaster.demo too.
If you remove the "if contact role = ..." then it does work.
FYI @colemanw5.65.0colemanwcolemanwhttps://lab.civicrm.org/dev/core/-/issues/4460Feature request: Force recurring-only2023-08-11T06:35:18ZMariaVFeature request: Force recurring-onlyI would like to propose a feature for contribution pages.
There is already an [extension (ca.civicrm.contributionrecur)](https://github.com/adixon/ca.civicrm.contributionrecur/) with this feature (and a lot more) but unfortunately it do...I would like to propose a feature for contribution pages.
There is already an [extension (ca.civicrm.contributionrecur)](https://github.com/adixon/ca.civicrm.contributionrecur/) with this feature (and a lot more) but unfortunately it does not work properly anymore.
It is possible to force recurring payments only - which is very useful for i.e. membership pages.
When this option is selected, it is not possible to uncheck the checkbox:
![image](/uploads/d3898e4c576b669018029e7b4da3cb08/image.png)https://lab.civicrm.org/dev/core/-/issues/4459Uncaught TypeError: Return value of CRM_Contact_Import_Form_MapField::getLoca...2023-08-04T12:51:55ZyurgUncaught TypeError: Return value of CRM_Contact_Import_Form_MapField::getLocationTypeLabel() must be of the type string, null returnedOverview
----------------------------------------
WordPress contacts import from CSV, CiviCRM 5.61.2. (not reproduceable on dmaster).
https://civicrm.stackexchange.com/questions/45332/contacts-import-issue-at-crm-contact-import-form-map...Overview
----------------------------------------
WordPress contacts import from CSV, CiviCRM 5.61.2. (not reproduceable on dmaster).
https://civicrm.stackexchange.com/questions/45332/contacts-import-issue-at-crm-contact-import-form-mapfieldgetlocationtypelabel
Reproduction steps
----------------------------------------
1. Click on **Contacts -> Import Contacts**.
2. Add a CSV file, leave all settings intact and click **Continue**.
3. Got a Wordpress WSOD and php error log message "**Uncaught TypeError: Return value of CRM_Contact_Import_Form_MapField::getLocationTypeLabel() must be of the type string, null returned in /data/sites/web/pedesdev/www/wp-content/plugins/civicrm/civicrm/CRM/Contact/Import/Form/MapField.php:480**".
Expected behaviour
----------------------------------------
Process to the next import step
Environment information
----------------------------------------
<!-- Some of the items below may not be relevant for every bug - if in doubt please include more information than you think is neccessary. -->
* CiviCRM: 5.61.2
* PHP: 7.4.3
Comments
----------------------------------------
Fixed by changing from
- protected function getLocationTypeLabel($type): string {
to
- protected function getLocationTypeLabel($type): ?string {
in www/wp-content/plugins/civicrm/civicrm/CRM/Contact/Import/Form/MapField.php:480
however not sure if this is the right way.https://lab.civicrm.org/dev/core/-/issues/4458Error when viewing contact-info profile without "view deleted contacts" permi...2023-08-07T12:11:55ZcolemanwError when viewing contact-info profile without "view deleted contacts" permissionThe change in b7edabe813db467aff6dd1ea083d798089198655 switched the profile to use APIv4 to fetch email id for constructing an email link. The API call looks like this:
```php
$emailID = Email::get()->setOrderBy(['is_primary' => 'DES...The change in b7edabe813db467aff6dd1ea083d798089198655 switched the profile to use APIv4 to fetch email id for constructing an email link. The API call looks like this:
```php
$emailID = Email::get()->setOrderBy(['is_primary' => 'DESC'])->setWhere([['contact_id', '=', $this->_id], ['email', '=', $email], ['on_hold', '=', FALSE], ['contact_id.is_deceased', '=', FALSE], ['contact_id.is_deleted', '=', FALSE], ['contact_id.do_not_email', '=', FALSE]])->execute()->first()['id'];
```
It was reported on SE that this fails for users without "view deleted contacts", however I'm unable to reproduce.
See https://civicrm.stackexchange.com/questions/45313/invalid-field-contact-id-is-deceased-apiv4
This should have already been double-fixed by:
- [Revert "Add permission metadata to contact is_deleted field" #22203](https://github.com/civicrm/civicrm-core/pull/22203)
- [APIv4 - Silently ignore non-permissioned fields instead of throwing exceptions #20724](https://github.com/civicrm/civicrm-core/pull/20724)https://lab.civicrm.org/dev/core/-/issues/4457Entity Reference Custom Field not working as filter in "regular" search2023-10-03T21:46:14ZjensschuppeEntity Reference Custom Field not working as filter in "regular" searchFollow-up to #3721. @fabian_SYSTOPIA found out that filtering doesn't work correctly.
Not sure this is to be fixed, as it's related to the "old-style" searches ...
## Steps to reproduce
* Create an Entity Reference Custom Field on the...Follow-up to #3721. @fabian_SYSTOPIA found out that filtering doesn't work correctly.
Not sure this is to be fixed, as it's related to the "old-style" searches ...
## Steps to reproduce
* Create an Entity Reference Custom Field on the *Participant* entity for referencing an *Event* entity
* Edit a participant and fill out the field by selecting an event
* Use the *Find Participants* search and try to limit the search result to participants with the event previously selected in that field
* Notice that all participants are being found, not only that one with the entity reference field being filledhttps://lab.civicrm.org/dev/core/-/issues/4456Saving event with custom file field gives fatal error2024-02-07T19:47:09ZwouterhSaving event with custom file field gives fatal error1. Create a file field for event(s).
1. Go to an existing event containing this custom file field – Press save.
1. Red alert box "network error" and the custom fields don't display.
`TypeError: Cannot access offset of type string on st...1. Create a file field for event(s).
1. Go to an existing event containing this custom file field – Press save.
1. Red alert box "network error" and the custom fields don't display.
`TypeError: Cannot access offset of type string on string in include() (regel 59 van /var/www/html/web/sites/default/files/civicrm/templates_c/nl_NL/%%1D/1DB/1DB03A28%%CustomField.tpl.php).`
Using CiviCRM 5.62.0 & PHP 8. Doesn't happen in PHP 7.5.71.0https://lab.civicrm.org/dev/core/-/issues/4455SearchKit: Arithmetic field transformation broken2023-08-03T02:16:13ZlarsssandergreenSearchKit: Arithmetic field transformation brokenSteps to replicate:
New SK search
Contributions
Add Total Amount column
Add Arithmetic field transformation
Click Search
Result:
![image](/uploads/581b34bde8138243b9ecdf5afaad3383/image.png)
This is a regression due to [#26065](https...Steps to replicate:
New SK search
Contributions
Add Total Amount column
Add Arithmetic field transformation
Click Search
Result:
![image](/uploads/581b34bde8138243b9ecdf5afaad3383/image.png)
This is a regression due to [#26065](https://github.com/civicrm/civicrm-core/pull/26065). @colemanw, one of yours.https://lab.civicrm.org/dev/core/-/issues/4454Proposal: Rename "Scheduled Reminders"2023-10-09T22:42:58ZJonGoldProposal: Rename "Scheduled Reminders"From a UX perspective, "Scheduled Reminders" is a poor name. It has uses far beyond reminders, and it's unintuitive to create a birthday email or "welcome series" of emails using a feature called "Scheduled Reminders".
I don't 100% h...From a UX perspective, "Scheduled Reminders" is a poor name. It has uses far beyond reminders, and it's unintuitive to create a birthday email or "welcome series" of emails using a feature called "Scheduled Reminders".
I don't 100% have a term decided on, though everyone loves a good bikeshed. I considered "Scheduled Messages" or "Scheduled Communications" - but I would expect a scheduled CiviMail or SMS to fall under that label (but maybe so does "Scheduled Reminders"?). "Automated Messages" overlaps with the System Messages. "Scheduled Message Rules" is better but long (if we ignore CiviRules momentarily).
Does anyone else have thoughts? I could live with "Scheduled Messages" as an improvement, but perhaps there's something better.https://lab.civicrm.org/dev/core/-/issues/4453Error on saving amounts on edit Contribution Page2023-08-08T22:21:55ZlarsssandergreenError on saving amounts on edit Contribution PageIf you are on PHP 8.1+, you'll hit a hard error if you try to save a Contribution Page - Amounts tab with a Fixed Contribution Option (not a Price Set). There is a name collision here on $name, funnily enough.
The problem is that CRM_Co...If you are on PHP 8.1+, you'll hit a hard error if you try to save a Contribution Page - Amounts tab with a Fixed Contribution Option (not a Price Set). There is a name collision here on $name, funnily enough.
The problem is that CRM_Contribute_Form_ContributionPage had a $name added recently in [#26259](https://github.com/civicrm/civicrm-core/pull/26259), which is now loaded in the $defaults for CRM_Contribute_Form_ContributionPage and then into CRM_Contribute_Form_ContributionPage_Amount. It turns out that in CRM_Contribute_Form_ContributionPage_Amount $defaults['name'] was already in use [here as an array](https://github.com/civicrm/civicrm-core/blob/6ecc4c3b032d38de4f4e6b5c3cb1fd573b0df5f4/CRM/Contribute/Form/ContributionPage/Amount.php#L237) for those fixed contribution price options.
The result is that $defaults['name'] already exists as a string when we try to add $defaults['name][0] for the first price option, giving the error (or a warning, depending on PHP version).
Maybe we could just change the Contribution Page $name to $pageName or something similar. @eileen, thoughts?https://lab.civicrm.org/dev/core/-/issues/4452Message Admin doesn't show which message templates have been edited2023-09-18T12:15:28ZlarsssandergreenMessage Admin doesn't show which message templates have been edited~~It looks like Message Admin is now enabled by default, but~~ I've noticed that there is no indication in Message Admin of which templates have been edited or not. This is pretty important info for admins and should be available in the ...~~It looks like Message Admin is now enabled by default, but~~ I've noticed that there is no indication in Message Admin of which templates have been edited or not. This is pretty important info for admins and should be available in the UI.
Compare the old - very clear which has been edited:
![image](/uploads/43963f9cbbf0e08c5f1679056e4a2c35/image.png)
to the new - no indication which has been edited:
![image](/uploads/4a394422a26c4a1536306e96d3c77a7c/image.png)
I can't see anything on the edit page to indicate this either.
Edit: There is also no longer any way to revert a message to the default, other than by manually copying and pasting the template content. I think having the "Revert to default" link is useful, if you made a small change and have decided you no longer need it because there has been an upgrade.
~~Also, I guess the drafting process isn't implemented yet (or not accessible from the UI), so maybe it would make sense to hide the Draft column until that's ready.~~https://lab.civicrm.org/dev/core/-/issues/4451parent_id constraint on civicrm_activity can lead to data loss2023-08-08T22:21:55ZDaveDparent_id constraint on civicrm_activity can lead to data lossIt has probably always been like this but it seems dangerous.
1. Create an activity.
1. Let's give it subject "a1" so we can tell it apart.
1. Fill out the schedule followup section at the bottom. Give it subject "a2".
1. Save.
1. Delet...It has probably always been like this but it seems dangerous.
1. Create an activity.
1. Let's give it subject "a1" so we can tell it apart.
1. Fill out the schedule followup section at the bottom. Give it subject "a2".
1. Save.
1. Delete activity "a1".
Expected result: Just a1 is deleted.
Actual result: a1 and a2 are both deleted.
The constraint should be ON DELETE SET NULL.
As with the fix for original_id, in a large db an upgrade script might timeout or take a long time, so would need to direct the user to do it manually.5.64.0https://lab.civicrm.org/dev/user-interface/-/issues/54Move Contact Delete under the Actions menu2023-08-03T12:46:53ZbgmMove Contact Delete under the Actions menuThe "Delete Contact" takes a lot of central space on the View Contact screen, for something that should not be used so often.
![image](/uploads/736e0a017da5843c05c516866ec33118/image.png)
Proposed change:
![image](/uploads/1628e25c854...The "Delete Contact" takes a lot of central space on the View Contact screen, for something that should not be used so often.
![image](/uploads/736e0a017da5843c05c516866ec33118/image.png)
Proposed change:
![image](/uploads/1628e25c85495a510c48b3ab7a3641db/image.png)
Related (closed) PR: https://github.com/civicrm/civicrm-core/pull/26903https://lab.civicrm.org/dev/core/-/issues/4450Standalone: set the page title2023-11-28T19:33:31ZbgmStandalone: set the page titleCurrently the `<title>` attribute (in head) is empty.Currently the `<title>` attribute (in head) is empty.RichRichhttps://lab.civicrm.org/dev/core/-/issues/4449Status check about accessible dirs can be slow2023-07-26T23:18:26ZDaveDStatus check about accessible dirs can be slowThis is a followup to https://github.com/civicrm/civicrm-core/pull/26771#issuecomment-1629756698 and https://github.com/civicrm/civicrm-core/pull/26889.
Putting more info than needed in here cuz I already typed it.
I think the speedup ...This is a followup to https://github.com/civicrm/civicrm-core/pull/26771#issuecomment-1629756698 and https://github.com/civicrm/civicrm-core/pull/26889.
Putting more info than needed in here cuz I already typed it.
I think the speedup in 26889 wasn't quite a "fix", and there was maybe more than one issue there. In general as noted in 26771 servers that only handle one request at a time, synchronously, will have trouble with these checks because of deadlock, i.e.
```
> (caller) call for status check
=> (server) hello, processing
> call for file
=> hello, hold please
... second caller hangs up eventually ...
> first request can now finish
=> server switches phone line to caller on hold => oh you're not there anymore, ok.
```
And a gotcha during testing is it's not sufficient to just simulate the second GET using tool X (browser, curl-cli, cv, etc), it needs to be the combo of doing the GET from within code that is triggered by the first GET.
For the php built-in webserver, while the `isBrowsable` check could be legit, the status check about `isDirAccessible` might give a false positive even if it _was_ working, since .htaccess files don't do anything for the built-in webserver, and there's no nginx-like config you could do to secure it. So maybe it is best to just skip this check for built-in, in which case I would skip it for all php versions not just `<8`.
But in general, to make this work with one-request-at-a-time servers seems like it would require an architecture redesign. Using guzzle/curl to specify a timeout makes the time shorter, so is an improvement, but it doesn't seem possible to ever get a correct result for `isDirAccessible` on these servers at the moment, and at least for the built-in one, we already know it's not possible to prevent GET'ing files under sites/default/files/civicrm.
I don't know a way to detect if a (potentially remote) server is one-request-at-a-time, without just waiting for a timeout. Ideally the check would be skipped for _any_ such server.
So let's do as much as we can: Use guzzle/curl to set the shorter timeout, and skip for the known built-in server.5.65.0https://lab.civicrm.org/dev/core/-/issues/4448SearchKit HAVING clause does not support relative dates.2023-08-03T12:45:52ZTony Maynard-SmithSearchKit HAVING clause does not support relative dates.## Overview
SearchKit WHERE clauses on a Date field provide a facility for comparing with a relative date, e.g. "\< Before Now 12 Months". The HAVING clause does not, but I am suggesting that it should.
## Example use-case
1. SearchK...## Overview
SearchKit WHERE clauses on a Date field provide a facility for comparing with a relative date, e.g. "\< Before Now 12 Months". The HAVING clause does not, but I am suggesting that it should.
## Example use-case
1. SearchKit search to select Contacts who have not participated in an Event for the last 12 months. Also applies to Activities, Memberships, etc.
## Current behaviour
Can construct a HAVING clause to compare e.g. a MAX Date field with a literal date, but not with a relative date as for a WHERE clause.
## Proposed behaviour
Relative dates should be provided for HAVING as well as WHERE clauses. This is much more user friendly for a packaged search than having to edit the search definition in SearchKit each time.
## Comments
_Anything else you would like the reviewer to note._https://lab.civicrm.org/dev/core/-/issues/4447When importing/updating persons, taking over the address of another contact d...2023-12-06T23:39:37ZhstrugallaWhen importing/updating persons, taking over the address of another contact does not work.## Overview
When importing/updating persons, taking over the address of another contact (organisation) via CiviCRM Field "Master address belongs to" does not work.
The import job runs without errors, but the address was not assigned.
...## Overview
When importing/updating persons, taking over the address of another contact (organisation) via CiviCRM Field "Master address belongs to" does not work.
The import job runs without errors, but the address was not assigned.
## Reproduction steps
1. Find out the "Address ID" of the organisation (via phpMyAdmin or "Export contacts" -\> field "Address ID")
![get address ID.png](/uploads/8e608df7b4aa82f965e7beb8d605e29e/get_address_ID.png){width="405" height="177"}
2. Create the CSV import/update file.
[Import.csv](/uploads/5a47efab4cdf034eb7fbb522417d089e/Import.csv)
3. Click on **Contacts -\> Import Contacts**.
4. Fill out forms (see pictures)
![import 1.png](/uploads/39360a48a638b65b4d444f31ca6efedd/import_1.png){width="661" height="289"}
![import 2.png](/uploads/3ba8d1f31f0af56ff68bab39f2f96dde/import_2.png){width="664" height="189"}
5. Run import/update
## Current behaviour
No error during import, but the address was not taking over.
## Expected behaviour
The company address should be assigned to the person.
## Environment information
* **Browser:** _Firefox 115.0.2 (64-Bit)_
* **CiviCRM:** _5\.55.2_
* **PHP:** \_7.4.3-4ubuntu2.18\_
* **CMS:** _WordPress 6.1.1_
* **Database:** _Ver 8.0.33-0ubuntu0.20.04.2_
* **Web Server:** _Apache/2.4.41 (Ubuntu)_
## Comments
It seems, the code to handle "Master address belongs to" during the import/update of contacts not exists in CiviCRM core in version 5.55.2.5.69.0https://lab.civicrm.org/dev/core/-/issues/4445Upgrade to 5.65 shows incorrect message about Petition - Signature Added mess...2023-07-27T01:33:29ZlarsssandergreenUpgrade to 5.65 shows incorrect message about Petition - Signature Added message template upgradeWhen upgrading to 5.65 on a recently rebuild install with no customization of any message templates, the following message appears:
The default copies of the message templates listed below will be updated to handle new features or corre...When upgrading to 5.65 on a recently rebuild install with no customization of any message templates, the following message appears:
The default copies of the message templates listed below will be updated to handle new features or correct a problem. Your installation has customized versions of these message templates, and you will need to apply the updates manually after running this upgrade. View detailed instructions.
Petition - signature added - Update to use tokens
---
@eileen, looks like this is from [#26546](https://github.com/civicrm/civicrm-core/pull/26546).5.65.0https://lab.civicrm.org/dev/core/-/issues/4444Multilingual problem with required title fields2023-09-02T01:47:32ZeileenMultilingual problem with required title fieldsWe recently made `contribution_page.title` and some similar fields required. However, I just discovered that `testGitLabIssue1108` fails locally and the reason feels like it has implications
The test fails because when multilingual is d...We recently made `contribution_page.title` and some similar fields required. However, I just discovered that `testGitLabIssue1108` fails locally and the reason feels like it has implications
The test fails because when multilingual is disabled it does an INSERT for en_US but the value for fr_FR is not set - which fails due to the change making title_fr_FR required.
I don't know why this didn't surface before but I suspect we need to make required fields of type text have different sql attributes - ie probably a default of ''5.66.0https://lab.civicrm.org/dev/financial/-/issues/216Financial Batches: remove the creation of activities for New/Edit2023-08-09T18:28:27ZbgmFinancial Batches: remove the creation of activities for New/EditI fell down a rabbit hole while testing the New Financial Batch form, and noticed that it creates an activity whenever a batch is created or edited. It also creates an activity when the batch is exported, but not when closed or deleted.
...I fell down a rabbit hole while testing the New Financial Batch form, and noticed that it creates an activity whenever a batch is created or edited. It also creates an activity when the batch is exported, but not when closed or deleted.
The "Create Batch" and "Edit Batch" activities do not seem useful to me. I would leave the "Export Accounting Batch" activity for now.
Any objections to removing?
(I'm creating this issue for visibility, but will send a PR that might be more clear)
cc @JoeMurray5.66.0https://lab.civicrm.org/dev/core/-/issues/4443Error "Participant record without event ID. You have invalid data in your dat...2023-07-24T03:39:55ZDaveDError "Participant record without event ID. You have invalid data in your database" appearing in logPutting regression since this feels like something recent.
1. From a contact summary from the actions dropdown, register for event.
2. Pick an event.
3. Check the box to send an email.
4. Click Save.
5. In the civi log it says "Particip...Putting regression since this feels like something recent.
1. From a contact summary from the actions dropdown, register for event.
2. Pick an event.
3. Check the box to send an email.
4. Click Save.
5. In the civi log it says "Participant record without event ID. You have invalid data in your database!". Everything seems ok though.
Note this only happens when registered from the contact summary. If you do it from Event - Register Event Participant it doesn't happen.