CiviCRM Core issueshttps://lab.civicrm.org/dev/core/-/issues2023-08-11T16:23:42Zhttps://lab.civicrm.org/dev/core/-/issues/4053Standalone: users and roles2023-08-11T16:23:42ZbgmStandalone: users and rolesGeneral issue to discuss user management, roles and permissions.
There was a discussion in Manchester about this. At first we explored the idea of using CiviCRM groups to manage permissions, but there was a lot of discomfort because of ...General issue to discuss user management, roles and permissions.
There was a discussion in Manchester about this. At first we explored the idea of using CiviCRM groups to manage permissions, but there was a lot of discomfort because of the (lack of) security around groups and how it could end up adding a lot of extra complexity. Of course, maybe an implement or another might prove one way or another.
So far one [WIP branch](https://github.com/civicrm/civicrm-core/compare/master...demeritcowboy:civicrm-core:user-storage?expand=1) by @DaveD proposes creating `civicrm_user` with an ID, username, password and maybe email. While testing, I managed to get it working by also adding a record in the `civicrm_uf_match` table (for authx http logins), to link that user to a contact.
Presumably we would also have `civicrm_user_role` (ex: admin, staff, member) and `civicrm_user_permission` (ex: "admin" has the "Administer CiviCRM" permission).
And then we would have the same permission grid similar to what CiviCRM has for WordPress role management (in that case, it adds WordPress capabilities, but in this case, it would add records in `civicrm_user_permission`).
cc @DaveD @artfulrobot @JoeMurray
Related meta: #2998https://lab.civicrm.org/dev/core/-/issues/3901Dedupe rule with custom fields fails to work as Supervised2023-02-27T15:03:26ZpetednzDedupe rule with custom fields fails to work as SupervisedOverview
----------------------------------------
If a Dedupe matching rule is created which contains a custom field, and it is set to be used for Supervised, it fails to function when Add Individual is used, but does identify the duplic...Overview
----------------------------------------
If a Dedupe matching rule is created which contains a custom field, and it is set to be used for Supervised, it fails to function when Add Individual is used, but does identify the duplicate when 'use rule' is run
https://civicrm.stackexchange.com/questions/42264/supervised-dedupe-rule-finds-duplicate-when-manually-run-but-not-automatically?noredirect=1#comment50398_42264
Reproduction steps
----------------------------------------
1. On dmaster add a Rule with Last + Marital Status - set rule to be Supervised.
2. Edit Contact 166 to be 'Single' in Marital Status.
3. Add a new contact with Last = Lee and Marital Status = Single. No duplicate warning is provided
4. Run the Supervised Rule and note that the Duplicate records for Lee are listed
Current behaviour
----------------------------------------
Duplicate warning when creating contact does not show
Expected behaviour
----------------------------------------
Duplicate warning when creating contact does not show
Environment information
----------------------------------------
https://dmaster.demo.civicrm.org/
Comments
----------------------------------------
I saw a few other tickets in here referencing custom fields but they seem to be more nuanced eg
https://lab.civicrm.org/dev/core/-/issues/2300
https://lab.civicrm.org/dev/core/-/issues/2966colemanwcolemanwhttps://lab.civicrm.org/dev/core/-/issues/3806Contribution Pages: Spread the Word show on Live Page from start if Enabled.2024-03-28T05:03:24ZBarijohnContribution Pages: Spread the Word show on Live Page from start if Enabled.Overview
----------------------------------------
Currently the Spread the Word Social Media footer on Contribution Pages ONLY appears when you have completed the transaction. This means that it isn't easy to share the page from the dona...Overview
----------------------------------------
Currently the Spread the Word Social Media footer on Contribution Pages ONLY appears when you have completed the transaction. This means that it isn't easy to share the page from the donation page, as you might have missed the opportunity when you complete it.
On Events this is showing as soon as you land on the Event Information Page and I suggest this would be a good improvement on Contribution Pages as well.
Example use-case
----------------------------------------
1. Click on Contribution Link - See Spread the Word. Can share directly from this page to Social Media.
May increase sharing of the page and increase donations. Also it will be shown to users when creating page and they can test it easily.
Current behaviour
----------------------------------------
Currently this ONLY appears when you have completed the full transaction and appears at the confirmation stage. Easy to skip past it as well.
![Contribution_Completed](/uploads/f1a68833823dec4ccd78bb4d12ab4cb8/Contribution_Completed.png)
Proposed behaviour
----------------------------------------
Show the Spread the Word on the main contribution page. As Per the Events Page.
![Screenshot_2022-08-16_at_12.31.16](/uploads/acaa5bedff273314189446561ca8c8be/Screenshot_2022-08-16_at_12.31.16.png)
Comments
----------------------------------------
Thoughts?https://lab.civicrm.org/dev/core/-/issues/3664Import - proposal - remove dataColumn guessing2022-08-10T19:47:08ZeileenImport - proposal - remove dataColumn guessingWhen you do a csv import in CiviCRM it attempts to guess the columns you are trying to import to
- if you provide column headings then it uses these. This works fairly well if your csv is based on an export from CiviCRM so I feel it is ...When you do a csv import in CiviCRM it attempts to guess the columns you are trying to import to
- if you provide column headings then it uses these. This works fairly well if your csv is based on an export from CiviCRM so I feel it is helpful
- if you don't it attempts to from the data provided. In most cases it can't. In a few narrow English specific cases (eg. 'mr' is a prefix) it does. I've found it often matches 'any string' to 'City' - which is probably the first any-string match it hits.
Three of us have separately come to the conclusion the data match attempt does more harm than good - opinions are more mixed on the heading match.
PROPOSAL - entirely remove the data matching efforts5.53.0https://lab.civicrm.org/dev/core/-/issues/3616Should tracking pixel be placed at start of email for when Gmail clips messages?2024-02-18T05:03:26ZlarsssandergreenShould tracking pixel be placed at start of email for when Gmail clips messages?With Mosaico templates, it isn't that difficult to reach Gmail's limit of 96-102kB with an email newsletter, after which your email message is clipped and not displayed in full. This is unfortunate in itself, but it also breaks open trac...With Mosaico templates, it isn't that difficult to reach Gmail's limit of 96-102kB with an email newsletter, after which your email message is clipped and not displayed in full. This is unfortunate in itself, but it also breaks open tracking as the tracking pixel is only embedded at the very end of the message and thus isn't fetched unless the reader clicks "View entire message".
Would it be worthwhile to consider putting the tracking pixel at the start of the message to avoid this issue? Obviously, less than ideal for those who don't display images, but I'm not sure how these two might balance out or if there is a clever way to have the best of both worlds.
I'd be happy to provide a patch, but not sure what the best way forward is here.
(Was a former Flexmailer issue, reposted here as I think this is still important.)https://lab.civicrm.org/dev/core/-/issues/3579Add pause/resume functionality to civicrm bulk mailing.2022-06-11T14:54:43ZjitendraAdd pause/resume functionality to civicrm bulk mailing.Scenario
Site admin is sending out a big blast but want to send out a press release without waiting for first job to end.Scenario
Site admin is sending out a big blast but want to send out a press release without waiting for first job to end.5.4.0https://lab.civicrm.org/dev/core/-/issues/3563Include optional unsubscribe group field on regular mailings2024-02-13T05:03:23ZlarsssandergreenInclude optional unsubscribe group field on regular mailingsWhen you create a mailing from search results, you are required to add an unsubscribe group. When you create a regular mailing and add groups to the recipients, you can't specify the unsubscribe group. Sometimes, it would be helpful to b...When you create a mailing from search results, you are required to add an unsubscribe group. When you create a regular mailing and add groups to the recipients, you can't specify the unsubscribe group. Sometimes, it would be helpful to be able to specify an unsubscribe group that is different than the group the contact is a member of. For instance, if you send a mailing to a few groups based on your main mailing list, perhaps a set of smart group that are subsets of the main list, you may want contacts to unsubscribe from your main list instead of the smart group.
Proposal: Add an optional unsubscribe group to all mailings. If it is blank, unsubscribes work as they do now. If it is populated, all recipients are unsubscribed from the unsubscribe group (exactly as this works for a mailing based on a search now).
EDIT: On @JoeMurray's suggestion, contacts would be unsubscribed from both the original group that are recipients of the mailing and the specified unsubscribe group.
I can give this a go if there is support for the concept.https://lab.civicrm.org/dev/core/-/issues/3521Maintain "official" containerized version(s) of CiviCRM2024-02-06T05:03:28ZmfbMaintain "official" containerized version(s) of CiviCRMCiviCRM could maintain container images for development and/or production use.
This could be useful for CI purposes (e.g. if CiviCRM is eventually doing CI via GitLab), and provide a baseline for shops, developers and implementers who n...CiviCRM could maintain container images for development and/or production use.
This could be useful for CI purposes (e.g. if CiviCRM is eventually doing CI via GitLab), and provide a baseline for shops, developers and implementers who need to deploy/develop/test CiviCRM.https://lab.civicrm.org/dev/core/-/issues/3457Make SearchKit available to non-admin users2022-06-04T04:07:12ZcolemanwMake SearchKit available to non-admin usersThis is a sponsored issue to make SearchKit available to non-admins by adding a new permission.This is a sponsored issue to make SearchKit available to non-admins by adding a new permission.colemanwcolemanwhttps://lab.civicrm.org/dev/core/-/issues/3444Contribution balance token2023-09-24T22:55:47Zmagnolia61Contribution balance tokenOverview
----------------------------------------
Would it be technically easy and functional desired to have contribution balance token?
Example use-case
----------------------------------------
We would like to advocate for an contrib...Overview
----------------------------------------
Would it be technically easy and functional desired to have contribution balance token?
Example use-case
----------------------------------------
We would like to advocate for an contribution balance token
Current behaviour
----------------------------------------
1. We want to send our customers an email with the amount due, or the amount that is pending refund.
2. There is a balance field in the event participant context. But this is absent in the contribution context.
Proposed behaviour
----------------------------------------
A custom token field like {contribution.balance} is available in the contribution context
Comments
----------------------------------------
Eileen opened an issue to enable a balance field for api4 (and an total paid field): https://lab.civicrm.org/dev/core/-/issues/2890https://lab.civicrm.org/dev/core/-/issues/3412Event registration by an administrator sends confirmation email regardless of...2022-05-06T09:58:16ZUpperholmeEvent registration by an administrator sends confirmation email regardless of confirmation settingWhen recording an event registration through the back-end (i.e. as an administrator) it is possible to untick the checkbox against the setting labelled as "Send Confirmation" or for a paid event "Send Confirmation and Receipt".
The expec...When recording an event registration through the back-end (i.e. as an administrator) it is possible to untick the checkbox against the setting labelled as "Send Confirmation" or for a paid event "Send Confirmation and Receipt".
The expected behaviour is that when this checkbox is unchecked then no email will be sent.
In practice this setting appears to be ignored and the email notification is sent regardless.
Using CivicRM 5.13.5 with Drupal 7.https://lab.civicrm.org/dev/core/-/issues/3407End Date on CiviCRM Events mandatory2023-07-08T15:04:35ZseamusleeEnd Date on CiviCRM Events mandatoryIn the Australian Greens we have found that the manage events screen has become a bit unusable in a way becuase the end_date field on events has not been being filled out, as such for the manage events search query they never end
There ...In the Australian Greens we have found that the manage events screen has become a bit unusable in a way becuase the end_date field on events has not been being filled out, as such for the manage events search query they never end
There are a couple of possible solutions to this
1. Make the end date mandatory, this would be the simplest approach and i think one that might be most sensible
2. Use Javascript or PHP to set a default end date of 2Hours after the start of the event or some value set by setting.
I lean towards 1 but would appreciate the communities thoughts5.63.0https://lab.civicrm.org/dev/core/-/issues/3344Recurring membership term is incorrect when using price sets2024-02-06T05:47:22ZJonGoldRecurring membership term is incorrect when using price setsWhen using membership price sets, the recurring contribution created doesn't match the term of the membership selected, it matches the term of the first membership in the price set. The issue is mentioned in passing on the [gocardless](...When using membership price sets, the recurring contribution created doesn't match the term of the membership selected, it matches the term of the first membership in the price set. The issue is mentioned in passing on the [gocardless](https://lab.civicrm.org/extensions/gocardless/-/issues/112) issue queue but doesn't have its own issue.
### Steps to replicate
* Create two memberships, one with a term of 1 year, one with a term of 1 month. Make auto-renew required.
* Create a membership price set with radio buttons, allowing the user to choose between the two memberships.
* Create a contribution page for the price set.
* Register for the second membership (term of 1 month).
* View the recurring contribution record.
### Expected result
Recurring contribution record is 1 month.
### Actual result
Recurring contribution record is 1 year.
I am away from home this week and don't have a working XDebug config, but I'll take a shot at this next week.5.69.0JonGoldJonGoldhttps://lab.civicrm.org/dev/core/-/issues/3284APIv4 Query Improvements2022-04-22T15:53:45Zjoshjosh@civicrm.orgAPIv4 Query ImprovementsThis project will expand the query language of APIv4 to increase functionality. Implementing this will enhance the capabilities of APIv4-based Smart Groups; without this their utility will be limited to simple queries. This is also a pre...This project will expand the query language of APIv4 to increase functionality. Implementing this will enhance the capabilities of APIv4-based Smart Groups; without this their utility will be limited to simple queries. This is also a prerequisite to the Search Builder UI project.
Tasks:
- Implement Having, Group By parameters.
- Enable use of SQL Functions like SUM().
- Implement explicit joins.
- Implement a way to add subquery expressions to an API call.
Related pull-requests:
* [#16947 - Support GROUP BY and aggregate functions](https://github.com/civicrm/civicrm-core/pull/16947) (merged)
* [#17047 - Api4 Explorer: Support SQL functions and HAVING clause ](https://github.com/civicrm/civicrm-core/pull/17047) (merged)colemanwcolemanw2020-06-30https://lab.civicrm.org/dev/core/-/issues/3242APIv4-Based Smart(er) Groups2022-04-22T15:52:29Zjoshjosh@civicrm.orgAPIv4-Based Smart(er) GroupsThis project will allow smart groups to be built from APIv4 criteria. The MVP would include a button in the API Explorer to save an api4 query as a smart group. This will also connect with the new Search Builder UI when that project is c...This project will allow smart groups to be built from APIv4 criteria. The MVP would include a button in the API Explorer to save an api4 query as a smart group. This will also connect with the new Search Builder UI when that project is complete.
Tasks:
- Allow swappable backend to smart groups
- Extend smart group schema to store api4 query parameters
- Add support for saving smart groups to API explorer UI.colemanwcolemanw2020-06-30https://lab.civicrm.org/dev/core/-/issues/3219Error when trying to generate thank-you letters for contributions2023-12-26T05:03:26ZswebervnaError when trying to generate thank-you letters for contributionsI'm getting an error "Invalid activity id" when I go to generate thank-you letters based on the search results from my Advanced Search.
I got to Advanced Search, displaying results as Contributions, set all my filters, and then search f...I'm getting an error "Invalid activity id" when I go to generate thank-you letters based on the search results from my Advanced Search.
I got to Advanced Search, displaying results as Contributions, set all my filters, and then search for results. I then select all the results and select the option to make thank-you letters:
![image](/uploads/7871b2abf7e72c092eb1f8eb53e8c681/image.png)
At the next screen, I then choose my message template and click Make Thank-you letters at the bottom, to which I get this error after:
![image](/uploads/be66a1af0e52028de2ccb4b12f63eb93/image.png)
This issue seems to happen regardless of the filters I set for the contribution results, or what's in my message template. It's failing altogether, no matter what, to generate the thank-you letters.
Here's the fatal error description from Civi that my hosting provider gave me:
> $Fatal Error Details = array(3) { ["message"]=> string(19) "Invalid Activity Id" ["code"]=> NULL ["exception"]=> object(CiviCRM_API3_Exception)#2113 (8) { ["extraParams":"CiviCRM_API3_Exception":private]=> array(5) { ["error_code"]=> int(0) ["entity"]=> string(8) "Activity" ["action"]=> string(6) "create" ["is_error"]=> int(1) ["error_message"]=> string(19) "Invalid Activity Id" } ["message":protected]=> string(19) "Invalid Activity Id" ["string":"Exception":private]=> string(0) "" ["code":protected]=> int(0) ["file":protected]=> string(51) "/var/www/html/sites/all/modules/civicrm/api/api.php" ["line":protected]=> int(133) ["trace":"Exception":private]=> array(15) { [0]=> array(4) { ["file"]=> string(81)
**Things I've tried:**
1. Performing the process on only Individuals, and not all 3 - issue persists.
2. Performing the process on a smaller number of contributions (i.e. 60), issue persists regardless of size.
3. Performing the process without a template - issue persists.
**Similiar Issues:**
1. https://civicrm.stackexchange.com/questions/38540/invalid-currency-error-when-using-custom-template?noredirect=1#comment44099_38540
2. https://lab.civicrm.org/dev/core/-/issues/2344
3. https://github.com/civicrm/civicrm-core/pull/19481https://lab.civicrm.org/dev/core/-/issues/3210Report Listing improved UX2023-12-23T05:03:22ZJonGoldReport Listing improved UXWhen you go to **Reports menu » X Reports**, where `X` is anything, you get the report listing page (`CRM_Report_Page_InstanceList`). This page hard-codes the order the reports appear in.
* First by component
* Second by the weight o...When you go to **Reports menu » X Reports**, where `X` is anything, you get the report listing page (`CRM_Report_Page_InstanceList`). This page hard-codes the order the reports appear in.
* First by component
* Second by the weight of the report template ID in the `report_template` option value list
* Third alphabetized by title.
The second sort criterium is the problematic one. I propose we sort by component, then alphabetically.
I assume the original thinking was, "Let's keep all the Contribution Summary reports together, all the Contribution Detail reports", etc. However, I think this isn't an ideal UX:
* Users don't know (or care about) the order of report templates in the option value list.
* Reports can be sorted any number of ways: By user, department, workflow - but those are unlikely to map to report templates.
* This is all especially true in an era where there's many report extensions that provide overlapping reports with core (Extended Reports, Reports Plus, Pivot Reports). I think it makes more sense not to sort by report type.JonGoldJonGoldhttps://lab.civicrm.org/dev/core/-/issues/3058Backend membership renewal does not attach the invoice PDF2022-06-24T03:36:05ZbgmBackend membership renewal does not attach the invoice PDFTo reproduce:
* Enable Taxes and Invoicing (Administer > CiviContribute > CiviContribute Component Settings)
* Enable "Automatically email invoice when user purchases online"
Then go to a contact record
* Make sure the contact has an ...To reproduce:
* Enable Taxes and Invoicing (Administer > CiviContribute > CiviContribute Component Settings)
* Enable "Automatically email invoice when user purchases online"
Then go to a contact record
* Make sure the contact has an email address on their record (you probably want to update to your own email address)
* Add a Membership (without CC payment), record a payment (ex: cheque or whatever).
They should receive an email confirmation, with the invoice.pdf attached.
Now go back to their contact record, and renew the membership (again, no need for a CC payment). They will be emailed with a receipt, but the invoice.pdf will not be attached.
As a tangential issue: for taxes we have custom smarty (from the taxcalculator extension) that requires the `$contributionID` in the template. It works fine for the "offline new membership" but not for renewal, the variable is undefined.
I tried comparing the `submit` functions for `CRM/Membership/Form/Membership.php` vs `MembershipRenewal.php`, but it's not an easy one. They have a lot of similarities, but also major differences in how they process the contribution.https://lab.civicrm.org/dev/core/-/issues/3035Notify updates to unapproved extensions2023-11-13T05:03:21ZwmortadaNotify updates to unapproved extensionsOverview
----------------------------------------
I've noticed that updates aren't flagged for some CiviCRM extensions. In this particular case we weren't being shown updates for the [Transactional Emails Extension](https://civicrm.org/...Overview
----------------------------------------
I've noticed that updates aren't flagged for some CiviCRM extensions. In this particular case we weren't being shown updates for the [Transactional Emails Extension](https://civicrm.org/extensions/transactional-emails). I'm guessing that this is because this particular extension isn't approved for automated distribution.
I think it makes sense that some extensions aren't shown in the UI for installation, but if they have been installed and they are listed on civicrm.org I think the UI should flag when there is an update. I had presumed that the updates would show up so was surprised that they hadn't.
Current behaviour
----------------------------------------
System Status only shows available updates for extensions that are approved for automated distribution.
Updates for other extensions aren't shown so the user may assume that the extension is up to date.
Proposed behaviour
----------------------------------------
System Status shows available updates for **all** extensions that are listed on civicrm.org.
Comments
----------------------------------------
Potentially this could be extended to also show updates for extensions that aren't listed on civicrm.org but are publicly available on GitLab or GitHub.
Related issue #2548
Workarounds
----------------------------------------
For those that can't wait for this to be implemented in core, there is an extension that provides this functionality here: https://lab.civicrm.org/extensions/allavailableupgrades
See also this post on StackExchange about a [settings change that will show all available upgrades](https://civicrm.stackexchange.com/questions/39299/does-the-system-status-check-and-upgrade-version-check-only-list-available-updat/).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.0