CiviCRM Core issueshttps://lab.civicrm.org/dev/core/-/issues2018-11-04T20:40:17Zhttps://lab.civicrm.org/dev/core/-/issues/140Add missing pseudoconstant for option_group_id in CustomField2018-11-04T20:40:17ZMichael McAndrewAdd missing pseudoconstant for option_group_id in CustomFieldPseudoconstant tag was missing from the XML definition, meaning that one could not create custom fields and specify their select options without knowing the numerical ID.Pseudoconstant tag was missing from the XML definition, meaning that one could not create custom fields and specify their select options without knowing the numerical ID.5.4.0https://lab.civicrm.org/dev/core/-/issues/135Non Numeric value encountered in CRM_Batch_Form_entryTest on PHP7.1 and 7.22018-11-04T20:33:27ZseamusleeNon Numeric value encountered in CRM_Batch_Form_entryTest on PHP7.1 and 7.2```
<error type="PHPUnit_Framework_Error_Notice">CRM_Batch_Form_EntryTest::testMembershipRenewalDates
A non well formed numeric value encountered
/home/seamus/buildkit/build/47.demo/sites/all/modules/civicrm/CRM/Price/BAO/LineItem.php:...```
<error type="PHPUnit_Framework_Error_Notice">CRM_Batch_Form_EntryTest::testMembershipRenewalDates
A non well formed numeric value encountered
/home/seamus/buildkit/build/47.demo/sites/all/modules/civicrm/CRM/Price/BAO/LineItem.php:374
/home/seamus/buildkit/build/47.demo/sites/all/modules/civicrm/CRM/Price/BAO/PriceSet.php:747
/home/seamus/buildkit/build/47.demo/sites/all/modules/civicrm/CRM/Batch/Form/Entry.php:761
/home/seamus/buildkit/build/47.demo/sites/all/modules/civicrm/CRM/Batch/Form/Entry.php:922
/home/seamus/buildkit/build/47.demo/sites/all/modules/civicrm/tests/phpunit/CRM/Batch/Form/EntryTest.php:256
/home/seamus/buildkit/build/47.demo/sites/all/modules/civicrm/tests/phpunit/CiviTest/CiviUnitTestCase.php:192
/home/seamus/buildkit/bin/phpunit5:598
</error>
```
The relevant code is here https://github.com/civicrm/civicrm-core/blob/master/CRM/Price/BAO/LineItem.php#L374 i'm guessing its most likely going to be $qty that is NULL maybe5.3.0https://lab.civicrm.org/dev/core/-/issues/133Reply-to field with empty string get saved in DB as NULL2018-06-18T20:41:13ZvarshithReply-to field with empty string get saved in DB as NULL**Issue:**
Somehow our client's mailing got saved with 'NULL' reply-to field and was causing problems.
On looking into it and trying to reproduce the issue, 'reply to' field can be NULL in the following case
- Add a new mailing (or reus...**Issue:**
Somehow our client's mailing got saved with 'NULL' reply-to field and was causing problems.
On looking into it and trying to reproduce the issue, 'reply to' field can be NULL in the following case
- Add a new mailing (or reuse one)
- Select a 'reply to' email (I had to enable "Enable Custom Reply-To" in 'civicrm/admin/mail')
- Fill in other fields as usual
- Under 'Responses' tab, check "Track Replies" checkbox. This brings up a warning message on the top right saying 'reply-to' has been cleared out (but still allows user to save mailing)
- Proceed to next step and save mailing
**Proposed Fix:**
I am not sure how to fix this as the user is expected to see the warning message and act accordingly. But I think we can check and not allow NULL values for reply-to in DB.
In CRM_Mailing_BAO_Mailing.php when adding a new mailing (add() method), there is a condition to check if 'reply-to' field is set and if it is not set, then 'from-email' is used.
here instead if using
if(\!isset($params['replyto_email']))...
we should use
if(empty($params['replyto_email']))...
so that empty string like '' will also be considered and reply-to could not be NULL5.4.0https://lab.civicrm.org/dev/core/-/issues/128Add deprecated warning helper function2018-05-28T02:48:08Zmattwiremjw@mjwconsult.co.ukAdd deprecated warning helper functionOverview
----------------------------------------
This adds a standard method to log a deprecated function warning.
PR: https://github.com/civicrm/civicrm-core/pull/12040
Before
----------------------------------------
Deprecated func...Overview
----------------------------------------
This adds a standard method to log a deprecated function warning.
PR: https://github.com/civicrm/civicrm-core/pull/12040
Before
----------------------------------------
Deprecated function warnings were inconsistent and you have to put too much detail in the log line.
After
----------------------------------------
One simple function that autogenerates the log message based on caller.
Comments from previous PR #12007
----------------------------------------
@totten:
> I think @totten tried to enhance deprecated output at some point
Probably this: https://chat.civicrm.org/civicrm/pl/cf1p7hgkkprp9kthkosq98qrer
@mattwire
> A standalone helper function is more pithy than the Civi::log...civi.tag=>deprecated.... Pithy is good.
From r-code perspective, I don't like having that helper in CRM_Utils_System. That class is too heavy already, and deprecatedFunctionWarning() is qualitatively different from every other function in the class.
Yes, I agree. I wasn't sure where to "dump" the function. Maybe `CRM/Core/Error/Log.php` would be a better place for it?
> My main hesitation with cf1p7hgkkprp9kthkosq98qrer was that findNonLogCaller() felt a little heavy-handed. It's nice how deprecatedFunctionWarning() doesn't have to dig as far back into the callstack.
> On the other hand, it's nice how cf1p7hgkkprp9kthkosq98qrer works with the existing coding convention.
We don't actually log deprecated very much so I don't think it's a big change to convention.5.3.0https://lab.civicrm.org/dev/core/-/issues/118Fix where count() is used on an object that isn't an array nor implements Cou...2018-12-19T14:11:24ZseamusleeFix where count() is used on an object that isn't an array nor implements Countable for php7.2 (tested instances)```
<error type="PHPUnit_Framework_Error_Warning">CRM_Contribute_Import_Parser_ContributionTest::testImportParserWithSoftCreditsByExternalIdentifier with data set #0 ('.')
count(): Parameter must be an array or an object that...```
<error type="PHPUnit_Framework_Error_Warning">CRM_Contribute_Import_Parser_ContributionTest::testImportParserWithSoftCreditsByExternalIdentifier with data set #0 ('.')
count(): Parameter must be an array or an object that implements Countable
/home/seamus/buildkit/build/47.demo/sites/all/modules/civicrm/tests/phpunit/CRM/Contribute/Import/Parser/ContributionTest.php:67
/home/seamus/buildkit/build/47.demo/sites/all/modules/civicrm/tests/phpunit/CiviTest/CiviUnitTestCase.php:182
/home/seamus/buildkit/bin/phpunit5:598
</error>
</testcase>
<testcase name="testImportParserWithSoftCreditsByExternalIdentifier with data set #1" assertions="8" time="0.685860">
<error type="PHPUnit_Framework_Error_Warning">CRM_Contribute_Import_Parser_ContributionTest::testImportParserWithSoftCreditsByExternalIdentifier with data set #1 (',')
count(): Parameter must be an array or an object that implements Countable
/home/seamus/buildkit/build/47.demo/sites/all/modules/civicrm/tests/phpunit/CRM/Contribute/Import/Parser/ContributionTest.php:67
/home/seamus/buildkit/build/47.demo/sites/all/modules/civicrm/tests/phpunit/CiviTest/CiviUnitTestCase.php:182
/home/seamus/buildkit/bin/phpunit5:598
</error>
<error type="PHPUnit_Framework_Error_Warning">CRM_Pledge_BAO_PledgePaymentTest::testRetrieveZeroPledeID
count(): Parameter must be an array or an object that implements Countable
/home/seamus/buildkit/build/47.demo/sites/all/modules/civicrm/tests/phpunit/CRM/Pledge/BAO/PledgePaymentTest.php:100
/home/seamus/buildkit/build/47.demo/sites/all/modules/civicrm/tests/phpunit/CiviTest/CiviUnitTestCase.php:182
/home/seamus/buildkit/bin/phpunit5:598
</error>
<error type="PHPUnit_Framework_Error_Warning">CRM_Pledge_BAO_PledgePaymentTest::testRetrieveStringPledgeID
count(): Parameter must be an array or an object that implements Countable
/home/seamus/buildkit/build/47.demo/sites/all/modules/civicrm/tests/phpunit/CRM/Pledge/BAO/PledgePaymentTest.php:113
/home/seamus/buildkit/build/47.demo/sites/all/modules/civicrm/tests/phpunit/CiviTest/CiviUnitTestCase.php:182
/home/seamus/buildkit/bin/phpunit5:598
</error>
<error type="PHPUnit_Framework_Error_Warning">CRM_Pledge_BAO_PledgePaymentTest::testRetrieveKnownPledgeID
count(): Parameter must be an array or an object that implements Countable
/home/seamus/buildkit/build/47.demo/sites/all/modules/civicrm/tests/phpunit/CRM/Pledge/BAO/PledgePaymentTest.php:127
/home/seamus/buildkit/build/47.demo/sites/all/modules/civicrm/tests/phpunit/CiviTest/CiviUnitTestCase.php:182
/home/seamus/buildkit/bin/phpunit5:598
</error>
<error type="PHPUnit_Framework_Error_Warning">CRM_Pledge_BAO_PledgePaymentTest::testDeletePledgePaymentsNormal
count(): Parameter must be an array or an object that implements Countable
/home/seamus/buildkit/build/47.demo/sites/all/modules/civicrm/tests/phpunit/CRM/Pledge/BAO/PledgePaymentTest.php:137
/home/seamus/buildkit/build/47.demo/sites/all/modules/civicrm/tests/phpunit/CiviTest/CiviUnitTestCase.php:182
/home/seamus/buildkit/bin/phpunit5:598
</error>
<error type="PHPUnit_Framework_Error_Warning">CRM_Pledge_BAO_PledgePaymentTest::testDeletePledgePaymentsNullId
count(): Parameter must be an array or an object that implements Countable
/home/seamus/buildkit/build/47.demo/sites/all/modules/civicrm/tests/phpunit/CRM/Pledge/BAO/PledgePaymentTest.php:160
/home/seamus/buildkit/build/47.demo/sites/all/modules/civicrm/tests/phpunit/CiviTest/CiviUnitTestCase.php:182
/home/seamus/buildkit/bin/phpunit5:598
</error>
<error type="PHPUnit_Framework_Error_Warning">CRM_Pledge_BAO_PledgeTest::testRetrieveZeroPledeID
count(): Parameter must be an array or an object that implements Countable
/home/seamus/buildkit/build/47.demo/sites/all/modules/civicrm/tests/phpunit/CRM/Pledge/BAO/PledgeTest.php:106
/home/seamus/buildkit/build/47.demo/sites/all/modules/civicrm/tests/phpunit/CiviTest/CiviUnitTestCase.php:182
/home/seamus/buildkit/bin/phpunit5:598
</error>
</testcase>
<testcase name="testRetrieveStringPledgeID" class="CRM_Pledge_BAO_PledgeTest" file="/home/seamus/buildkit/build/47.demo/sites/all/modules/civicrm/tests/phpunit/CRM/Pledge/BAO/PledgeTest.php" line="112" assertions="1" time="0.143334">
<error type="PHPUnit_Framework_Error_Warning">CRM_Pledge_BAO_PledgeTest::testRetrieveStringPledgeID
count(): Parameter must be an array or an object that implements Countable
/home/seamus/buildkit/build/47.demo/sites/all/modules/civicrm/tests/phpunit/CRM/Pledge/BAO/PledgeTest.php:117
/home/seamus/buildkit/build/47.demo/sites/all/modules/civicrm/tests/phpunit/CiviTest/CiviUnitTestCase.php:182
/home/seamus/buildkit/bin/phpunit5:598
</error>
</testcase>
<testcase name="testRetrieveKnownPledgeID" class="CRM_Pledge_BAO_PledgeTest" file="/home/seamus/buildkit/build/47.demo/sites/all/modules/civicrm/tests/phpunit/CRM/Pledge/BAO/PledgeTest.php" line="123" assertions="1" time="0.165138">
<error type="PHPUnit_Framework_Error_Warning">CRM_Pledge_BAO_PledgeTest::testRetrieveKnownPledgeID
count(): Parameter must be an array or an object that implements Countable
/home/seamus/buildkit/build/47.demo/sites/all/modules/civicrm/tests/phpunit/CRM/Pledge/BAO/PledgeTest.php:147
/home/seamus/buildkit/build/47.demo/sites/all/modules/civicrm/tests/phpunit/CiviTest/CiviUnitTestCase.php:182
/home/seamus/buildkit/bin/phpunit5:598
</error>
</testcase>
<testcase name="testGetPledgeStartDate" class="CRM_Pledge_BAO_PledgeTest" file="/home/seamus/buildkit/build/47.demo/sites/all/modules/civicrm/tests/phpunit/CRM/Pledge/BAO/PledgeTest.php" line="153" assertions="1" time="0.149295">
<error type="PHPUnit_Framework_Error_Deprecated">CRM_Pledge_BAO_PledgeTest::testGetPledgeStartDate
The each() function is deprecated. This message will be suppressed on further calls
/home/seamus/buildkit/build/47.demo/sites/all/modules/civicrm/CRM/Pledge/BAO/Pledge.php:1203
/home/seamus/buildkit/build/47.demo/sites/all/modules/civicrm/tests/phpunit/CRM/Pledge/BAO/PledgeTest.php:163
/home/seamus/buildkit/build/47.demo/sites/all/modules/civicrm/tests/phpunit/CiviTest/CiviUnitTestCase.php:182
/home/seamus/buildkit/bin/phpunit5:598
</error>
```
ping @eileen @monish.deb5.4.0https://lab.civicrm.org/dev/core/-/issues/105Manage PCP URL Wrong for the notification email under wordpress2018-05-15T07:19:09ZaniesshsethhManage PCP URL Wrong for the notification email under wordpress5.3.0https://lab.civicrm.org/dev/core/-/issues/104Get Tests to pass on PHP7.22018-12-10T03:36:53ZseamusleeGet Tests to pass on PHP7.2This is a meta issue for getting our tests to run against PHP7.2 ping @monish.deb @eileen @tottenThis is a meta issue for getting our tests to run against PHP7.2 ping @monish.deb @eileen @totten5.10seamusleeseamusleehttps://lab.civicrm.org/dev/core/-/issues/101Allow further customization of search form in hooks2018-06-18T20:13:57ZmichaelAllow further customization of search form in hooksThe contact search form uses the template `templates/CRM/Contact/Form/Search/Criteria/Basic.tpl`. In the template there are already some conditionals to hide certain fields, such as
```
{if $form.group}
<td>
...
{/if}
```
However o...The contact search form uses the template `templates/CRM/Contact/Form/Search/Criteria/Basic.tpl`. In the template there are already some conditionals to hide certain fields, such as
```
{if $form.group}
<td>
...
{/if}
```
However only some fields are covered. For an extension developer who wants to hide more fields here it is difficult without causing warnings or breaking the layout.
It is now possible to override the fields on the basic search template by altering the fields array assigned to the template in a hook
---
Core PR: https://github.com/civicrm/civicrm-core/pull/120785.4.0https://lab.civicrm.org/dev/core/-/issues/96Expose source column in booking report2018-06-29T18:52:04ZyashodhaExpose source column in booking reportExpose source column in booking report and as filter as well.Expose source column in booking report and as filter as well.5.4.0yashodhayashodhahttps://lab.civicrm.org/dev/core/-/issues/93Update CRM_Utils_Rule::mysqlOrderBy() to accommodate more than 2 joins2018-11-10T00:41:10ZDon WijesooriyaUpdate CRM_Utils_Rule::mysqlOrderBy() to accommodate more than 2 joinsCurrently sorting only allows up to 2 joins: "membership_id.contact_id". If we go up a further level like "membership_id.contact_id.contact_type" it throws an error.
I suggest changing the regex:
```foreach ($parts as $part) {
...Currently sorting only allows up to 2 joins: "membership_id.contact_id". If we go up a further level like "membership_id.contact_id.contact_type" it throws an error.
I suggest changing the regex:
```foreach ($parts as $part) {
if (!preg_match('/^((`[\w-]{1,64}`|[\w-]{1,64})\.)?(`[\w-]{1,64}`|[\w-]{1,64})( (asc|desc))?$/i', trim($part))) {
return FALSE;
}
}```
to:
```/^((`[\w-]{1,64}`|[\w-]{1,64})\.)```{+ + +}```?(`[\w-]{1,64}`|[\w-]{1,64})( (asc|desc))?$/i```5.5.0https://lab.civicrm.org/dev/core/-/issues/91Prevent un-workable searches in search builder (was search builder improvements)2018-05-03T23:37:58ZMonish DebPrevent un-workable searches in search builder (was search builder improvements)Earlier there was a requirement where we need to remove specific MySQL operators which are not valid for specific data type e.g. String type doesn't work with >, <, <= and >= operators. And here's the fix https://github.com/civicrm/civic...Earlier there was a requirement where we need to remove specific MySQL operators which are not valid for specific data type e.g. String type doesn't work with >, <, <= and >= operators. And here's the fix https://github.com/civicrm/civicrm-core/commit/759094bdfa40531e4ec0cf0a644d9edd6b9247cf done earlier as per which it is fetching all columns which are String type and passing them into a separate JSON string identified as ```stringFields``` and another formatted list of valid string operators as ```stringOperators```. Similarly to identify date fields and to do a specific operation on such fields we are passing another variable ```dateFields```. These JSON object in JS are later used to specific operations. Now on the other hand, recently, I encountered another issue where the Boolean type columns don't work with IS EMPTY/IS NOT EMPTY operator and eventually leads to DB syntax error. So if I follow the same approach I need to assign another JSON string, which won't be an ideal fix. This lead me to do following 3 changes to improve the code:
1. Assign a single list of all data columns which are either Boolean, String or Date (as currently, these are the only kind that needs attention)
2. Use this list (as ```fieldTypes```) in JS to filter the operator or do field specific operations like covert a input search field to datepicker if the chosen search field is date kind.
3. Reduce list of variable assignment.5.2.0Monish DebMonish Debhttps://lab.civicrm.org/dev/core/-/issues/86CIVICRM_MAIL_LOG_AND_SEND does not work properly2018-11-18T21:03:25Zmattwiremjw@mjwconsult.co.ukCIVICRM_MAIL_LOG_AND_SEND does not work properlyIn the packages/Mail it is mistyped as "CIVICRM_MAIL_LOG_AND SEND" (ie. missing an underscore): https://github.com/civicrm/civicrm-packages/pull/204
In CiviCRM core the administrator is not notified if it is set: https://github.com/civi...In the packages/Mail it is mistyped as "CIVICRM_MAIL_LOG_AND SEND" (ie. missing an underscore): https://github.com/civicrm/civicrm-packages/pull/204
In CiviCRM core the administrator is not notified if it is set: https://github.com/civicrm/civicrm-core/pull/12037
In the docs it is missing altogether: https://github.com/civicrm/civicrm-dev-docs/pull/5265.2.0https://lab.civicrm.org/dev/core/-/issues/85mail() backend fails when empty Cc and Bcc parameters are passed2018-05-21T02:22:12Zmattwiremjw@mjwconsult.co.ukmail() backend fails when empty Cc and Bcc parameters are passedOn some servers the PHP mail() function fails to send email if empty 'Cc' or 'Bcc' headers are set.On some servers the PHP mail() function fails to send email if empty 'Cc' or 'Bcc' headers are set.5.3.0https://lab.civicrm.org/dev/core/-/issues/78Incorrect Payment Processor for Recurring Payments2018-11-17T02:47:01ZjitendraIncorrect Payment Processor for Recurring PaymentsThe issue arises due to there being two AuthNet payment processors, one for both A1 and A2. And the CiviCRM code is (naively) written assuming there'd be a maximum of one. So when AuthNet calls into CiviCRM to notify it of a successful r...The issue arises due to there being two AuthNet payment processors, one for both A1 and A2. And the CiviCRM code is (naively) written assuming there'd be a maximum of one. So when AuthNet calls into CiviCRM to notify it of a successful recurring payment, for the A1 payments it is loading the A2 payment processor — and then failing.
The attached patch uses information from the address that AuthNet posts its updates to, which can signal which payment processor to use.5.2.0https://lab.civicrm.org/dev/core/-/issues/71Add Print/Merge Letter functionality for activity searches2020-02-27T20:19:41Zaydunsaidan.saunders@squiffle.ukAdd Print/Merge Letter functionality for activity searchesMost of the standard searches provide an action to create a PDF or Word document - except Activities.Most of the standard searches provide an action to create a PDF or Word document - except Activities.5.23.0aydunsaidan.saunders@squiffle.ukaydunsaidan.saunders@squiffle.ukhttps://lab.civicrm.org/dev/core/-/issues/61Split edit message templates permission2018-10-05T01:39:35ZajesamsonSplit edit message templates permissionThe `edit message templates` permission currently grants access to user-driven messages and system workflow message. The implication of this is that, there is no way of restricting a particular user to just user-driven messages or system...The `edit message templates` permission currently grants access to user-driven messages and system workflow message. The implication of this is that, there is no way of restricting a particular user to just user-driven messages or system workflow messages.
It is therefore better to split `edit message templates` into two granular permissions (`edit user-driven message templates` and `edit system workflow message templates`) so that user access can be better managed.
![before](/uploads/896ebbdb81b419fb607750667c569486/before.gif)5.3.0https://lab.civicrm.org/dev/core/-/issues/55Hide Adding Option Link for Locked Option Groups2018-05-17T10:55:18ZmichaelHide Adding Option Link for Locked Option GroupsYou can edit option values from a few different places:
1. `civicrm/admin/options?gid=<option_group_id>`
1. `civicrm/admin/options/<option_group_name>`
1. `civicrm/admin/custom/group/field/option?action=browse&gid=<custom_group_id>&fid=...You can edit option values from a few different places:
1. `civicrm/admin/options?gid=<option_group_id>`
1. `civicrm/admin/options/<option_group_name>`
1. `civicrm/admin/custom/group/field/option?action=browse&gid=<custom_group_id>&fid=<custom_field_id>`
When "is_locked" = 1 only the first method hides the button to add new option values.
The button to add an option value should be hidden for the two places where it is highlighted in the above screenshots
##### From Option Group Edit Page Using Group ID
This works as expected and the button to add a new option is hidden
![image](/uploads/4a3567b69cc961cd2e6b580c60e62f30/image.png)
##### From Custom Field Edit page
![image](/uploads/c2a00e7f49e59eea7b6b3efe6720e7e6/image.png)
##### From Option Group Edit Page Using Group Name
![image](/uploads/9e1d94a9f3f729dbc88cdf92760108a9/image.png)5.3.0https://lab.civicrm.org/dev/core/-/issues/50Create Sub-tabs Under Contributions Tab for Contributions and Recurring Contr...2018-06-18T20:13:42ZCamilo RodríguezCreate Sub-tabs Under Contributions Tab for Contributions and Recurring Contributions## Overview
Currently, when viewing contributions on a contact's summary view, there are two tables being shown: one for contributions, the second for recurring contributions. The problem is when a contact has a lot of contributions, rec...## Overview
Currently, when viewing contributions on a contact's summary view, there are two tables being shown: one for contributions, the second for recurring contributions. The problem is when a contact has a lot of contributions, recurring contributions kind of get lost within the page, having to scroll down quite a bit to get to the required information. We'd like to have two subtabs within the contributions tab, so that we can choose either contributions or recurring contributions as needed. Furthermore, we'd also like to separate active from inactive recurring contributions within the recurring contributions tab, to have easier access to the information that is most likely to be needed.
## How it Works Currently
1. Go to a contact with that has contributions and recurring contributions.
2. Click on contributions tab.
3. Two tables are shown: first, contributions, and after it, recurring contributions.
## How it Should Work
1. Go to a contact with that has contributions and recurring contributions.
2. Click on contributions tab.
3. Two subtabs are shown within the page, one for contributions, the second for recurring contributions.
4. Contributions tab is selected by default, showing the contributions table.
5. Clicking on the recurring contributions tab shows two recurring contributions tables, the first one for active contributions, the second for inactive contributions.
## Acceptance Criteria
* Loading **Contributions** tab shows two subtabs, **Contributions** and **Recurring Contributions**.
* **Contributions** subtab is loaded by default.
* **Recurring Contributions** subtab has two tables, one for active contributions, the other one for inactive contributions.5.4.0https://lab.civicrm.org/dev/core/-/issues/47Add "clone" functionality to scheduled jobs2018-06-17T23:18:56Zmattwiremjw@mjwconsult.co.ukAdd "clone" functionality to scheduled jobsThis adds a "clone" or "copy" function to the scheduled jobs page. It is implemented as an API (job.clone) which can be called via a link from the scheduled jobs listing.
Ref https://github.com/civicrm/civicrm-core/pull/11945This adds a "clone" or "copy" function to the scheduled jobs page. It is implemented as an API (job.clone) which can be called via a link from the scheduled jobs listing.
Ref https://github.com/civicrm/civicrm-core/pull/119455.4.0https://lab.civicrm.org/dev/core/-/issues/41Search Builder: Not empty with date or integer custom fields gives a sql warning2019-03-07T19:25:44ZsamuelsovSearch Builder: Not empty with date or integer custom fields gives a sql warningMentioned by @bgm for a contact reference in mattermost https://chat.civicrm.org/civicrm/pl/49hcecoy5bb9mmsnrfzuzt9a4y and reproduced with a date custom field.
To reproduce :
* create a contactReference custom field or a date custom ...Mentioned by @bgm for a contact reference in mattermost https://chat.civicrm.org/civicrm/pl/49hcecoy5bb9mmsnrfzuzt9a4y and reproduced with a date custom field.
To reproduce :
* create a contactReference custom field or a date custom field
* populate some data on a few records
* use the Search Builder to search on that field, with condition "where [field] is not empty"
Here is an example of query that Mysql doesn't like :
```sql
CREATE TEMPORARY TABLE civicrm_temp_group_contact_cache1062 (SELECT 16 as group_id, contact_a.id as id FROM civicrm_contact contact_a
LEFT JOIN civicrm_value_cfa_contact_2 ON civicrm_value_cfa_contact_2.entity_id = `contact_a`.id WHERE ( ( contact_a.contact_type = "individual" AND (NULLIF(civicrm_value_cfa_contact_2.date_de_validation_manuelle_23, '') IS NOT NULL) ) ) AND (contact_a.is_deleted = 0) AND contact_a.id NOT IN (
SELECT contact_id FROM civicrm_group_contact
WHERE civicrm_group_contact.status = "Removed"
AND civicrm_group_contact.group_id = 16 ) );
```
The warning is :
```sql
SHOW warnings;
+---------+------+------------------------------+
| Level | Code | Message |
+---------+------+------------------------------+
| Warning | 1292 | Incorrect datetime value: '' |
+---------+------+------------------------------+
1 row in set (0.00 sec)
```5.4.0Monish DebMonish Deb