Development issueshttps://lab.civicrm.org/groups/dev/-/issues2023-11-10T01:45:09Zhttps://lab.civicrm.org/dev/core/-/issues/3325Using separate donation with free membership result into Pending (incomplete ...2023-11-10T01:45:09ZMonish DebUsing separate donation with free membership result into Pending (incomplete transaction) 0$ contributionSteps to replicate:
1. Create a 0$ fixed membership type
2. Configure a new/existing online contribution page, with separate donation and choose 0$ membership type under `Membership Fee`
3. Do a online contribution with $1 separate dona...Steps to replicate:
1. Create a 0$ fixed membership type
2. Configure a new/existing online contribution page, with separate donation and choose 0$ membership type under `Membership Fee`
3. Do a online contribution with $1 separate donation with 0$ membership
Bug:
Two donation are created, one with Completed 1$ contribution and other `Pending (Incomplete Transaction)` 0$ contribution linked with Pending free membership:
![Screenshot_2021-06-22_at_2.06.49_PM](/uploads/0cbd58fb74d7bc9467613571f70bb74a/Screenshot_2021-06-22_at_2.06.49_PM.png)
Expected result:
Complete 0$ membership's donation associated with `new` free membership
cc @eileen @JoeMurrayMonish DebMonish Debhttps://lab.civicrm.org/dev/core/-/issues/1793Using the schedule activity section at the bottom of an email sent from manag...2023-03-31T15:00:28ZDaveDUsing the schedule activity section at the bottom of an email sent from manage case doesn't file the scheduled activity on the caseNot so much a bug it's just my expectation would be that if I'm sending an email from manage case I'd expect the scheduled followup to also be filed on the case.
1. Go to the manage case screen for a case.
2. Expand the roles section.
3...Not so much a bug it's just my expectation would be that if I'm sending an email from manage case I'd expect the scheduled followup to also be filed on the case.
1. Go to the manage case screen for a case.
2. Expand the roles section.
3. Click the email icon to start an email to one of the people there.
4. Fill it out.
5. At the bottom expand the schedule followup section.
6. Fill it out. Can leave assignee blank it's not relevant.
7. Send the email.
8. Look at the activities on manage case - the scheduled activity is not there. Where is it? It's on the logged in user's contact on their activities tab (and the email recipient's activities tab).
Using the scheduled followup section when editing a case activity does file it on the case. So this is a little inconsistent.https://lab.civicrm.org/dev/core/-/issues/4366Vcards - tokens & other rendering2023-06-20T13:19:14ZeileenVcards - tokens & other renderingIt turns out we render html vcards for event locations in our emails - eg.
<div class="location vcard"><span class="adr"><span class="street-address">8 Baker Street</span><br />
<span class="extended-address">Upstairs</span><br />
<span...It turns out we render html vcards for event locations in our emails - eg.
<div class="location vcard"><span class="adr"><span class="street-address">8 Baker Street</span><br />
<span class="extended-address">Upstairs</span><br />
<span class="locality">London</span>,<br />
</span></div>
I'm not sure if this is
a) good - it's super helpful or
b) bad - it's copy & paste from our front end pages & lands us in the spam folder
I am hoping people will weigh in on the question of whether vcard html in email is desirable or not because making code do something silly more effectively is about 78 on my list of priorities.
If the former then I think we want to do it in a more standardised way than the dragon-code that currently does it.
I found a library https://github.com/jeroendesloovere/vcard
@colemanw also suggested an api calculated field (similar to contribution.paid_amount) although it could be tricky - see https://github.com/civicrm/civicrm-core/pull/26296#issuecomment-1561001040
We would want it to be an option for the token - ie regardless of whether there is a use case for the vcard in emails there is a use case for use to format addresses with line breaks.https://lab.civicrm.org/dev/core/-/issues/4358Verbiage changes on Find Groups screen2023-08-17T17:50:18ZyashodhaVerbiage changes on Find Groups screenPropose to make following changes on Find Groups.
- Change Type to Usage. We now have Type : Access Control /Mailing List
and Group Type as Normal Group / Smart Group. The type is more of a usage (used for Access Control /Mailing List)...Propose to make following changes on Find Groups.
- Change Type to Usage. We now have Type : Access Control /Mailing List
and Group Type as Normal Group / Smart Group. The type is more of a usage (used for Access Control /Mailing List), so make the changes all across the Settings screens in addition to search results/filter.
- Change Normal Group to Regular Group. Well because there's nothing abnormal about the smart groups :)yashodhayashodhahttps://lab.civicrm.org/dev/core/-/issues/4385version=4 is not passed to Mailing.create on APIv4 so MailingJob gets scheduled2023-09-13T01:30:02ZSandor Semseyversion=4 is not passed to Mailing.create on APIv4 so MailingJob gets scheduledOverview
----------------------------------------
I'd like to create a single Mailing entity through APIv4 without scheduling a MailingJob and calculating recipients.
Reproduction steps
----------------------------------------
1. Call M...Overview
----------------------------------------
I'd like to create a single Mailing entity through APIv4 without scheduling a MailingJob and calculating recipients.
Reproduction steps
----------------------------------------
1. Call Mailing.create through API Explorer or `cv`
1. Notice that a MailingJob is created
Current behaviour
----------------------------------------
According to https://github.com/civicrm/civicrm-core/blob/94b9b95547d3f8292740c059f77f83cc45e57b57/CRM/Mailing/BAO/Mailing.php#L1622-L1629 this shouldn't happen by default, but it does: `$params['version']` is empty and `self::doSubmitActions()` is called.
Expected behaviour
----------------------------------------
`$params['version']` is populated so `CRM_Mailing_BAO_Mailing::doSubmitActions()` doesn't fire.
Comments
----------------------------------------
This is similar to https://github.com/civicrm/civicrm-core/blob/94b9b95547d3f8292740c059f77f83cc45e57b57/CRM/Member/BAO/Membership.php#L334-L343. In that case `Civi\Api4\Service\Spec\Provider\MembershipCreationSpecProvider` injects `version` parameter into the API call, but for Mailing such spec provider doesn't exists.
I can do some work with this, I'm just not sure if that spec provider is missing by design or not...
Also I can pass in `version=4` explicitly or use `_skip_evil_bao_auto_schedule_` and `_skip_evil_bao_auto_recipients_` to prevent submit actions to happen.https://lab.civicrm.org/dev/core/-/issues/4539Very slow query when sending mailings via CiviMail2023-09-12T05:08:13ZwmortadaVery slow query when sending mailings via CiviMailOverview
----------------------------------------
We have come across an issue where the database connection was timing out due to slow, long-running queries when the Send Scheduled Mailings job was running. We became aware of this when...Overview
----------------------------------------
We have come across an issue where the database connection was timing out due to slow, long-running queries when the Send Scheduled Mailings job was running. We became aware of this when we set a maximum execution time limit of 3 minutes for MySQL queries. Mailings for one of our clients were not being sent because the database connection was timing out.
As a workaround, we have increased the maximum execution time to 10 minutes and reduced the Mailer Batch Limit and Mailer Job Size to 1,000. However, we'd like to fix the underlying issue that the queries are running so slowly.
When sending a mailing CiviCRM runs a query of the form:
```sql
SELECT r.contact_id, r.email_id, r.phone_id
FROM civicrm_mailing_recipients r
INNER JOIN civicrm_contact c on
(c.id = r.contact_id
AND c.is_deleted = 0
AND c.is_deceased = 0
AND c.do_not_email = 0
AND c.is_opt_out = 0
)
INNER JOIN civicrm_email e ON (r.email_id = e.id AND e.on_hold = 0)
WHERE r.mailing_id = 3271
LIMIT 18000, 1000
```
There are no indices for `is_deceased`, `do_not_email` or `is_opt_out` so this query is very slow. (There is an index for `is_deleted`. There should be an index for `is_deceased` but this appears to be missing from this site.)
We have tested adding these indices in a development environment to see what difference it would make and this increase the speed of the query by a factor of one thousand:
- 20,000 rows with no indices = 80 seconds
- 20,000 rows with indices = 0.085 seconds
Reproduction steps
----------------------------------------
This is likely to only affect sites with a large number of contacts and large number of rows in the `civicrm_mailing_recipients` table (in this case 46,000 contacts and 9 million rows respectively).
1. Set a maximum execution time for MySQL of 3 minutes (say)
2. Create a mailing to a large group of contacts (>20,000)
3. Schedule the mailing to send
4. Send Scheduled Mailings job fails with error: "Finished execution of Send Scheduled Mailings with result: Failure, Error message: DB Error: unknown error"
Current behaviour
----------------------------------------
No indices ~~`is_deceased`~~, `do_not_email` or `is_opt_out` in `civicrm_contact` so queries run very slowly.
Expected behaviour
----------------------------------------
Indices for the above fields so that the query runs quickly.
Environment information
----------------------------------------
* __CiviCRM:__ _5.62_
* __PHP:__ _8.1__
* __CMS:__ _N/A_
* __Database:__ _MySQL 5.7.43_
Comments
----------------------------------------
There are other speed improvements in #4045 but these relate to the speed of the user interface rather than the speed of sending emails.
Perhaps this can also help to [reduce our collective CO2 emissions](https://civicrm.org/blog/systopia/beginning-green-how-can-we-make-civicrm-more-sustainable)?https://lab.civicrm.org/dev/core/-/issues/4608View mailing access is not allowed for users authenticated via checksum2023-09-26T12:15:20ZlarsssandergreenView mailing access is not allowed for users authenticated via checksumIf you send a mailing with a link to view the mailing in your browser that includes contact id and checksum (which is what the default "View in browser" link Mosaico's Versafix template does), you would expect that you'd be able to view ...If you send a mailing with a link to view the mailing in your browser that includes contact id and checksum (which is what the default "View in browser" link Mosaico's Versafix template does), you would expect that you'd be able to view the mailing even if the Publication is set to User and User Admin Only. However, if you open the link in a private browsing window, you'll get access denied.
I think the expected behaviour would be that you can access the mailing when authenticated via checksum. Otherwise, that View in browser link is broken for any mailing that isn't public.
If the mailing isn't public, the [page just checks](https://github.com/civicrm/civicrm-core/blob/0c5f17226c73474e40285a87d8509b272f4f4a67/CRM/Mailing/Page/View.php#L27) for administer CiviCRM, approve mailings or access CiviMail. Maybe we need a new permission like `CiviMail: access non-public mailings` or maybe we can simply allow any logged in user to view mailings (since it says "User and User Admin Only" and a logged in contact is a user).https://lab.civicrm.org/dev/core/-/issues/4535View Membership lists template contributions along with actual contribution u...2023-08-29T10:36:47ZRichView Membership lists template contributions along with actual contribution under "Related Contributions and Recurring Contributions"This is confusing. The status column is blank, too, so it looks at a glance as though this is a real payment:
![image](/uploads/61a1120ef3c1f389c2dda90bb0bd38f5/image.png)
I propose that template contributions are NOT shown on that pag...This is confusing. The status column is blank, too, so it looks at a glance as though this is a real payment:
![image](/uploads/61a1120ef3c1f389c2dda90bb0bd38f5/image.png)
I propose that template contributions are NOT shown on that page. Agree?https://lab.civicrm.org/dev/drupal/-/issues/25View Relationship Type: Event to Participant Contact2020-07-16T17:23:38ZjohnffView Relationship Type: Event to Participant ContactSuccess! I have successfully added a new View Relationship type that allows you to connect a Contact to your Event, and even select it by role id.
But! Only the contact's core fields are in. Now, we can easily create another relationshi...Success! I have successfully added a new View Relationship type that allows you to connect a Contact to your Event, and even select it by role id.
But! Only the contact's core fields are in. Now, we can easily create another relationship to bring in the Contact's custom fields, but I can't see any barrier to bringing them in by default. How are custom fields connected to a table?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/core/-/issues/5042Website examples with accessibility options2024-03-07T13:31:28Zaydunsaidan.saunders@squiffle.ukWebsite examples with accessibility options(Not a typical issue, but not sure where better to put it.)
For those working on theming and accessibility, here are two example sites of interest:
https://visibilityscotland.org.uk/ The stick figure top left gives accessibility optio...(Not a typical issue, but not sure where better to put it.)
For those working on theming and accessibility, here are two example sites of interest:
https://visibilityscotland.org.uk/ The stick figure top left gives accessibility options for:
- Increase and decrease text
- Grayscale
- High contrast
- Negative contrast
- Light background
- Links underline
- Readable font
https://www.macularsociety.org/ Different options available under Accessibility Options (top left)https://lab.civicrm.org/dev/core/-/issues/4397What should the Name and Address reserved general Individual dedupe rule do?2023-06-30T00:14:21ZlarsssandergreenWhat should the Name and Address reserved general Individual dedupe rule do?We have a reserved dedupe rule on new installs for Individuals called Name and Address.
What it actually does is matches contacts who have the same first name, last name and street address. What it claims to do is the following:
![image]...We have a reserved dedupe rule on new installs for Individuals called Name and Address.
What it actually does is matches contacts who have the same first name, last name and street address. What it claims to do is the following:
![image](/uploads/d427acb2b1c3ce07c994b68a2371ac62/image.png)
[This rule](https://github.com/civicrm/civicrm-core/blob/master/sql/civicrm_data/civicrm_dedupe_rule/IndividualGeneral.sqldata.php) also includes suffix_id and middle_name with weights of 1, which cannot influence the matches (threshold 15, all other items have weight 5), so these don't do anything.
There is a [hard-coded query](https://github.com/civicrm/civicrm-core/blob/master/CRM/Dedupe/BAO/QueryBuilder/IndividualGeneral.php) for this rule that should match up with the above (right now we are querying middle_name, suffix and birthdate for no reason, which is kind of ironic since this query claims to be optimized).
None of this has changed in at least ten years.
Personally, I don't think matching on first, last and street address is useful (as street addresses are often written slightly differently so are not that likely to match). Maybe we should just eliminate this reserved dedupe rule, since I can't see that it is used for anything. If not, maybe we should make it more useful by making it just first and last name. Or maybe there is some reason this is useful as is and we should simply make this all consistent so it just matches on first, last and address and nothing more.https://lab.civicrm.org/dev/core/-/issues/4479When a contact with a shared address from another contact updates their addre...2023-08-06T18:48:45ZlarsssandergreenWhen a contact with a shared address from another contact updates their address via profile, address data can be lost or inconsistentIf you set Bob to use Julie's address and then Julie updates her address in a profile, Bob's address is updated as expected. However if Bob updates his address via profile, then Bob's address will be updated, but Bob's address will still...If you set Bob to use Julie's address and then Julie updates her address in a profile, Bob's address is updated as expected. However if Bob updates his address via profile, then Bob's address will be updated, but Bob's address will still be shown as using Julie's address (will still have the master_id, even though it is now different than the master address). This is inconsistent as Bob's address is actually now different from Julie's, so they no longer share an address.
If you then edit Bob's address and save it, Bob's address will be set back to Julie's address, losing the perhaps more current address that Bob had input in the profile (though at least in this case you can see what will happen if you are paying attention). Even worse, if you use Edit from the Contact Summary and save this form, you'll also revert Bob's address back to Julie's without it being evident that this is happening at all.
Two possibilities for the expected behaviour here:
1. Both Bob and Julie should be able to update their shared address. In this case, if Bob submits a profile, we should update the shared address (even though it belongs to Julie).
1. Bob should not be able to update the shared address, only Julie should be able to update the address. When Bob submits a profile with address fields, we compare the submitted values to the DB values and if they are different, we updated Bob's address only and change it so it is no longer a shared address (remove master_id).
I think option 1 is probably best, otherwise we would end up with shared addresses that become unshared frequently because someone will submit a profile anonymously that is deduped to an existing contact but they will write 3rd St instead of Third St or some other small change. I can see that some might want to have a shared address that can only be updated by the "owner" of the address, but I think it would be best to implement option 1 as the default behaviour and then if someone wants option 2, that could be implemented as a global and/or per address setting.https://lab.civicrm.org/dev/core/-/issues/5075When adding fields to a profile if you choose Contact as the entity the dropd...2024-03-12T13:26:32ZDaveDWhen adding fields to a profile if you choose Contact as the entity the dropdown includes Grant fieldsThis sounds familiar but I'm not sure if it's something new or something that came back. I can't find a ticket about it with a quick search.This sounds familiar but I'm not sure if it's something new or something that came back. I can't find a ticket about it with a quick search.https://lab.civicrm.org/dev/core/-/issues/3539When communcating with external network services, detect transient failures a...2024-02-12T13:57:20ZmfbWhen communcating with external network services, detect transient failures and queue for retryFor improved resiliency, CiviCRM should detect transient failures when communicating with external network services and queue for retry. e.g.
* Transactional email: Queue for sending rather than sending during the request process?
* Bul...For improved resiliency, CiviCRM should detect transient failures when communicating with external network services and queue for retry. e.g.
* Transactional email: Queue for sending rather than sending during the request process?
* Bulk mail: Catch transient failures and ensure that they are retried. PRs: https://github.com/civicrm/civicrm-core/pull/11838 https://github.com/civicrm/civicrm-core/pull/11840 (and there are additional failure scenarios possible)
* ...https://lab.civicrm.org/dev/drupal/-/issues/129When creating a D8 private file system e.g. /sites/default/private -> CiviCRM...2020-09-14T03:22:22ZKarinGWhen creating a D8 private file system e.g. /sites/default/private -> CiviCRM overrides location for templates_c specified in civicrm.settings.php fileIs this intentional? And is it necessary? I first saw this on my Pantheon test install and am now seeing it on one of Alan's hosted sites as well. Storing `templates_c` in the private file system [even though the `civicrm.settings.php` f...Is this intentional? And is it necessary? I first saw this on my Pantheon test install and am now seeing it on one of Alan's hosted sites as well. Storing `templates_c` in the private file system [even though the `civicrm.settings.php` file still has the non-public files location] results in a slow page load.
This only happens if you put your private files dir in `/sites/default/ `
On Alan's hosting we can move the private/files to the same level as `web/`
`[$settings['file_private_path'] = $app_root . '/../private/files';`
- so CiviCRM keeps using `/sites/default/files` for `templates_c` - but on Pantheon [and likely other hosting] you may not have access to create a dir at that level.
End result is that it creates the impression that CiviCRM on D8 is very slow.
@DaveD @seamuslee @jackrabbithanna @bgm - any ideas as to why/history/intentional?https://lab.civicrm.org/dev/core/-/issues/3441When generating emails from Search results, activity is recorded as a Print P...2023-03-06T20:39:37ZStoobWhen generating emails from Search results, activity is recorded as a Print PDF DocumentSteps to reproduce:
1. use Search Kit to generate results as _Contributions_
2. choose to send emails receipts
3. emails are sent, but activity is recorded "Print/Merge Document" rather than Type "Email".
#searchkitSteps to reproduce:
1. use Search Kit to generate results as _Contributions_
2. choose to send emails receipts
3. emails are sent, but activity is recorded "Print/Merge Document" rather than Type "Email".
#searchkithttps://lab.civicrm.org/dev/translation/-/issues/44When you have multiple available languages using the language switcher on an ...2020-04-14T14:46:25ZDaveDWhen you have multiple available languages using the language switcher on an angular page gives page not foundI thought I'd seen this reported already but can't find it. Maybe I was thinking of https://lab.civicrm.org/dev/translation/-/issues/23 which is maybe related but seems a bit different. The issue here is the resulting url.
1. On the loc...I thought I'd seen this reported already but can't find it. Maybe I was thinking of https://lab.civicrm.org/dev/translation/-/issues/23 which is maybe related but seems a bit different. The issue here is the resulting url.
1. On the localization page add another language in the "Available languages" field.
1. Visit an angular page like Admin - CiviCase - Case Types.
1. Using the language switcher (on drupal 7 it's in the left sidebar), change the language.
1. It will change the language, but you get a page that just says "Unknown path".https://lab.civicrm.org/dev/core/-/issues/4733Where art thou APIv4: MailingEventSubscribe Create? Missing parity with civic...2023-11-02T15:16:06Zjustinfreeman (Agileware)Where art thou APIv4: MailingEventSubscribe Create? Missing parity with civicrm_api3('MailingEventSubscribe', 'Create')Where art thou APIv4: MailingEventSubscribe Create? Missing parity with civicrm_api3('MailingEventSubscribe', 'Create')
Agileware Ref: CVAP-50Where art thou APIv4: MailingEventSubscribe Create? Missing parity with civicrm_api3('MailingEventSubscribe', 'Create')
Agileware Ref: CVAP-50https://lab.civicrm.org/dev/core/-/issues/2072Why does composer.json contain `"include-path": ["vendor/tecnickcom"]`2023-05-10T12:51:31ZDaveDWhy does composer.json contain `"include-path": ["vendor/tecnickcom"]`As per https://lab.civicrm.org/extensions/cdntaxreceipts/-/issues/110#note_47514 it seems to cause issues with extensions that try to use TCPDF in drupal 8 since composer creates a vendor/composer/include_paths.php file that then makes t...As per https://lab.civicrm.org/extensions/cdntaxreceipts/-/issues/110#note_47514 it seems to cause issues with extensions that try to use TCPDF in drupal 8 since composer creates a vendor/composer/include_paths.php file that then makes the path relative to /vendor/civicrm/civicrm-core, instead of relative to just /vendor.
Maybe the line was from an early iteration of autoloading and using composer?