Development issueshttps://lab.civicrm.org/groups/dev/-/issues2022-10-21T07:27:20Zhttps://lab.civicrm.org/dev/core/-/issues/3907Proposal: When excluding past mailing recipients, exclude past recipient emai...2022-10-21T07:27:20ZlarsssandergreenProposal: When excluding past mailing recipients, exclude past recipient email addresses, not just contactsSometimes, you want to send a few different versions of a mailing, so you segment your list and send different versions to different groups or to search results. Of course, you want to make sure no one receives two different versions of ...Sometimes, you want to send a few different versions of a mailing, so you segment your list and send different versions to different groups or to search results. Of course, you want to make sure no one receives two different versions of the same email, so you make sure to exclude the earlier mailings from the later ones. But if two contacts share an email address, one can receive the first mailing and the other the second mailing. Excluding recipients of the first mailing only excludes contacts who received the first mailing, not email addresses that received the first mailing.
Similarly, you might send a mailing, only to have someone realize a mistake was made when half the emails have been delivered. You cancel the mailing, make a copy and fix the error and then send the mailing to the same group minus the recipients of the first mailing. This doesn't work at all, because the _intended_ recipients of the excluded mailing are excluded, not the _actual_ recipients. But if we get past that problem, we'd also run into the same problem as above.
I propose that to fix this, when the dedupe emails setting is enabled in CiviMail, we do an additional check to see if any of the excluded contacts' primary/bulk email address is also used by a contact in the included list, then exclude those recipients as well. I'll need to look at the details of this to make sure performance isn't an issue. If someone wants multiple emails sent to the same address for multiple contacts, they would have the dedupe setting in Civimail turned off, so this change wouldn't affect them. Otherwise, I think this is line with what users would expect.
Also, when recipients of a mailing are excluded, we should check if the excluded mailing status is cancelled. If it is cancelled, then we should only exclude the actual recipients rather than the intended recipients. I think users would also expect excluding recipients of a mailing would exclude the actual recipients, rather than the intended recipients.https://lab.civicrm.org/dev/core/-/issues/3906FormBuilder URL Filter dropdown with multiple values are only filterd with fi...2022-10-21T07:28:15ZdavidFormBuilder URL Filter dropdown with multiple values are only filterd with first valueOverview
----------------------------------------
If a URL filter with multiple values is used in formbuilder, all values are picked up and shown in the multiselect, but the search is only filterd with the first value.
e.g. /civicrm/for...Overview
----------------------------------------
If a URL filter with multiple values is used in formbuilder, all values are picked up and shown in the multiselect, but the search is only filterd with the first value.
e.g. /civicrm/forms/fzt-suche/#?event_type_id=2,3,4
![Unbenannt](/uploads/10a0f5f22f4acd9aaa2a2912743ae71a/Unbenannt.JPG)
Environment information
----------------------------------------
* __Browser:__ Firefox 105
* __CiviCRM:__ 5.54.0
* __PHP:__ 7.3
* __CMS:__ Drupal 7https://lab.civicrm.org/dev/core/-/issues/3903FormBuilder - Unable to set default values for date ranges default values (UI...2024-03-13T17:16:43ZfrancescbassasFormBuilder - Unable to set default values for date ranges default values (UI problem)It's not possible to define date range default values when "Search by range" is selected in a config date filter options for an Afform.
![date-ranges](/uploads/00d838cdd6e6a5daa9a740e2eeb2612c/date-ranges.png)
I think it should be poss...It's not possible to define date range default values when "Search by range" is selected in a config date filter options for an Afform.
![date-ranges](/uploads/00d838cdd6e6a5daa9a740e2eeb2612c/date-ranges.png)
I think it should be possible to define two default date values corresponding the first with the start of the range and the second with the end.https://lab.civicrm.org/dev/core/-/issues/3902Upgrade to 5.54 failed with missing field is_template in table civicrm_user ...2022-10-24T21:42:07ZAndy ClarkUpgrade to 5.54 failed with missing field is_template in table civicrm_user _jobUpgrade to 5.54 from 5.53 failed. Please [this SE ](https://civicrm.stackexchange.com/questions/42771/upgrade-to-5-54-failed) for details.Upgrade to 5.54 from 5.53 failed. Please [this SE ](https://civicrm.stackexchange.com/questions/42771/upgrade-to-5-54-failed) for details.https://lab.civicrm.org/dev/backdrop/-/issues/72CiviCRM Contact Layout Editor won't save layouts.2022-10-21T07:33:50ZbgmCiviCRM Contact Layout Editor won't save layouts.*Created by: jenlampton*
Starting this issue incase others are having the same problem. Note from a civiCRM user:
> I installed the CiviCRM Contact Layout Editor extension. It seems to work fine while creating a new layout, and correc...*Created by: jenlampton*
Starting this issue incase others are having the same problem. Note from a civiCRM user:
> I installed the CiviCRM Contact Layout Editor extension. It seems to work fine while creating a new layout, and correctly saves "blocks" of fields out of which the customized layouts are built. But I can't seem to save the layouts themselves. The "Saving" message with a spinning symbol just turns apparently indefinitely, and the layout neither takes effect nor reappears when I return to the Layout Editor.
I am going to see if I can find any error messages and will report back here with more when I have it.https://lab.civicrm.org/dev/backdrop/-/issues/68Civi won't install when module placed in "best practices" location of `module...2022-10-21T07:37:19ZbgmCivi won't install when module placed in "best practices" location of `modules/contrib`*Created by: jenlampton*
Civi will only install when placed directly in the root of the `modules` directory. None of the documentation or on-screen instructions include any warnings or indications that the placement of Civi files on dis...*Created by: jenlampton*
Civi will only install when placed directly in the root of the `modules` directory. None of the documentation or on-screen instructions include any warnings or indications that the placement of Civi files on disk need to be treated any differently than usual.
A "best practices" Drupal or Backdrop set-up includes at least two directories within `modules`: `contrib` and `custom`. More complex set-ups can have others.
Multi-site Drupal and Backdrop installations get even more complicated, with modules in all kinds of various locations, sometimes shared between sites, sometimes only offered or a single site. Because of all these various different ways to run Backdrop and Drupal sites, the location of the files on disk should not be a factor.
Both CMSes provide utility functions (`backdrop_get_path()` or `drupal_get_path()`) that will allow any add-on to to be located at run-time. These should be used instead of assuming a specific location.https://lab.civicrm.org/dev/backdrop/-/issues/67PHP notices when saving permissions form2022-10-21T07:35:43ZbgmPHP notices when saving permissions form*Created by: jenlampton*
When the permissions form is saved (for the first time) the following PHP notices appear at the top of the page:
```
Notice: Constant CIVICRM_UF already defined in Civi\Setup\UI\SetupController->boot() (line 13...*Created by: jenlampton*
When the permissions form is saved (for the first time) the following PHP notices appear at the top of the page:
```
Notice: Constant CIVICRM_UF already defined in Civi\Setup\UI\SetupController->boot() (line 130 of backdrop/docroot/modules/civicrm/setup/src/Setup/UI/SetupController.php).
Notice: Constant CIVICRM_TEMPLATE_COMPILEDIR already defined in Civi\Setup\UI\SetupController->boot() (line 131 of backdrop/docroot/modules/civicrm/setup/src/Setup/UI/SetupController.php).
Notice: Constant CIVICRM_UF_BASEURL already defined in Civi\Setup\UI\SetupController->boot() (line 132 of backdrop/docroot/modules/civicrm/setup/src/Setup/UI/SetupController.php).
```https://lab.civicrm.org/dev/backdrop/-/issues/66Admin role not granted all Civi permissions on install.2022-10-21T07:36:12ZbgmAdmin role not granted all Civi permissions on install.*Created by: jenlampton*
After running the Civi Installer, I am redirected to the 'civicrm/setup' where the first message says "Backdrop user permissions have been automatically set - giving anonymous and authenticated users access to p...*Created by: jenlampton*
After running the Civi Installer, I am redirected to the 'civicrm/setup' where the first message says "Backdrop user permissions have been automatically set - giving anonymous and authenticated users access to public CiviCRM forms and features. We recommend that you review these permissions to ensure that they are appropriate for your requirements".
However, when I navigate to the permissions matrix, the "Administrative role" is not granted all CiviCRM permissions. When a new module is installed that provides permissions, this role is granted all permissions available, so that an administrator does not need to go through and check all the boxes. (This role is usually for developers, or people who setting up the site for others to use).
<img width="2504" alt="Screen Shot 2021-05-25 at 10 32 50 AM" src="https://user-images.githubusercontent.com/397895/119542675-a9418000-bd44-11eb-874b-a764281d824e.png">
Civi creates a LOT of new permissions, so it's more painful to correct this issue with Civi permissions than for pretty much any other module.https://lab.civicrm.org/dev/backdrop/-/issues/65install error CiviCRM 5.36.1 on BACKDROP 1.83 via MAMP 6.3 PHP 7.4.122022-10-21T07:36:28Zbgminstall error CiviCRM 5.36.1 on BACKDROP 1.83 via MAMP 6.3 PHP 7.4.12*Created by: punkyard*
Hi, after first and fresh install of backdrop, i copied CiviCRM folder in modules
no error during set up
but: no page will be displayed (SAFARI and EPIC (chrome-like) macos 10.14.6) except the admin page
"
Page no...*Created by: punkyard*
Hi, after first and fresh install of backdrop, i copied CiviCRM folder in modules
no error during set up
but: no page will be displayed (SAFARI and EPIC (chrome-like) macos 10.14.6) except the admin page
"
Page non trouvée
Ajouter une redirection d'URL de cette page vers un autre emplacement
Vous êtes ici : Accueil
La page demandée "/backdrop183/backdrop183/civicrm/a/" n'a pas pu être trouvée.
"
I found in line 234 that the root folder is doubled :
if (!defined('CIVICRM_UF_BASEURL')) {
define( 'CIVICRM_UF_BASEURL' , 'https://domain.net/bkd/bkd'); <<< here bkd/bkd, instead of just one bkd, (domain.net/bkd/)
I'm posting this issue on the advice of @laryn, from Mattermost forumhttps://lab.civicrm.org/dev/backdrop/-/issues/63Source files location should not include "sites/all" for Backdrop2022-10-21T07:36:41ZbgmSource files location should not include "sites/all" for Backdrop*Created by: jenlampton*
I am trying to get Civi installed on Backdrop and just ran into the problem of the `cv` command looking for the civi module in `sites/all/modules` but in backdrop the contrib modules are located in `modules` unl...*Created by: jenlampton*
I am trying to get Civi installed on Backdrop and just ran into the problem of the `cv` command looking for the civi module in `sites/all/modules` but in backdrop the contrib modules are located in `modules` unless it is a multi-site installation. Is there a way for the backdrop version to add an additional location to the places the installer checks for civi?
(and should this request belong in the cv queue, or is this the correct loaction?)https://lab.civicrm.org/dev/backdrop/-/issues/54drush ci load_generated_data always true if flag present2022-10-21T07:38:27Zbgmdrush ci load_generated_data always true if flag present*Created by: tabroughton*
When reading the description for the civicrm-install drush command the flag load_generated_data is stated to default to FALSE - this suggests that setting the flag to TRUE will generate the data (and it does).
...*Created by: tabroughton*
When reading the description for the civicrm-install drush command the flag load_generated_data is stated to default to FALSE - this suggests that setting the flag to TRUE will generate the data (and it does).
However, setting any value against load_generated_data will also load the data, in fact just having the flag present when running the command will generate the data. This isn't terrible but it doesn't match the other flag settings which all accept a value. Also the description suggests setting the value to FALSE would not load the data but it does.
I suggest being able to set true or false explicitly (where false is default if not present) would be the better solution here.https://lab.civicrm.org/dev/backdrop/-/issues/49installing via composer2022-10-21T07:38:47Zbgminstalling via composer*Created by: tabroughton*
I'm trying to automate an installation of civicrm into backdrop and I'm using composer for all my other php libraries and frameworks. I see civicrm-core is available in [packagist](https://packagist.org/packag...*Created by: tabroughton*
I'm trying to automate an installation of civicrm into backdrop and I'm using composer for all my other php libraries and frameworks. I see civicrm-core is available in [packagist](https://packagist.org/packages/civicrm/civicrm-core) but no backdrop version.
What's the best way to do this please?https://lab.civicrm.org/dev/backdrop/-/issues/46CMS database integration code incorrect?2022-10-21T07:39:02ZbgmCMS database integration code incorrect?*Created by: laryn*
The code generated in the CMS database integration section is as follows:
> $database_prefix = array(
'default' => '',
I was having some trouble getting this working on a new site and after some time ended up com...*Created by: laryn*
The code generated in the CMS database integration section is as follows:
> $database_prefix = array(
'default' => '',
I was having some trouble getting this working on a new site and after some time ended up comparing to an older site that I set this up on previously, which has this format:
> $databases['default']['default']['prefix']= array(
'default' => '',
Once I changed that format, the Views integration started working for me.
I'm not sure if that changed recently or if I just figured out the needed changes earlier and forgot to file a ticket... but should we update that code to the other format, or is the existing code working for others?https://lab.civicrm.org/dev/backdrop/-/issues/45civicrm.config.php cannot find settings when multisite is enabled2022-10-21T07:39:16Zbgmcivicrm.config.php cannot find settings when multisite is enabled*Created by: jonhalle*
I was having a problem that extern.php could not locate civicrm.config.php
Looking at civicrm.config.php.backdrop it contains a mechanism to find civicrm.settings.php in a multisite setup.
```
// Alias could b...*Created by: jonhalle*
I was having a problem that extern.php could not locate civicrm.config.php
Looking at civicrm.config.php.backdrop it contains a mechanism to find civicrm.settings.php in a multisite setup.
```
// Alias could be defined in sites/sites.php
if (file_exists($confdir . "/sites.php")) {
include $confdir . "/sites.php";
}
```
but it has a minor error - as the comment says, the sites.php is located in the sites subdirectory so looking for it in the $confdir does not work.
A really ugly workaround is to create a couple of symlinks from the backdrop root directory to the sites subdirectory
```
ln -s sites/sites.php sites.php
ln -s sites/my-site-name my-site-name
```
Alternatively the code ought to say:
```
// Alias could be defined in sites/sites.php
if (file_exists($confdir . "sites/sites.php")) {
include $confdir . "sites/sites.php";
}
```
This also requires a change later in the file to again explicitly add the 'sites' dir with a
```
if (isset($sites[$dir]) && file_exists($confdir.'sites/'."{$sites[$dir]}/civicrm.settings.php")) {
$conf = $confdir.'sites/'."{$sites[$dir]}";
return $conf;
}
```
Looks like the D7 code also needs a change here as I think Drupal 7 and Backdrop define sites in the same place.
The code in question goes back to 2015:
https://github.com/civicrm/civicrm-drupal/pull/327/files#diff-2052e8c39d1751b7d68bc909f7962cb7
Presumably it worked then on Drupal - possibly only on sites with symlinks in place as described above. Very possibly not many people use Backdrop or Drupal in multisite mode with CiviCRM, which might be why this has not been an issue for others.https://lab.civicrm.org/dev/backdrop/-/issues/41Clean URLs not working for civicrm after install in lando - works for backdro...2022-10-25T11:44:56ZbgmClean URLs not working for civicrm after install in lando - works for backdrop routes*Created by: ttrezren*
[I opened an issue on lando](https://github.com/lando/lando/issues/1546), though it may not be a lando bug. Visiting /civicrm after a successful backdrop and civicrm install, I get 404 not found. Same on any civic...*Created by: ttrezren*
[I opened an issue on lando](https://github.com/lando/lando/issues/1546), though it may not be a lando bug. Visiting /civicrm after a successful backdrop and civicrm install, I get 404 not found. Same on any civicrm pages. Backdrop pages work fine. Civicrm works if I turn off clean URLs.https://lab.civicrm.org/dev/backdrop/-/issues/37Warnings when using Webform CiviCRM with "Checkboxes (live)" widget2022-10-24T21:33:01ZbgmWarnings when using Webform CiviCRM with "Checkboxes (live)" widget*Created by: laryn*
Follow-up issue from https://github.com/civicrm/civicrm-backdrop/issues/55
When testing `webform_registration`, I see these in the log (the pair of warnings is in there twice, actually):
`Warning: array_keys() expe...*Created by: laryn*
Follow-up issue from https://github.com/civicrm/civicrm-backdrop/issues/55
When testing `webform_registration`, I see these in the log (the pair of warnings is in there twice, actually):
`Warning: array_keys() expects parameter 1 to be array, string given in CRM_Core_BAO_CustomGroup::postProcess() (line 1539 of /path/modules/civicrm/CRM/Core/BAO/CustomGroup.php).`
`Warning: implode(): Invalid arguments passed in CRM_Core_BAO_CustomGroup::postProcess() (line 1541 of /path/modules/civicrm/CRM/Core/BAO/CustomGroup.php).`https://lab.civicrm.org/dev/backdrop/-/issues/32Ensure drush works with Backdrop version of drush2022-10-25T11:45:12ZherbdoolEnsure drush works with Backdrop version of drushhttps://lab.civicrm.org/dev/core/-/issues/3900Proposal: Check mailings for fixed personalization (without tokens) before su...2022-10-25T11:46:58ZlarsssandergreenProposal: Check mailings for fixed personalization (without tokens) before submittingSometimes, people copy a link that was personalized to them with cid and cs and insert it into a mailing (i.e. with their contact ID and checksum instead of the appropriate tokens), then they send out a personalized link for their contac...Sometimes, people copy a link that was personalized to them with cid and cs and insert it into a mailing (i.e. with their contact ID and checksum instead of the appropriate tokens), then they send out a personalized link for their contact to a large group of people.
In order to prevent this, we could check for URLs that include something in the form of a checksum plus cid=integer or cid1=integer (this will support Webform CiviCRM too). Optionally, we could even validate the checksum, but that seems overkill. I think this would make the most sense at submission time, to keep things simple with Mosaico and Traditional mailings.
I'm not sure what the best way to handle the UI for this is. An error that prevents sending seems too strong, but just a warning while still submitting seems too weak. Is there a better UI solution for this?https://lab.civicrm.org/dev/core/-/issues/3899Creating a cms user account from a civi org contact converts the org contact ...2022-10-25T11:47:42ZDaveDCreating a cms user account from a civi org contact converts the org contact into an individualThis might be drupal 9 only - it seems ok in drupal 7 but haven't tried any others.
While there have been arguments that [corporations are people](https://www.npr.org/2014/07/28/335288388/when-did-companies-become-people-excavating-the-...This might be drupal 9 only - it seems ok in drupal 7 but haven't tried any others.
While there have been arguments that [corporations are people](https://www.npr.org/2014/07/28/335288388/when-did-companies-become-people-excavating-the-legal-evolution), with some comedy side-benefits, either:
* a civi org contact should stay an org contact when a cms user is created for it (using the actions dropdown on the contact summary - create user record),
* the action shouldn't be allowed
Since it seems to have worked in drupal 7, probably the first one.https://lab.civicrm.org/dev/core/-/issues/3898CiviCRM log triggers don't fire on CASCADE DELETE2022-10-25T11:48:10ZbrienneCiviCRM log triggers don't fire on CASCADE DELETEOverview
----------------------------------------
When there is a CASCADE DELETE on an entity record, it does not trigger the CiviCRM log for the records (such as from a custom field attached to an entity) that are deleted as a result of...Overview
----------------------------------------
When there is a CASCADE DELETE on an entity record, it does not trigger the CiviCRM log for the records (such as from a custom field attached to an entity) that are deleted as a result of the cascade. This behavior makes it difficult to restore custom data from the log tables when the entity it was attached to is deleted and then needs to be restored.
Reproduction steps
----------------------------------------
1. Create a custom field to be *Used For* Grants (**Administer > Custom data and Screens > Custom Fields > Add Set of Custom Fields**)
1. Create a new Grant record and be sure to fill out the custom field(s) (**CiviGrant > New Grant**)
1. Delete the grant record (**CiviGrant Dashboard > View > Delete**)
1. View the log table of the custom field and you will note that there is no delete log_action on the custom field in question
* If using the command line or a SQL editor like DBeaver, you can use the following command to note the lack of the delete action from the custom field civicrm_log table. (*Be sure to change tablename to the actual log table's name*).
```sql
SELECT id, log_date, log_action FROM tablename;
Current behaviour
----------------------------------------
If a record is deleted as a result of a CASCADE DELETE, then the action is not logged in the applicable civicrm_log table.
Expected behaviour
----------------------------------------
The log triggers should fire on records that are deleted, even if as a result of a CASCADE DELETE.
Comments
----------------------------------------
This issue has been previously noted on this [post](https://stackoverflow.com/questions/26328570/on-delete-cascade-not-firing-trigger) on Stack Overflow.