Development issueshttps://lab.civicrm.org/groups/dev/-/issues2023-06-15T15:17:27Zhttps://lab.civicrm.org/dev/wordpress/-/issues/136Unable to use do_shortcode from Template File2023-06-15T15:17:27ZMichael LabriolaUnable to use do_shortcode from Template FileI want to include an email signup form in the footer of my website using CiviCRM profiles. We are currently using a MailChimp signup form in the footer, so I think this is a reasonable thing to do.
I tried adding [civicrm component="pr...I want to include an email signup form in the footer of my website using CiviCRM profiles. We are currently using a MailChimp signup form in the footer, so I think this is a reasonable thing to do.
I tried adding [civicrm component="profile" gid="14" mode="create" hijack="0"] to my theme's footer template, but the shortcode did not get resolved.
I tried adding <?php echo do_shortcode('[civicrm component="profile" gid="14" mode="create" hijack="0"]'); ?> to my theme's footer template, but that did not work either.
Upon looking at the code, do_shortcode calls render_single($atts) in /includes/civicrm_shortcodes.php which calls invoke() in /civicrm.php which gives up if $this->is_page_request() && !in_the_loop() && !is_admin().
In order for do_shortcode to work at the point in time when it's being called the logic in invoke has to be changed to allow the invoke to complete.
I created a fork (since I don't think I have the ability to create a pull request) which modifies those two files: https://lab.civicrm.org/mhlabriola/wordpress
I created a parameter for invoke which can be specified in render_single that will allow do_shortcode to return the requested profile form.https://lab.civicrm.org/dev/translation/-/issues/80Recurring contributions: ThankYou page does not translate the membership cont...2023-05-18T23:59:42ZshaneonabikeRecurring contributions: ThankYou page does not translate the membership contribution unitRelated to #32
To reproduce:
* Configure CiviCRM to non-English (ex: French)
* Setup a recurring membership contribution page
* Choose a membership and choose recurring option
Result:
> Cette adhésion sera renouvelée automatiquement ...Related to #32
To reproduce:
* Configure CiviCRM to non-English (ex: French)
* Setup a recurring membership contribution page
* Choose a membership and choose recurring option
Result:
> Cette adhésion sera renouvelée automatiquement tous les year.
(i.e. the frequency unit is not translated)
From the string:
> This membership will be renewed automatically every %1.
Like @mathieu I will ignore for now this string:
> This recurring contribution will be automatically processed every %1 %2s.
(which assumes that all plurals end with an 's', in every language of the world.)https://lab.civicrm.org/dev/core/-/issues/4005Minor formatting gripes with Contributions UserDashboard.tpl2023-10-17T14:38:15ZAdam WoodMinor formatting gripes with Contributions UserDashboard.tplRaising this as a minor residual issue / action vaguely related to historic issues https://lab.civicrm.org/dev/core/-/issues/2034 and https://lab.civicrm.org/dev/core/-/issues/2129, namely some incidental formatting issues spotted in the...Raising this as a minor residual issue / action vaguely related to historic issues https://lab.civicrm.org/dev/core/-/issues/2034 and https://lab.civicrm.org/dev/core/-/issues/2129, namely some incidental formatting issues spotted in the user dashboard template for recurring contributions.
Minor issues relating to spacing and formatting, will raise PR to close off.
1. No handling for if (installments == 0), i.e. the recurring contribution is open-ended. Just leaves a blank string which is confusing to users.
2. No spacing between clauses in 'Terms' - makes difficult to read. Also untranslated strings.
3. Unnecessary colon after 'Terms' in table header (doesn't match other header cells).
Screenshot below shows issues.
![image](https://user-images.githubusercontent.com/72983627/205190951-4db837e1-85df-4e38-a8b4-77ab1550a44b.png)
![image](https://user-images.githubusercontent.com/72983627/205190481-e8d642a5-9956-4fc3-a0d2-51f16187dca1.png)https://lab.civicrm.org/dev/core/-/issues/4002API4 throws an exception when using `IN` and pseudoconstants aren't resolved2023-03-15T15:13:48ZJonGoldAPI4 throws an exception when using `IN` and pseudoconstants aren't resolvedConsider this API call in `mjwshared` (pinging @mattwire since he'll be interested):
```php
$paymentProcessorIDs = \Civi\Api4\PaymentProcessor::get(FALSE)
->addWhere('payment_processor_type_id:name', 'IN', ['Stripe', 'Globalpayments']...Consider this API call in `mjwshared` (pinging @mattwire since he'll be interested):
```php
$paymentProcessorIDs = \Civi\Api4\PaymentProcessor::get(FALSE)
->addWhere('payment_processor_type_id:name', 'IN', ['Stripe', 'Globalpayments'])
->execute()
```
This throws a fatal error when run if you don't have Stripe or Globalpayments installed. However, this seems inconsistent:
* If your operator is `=` not `IN`, you just get an empty set (e.g. `cv api4 PaymentProcessor.get +w 'payment_processor_type_id:name = "fake processor"'`).
* If your operator is `IN` but you're not using pseudoconstant lookup, you get an empty set, e.g. `cv api4 PaymentProcessor.get +w 'payment_processor_type_id IN [123456,234567]'`.
From a DX perspective, I think the correct result on the code in `mjwshared` is to return an empty set.JonGoldJonGoldhttps://lab.civicrm.org/dev/core/-/issues/3997FormBuilder filter fails on some fields2022-11-28T09:20:40Zaydunsaidan.saunders@squiffle.ukFormBuilder filter fails on some fieldsOverview
----------------------------------------
On some fields, a FormBuilder filter works when a value is entered but deleting the filter value does not show the full listing.
Reproduction steps
--------------------------------------...Overview
----------------------------------------
On some fields, a FormBuilder filter works when a value is entered but deleting the filter value does not show the full listing.
Reproduction steps
----------------------------------------
1. In SearchKit, create a search of CaseTypes
2. Display the ID & Title
3. Create a table display - default settings
4. Create a FormBuilder form
5. Add Case Type Title as a filter
6. Add route, name, save.
7. View page
8. Should see listing of case types
9. In filter box, type 'sup' - should filter correctly to show Housing Support
10. then delete 'sup' from the filter
Current behaviour
----------------------------------------
Does not show all results. Angular error in browser 'val is undefined'
Expected behaviour
----------------------------------------
It should go back to showing all results
Environment information
----------------------------------------
* __CiviCRM:__ _Master_ <!-- If this problem relates to an upgrade, then specify both old and new versions -->
Comments
----------------------------------------
Verified on dmaster.
This is only on some fields. Eg doing the same for Case instead of Case Type works as expected.colemanwcolemanwhttps://lab.civicrm.org/dev/drupal/-/issues/184Remove 8 from Composer package and file names?2022-11-18T14:39:33ZresgaRemove 8 from Composer package and file names?[Drupal 8 reached end-of-life on November 2, 2021](https://www.drupal.org/psa-2021-06-29), but the number 8 is still used when installing CiviCRM with Composer.
Since the upgrade path from Drupal 9 to 10, 10 to 11, etc. should be easier...[Drupal 8 reached end-of-life on November 2, 2021](https://www.drupal.org/psa-2021-06-29), but the number 8 is still used when installing CiviCRM with Composer.
Since the upgrade path from Drupal 9 to 10, 10 to 11, etc. should be easier than from Drupal 7 to 8, and the underlying technical foundation go through less changes for the foreseeable future, would it be possible to drop the number 8 in CiviCRM package names at some point?
**Now**
`composer require civicrm/civicrm-{core,packages,drupal-8}`
**Possible at some point?**
`composer require civicrm/civicrm-{core,packages,drupal}`
For Drupal 7 it's best to keep using `drupal-7`, to keep the two versions separated.https://lab.civicrm.org/dev/core/-/issues/3993Order wrong processing wait list participants2023-02-09T07:20:44ZDevAppOrder wrong processing wait list participantsThe CiviCRM wait list appears to offer the last person on the list the place, rather than the first place (oldest) registration.
Seemingly others are having this issue as well: https://civicrm.stackexchange.com/questions/37944/order-pro...The CiviCRM wait list appears to offer the last person on the list the place, rather than the first place (oldest) registration.
Seemingly others are having this issue as well: https://civicrm.stackexchange.com/questions/37944/order-processing-waitlist-participantshttps://lab.civicrm.org/dev/core/-/issues/3991Drop php 7.2 support from CiviCRM 5.58 (after 5.57 ESR)2023-11-28T10:48:51ZeileenDrop php 7.2 support from CiviCRM 5.58 (after 5.57 ESR)Per previous efforts to drop PHP version support I propose we drop 7.2 in 5.58. This means people who want another 6 months can use the ESR. Usage numbers for php 7.2 (around 1k) are around the levels where we dropped previous versions &...Per previous efforts to drop PHP version support I propose we drop 7.2 in 5.58. This means people who want another 6 months can use the ESR. Usage numbers for php 7.2 (around 1k) are around the levels where we dropped previous versions & support is starting to get harder - see https://github.com/civicrm/civicrm-core/pull/24952https://lab.civicrm.org/dev/core/-/issues/3986FormBuilder: defaults for bulk create2023-05-24T14:05:46Zaydunsaidan.saunders@squiffle.ukFormBuilder: defaults for bulk createOverview
----------------------------------------
Provide a 'defaults' entity for bulk entry
Example use-case
----------------------------------------
1. Create a submission form for Activities
2. On the main Activity1 fieldset, mark it...Overview
----------------------------------------
Provide a 'defaults' entity for bulk entry
Example use-case
----------------------------------------
1. Create a submission form for Activities
2. On the main Activity1 fieldset, mark it as 'Repeat'
3. You can now create a set of activities
4. But ...
Current behaviour
----------------------------------------
All relevant fields need to be completed even if they are repetitive
Proposed behaviour
----------------------------------------
Provide a 'defaults' version of the fieldset where repeated values can be entered.
The normal entries are then combined with the default values before creating the entities.
Note this is different to the 'Values' feature: those are specified by the form designer (eg specifying an activity type)
The defaults are provided by the user filling in the form such as specifying a 'key contact' that is used when creating all the other entities, unless that value is specified.
```
Default entry: Field 1: Field 2: abc
Entry 1: Field 1: Hi 1 Field 2:
Entry 2: Field 1: Hi 2 Field 2:
Entry 3: Field 1: Hi 3 Field 2: def
Entry 4: Field 1: Hi 4 Field 2:
Entry 5: Field 1: Hi 5 Field 2: ghi
```
should create:
```
Entry 1: Field 1: Hi 1 Field 2: abc
Entry 2: Field 1: Hi 2 Field 2: abc
Entry 3: Field 1: Hi 3 Field 2: def
Entry 4: Field 1: Hi 4 Field 2: abc
Entry 5: Field 1: Hi 5 Field 2: ghi
```
Comments
----------------------------------------
_Anything else you would like the reviewer to note._https://lab.civicrm.org/dev/core/-/issues/3984Proposal: Enable OAUTH client extension by default now that microsoft has dis...2023-01-09T14:50:43ZDaveDProposal: Enable OAUTH client extension by default now that microsoft has discontinued username/password authenticationWhat the subject says. For new installs only, but with maybe an upgrade message if it detects you have a microsoft email account enabled.What the subject says. For new installs only, but with maybe an upgrade message if it detects you have a microsoft email account enabled.https://lab.civicrm.org/dev/core/-/issues/3982SearchKit: dropdowns for country and state don't work2022-11-16T20:07:08Zaydunsaidan.saunders@squiffle.ukSearchKit: dropdowns for country and state don't workOverview
----------------------------------------
In SearchKit, the dropdowns for 'Address (primary) Country', 'Address (billing) Country', 'Address (primary) State/Province', 'Address (billing) State/Province' don't work.
Reproduction ...Overview
----------------------------------------
In SearchKit, the dropdowns for 'Address (primary) Country', 'Address (billing) Country', 'Address (primary) State/Province', 'Address (billing) State/Province' don't work.
Reproduction steps
----------------------------------------
1. Create a new SearchKit search
2. Search for Contacts
3. Add 'Where': 'Address (primary) Country' '='
Current behaviour
----------------------------------------
The Country list dropdown just spins and does not complete.
![image](/uploads/756beb13ac0db4147fb703d2dc37692b/image.png)
Expected behaviour
----------------------------------------
List of countries
Environment information
----------------------------------------
* __CiviCRM:__ _Master_colemanwcolemanwhttps://lab.civicrm.org/dev/core/-/issues/3980SearchKit displays: be able to add description so end user knows the context2022-11-21T19:39:52ZherbdoolSearchKit displays: be able to add description so end user knows the contextCurrently on SearchKit displays we can set the name which ends up being used for the title and the URL. I've tried to add additional information there for end users so they understand the context of the results. E.g. "Only shows results ...Currently on SearchKit displays we can set the name which ends up being used for the title and the URL. I've tried to add additional information there for end users so they understand the context of the results. E.g. "Only shows results for the current campaign". But that's awkward to stuff that all into the title. And also means one has to be careful that on the first save *not* to add those notes to the name so as to prevent an ungainly URL.
(The other option is to embed the SK into an afform, but that's a lot of extra work for just a bit of description.)
So a separate description field would be ideal.https://lab.civicrm.org/dev/core/-/issues/3975Search kit does not refresh correctly on delete2022-11-27T23:27:08ZeileenSearch kit does not refresh correctly on deleteTo reproduce - start with the below search (I don't think the search is 'special' - just where I hit it)
- go to the LAST page
- Note the number of rows in the total
- ![image](/uploads/a4ad196fbacefe1b79a7d4cb6aa1ede9/image.png)
- use ...To reproduce - start with the below search (I don't think the search is 'special' - just where I hit it)
- go to the LAST page
- Note the number of rows in the total
- ![image](/uploads/a4ad196fbacefe1b79a7d4cb6aa1ede9/image.png)
- use an action to delete the last record
- Note the new count
- ![image](/uploads/26b3429dab37d1c4baf02923464b3b4a/image.png)
```
[
[
"SavedSearch",
"save",
{
"records": [
{
"name": "languages",
"label": "languages",
"form_values": null,
"mapping_id": null,
"search_custom_id": null,
"api_entity": "OptionValue",
"api_params": {
"version": 4,
"select": [
"id",
"label",
"value",
"name"
],
"orderBy": [],
"where": [
[
"option_group_id:name",
"=",
"languages"
]
],
"groupBy": [],
"join": [],
"having": []
},
"expires_date": null,
"description": null
}
],
"match": [
"name"
]
}
]
]
```colemanwcolemanwhttps://lab.civicrm.org/dev/core/-/issues/3973SearchKit: be able to choose *which* Actions are available on a display2023-03-02T16:50:05ZherbdoolSearchKit: be able to choose *which* Actions are available on a displayThe Actions for SearchKit displays seem to be automatically chosen based on the entities. And it's an all or nothing deal. In my case, I was hoping to allow staff to *only* download the results and nothing else. But there a bunch that sh...The Actions for SearchKit displays seem to be automatically chosen based on the entities. And it's an all or nothing deal. In my case, I was hoping to allow staff to *only* download the results and nothing else. But there a bunch that show up, including delete, update. Even if the search is using a GROUP BY, which doesn't make much sense I think.https://lab.civicrm.org/dev/release/-/issues/19ESR Workflow: Post full suite of resources at start of cycle2023-01-13T18:46:04ZtottenESR Workflow: Post full suite of resources at start of cycleBackground / Motivation
-----------------------
Every 6 months, we designate a version for extended security support. When there's a new security release, the ESR version is posted to Gitlab (`esr/core`, `esr/packages`, `esr/drupal-8`, ...Background / Motivation
-----------------------
Every 6 months, we designate a version for extended security support. When there's a new security release, the ESR version is posted to Gitlab (`esr/core`, `esr/packages`, `esr/drupal-8`, and so on -- collectively, the `esr/*` projects).
If you are sysadmin who wants to be _prepared_ for future security updates, then you would look to `esr/*` and do a trial-run. Make sure you have access/credentials. Make sure you can find the spot for the releases. Make sure you're targeting the right version. Make sure your tools (like `composer`) are configured to pull from there.
However, if there hasn't been a security release, then there may not be anything published on `esr/*`. This interim period invites some confusion. On one hand, there's no security-release to publish -- so the regular security-release scripts don't apply. On the other hand, if you want to be ready, then you need something to look at. The result is that we improvise during the interim.
Goal
----
Whenever we start new ESR cycle, immediately publish to `esr/*`. Include sufficient resources that enable the sysadmins to do a "dress rehearsal" (downloading/install using the exact same procedure as for a security fix). For example, suppose we're discussing v5.51 which started its extended support circa Aug 3. Here are some materials that you might expect to find (circa Aug 3):
* In the main repo, the tarballs for the `5.51.x` releases
* In each repo, the branch (`5.51-esr`).
* In each repo, the tags for specific patch releases (`5.51.x` or `5.51.x+esr`).
* In each repo, package-registry entries for each release (`5.51.x` or `5.51.x+esr`).
* In the main repo, links for the documentation interim changes (release announcements/notes for 5.51, 5.50, 5.49, 5.48, 5.47, 5.46)
Questions
----------
Are there other resources that you expect in this period?
If 5.51 starts public-support in July and starts extended-support in August... then... when should 5.51 become available in `esr/*`? Start of July? Start of August?
(If 5.51 is published to `esr/*` in July, then it will overlap with the tail-end of 5.45. Would it be confusing to see both during July?)https://lab.civicrm.org/dev/core/-/issues/3967Deduping with multiple fields doesn't work with more than 999 contacts using ...2022-11-04T19:17:46ZlarsssandergreenDeduping with multiple fields doesn't work with more than 999 contacts using MariaDB 10.3+After upgrading to MariaDB 10.3 or later, finding dupes with a rule than uses multiple fields creates queries that runs for hours when checking 1000 contacts, but works fine for 999 contacts.
Here are the steps to replicate:
- MariaDB 1...After upgrading to MariaDB 10.3 or later, finding dupes with a rule than uses multiple fields creates queries that runs for hours when checking 1000 contacts, but works fine for 999 contacts.
Here are the steps to replicate:
- MariaDB 10.3+
- Create a dedupe rule with First Name and Last Name
- Use the rule on a group with 1000 or more contacts (or use the Deduper extension to limit to 1000 contacts)
- Result: query runs for a very long time
- Use the rule on a group with 999 or fewer contacts
- Result: results returned quickly as expected
Turns out this is due to a setting that was added to MariaDB in 10.3: [In Predicate Conversion Threshold](https://mariadb.com/docs/reference/mdb/system-variables/in_predicate_conversion_threshold/), which converts the long list of ids in the query that CiviCRM builds to a temp table when the length of the list of ids exceeds the setting, which is 1000 by default. Changing the setting to 0 fixes the issue by disabling the conversion.
Not clear why the temp table is so slow. I'm going to try creating temp tables with indexes explicitly to see if that helps. If not and nothing else suggests itself as a solution, will at least add some documentation unless others have thoughts on how to resolve this so it doesn't require adjusting settings for everyone using MariaDB.https://lab.civicrm.org/dev/core/-/issues/3965Adding mailing events (unsub, open, clicks, etc) to API42023-10-16T00:28:23ZlarsssandergreenAdding mailing events (unsub, open, clicks, etc) to API4I'd like to add mailing events to API4 so we can use them in SearchKit, to improve the A/B Mailing report page, and so on.
This would be all the [Mailing Events here.](https://github.com/civicrm/civicrm-core/tree/master/CRM/Mailing/Even...I'd like to add mailing events to API4 so we can use them in SearchKit, to improve the A/B Mailing report page, and so on.
This would be all the [Mailing Events here.](https://github.com/civicrm/civicrm-core/tree/master/CRM/Mailing/Event/DAO) Not sure they are all essential, but might as well do them all at once, as they will all be very similar.
Having poked around at this, I see a few issues that I think I need some help with before starting on this.
We have, for example, TrackableURLOpen, which links to a TrackableURL and also to the Queue entity, which links to the Job entity, which links to the Mailing entity. I don't think we want to have users building queries with joins on all of these entities in SearchKit in order to get useful information back. Ideally, we'd have an entity that has a get action that would return:
- id from TrackableURLOpen
- timestamp from TrackableURLOpen
- URL from TrackableURL
- contact id from Queue
- mailing id from Job
Can we do this by adding all these entities to the API, adding entity bridges to connect them all and then adding an abstract entity that wraps everything up together, with a get function that gets all the fields above from the API (and a getfields function as well). Or is there a less manual way to do this?
Also, I see that the Queue entity already exists in API4, but it isn't the Mailing_Event_Queue entity. Is there a way to specify the full class for an entity so that we don't get a collision? It looks like it just expects the last word from the classname as the API class and that won't work in this case. This might be helpful in general here, because adding an entity called just Opened is going to be confusing (versus naming it something like MailingEventOpened).https://lab.civicrm.org/dev/core/-/issues/3956SearchKit: Tagging a saved search adds strange "Include tags used for Saved S...2022-10-30T13:47:08ZlarsssandergreenSearchKit: Tagging a saved search adds strange "Include tags used for Saved Searches" search option to Advanced Search![image](/uploads/7472f315ef96fdc3d5c3c0ef829eb893/image.png)
Steps to reproduce on dmaster:
- Save a SK search with a tag
- This odd search option shows up in Advanced Search![image](/uploads/7472f315ef96fdc3d5c3c0ef829eb893/image.png)
Steps to reproduce on dmaster:
- Save a SK search with a tag
- This odd search option shows up in Advanced Searchhttps://lab.civicrm.org/dev/core/-/issues/3954sybunt/lybunt default for "this year" is 20122022-10-28T22:40:31ZDaveDsybunt/lybunt default for "this year" is 2012As much as we all want to forget the last few years happened, defaulting back to 2012 might be too far.
Note that in sample data it used to be hardcoded in a saved instance as 2011 but now that the 10 year window in the dropdown has pas...As much as we all want to forget the last few years happened, defaulting back to 2012 might be too far.
Note that in sample data it used to be hardcoded in a saved instance as 2011 but now that the 10 year window in the dropdown has passed that's now effectively ignored, so can close https://lab.civicrm.org/dev/core/-/issues/1091
But in regular installs it's a bit silly.
The problem though is the 'default' parameter doesn't seem to get used. It's correctly set to date('Y'). I dunno why it doesn't work yet.https://lab.civicrm.org/dev/core/-/issues/3953Fatal error after upgrade to 5.54.0 and enabling Authx2022-11-01T22:19:44ZkcristianoFatal error after upgrade to 5.54.0 and enabling AuthxI want to log this as it was very puzzling, but could be site specific.
Upgraded from CiviCRM 5.51.3 to 5.54.0 on WP 5.9.x and php 7.4 on a Multi-Site.
Also updated Mosaico from 2.9.x to 2.10
After Upgrade CiviCRM said Authx needed to...I want to log this as it was very puzzling, but could be site specific.
Upgraded from CiviCRM 5.51.3 to 5.54.0 on WP 5.9.x and php 7.4 on a Multi-Site.
Also updated Mosaico from 2.9.x to 2.10
After Upgrade CiviCRM said Authx needed to be enabled, so I did that.
Once I did that on the 'sub-sites' all non admins could not load New Mailings, Contribution Dashboard, Advanced search.
Error was
```
$Fatal Error Details = array:3 [
"message" => "The "cache.decendantGroups" service or alias has been removed or inlined when the container was compiled. You should either make it public, or stop using the container directly and use dependency injection instead."
"code" => null
"exception" => Symfony\Component\DependencyInjection\Exception\ServiceNotFoundException {#3618
-id: "cache.decendantGroups"
-sourceId: null
-alternatives: []
#message: "The "cache.decendantGroups" service or alias has been removed or inlined when the container was compiled. You should either make it public, or stop using the container directly and use dependency injection instead."
```
I was able to grant two new poermissions to the user's role
```
AuthX: Authenticate to services with password
AuthX: Authenticate to services with API key
```
That seems to have fixed the issue - but I don't understand what really happened here.
Will try and reproduce and report back.