Development issueshttps://lab.civicrm.org/groups/dev/-/issues2023-10-30T05:03:24Zhttps://lab.civicrm.org/dev/core/-/issues/2988Civi Scss compliler is autoloaded, and its (old) verion conflict with more re...2023-10-30T05:03:24ZjbonlineaCivi Scss compliler is autoloaded, and its (old) verion conflict with more recent ones causing fatail errorsHi there,
It seems there is a issue / conflict between CiviCRM Scss compiler and my wordpress theme (gantry 5) Scss compiler.
We've discussed it [here](https://chat.civicrm.org/civicrm/pl/mfsmpmhewjyd7p7srbe1h9cyfa) where I've linked w...Hi there,
It seems there is a issue / conflict between CiviCRM Scss compiler and my wordpress theme (gantry 5) Scss compiler.
We've discussed it [here](https://chat.civicrm.org/civicrm/pl/mfsmpmhewjyd7p7srbe1h9cyfa) where I've linked what put me on track to think is was due to Civi Scss compiler.
A workaround is to rename the folder `civicrm/civicrm/vendor/scssphp`
Let me know if you want more detail
Cheers
PHP 7.4
WP 5.8.2
Civi 5.40.2
Gantry 5.5.6 (theme I use that also bundle an scss compiler, but there are many others)https://lab.civicrm.org/dev/wordpress/-/issues/116Issue related to Civi and WP Scss compiler causing fatal error2021-12-09T15:17:29ZjbonlineaIssue related to Civi and WP Scss compiler causing fatal errorHi there,
It seems there is a issue / conflict between CiviCRM Scss compiler and my wordpress theme (gantry 5) Scss compiler.
We've discussed it [here](https://chat.civicrm.org/civicrm/pl/mfsmpmhewjyd7p7srbe1h9cyfa) where I've linked w...Hi there,
It seems there is a issue / conflict between CiviCRM Scss compiler and my wordpress theme (gantry 5) Scss compiler.
We've discussed it [here](https://chat.civicrm.org/civicrm/pl/mfsmpmhewjyd7p7srbe1h9cyfa) where I've linked what put me on track to think is was due to Civi Scss compiler.
A workaround is to rename the folder `civicrm/civicrm/vendor/scssphp`
Let me know if you want more detail
Cheers
PHP 7.4
WP 5.8.2
Civi 5.40.2
Gantry 5.5.6 (theme I use that also bundle an scss compiler, but there are many others)https://lab.civicrm.org/dev/core/-/issues/2987API call Contribution.repeattransaction fails with recurring contributions th...2023-03-20T01:51:15ZandrewcormickdockeryAPI call Contribution.repeattransaction fails with recurring contributions that have a one-to-one custom group record attachedOverview
----------------------------------------
Re: https://chat.civicrm.org/civicrm/pl/i8fht46isjn5uj4dbdosrqpqmr
The API call Contribution.repeattransaction appears to write a custom group record twice when completing a transaction....Overview
----------------------------------------
Re: https://chat.civicrm.org/civicrm/pl/i8fht46isjn5uj4dbdosrqpqmr
The API call Contribution.repeattransaction appears to write a custom group record twice when completing a transaction. On the second attempt, a database error caused by the clashing unique key is generated. The transaction appears to end up being recorded correctly, however the fatal error means that processes which call this function repeatedly end up not completing. Our use case involves finding all Eway transactions whose next scheduled contribution date is today, and then calling Contribution.repeattransaction for each one.
Reproduction steps
----------------------------------------
1. Ensure a one-to-one custom group exists against contributions.
1. Ensure a recurring contribution exists with a record in that custom group against the transaction.
1. Run `drush cvapi Contribution.repeattransaction contribution_status_id=Completed total_amount=<some value> contribution_recur_id=<contribution_recur_id in previous step> trxn_id=<random unique number>`
Current behaviour
----------------------------------------
Failure message appears: `DB Error: already exists`; process terminates. Record appears to be correctly produced in CiviCRM.
Log details:
```
Dec 07 12:40:11 [error] $Fatal Error Details = Array
(
[callback] => Array
(
[0] => CRM_Core_Error
[1] => exceptionHandler
)
[code] => -5
[message] => DB Error: already exists
[mode] => 16
[debug_info] => INSERT INTO civicrm_value_contribution_custom_group_1 ( `custom_field_1`,`custom_field_2`,`custom_field_3`,`custom_field_4`,`entity_id` ) VALUES ( 1,'Some Text','','22943426',123456 ) [nativecode=1062 ** Duplicate entry '123456' for key 'unique_entity_id']
[type] => DB_Error
[user_info] => INSERT INTO civicrm_value_contribution_custom_group_1 ( `custom_field_1`,`custom_field_2`,`custom_field_3`,`custom_field_4`,`entity_id` ) VALUES ( 1,'Some Text','','22943426',123456 ) [nativecode=1062 ** Duplicate entry '123456' for key 'unique_entity_id']
[to_string] => [db_error: message="DB Error: already exists" code=-5 mode=callback callback=CRM_Core_Error::exceptionHandler prefix="" info="INSERT INTO civicrm_value_contribution_custom_group_1 ( `custom_field_1`,`custom_field_2`,`custom_field_3`,`custom_field_4`,`entity_id` ) VALUES ( 1,'Some Text','','22943426',123456 ) [nativecode=1062 ** Duplicate entry '123456' for key 'unique_entity_id']"]
)
Dec 07 12:40:11 [debug] $backTrace = #0 /path/to/civi/root/civicrm/CRM/Core/Error.php(942): CRM_Core_Error::backtrace("backTrace", TRUE)
#1 /path/to/civi/root/civicrm/vendor/pear/pear-core-minimal/src/PEAR.php(922): CRM_Core_Error::exceptionHandler(Object(DB_Error))
#2 /path/to/civi/root/civicrm/vendor/pear/db/DB.php(997): PEAR_Error->__construct("DB Error: already exists", -5, 16, (Array:2), "INSERT INTO civicrm_value_contribution_custom_group_1 ( `hide_from_slider_182`,`custom_...")
#3 /path/to/civi/root/civicrm/vendor/pear/pear-core-minimal/src/PEAR.php(575): DB_Error->__construct(-5, 16, (Array:2), "INSERT INTO civicrm_value_contribution_custom_group_1 ( `custom_field_1`,`custom_...")
#4 /path/to/civi/root/civicrm/vendor/pear/pear-core-minimal/src/PEAR.php(223): PEAR->_raiseError(Object(DB_mysqli), NULL, -5, 16, (Array:2), "INSERT INTO civicrm_value_contribution_custom_group_1 ( `custom_field_1`,`custom_...", "DB_Error", TRUE)
#5 /path/to/civi/root/civicrm/vendor/pear/db/DB/common.php(1928): PEAR->__call("raiseError", (Array:7))
#6 /path/to/civi/root/civicrm/vendor/pear/db/DB/mysqli.php(936): DB_common->raiseError(-5, NULL, NULL, "INSERT INTO civicrm_value_contribution_custom_group_1 ( `custom_field_1`,`custom_...", "1062 ** Duplicate entry '123456' for key 'unique_entity_id'")
#7 /path/to/civi/root/civicrm/vendor/pear/db/DB/mysqli.php(406): DB_mysqli->mysqliRaiseError()
#8 /path/to/civi/root/civicrm/vendor/pear/db/DB/common.php(1234): DB_mysqli->simpleQuery("INSERT INTO civicrm_value_contribution_custom_group_1 ( `custom_field_1`,`custom_...")
#9 /path/to/civi/root/civicrm/packages/DB/DataObject.php(2696): DB_common->query("INSERT INTO civicrm_value_contribution_custom_group_1 ( `custom_field_1`,`custom_...")
#10 /path/to/civi/root/civicrm/packages/DB/DataObject.php(1829): DB_DataObject->_query("INSERT INTO civicrm_value_contribution_custom_group_1 ( `custom_field_1`,`custom_...")
#11 /path/to/civi/root/civicrm/CRM/Core/DAO.php(468): DB_DataObject->query("INSERT INTO civicrm_value_contribution_custom_group_1 ( `custom_field_1`,`custom_...")
#12 /path/to/civi/root/civicrm/CRM/Core/DAO.php(1621): CRM_Core_DAO->query("INSERT INTO civicrm_value_contribution_custom_group_1 ( `custom_field_1`,`custom_...", TRUE)
#13 /path/to/civi/root/civicrm/CRM/Core/BAO/CustomValueTable.php(271): CRM_Core_DAO::executeQuery("INSERT INTO civicrm_value_contribution_custom_group_1 ( `custom_field_1`,`custom_...", (Array:5))
#14 /path/to/civi/root/civicrm/CRM/Core/BAO/CustomValueTable.php(391): CRM_Core_BAO_CustomValueTable::create((Array:2), "create")
#15 /path/to/civi/root/civicrm/CRM/Core/BAO/CustomValueTable.php(411): CRM_Core_BAO_CustomValueTable::store((Array:5), "civicrm_contribution", 123456, "create")
#16 /path/to/civi/root/civicrm/CRM/Core/DAO.php(2022): CRM_Core_BAO_CustomValueTable::postProcess((Array:5), "civicrm_contribution", 123456, "Contribution", "create")
#17 /path/to/civi/root/civicrm/CRM/Contribute/BAO/Contribution.php(2394): CRM_Core_DAO->copyCustomFields(123455, 123456)
#18 /path/to/civi/root/civicrm/CRM/Contribute/BAO/Contribution.php(4000): CRM_Contribute_BAO_Contribution::repeatTransaction((Array:10), (Array:18))
#19 /path/to/civi/root/civicrm/api/v3/Contribution.php(687): CRM_Contribute_BAO_Contribution::completeOrder((Array:10), "2269", NULL, NULL)
#20 /path/to/civi/root/civicrm/api/v3/Contribution.php(635): _ipn_process_transaction((Array:7), Object(CRM_Contribute_BAO_Contribution), (Array:10), (Array:10))
#21 /path/to/civi/root/civicrm/Civi/API/Provider/MagicFunctionProvider.php(89): civicrm_api3_contribution_repeattransaction((Array:7))
#22 /path/to/civi/root/civicrm/Civi/API/Kernel.php(149): Civi\API\Provider\MagicFunctionProvider->invoke((Array:8))
#23 /path/to/civi/root/civicrm/Civi/API/Kernel.php(81): Civi\API\Kernel->runRequest((Array:8))
#24 /path/to/civi/root/civicrm/api/api.php(132): Civi\API\Kernel->runSafe("contribution", "repeattransaction", (Array:5))
#25 /path/to/civi/root/civicrm/drupal/drush/civicrm.drush.inc(1581): civicrm_api3("Contribution", "repeattransaction", Array:5))
#26 /usr/local/src/drush/includes/command.inc(422): drush_civicrm_api("Contribution.repeattransaction", "contribution_status_id=Completed", "total_amount=11.00", "contribution_recur_id=22663", "trxn_id=aa11bb22cc33dd47")
#27 /usr/local/src/drush/includes/command.inc(231): _drush_invoke_hooks((Array:38), (Array:5))
#28 /usr/local/src/drush/includes/command.inc(199): drush_command("Contribution.repeattransaction", "contribution_status_id=Completed", "total_amount=11.00", "contribution_recur_id=22663", "trxn_id=aa11bb22cc33dd47")
#29 /usr/local/src/drush/lib/Drush/Boot/BaseBoot.php(67): drush_dispatch((Array:38))
#30 /usr/local/src/drush/includes/preflight.inc(67): Drush\Boot\BaseBoot->bootstrap_and_dispatch()
#31 /usr/local/src/drush/drush.php(12): drush_main()
#32 {main}
```
Expected behaviour
----------------------------------------
Fatal error not raised; no attempt to write the exact same record twice.
I have mitigated this behaviour with the following patch, but this is clearly a temporary solution and the real root cause needs to be found:
```
diff --git a/CRM/Core/BAO/CustomValueTable.php b/CRM/Core/BAO/CustomValueTable.php
index 8556c4ec21..6773b994c4 100644
--- a/CRM/Core/BAO/CustomValueTable.php
+++ b/CRM/Core/BAO/CustomValueTable.php
@@ -55,7 +55,7 @@ class CRM_Core_BAO_CustomValueTable {
$hookOP = 'edit';
}
else {
- $sqlOP = "INSERT INTO $tableName ";
+ $sqlOP = "INSERT IGNORE INTO $tableName ";
$where = NULL;
$hookOP = 'create';
}
```
Environment information
----------------------------------------
* __Browser:__ _Firefox 94.0.2_
* __CiviCRM:__ _5.43.2_
* __PHP:__ _7.3_
* __CMS:__ _Drupal 7.82_
* __Database:__ _MariaDB 10.4.21_
* __Web Server:__ _Nginx 1.10.3_https://lab.civicrm.org/dev/drupal/-/issues/170kcfinder error 5002021-12-16T13:14:52Zolivierkcfinder error 500Civicrm 5.43 and 5.44 under Drupal 8, launching kcfinder from ckeditor give an 500 error.
Php script integration/civicrm.php try to call civicrm.config.php located in web/libraries/civicrm/, and this file does not exist.
Copying this fil...Civicrm 5.43 and 5.44 under Drupal 8, launching kcfinder from ckeditor give an 500 error.
Php script integration/civicrm.php try to call civicrm.config.php located in web/libraries/civicrm/, and this file does not exist.
Copying this file from an Drupal 7 installation is not sufficent, because civicrm.settings.php is not searched in correct location.
```
--- ../../mcm65/sites/all/modules/civicrm/civicrm.config.php 2021-11-15 21:42:13.000000000 +0100
+++ libraries/civicrm/civicrm.config.php 2021-12-07 21:14:33.380121826 +0100
@@ -87,6 +87,11 @@
return $confdir;
}
+ if (file_exists($_SERVER['DOCUMENT_ROOT'] . DIRECTORY_SEPARATOR . 'sites' . DIRECTORY_SEPARATOR . 'default' .
+ DIRECTORY_SEPARATOR . 'civicrm.settings.php')) {
+ return $_SERVER['DOCUMENT_ROOT'] . DIRECTORY_SEPARATOR . 'sites' . DIRECTORY_SEPARATOR . 'default';
+ }
+
if (!file_exists($confdir) && !$skipConfigError) {
echo "Could not find valid configuration dir, best guess: $confdir<br/><br/>\n";
exit();
```
Another point, .htaccess in /web directory Deny access to most php files in public directory.
We must allow access to php files under kcfinder directory :
```
# For security reasons, deny access to other PHP files on public sites.
# Note: The following URI conditions are not anchored at the start (^),
# because Drupal may be located in a subdirectory. To further improve
# security, you can replace '!/' with '!^/'.
# Allow access to PHP files in /core (like authorize.php or install.php):
RewriteCond %{REQUEST_URI} !/core/[^/]*\.php$
# Allow access to test-specific PHP files:
RewriteCond %{REQUEST_URI} !/core/modules/system/tests/https?.php
# Allow access to Statistics module's custom front controller.
# Copy and adapt this rule to directly execute PHP files in contributed or
# custom modules or to run another PHP application in the same directory.
RewriteCond %{REQUEST_URI} !/core/modules/statistics/statistics.php$
RewriteCond %{REQUEST_URI} !/libraries/civicrm/packages/kcfinder/[a-z_]+\.php$
RewriteCond %{REQUEST_URI} !/libraries/civicrm/packages/kcfinder/.*/[a-z_]+\.php$
# Deny access to any other PHP files that do not match the rules above.
# Specifically, disallow autoload.php from being served directly.
RewriteRule "^(.+/.*|autoload)\.php($|/)" - [F]
```https://lab.civicrm.org/dev/core/-/issues/3225SearchKit/Form: exposing a Date custom field has invalid year range2022-04-22T15:51:14ZbgmSearchKit/Form: exposing a Date custom field has invalid year rangeTo reproduce on dmaster:
1) Create a new Custom Field (ex: Lucky Day), type 'Date', searchable, by range.
![image](/uploads/06c2a53ea2ca237bf3b1e2a6332dc5cd/image.png)
Optionally you can update a contact, so that at least one has a Lu...To reproduce on dmaster:
1) Create a new Custom Field (ex: Lucky Day), type 'Date', searchable, by range.
![image](/uploads/06c2a53ea2ca237bf3b1e2a6332dc5cd/image.png)
Optionally you can update a contact, so that at least one has a Lucky Day, but it is not a requirement to reproduce the bug. For extra luck, I used 2021-08-13.
2) Create a SearchKit that lists Contacts, and display the field
3) Create a Form for that Search, and expose the Lucky Day field as a filter. Give the form an URL to view the page.
![image](/uploads/5ee592a6a1b483797d01b8712eb68761/image.png)
Then go view the form, and notice how the date filter only lets you select dates in 2021:
![image](/uploads/b7ce2b3f40df756fb8347586a9c4d0b4/image.png)
If you go back to the custom field configuration, and set a number of years in the "Dates may be up to" prior/after, then the filter works correctly. However, having these fields empty usually means that there are no restrictions (or they default to -20/+10 years).5.46.0https://lab.civicrm.org/dev/core/-/issues/2986PCP: Account creation profile does not support contact image2023-10-28T05:03:27ZKurund JalmiPCP: Account creation profile does not support contact image## Steps to replicate
* Create a profile with contact image field (Image URL)
* Include this profile as a part of PCP account creation process
* Contact image is never uploaded.## Steps to replicate
* Create a profile with contact image field (Image URL)
* Include this profile as a part of PCP account creation process
* Contact image is never uploaded.https://lab.civicrm.org/dev/core/-/issues/2985Original value is displayed after setting custom event field blank2023-01-21T04:07:10ZBobSOriginal value is displayed after setting custom event field blankOverview
----------------------------------------
Attempting to change the value of a custom event field from non-blank to blank results in the original value being populated in the form after the form is saved. If the form is subsequent...Overview
----------------------------------------
Attempting to change the value of a custom event field from non-blank to blank results in the original value being populated in the form after the form is saved. If the form is subsequently saved again, then the original non-blank value is written to the DB.
Reproduction steps
----------------------------------------
1. Create a custom event fieldset.
1. Add a custom field of type Alphanumeric, Single line input field. Accept all default settings.
1. Edit an event.
1. Set the new custom field to a non-blank value and save the event.
1. Set the new custom field to a blank value and save the event.
Current behaviour
----------------------------------------
The custom field displays the non-blank value. If the form is saved, the blank value currently in the DB is overwritten with the non-blank value.
Expected behaviour
----------------------------------------
The custom field should display the last saved value: blank.
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. -->
* __Browser:__ Chrome Version 96.0
* __CiviCRM:__ _5.45.alpha1_ <!-- If this problem relates to an upgrade, then specify both old and new versions -->
* __PHP:__ _7.4_
* __CMS:__ _Drupal 7.82_
* __Database:__ _MariaDB 10.4_
* __Web Server:__ _Apache 2.4_
Comments
----------------------------------------
Confirmed on dmaster.demo.civicrm.org5.59.0https://lab.civicrm.org/dev/core/-/issues/2984APIv4: Confusing error when calling CaseType API2021-12-09T21:08:05ZtottenAPIv4: Confusing error when calling CaseType APIOverview
----------------------------------------
`CaseType.get` API has a confusing disposition.
Reproduction steps
----------------------------------------
1. Disable CiviCase
1. Call `cv api4 CaseType.get`
Current behavior
--------...Overview
----------------------------------------
`CaseType.get` API has a confusing disposition.
Reproduction steps
----------------------------------------
1. Disable CiviCase
1. Call `cv api4 CaseType.get`
Current behavior
----------------------------------------
The call to `CaseType.get` begins executing - but it fails in the middle of query-building.
```
cv api4 CaseType.get -v
Entity: CaseType
Action: get
Params: {
"version": 4,
"checkPermissions": false
}
[Symfony\Component\Debug\Exception\FatalThrowableError]
Type error: array_merge(): Argument #1 must be of type array, null given
Exception trace:
() at /home/m/bknix/build/tmp/web/sites/all/modules/civicrm/Civi/Api4/Query/Api4SelectQuery.php:223
array_merge() at /home/m/bknix/build/tmp/web/sites/all/modules/civicrm/Civi/Api4/Query/Api4SelectQuery.php:223
Civi\Api4\Query\Api4SelectQuery->buildSelectClause() at /home/m/bknix/build/tmp/web/sites/all/modules/civicrm/Civi/Api4/Query/Api4SelectQuery.php:149
Civi\Api4\Query\Api4SelectQuery->getSql() at /home/m/bknix/build/tmp/web/sites/all/modules/civicrm/Civi/Api4/Query/Api4SelectQuery.php:165
Civi\Api4\Query\Api4SelectQuery->run() at /home/m/bknix/build/tmp/web/sites/all/modules/civicrm/Civi/Api4/Generic/DAOGetAction.php:111
Civi\Api4\Generic\DAOGetAction->getObjects() at /home/m/bknix/build/tmp/web/sites/all/modules/civicrm/Civi/Api4/Generic/DAOGetAction.php:99
Civi\Api4\Generic\DAOGetAction->_run() at /home/m/bknix/build/tmp/web/sites/all/modules/civicrm/Civi/Api4/Provider/ActionObjectProvider.php:68
Civi\Api4\Provider\ActionObjectProvider->invoke() at /home/m/bknix/build/tmp/web/sites/all/modules/civicrm/Civi/API/Kernel.php:149
Civi\API\Kernel->runRequest() at /home/m/bknix/build/tmp/web/sites/all/modules/civicrm/Civi/Api4/Generic/AbstractAction.php:234
Civi\Api4\Generic\AbstractAction->execute() at /home/m/bknix/build/tmp/web/sites/all/modules/civicrm/api/api.php:85
civicrm_api4() at phar:///home/m/bknix/bin/cv/src/Command/Api4Command.php:145
Civi\Cv\Command\Api4Command->execute() at phar:///home/m/bknix/bin/cv/vendor/symfony/console/Command/Command.php:257
Symfony\Component\Console\Command\Command->run() at phar:///home/m/bknix/bin/cv/vendor/symfony/console/Application.php:850
Symfony\Component\Console\Application->doRunCommand() at phar:///home/m/bknix/bin/cv/vendor/symfony/console/Application.php:193
Symfony\Component\Console\Application->doRun() at phar:///home/m/bknix/bin/cv/src/Application.php:46
Civi\Cv\Application->doRun() at phar:///home/m/bknix/bin/cv/vendor/symfony/console/Application.php:124
Symfony\Component\Console\Application->run() at phar:///home/m/bknix/bin/cv/src/Application.php:15
Civi\Cv\Application::main() at phar:///home/m/bknix/bin/cv/bin/cv:27
require() at /home/m/bknix/bin/cv:14
```
Expected behavior
----------------------------------------
Either:
* Allow `CaseType` API calls to work. Return the list of case types.
* OR... Disallow `CaseType` API calls. Give a clear error; eg
* `CaseType.get API is unavailable.`
* `Cannot process request. CiviCase is disabled.`https://lab.civicrm.org/dev/core/-/issues/2983On "My Contact Dashboard", what is the Manage Case link in the relationships ...2024-02-26T05:03:22ZDaveDOn "My Contact Dashboard", what is the Manage Case link in the relationships section supposed to do?At civicrm/user, in the relationships section, if you have a relationship to a case there's a link under More at the right that says Manage Case. But clicking it does nothing. Also there's an error on the page because it's trying to crea...At civicrm/user, in the relationships section, if you have a relationship to a case there's a link under More at the right that says Manage Case. But clicking it does nothing. Also there's an error on the page because it's trying to create the link as CRM_Core_Action::NONE but there is no offset 0 in the $links array, but I'm not sure if that's the full reason it fails.
It looks like it's supposed to do a popup-y version of manage case? Except it looks like the link if it were working would be e.g. civicrm/case/ajax/details?caseId=1&cid=3&snippet=4, which just gives a little table.
I'm just wondering if it's worth trying to fix or to just remove it. I have no idea when it broke - never even knew it existed.https://lab.civicrm.org/dev/core/-/issues/2982Repeat Contributions CiviReport warnings: Formatting non-numeric values is no...2021-12-09T00:48:06ZDaveDRepeat Contributions CiviReport warnings: Formatting non-numeric values is no longer supportedWhole screen fills with ones like this:
`User deprecated function: Formatting non-numeric values is no longer supported: 100.00 (2) Caller: CRM_Utils_Money::format in CRM_Core_Error::deprecatedWarning() (line 1060 of /srv/buildkit/build...Whole screen fills with ones like this:
`User deprecated function: Formatting non-numeric values is no longer supported: 100.00 (2) Caller: CRM_Utils_Money::format in CRM_Core_Error::deprecatedWarning() (line 1060 of /srv/buildkit/build/dmaster/web/sites/all/modules/civicrm/CRM/Core/Error.php).`
It must be the `(2)` part it doesn't like. Perhaps that repeat count should be its own column.
It's also showing `<br/>` in the column heading, which I assume is from the recent smarty escaping PRs.5.46.0https://lab.civicrm.org/dev/core/-/issues/2981Pledge improvements2023-11-15T05:03:18ZyashodhaPledge improvementsCiviPledge improvements
-------------------------
There are frequent discrepancies between received and pledged payments, the following specifications detail each of the suggested improvements.
Technical Specifications
-----------------...CiviPledge improvements
-------------------------
There are frequent discrepancies between received and pledged payments, the following specifications detail each of the suggested improvements.
Technical Specifications
-------------------------
- Delete pledge behavior
When a pledge is deleted, currently all associated payments are also deleted. Instead, only delete the records in the civicrm_pledge and civicrm_pledge_payment tables.
- Unlink pledge payment
In the View Payment pop-up window associated with a pledge payment, add a button ‘Unlink’ next to the ‘Delete’ button.
![unlink](/uploads/9844b5fdddc9456508af0560266d5f12/unlink.png)
Pressing this button will reset the pledge_payment record (ie. reset contribution_id, actual_amount, and status_id fields to blank/null), but not delete the contribution itself.
- Delete scheduled payment
In the Edit Scheduled Payment pop-up window associated with scheduled pledge payments, add a button ‘Delete’ next to the ‘Save’ button.
![del](/uploads/4c5aa52d6d471d8ebfd583720b1bb969/del.png)
Pressing this button will delete the scheduled pledge payment and reduce the pledge amount (ie. civicrm_pledge.amount) by the corresponding amount.
- Add scheduled payment
In the Edit Scheduled Payment pop-up window associated with scheduled pledge payments, add a button ‘Save and New’ next to the ‘Save’ button.
![add](/uploads/1fcb8f2ee9bb03e91745bdc842b15398/add.png)
Pressing this button will save the existing screen and reset it to create a new Scheduled Payment. The Scheduled Date is preset to one period after the last scheduled payment, and the amount the same as the original scheduled amount (ie. all calculated from the information in the civicrm_pledge record, we are basically extending by one installment).
UI behaviours:
- [ ] Pressing Save and New, then Cancel should not create a new scheduled payment
- [ ] Pressing Save and New, then Delete should not result in an error
Adding a scheduled pledge payment needs to augment the pledge amount by the amount of the new scheduled payment.
- Link Existing payment
In the Edit Scheduled Payment pop-up window associated with scheduled pledge payments, add a selector in order to link unmatched existing payments with this scheduled payment.
![link](/uploads/f35e26f50f5f4660602f2db553cd00c2/link.png)
The drop-down is populated with all completed, non-test payments from the same contact that are not linked to any pledge payments through the civicrm_pledge_payment table.
Each payment is displayed as: {date} {financial_type} {amount}
UI behaviours:
- [ ] When selecting a payment, protect the scheduled amount control and replace the scheduled amount with the contribution amount
- [ ] If the payment amount is not the same as the scheduled amount, then open the controls below Adjust Selected Amount and pre-select first option:
![link1](/uploads/922fbce25b325334d4fa87cd43e58379/link1.png)
- [ ] The Save action will trigger updates the same schedule / amount / adjustment updates to the civicrm_pledge_payment record, but also link with any selected payment (ie. fields contribution_id, actual_amount and status_id).
- [ ] Resetting the Link with Payment drop-down to “ -- select --” will restore the Scheduled Amount control to the initially scheduled amount and close the Adjustment controls.yashodhayashodhahttps://lab.civicrm.org/dev/core/-/issues/2980Automated Messages (mostly) don't respect is_active, default2022-04-07T15:07:59ZJonGoldAutomated Messages (mostly) don't respect is_active, defaultMany automated messages (unsubscribe, resubscribe, etc.) ignore the "is_default" and "is_active" flags on `civicrm_mailing_component`.
### Steps to Replicate
* Go to **Mailings » Headers, Footers, Automated Messages**.
* Disable the Uns...Many automated messages (unsubscribe, resubscribe, etc.) ignore the "is_default" and "is_active" flags on `civicrm_mailing_component`.
### Steps to Replicate
* Go to **Mailings » Headers, Footers, Automated Messages**.
* Disable the Unsubscribe message.
* Unsubscribe from a mailing.
### Expected Behavior
No email.
### Actual Behavior
Email.
Once I dug in, I saw that *some* code was filtering for is_active/is_default, but the copy/paste nature meant most weren't. I refactored the automated messages to take advantage of a common retrieval function.JonGoldJonGoldhttps://lab.civicrm.org/dev/core/-/issues/2979Proposal to remove the limit of 15 max values for multiple values can also be...2021-12-09T16:28:04ZyashodhaProposal to remove the limit of 15 max values for multiple values can also be retrieved from url in reportsWe send the parameters as string so that multiple values can also be retrieved from url in reports
for e.g url like - "memtype_in=in&memtype_value=1,2,3
However, there is a restriction for 15 values esp when you search for activity type...We send the parameters as string so that multiple values can also be retrieved from url in reports
for e.g url like - "memtype_in=in&memtype_value=1,2,3
However, there is a restriction for 15 values esp when you search for activity types which can be numerous. In this this case, if the values exceeds 15 the criteria are not respected.
Proposal to remove the limit of 15 max values.
https://github.com/civicrm/civicrm-core/blob/master/CRM/Report/Utils/Get.php#L1735.46.0yashodhayashodhahttps://lab.civicrm.org/dev/core/-/issues/2978usability: checkboxes weren't visible until I added a valid URL in formbuilder2023-10-28T05:03:26ZMichael McAndrewusability: checkboxes weren't visible until I added a valid URL in formbuilder![image](/uploads/160c8b7d3d79a06624b36be8754b2a38/image.png)
I was trying to work out how to make a form accessible from the front end of a site.
The checkbox I was looking for was hidden until I added a valid URL which is bad for dis...![image](/uploads/160c8b7d3d79a06624b36be8754b2a38/image.png)
I was trying to work out how to make a form accessible from the front end of a site.
The checkbox I was looking for was hidden until I added a valid URL which is bad for discoverability of functionality.
It might be better handled in validation.
See https://chat.civicrm.org/civicrm/pl/zswjsq6hgfftfda1o5asg8wxyh for more.https://lab.civicrm.org/dev/core/-/issues/2977When adding custom data set change default selected option2021-12-14T22:43:19ZBarijohnWhen adding custom data set change default selected optionOverview
----------------------------------------
Currently when adding a custom data set I always swap the default settings for showing the set. So I untick the Collapse this set on initial display and tick Collapse this set in Advanced...Overview
----------------------------------------
Currently when adding a custom data set I always swap the default settings for showing the set. So I untick the Collapse this set on initial display and tick Collapse this set in Advanced Search.
In my experience if I kept the default settings my Advanced Search can get out of control quite quickly but when looking at a summary page I have to keep clicking to open up the data set.
Current behaviour
----------------------------------------
![Screenshot_2021-12-02_at_13.32.34](/uploads/0ddb75a1bfa2571771c69fdd1a923e17/Screenshot_2021-12-02_at_13.32.34.png)
Proposed behaviour
----------------------------------------
![Screenshot_2021-12-02_at_13.32.57](/uploads/3de94103ee8053082d5da96bac3f092c/Screenshot_2021-12-02_at_13.32.57.png)
Comments
----------------------------------------
This might be something unique to how I like to set custom data sets up. So would be good to find the community consensus.5.46.0https://lab.civicrm.org/dev/core/-/issues/2976Feature Request: Form Builder and Permissions - Provide ability to restrict a...2023-11-02T12:39:11Zjustinfreeman (Agileware)Feature Request: Form Builder and Permissions - Provide ability to restrict access to selected Roles rather than just specific Permission GrantsWould be great if the Form Builder, Permissions had the ability to restrict access to selected Roles rather than just specific Permission Grants.
Roles being far more flexible, can be automatically granted and removed for user accounts ...Would be great if the Form Builder, Permissions had the ability to restrict access to selected Roles rather than just specific Permission Grants.
Roles being far more flexible, can be automatically granted and removed for user accounts and this is a common pattern on Member websites. Whereas Permission Grants are not used in this way.
For example: When a user with the Member role views a Form Builder page, they are granted access to use the Form and view the Search Results because they have the Member role.
![Screenshot_20211202_130808](/uploads/25c2fbadece5eea59beb05d7b269e937/Screenshot_20211202_130808.png)
Agileware Ref: CIVICRM-1899https://lab.civicrm.org/dev/core/-/issues/2975Drupal8/composer: upgrading do not move vendor files to the library folder2024-03-25T05:03:19ZcalbasiDrupal8/composer: upgrading do not move vendor files to the library folderOverview
----------------------------------------
I've upgraded from civicrm 5.36 to 5.43 using composer. I have no composer nor database errors but website menu, panels, etc. are not shown.
It seems some library files are missing on l...Overview
----------------------------------------
I've upgraded from civicrm 5.36 to 5.43 using composer. I have no composer nor database errors but website menu, panels, etc. are not shown.
It seems some library files are missing on libraries folder (but not at vendor folder). Copying some of them from vendor to library folder solves inspector errors...
Reproduction steps
----------------------------------------
1. Upgrade the code:
- composer update civicrm/civicrm-{core,packages,drupal-8} --with-dependencies
- update database
Current behaviour
----------------------------------------
Website don't load menu, panels, floating panels. Just the most basic info (html).
The inspector show errors (a couple of library files are missing)
```
The resource from “https://my_domain/libraries/civicrm/core/ang/resetLocationProviderHashPrefix.js?r=ZdPSJ” was blocked due to MIME type (“text/html”) mismatch (X-Content-Type-Options: nosniff).
The resource from “https://my_domain/libraries/civicrm/core/js/crm-angularjs-loader.js?r=ZdPSJ” was blocked due to MIME type (“text/html”) mismatch (X-Content-Type-Options: nosniff).
The resource from “https://my_domain/libraries/civicrm/core/ang/resetLocationProviderHashPrefix.js?r=ZdPSJ” was blocked due to MIME type (“text/html”) mismatch (X-Content-Type-Options: nosniff).
Loading failed for the <script> with source “https://my_domain/libraries/civicrm/core/ang/resetLocationProviderHashPrefix.js?r=ZdPSJ”.
The resource from “https://my_domain/libraries/civicrm/core/js/crm-angularjs-loader.js?r=ZdPSJ” was blocked due to MIME type (“text/html”) mismatch (X-Content-Type-Options: nosniff).
```
After copy the missing errors:
```
cp js/crm-angularjs-loader.js /var/www/my_website/web/web/libraries/civicrm/core/js/
cp resetLocationProviderHashPrefix.js /var/www/my_website/web/web/libraries/civicrm/core/ang/
```
I think the composer info is OK:
```
"extra": {
"installer-paths": {
"web/core": ["type:drupal-core"],
"web/libraries/{$name}": ["type:drupal-library"],
```
In fact, vendor/civicrm/civicrm-core has updated files, but not /libraries/civicrm/core
Environment information
----------------------------------------
* __CiviCRM:__ _5.43.2_ <!-- If this problem relates to an upgrade, then specify both old and new versions -->
* __OS:__ _Debian 10__
* __PHP:__ _7.3__
* __CMS:__ _Drupal 8 (updated version)..._
* __Database:__ _MariaDB_
* __Web Server:__ _Apache 2_https://lab.civicrm.org/dev/core/-/issues/2974Membership status update breaks if override is removed2021-12-02T05:48:05ZJonGoldMembership status update breaks if override is removed### Steps to replicate
* Open a membership whose status should be "New" or "Current".
* Override the membership so the status is "Expired".
* Remove the override status and save.
### Expected Behavior
Membership returns to its normal st...### Steps to replicate
* Open a membership whose status should be "New" or "Current".
* Override the membership so the status is "Expired".
* Remove the override status and save.
### Expected Behavior
Membership returns to its normal status.
### Actual Behavior
Membership retains its override status, with no way to fix except with another override.
Additionally, the "Update Memberships" scheduled job doesn't work
This is a regression in 5.42, which I've tracked down to https://github.com/civicrm/civicrm-core/pull/20976.
I'm thinking the solution would be to clear the `status_id` when removing an override (likely with JS at the form level) but I'm not clear on the reason for the change so I'll let wiser heads prevail.5.44.0https://lab.civicrm.org/dev/core/-/issues/2973Custom fields all broken2021-12-01T03:19:28ZDaveDCustom fields all brokenMust be pretty recent. Noticed it locally and confirmed on dmaster.demo.
The fields are unusable on any entity edit form and all say NULL.
![Untitled](/uploads/3ec5d44c1d954956076f9e9a5f208892/Untitled.png)Must be pretty recent. Noticed it locally and confirmed on dmaster.demo.
The fields are unusable on any entity edit form and all say NULL.
![Untitled](/uploads/3ec5d44c1d954956076f9e9a5f208892/Untitled.png)5.45.0https://lab.civicrm.org/dev/core/-/issues/3251Searchkit: OptionValue search with a WHERE clause for option group returns 0 ...2022-04-22T15:52:42ZDaveDSearchkit: OptionValue search with a WHERE clause for option group returns 0 resultsThis worked the first time I tested https://github.com/civicrm/civicrm-core/pull/22081 two weeks ago, so has broken some time in between.
It looks like the query does this, mixing up `name` and `value`:
```
"where": [
[
"opti...This worked the first time I tested https://github.com/civicrm/civicrm-core/pull/22081 two weeks ago, so has broken some time in between.
It looks like the query does this, mixing up `name` and `value`:
```
"where": [
[
"option_group_id:name",
"=",
"2"
]
],
```5.44.0