Development issueshttps://lab.civicrm.org/groups/dev/-/issues2024-01-27T23:04:48Zhttps://lab.civicrm.org/dev/core/-/issues/4925Using crm_optgroup for headers in select lists causes the first option to be ...2024-01-27T23:04:48ZJamesStephensUsing crm_optgroup for headers in select lists causes the first option to be selected by default when the list is single selectOverview
----------------------------------------
I noticed this issue yesterday and tested it on https://demo.circle-interactive.co.uk/ to make sure it wasn't just my installation. If I use crm_optgroup to define headers in a select lis...Overview
----------------------------------------
I noticed this issue yesterday and tested it on https://demo.circle-interactive.co.uk/ to make sure it wasn't just my installation. If I use crm_optgroup to define headers in a select list of options in a custom field and that list is single select it doesn't work as expected. Rather than showing the "- Select [field label] -" it defaults to the first item under the crm_optgroup. This results in users accidentally submitting that if they are entering data in other fields.
Reproduction steps
----------------------------------------
1. Create a custom select field that will be single select
2. Add a crm_optgroup to the select options with some options below the optgroup
Current behaviour
----------------------------------------
The first option in the topmost crm_optgroup is selected as the default
Expected behaviour
----------------------------------------
It should show "- select [field label] -" instead in the field so that users can leave it blank when needed.
Environment information
----------------------------------------
Tested this in a couple of CiviCRM environments. Specific versions tested were 5.66.2 and 5.69.2
Tested in Firefox and Safari
Comments
----------------------------------------
Removing the optgroups (or making the list multiselect) corrects the problem.https://lab.civicrm.org/dev/core/-/issues/4924CiviReport: Contribution Detail Report Joining Incorrectly on civicrm_note2024-03-01T20:08:18Zcrawford.morganCiviReport: Contribution Detail Report Joining Incorrectly on civicrm_noteOverview
----------------------------------------
When 'Contribution Note' is selected as a column in a Contribution Detail report, the join is treated as required and all contributions in the results without notes are filtered out.
Thi...Overview
----------------------------------------
When 'Contribution Note' is selected as a column in a Contribution Detail report, the join is treated as required and all contributions in the results without notes are filtered out.
This issue occurs when using the 'Contribution Detail' report, 'Extended Report - Contributions' report, and 'Extended Report - Bookkeeping with extra fields' report.
Thankfully, reports created in SearchKit function properly (all contributions are returned in the results) and contribution search exports are also functioning properly (including 'Contribution Note' in the exported fields does not affect the records exported).
Reproduction steps
----------------------------------------
1. example.com/civicrm/report/contribute/detail?reset=1
2. View results with Columns > Contribution Note toggled off
3. Toggle Contribution Note on, run report again, note that fewer records are returned
Environment information
----------------------------------------
* CiviCRM: 5.69.2
* PHP:8.1.27
* Drupal: 7.99
* MySQL: 8.0.33
Comments
----------------------------------------
This only recently became an issue after making a minor upgrade to 5.69.2https://lab.civicrm.org/dev/core/-/issues/4923Possible performance improvement: When a custom field is disabled, automatica...2024-02-08T14:11:58ZDaveDPossible performance improvement: When a custom field is disabled, automatically uncheck the searchable box and remove the db indexSuppose you have about 20 fields in the custom group and they were almost all searchable (had the searchable box checked). Over time let's say half get disabled. The indexes are still in the db, and the searchable checkbox is meaningless...Suppose you have about 20 fields in the custom group and they were almost all searchable (had the searchable box checked). Over time let's say half get disabled. The indexes are still in the db, and the searchable checkbox is meaningless because they don't appear anywhere anyway.
If the table is large, those indexes potentially cause trouble with no benefit.
If you go to re-enable, it's true it won't automatically re-check the searchable box and recreate the index, but there's no real harm, you just go back in and check the box.
An alternative to automatically doing this would be a status check: "The following fields are disabled but marked searchable. Consider making them unsearchable to improve performance on large databases."https://lab.civicrm.org/dev/core/-/issues/4921Add Soft Credit Recipient's and Contributor's Postal Address fields to includ...2024-01-29T10:13:28ZyashodhaAdd Soft Credit Recipient's and Contributor's Postal Address fields to include in the Soft Credit Report.Add Soft Credit Recipient's and Contributor's Postal Address fields to include in the Soft Credit Report. We already have phone/email having address would be helpful.Add Soft Credit Recipient's and Contributor's Postal Address fields to include in the Soft Credit Report. We already have phone/email having address would be helpful.https://lab.civicrm.org/dev/core/-/issues/4920Support the import of all API4 entities2024-02-20T09:29:00ZMichael McAndrewSupport the import of all API4 entitiesIt would be good to support importing of all APIv4 entities in core.
I found four extensions with a reasonable number of downloads that implement improvements to importing:
* https://civicrm.org/extensions/api-csv-import-gui by @eileen...It would be good to support importing of all APIv4 entities in core.
I found four extensions with a reasonable number of downloads that implement improvements to importing:
* https://civicrm.org/extensions/api-csv-import-gui by @eileen
* https://civicrm.org/node/5879 (csv import helper) by @artfulrobot
* https://civicrm.org/extensions/advanced-import by @bgm
* https://civicrm.org/extensions/option-value-importer by@sluc23
But most (if not all?) of these extensions are built on API3.
It would be great to have something built with API4 since this would allow import of any new 'API4 first' entities that are created in core and in extensions (including new entities that have been created with ECK @jensschuppe).
So I am wondering if there are any other initiatives to improve import in the works? And if anyone has the appetite for creating an import core extension that is powered by APIv4 with the long term aim of replacing and enhancing the core import functionality? Perhaps starting with one of the existing ones as a base.https://lab.civicrm.org/dev/core/-/issues/4919Update CiviCRM on Drupal 10: Deprecation Notices regarding TOGoS2024-01-25T14:10:46ZDetlev SieberUpdate CiviCRM on Drupal 10: Deprecation Notices regarding TOGoS## Overview
During the updating process of CiviCRM with Drupal 10.2.2, Composer shows several Deprecation Notices regarding the package "TOGoS"
## Reproduction steps
1. Update CiviCRM on Drupal 10.2.2 using Composer
2. Console output ...## Overview
During the updating process of CiviCRM with Drupal 10.2.2, Composer shows several Deprecation Notices regarding the package "TOGoS"
## Reproduction steps
1. Update CiviCRM on Drupal 10.2.2 using Composer
2. Console output includes numerous Depreation Notices regarding TOGos
## Current behaviour
See:
`Deprecation Notice: Creation of dynamic property TOGoS_GitIgnore_FileFinder::$ruleset is deprecated in /usr/www/users/crmeay6f/crm.adb.de/vendor/togos/gitignore/src/main/php/TOGoS/GitIgnore/FileFinder.php:7`
... and another \~ 100 lines like this one
## Expected behaviour
There should be no deprecation notices displayed
## Environment information
* **CiviCRM:** update to 5.69.2
* **PHP:** _8.2.14_
* **CMS:** _Drupal 10.2.2_
##https://lab.civicrm.org/dev/core/-/issues/4917Contribution Radio Buttons Incorrectly add other Amount2024-01-28T22:13:07ZtreseroContribution Radio Buttons Incorrectly add other Amount## Overview
With the focus fix for Contribution (Main.tpl), there is still an issue with the Other Amount being added to the original, default amount.
The Other Amount should not be adding to the original, unchecked amount.
## Reprodu...## Overview
With the focus fix for Contribution (Main.tpl), there is still an issue with the Other Amount being added to the original, default amount.
The Other Amount should not be adding to the original, unchecked amount.
## Reproduction steps
1. Click on your public facing Contribute page, civicrm/contribute/transact/?reset=1&id=1
2. Clicked in Other Amount text box and added $20
3. This added $20 to the default amount resulting in $70 for the amount, instead of $20
## Current behaviour
## Expected behaviour
This should clear the initial amount and only show the Other Amount, and move focus to the Other Amount button.
## Environment information
* **CiviCRM:** _5.69.2_
* **PHP:** _8.1_
* **CMS:** _Wordpress_
## Comments
![Screenshot 2024-01-16 161324.png](/uploads/68f7a46cac54e4256937d6d472a868c2/Screenshot_2024-01-16_161324.png)5.70.0https://lab.civicrm.org/dev/core/-/issues/4916Invisible notes2024-02-23T15:31:02ZBohdanDmytryshynInvisible notesOverview
----------------------------------------
On install or update CiviCRM, null-valued notes creating.
After researching, I can assume that the problem is a misassignment of keys.
![image](/uploads/9f4fb6a13d4cf2460a5a5c87d238b3d6/...Overview
----------------------------------------
On install or update CiviCRM, null-valued notes creating.
After researching, I can assume that the problem is a misassignment of keys.
![image](/uploads/9f4fb6a13d4cf2460a5a5c87d238b3d6/image.png)
Environment information
----------------------------------------
* __CiviCRM:__ _Master/5.67.1_
* __PHP:__ _/7.1/8.1_
* __CMS:__ Joomla 4.4.2/WordPress 6.4.2/..._https://lab.civicrm.org/dev/core/-/issues/4915Sending an invoice per email goes to primary address, not to billing2024-02-09T23:08:39ZMariaVSending an invoice per email goes to primary address, not to billingI have found this post on StackExchange:
https://civicrm.stackexchange.com/questions/9094/sending-an-invoice-per-email-goes-to-primary-address-not-to-billing
I tested on CiviCRM 5.68.1 and it seems that CiviCRM still only sends the invo...I have found this post on StackExchange:
https://civicrm.stackexchange.com/questions/9094/sending-an-invoice-per-email-goes-to-primary-address-not-to-billing
I tested on CiviCRM 5.68.1 and it seems that CiviCRM still only sends the invoice to the primary address.
What do you think about a setting 'send invoice email to Billing if it exists, otherwise send it to Primary'?
The setting could be optional so that nothing changes for users who want to keep it as it is.
Or is there any knowing extension already that I could not find?
Thanks in advance!https://lab.civicrm.org/dev/core/-/issues/4911Add params to actions when creating a WordPress User2024-01-12T17:45:30ZhaystackAdd params to actions when creating a WordPress UserOverview
----------------------------------------
The actions in the `CRM_Utils_System_WordPress::createUser()` method would be more helpful if they provided params when they fire. They were originally added to allow other code to know m...Overview
----------------------------------------
The actions in the `CRM_Utils_System_WordPress::createUser()` method would be more helpful if they provided params when they fire. They were originally added to allow other code to know merely *that* CiviCRM was creating a User (and to prevent recursion) but it would also be useful to know the source Contact and the resulting User ID in some cases.
Example use-case
----------------------------------------
A plugin that acts on a WordPress User when a Contact is added to a Group listens for `GroupContact.create` on the `civicrm_post` hook. Works just fine when using the CiviCRM back-end and the Contact and User both exist.
Current behaviour
----------------------------------------
The plugin will fail to act when a new Contact is added to a Group via a Contribution Page with a Profile that is configured to create a WordPress User. This is because the Contact is added to the Group _before_ the WordPress User is created.
Proposed behaviour
----------------------------------------
Although not an ideal solution to the problem, adding params to the actions in the `CRM_Utils_System_WordPress::createUser()` method would allow a plugin like the above to more easily identify the source Contact and the new User. The GroupContacts can then be checked and acted upon once the User has been created.
Comments
----------------------------------------
PR to follow.haystackhaystackhttps://lab.civicrm.org/dev/core/-/issues/4909Split 'Edit all contacts' permission2024-03-06T10:57:35ZGuillaumeSorelSplit 'Edit all contacts' permissionI jumped into a user case where some admin should be able to edit contacts they're allowed to manage but shouldn't be able to manage tags. After looking inside the documentation, stackexchange and the ACL I discovered that the 'Edit all ...I jumped into a user case where some admin should be able to edit contacts they're allowed to manage but shouldn't be able to manage tags. After looking inside the documentation, stackexchange and the ACL I discovered that the 'Edit all contacts' embeds several sub-permissions like editing the contacts information and also tags or groups. It's everything or nothing within this permission.
I'm not talking about the capability to manage Tags as entity (which as a separate permission) but to manage the use of them.
I think it could be interesting to split this permission with a 'edit all contacts' on the one hand and create a new 'edit contact tags / groups' on the other hand.https://lab.civicrm.org/dev/core/-/issues/4908Integrate Angular calendar for better usability2024-01-15T11:36:56ZshaneonabikeIntegrate Angular calendar for better usabilityI don't mind the existing calendar date picker, but I was wondering if there are other solutions that might work a bit better for usability. I came across this [Angular version](https://laros.io/using-angular-material-calendar-with-date-...I don't mind the existing calendar date picker, but I was wondering if there are other solutions that might work a bit better for usability. I came across this [Angular version](https://laros.io/using-angular-material-calendar-with-date-ranges-and-range-presets) (maybe there is an alternative)
Since we are already starting to use a lot of Angular I thought it could be something to consider. There is even a date range option, which could be interesting for other areas.
You can spin a demo on this stackblitz https://stackblitz.com/edit/angular-material-calendar-with-date-ranges-and-presets?file=package.json
What I like about it:
* When choosing a different year it automatically prompts to choose the month which is fairly logical and usable
* There is the possibility to set ranges (future integration with Events?)
* There is the option to have quick options like Last 30 days, Last 12 months, etc.
![Angular Material Calendar with Date Range and Range Presets](https://laros.io/images/angular-material-calendar-date-range.png)
Anyway it was just something I wanted to raise but it's not a high priority but could be a great enhancement.https://lab.civicrm.org/dev/core/-/issues/4907Event full inconsistencies2024-01-15T11:35:24ZeileenEvent full inconsistenciesThe way EventFull is calculated in apiv4 is not consistent with elsewhere
apiv4 returns a field `'remaining_participants'` which is
event.max_participants - COUNT(participant rows for the event where contact is not deleted, participant ...The way EventFull is calculated in apiv4 is not consistent with elsewhere
apiv4 returns a field `'remaining_participants'` which is
event.max_participants - COUNT(participant rows for the event where contact is not deleted, participant is not test and participant status is_counted)
By contrast apiv3 returns the contents of `CRM_Event_BAO_Participant::eventFull()` which also takes into account the participant role and other aspects of the status
`eventFull()` has some funky parameters - there are 12 calls to it
| caller | returnEmptySeats |includeWaitingList|returnWaitingCount|considerTestParticipant|onlyPositiveStatuses|
| ------ | ------ |------ |------ |------ |------ |
| apiv3-event | TRUE |TRUE|FALSE|FALSE|FALSE|
| Participant::eventFullMessage | FALSE |FALSE|FALSE|FALSE|FALSE|
| Participant::eventFullMessage(2) | FALSE |TRUE|TRUE|FALSE|FALSE|
|ParticipantStatusType::process|TRUE|FALSE|FALSE|FALSE|
|ParticipantTest|FALSE|TRUE|FALSE|FALSE|FALSE|
|Registration::preProcess|FALSE|if-event-has-waitlist|FALSE|FALSE|FALSE|
|Registration::preProcess(2)|TRUE|if-event-has-waitlist|FALSE|FALSE|FALSE|
|Event_Confirm::formRule|FALSE|if-event-has-waitlist|FALSE|FALSE|FALSE|
|ParticipantConfirm|TRUE|FALSE|TRUE|FALSE|TRUE|
|Register::preProcess|FALSE|if-event-has-waitlist|FALSE|FALSE|FALSE|
|EventInfo::run|FALSE|if-event-has-waitlist|FALSE|FALSE|FALSE|
|event-cart|TRUE|TRUE|FALSE|FALSE|FALSE|
Note that this issue somewhat relates/ explains
https://lab.civicrm.org/dev/event/-/issues/23https://lab.civicrm.org/dev/core/-/issues/4906UI to make multivalue custom field sets on any entity2024-01-17T18:16:59ZMichael McAndrewUI to make multivalue custom field sets on any entityFollowing https://github.com/civicrm/civicrm-core/pull/27549 it appears that the ability to make custom data multi-value is missing from the create custom data set UI
![image](/uploads/e6c5ab54c7c80e33b34c206c41c1339a/image.png)
The ab...Following https://github.com/civicrm/civicrm-core/pull/27549 it appears that the ability to make custom data multi-value is missing from the create custom data set UI
![image](/uploads/e6c5ab54c7c80e33b34c206c41c1339a/image.png)
The above screenshot shows the form with the missing field. I would expect all entities to now show the 'Does this Custom Field Set allow multiple records?' checkbox as per the screenshot below (taken when the entity was set to individual).
![image](/uploads/38e5b73c0ebf6f44638c36b8bf1e262e/image.png)
@colemanw - you might have some thoughts on this. Guessing it might have something to do with the ' (in theory)' ending to https://github.com/civicrm/civicrm-core/pull/27549https://lab.civicrm.org/dev/core/-/issues/4902Unnecessary Event Breadcrumb When Editing Event2024-02-01T10:45:52ZthemakUnnecessary Event Breadcrumb When Editing EventWhen editing an event - the breadcrumbs that display are:
CiviCRM > CiviEvent Dashboard > Manage Events > Manage Events
The first 3 make sense, but the last one actually links to the edit event page that you are editing. While I have se...When editing an event - the breadcrumbs that display are:
CiviCRM > CiviEvent Dashboard > Manage Events > Manage Events
The first 3 make sense, but the last one actually links to the edit event page that you are editing. While I have seen breadcrumbs include the current page you are on, usually they are not linked and sometimes greyed out. To stay consistent with other parts of civi, I would remove the last breadcrumb. If we decide to keep for some reason - at very least it should say Configure Event - not Manage Event.
5.69.1 - also replicated in 5.71.alpha1
![Screenshot_2024-01-10_at_12.52.30_PM](/uploads/d6048cb7a5167aab82e3dca9c2aba45d/Screenshot_2024-01-10_at_12.52.30_PM.png)https://lab.civicrm.org/dev/core/-/issues/4901financialacls has a missing dependency on civi_contribute2024-01-19T19:31:27Zfkohrtfinancialacls has a missing dependency on civi_contributeThis is just to report an anomaly I experienced on two separate CiviCRM instances.
After we updated our CiviCRM 5.68.0 running on Drupal 10.2.1 to version 5.69.1, I received the following extension error in the _CiviCRM System Status_:
...This is just to report an anomaly I experienced on two separate CiviCRM instances.
After we updated our CiviCRM 5.68.0 running on Drupal 10.2.1 to version 5.69.1, I received the following extension error in the _CiviCRM System Status_:
> "Financial ACLs" (`financialacls`) has a missing dependency on "CiviContribute" (`civi_contribute`)
It also says "To resolve any errors, go to __Manage Extensions__.", but after following that link I don't know what to do next.
We had the following extensions installed:
- AuthX
- CiviEvent
- CiviReport
- CKEditor4
- Contributor cancel actions
- Custom search framework
- Form Core
- FlexMailer
- SearchKit
After installing CiviContribute due to the extension error, I got the following full page error message:
> Sorry, due to an error, we are unable to fulfill your request at the moment. You may want to contact your administrator or service provider with more details about what action you were performing when this occurred.
>
> DB Error: already exists
CiviContribute is now also listed as installed extension.
Is there something I could/should have done different?https://lab.civicrm.org/dev/core/-/issues/4900Crash when disabling an extension that provides an entity that is referenced ...2024-01-15T11:40:21ZufundoCrash when disabling an extension that provides an entity that is referenced in a custom fieldReproduction steps
----------------------------------------
1. Enable an extension which adds a new entity
1. Add a Custom Field through the UI which is an EntityReference to the entity from the extension
1. Disable the extension
2. Cras...Reproduction steps
----------------------------------------
1. Enable an extension which adds a new entity
1. Add a Custom Field through the UI which is an EntityReference to the entity from the extension
1. Disable the extension
2. Crash ensues
Current behaviour
----------------------------------------
Every Civi page crashes with
```
The website encountered an unexpected error. Please try again later.
TypeError: CRM_Core_DAO_AllCoreTables::getTableForEntityName(): Return value must be of type string, null returned in CRM_Core_DAO_AllCoreTables::getTableForEntityName() (line 365 of /var/www/html/vendor/civicrm/civicrm-core/CRM/Core/DAO/AllCoreTables.php).
Civi\Api4\Service\Schema\SchemaMapBuilder::getTableName('MyCustomEntity') (Line: 149)
Civi\Api4\Service\Schema\SchemaMapBuilder->addCustomFields(Object, Object, 'Contact') (Line: 74)
Civi\Api4\Service\Schema\SchemaMapBuilder->loadTables(Object) (Line: 52)
Civi\Api4\Service\Schema\SchemaMapBuilder->build() (Line: 309)
Civi\Api4\Utils\CoreUtil::getSchemaMap() (Line: 773)
Civi\Api4\Query\Api4SelectQuery->autoJoinFK('dashboard_contact.id') (Line: 183)
Civi\Api4\Query\Api4SelectQuery->buildSelectClause() (Line: 79)
Civi\Api4\Query\Api4Query->getSql() (Line: 90)
Civi\Api4\Query\Api4Query->getResults() (Line: 106)
Civi\Api4\Query\Api4SelectQuery->run() (Line: 107)
Civi\Api4\Generic\DAOGetAction->getObjects(Object) (Line: 94)
Civi\Api4\Generic\DAOGetAction->_run(Object) (Line: 72)
Civi\Api4\Provider\ActionObjectProvider->invoke(Object) (Line: 156)
Civi\API\Kernel->runRequest(Object) (Line: 256)
Civi\Api4\Generic\AbstractAction->execute() (Line: 91)
civicrm_api4('Dashboard', 'get', Array) (Line: 69)
CRM_Core_BAO_Dashboard::getContactDashlets() (Line: 46)
CRM_Contact_Page_DashBoard->run(Array, NULL) (Line: 322)
CRM_Core_Invoke::runItem(Array) (Line: 69)
CRM_Core_Invoke::_invoke(Array) (Line: 36)
CRM_Core_Invoke::invoke(Array) (Line: 88)
Drupal\civicrm\Civicrm->invoke(Array) (Line: 83)
Drupal\civicrm\Controller\CivicrmController->main(Array, '')
call_user_func_array(Array, Array) (Line: 123)
Drupal\Core\EventSubscriber\EarlyRenderingControllerWrapperSubscriber->Drupal\Core\EventSubscriber\{closure}() (Line: 592)
Drupal\Core\Render\Renderer->executeInRenderContext(Object, Object) (Line: 124)
Drupal\Core\EventSubscriber\EarlyRenderingControllerWrapperSubscriber->wrapControllerExecutionInRenderContext(Array, Array) (Line: 97)
Drupal\Core\EventSubscriber\EarlyRenderingControllerWrapperSubscriber->Drupal\Core\EventSubscriber\{closure}() (Line: 181)
Symfony\Component\HttpKernel\HttpKernel->handleRaw(Object, 1) (Line: 76)
Symfony\Component\HttpKernel\HttpKernel->handle(Object, 1, 1) (Line: 58)
Drupal\Core\StackMiddleware\Session->handle(Object, 1, 1) (Line: 48)
Drupal\Core\StackMiddleware\KernelPreHandle->handle(Object, 1, 1) (Line: 106)
Drupal\page_cache\StackMiddleware\PageCache->pass(Object, 1, 1) (Line: 85)
Drupal\page_cache\StackMiddleware\PageCache->handle(Object, 1, 1) (Line: 48)
Drupal\Core\StackMiddleware\ReverseProxyMiddleware->handle(Object, 1, 1) (Line: 51)
Drupal\Core\StackMiddleware\NegotiationMiddleware->handle(Object, 1, 1) (Line: 51)
Drupal\Core\StackMiddleware\StackedHttpKernel->handle(Object, 1, 1) (Line: 704)
Drupal\Core\DrupalKernel->handle(Object) (Line: 19)
```
Expected behaviour
----------------------------------------
I think it would be good to check for any custom fields referencing entities that are about to disappear before disabling the extension, and then:
a) disable those custom fields
OR
b) prevent you disabling the extension
Comments
----------------------------------------
I wonder if some very diligent extension authors may already handle this case in the extension disable logic and/or maybe there should be an option c) resolve the issue in some custom way specified by the extension?
Or maybe the `SchemaMapBuilder` could fail less catastrophically?
Only tested on D10.https://lab.civicrm.org/dev/core/-/issues/4899Modelling many to many relationships with Entity reference, SearchKit, FormBu...2024-01-17T18:18:18ZMichael McAndrewModelling many to many relationships with Entity reference, SearchKit, FormBuilder, ECK, etc.Creating this issue as a way to keep track of different bits of functionality that can be used together to model many to many relationships in CiviCRM as when you put this all together, I think it is quite a game changer for data modelli...Creating this issue as a way to keep track of different bits of functionality that can be used together to model many to many relationships in CiviCRM as when you put this all together, I think it is quite a game changer for data modelling in CiviCRM :grinning:
Might make sense to document this at some point soon, and it would be good to collect feedback on how people are finding this functionality, ideas for improvement, etc.
Also, if you have any budget that you would like to put towards this work: to improve it or build out more features, etc. please get in contact with @colemanw or me :heart:.
* Entity Reference fields - allows you to reference other entities in custom data fields effectively creating **one to many** relationships.
* Multivalue custom data sets - [now available to all entities](https://github.com/civicrm/civicrm-core/pull/27549) allowing you to model **many to many** relationships _with additional meta data_ about the relationship
* Searchkit support for [joining via EntityRef fields in multivalue custom data](https://github.com/civicrm/civicrm-core/pull/28721) - allows you to create searches that span many to many joins
* FormBuilder support - allowing for editing of many to many relationships in entities (could probably do with some improvement)
* [ECK](https://github.com/systopia/de.systopia.eck) which allows people to make arbitrary new entities that can be joined via these relationshipshttps://lab.civicrm.org/dev/core/-/issues/4895Can't delete unused financial types2024-01-15T11:38:54ZJonGoldCan't delete unused financial typesOverview
----------------------------------------
Not a regression!
Financial types associated with quick config price sets can never be deleted.
Reproduction steps
----------------------------------------
1. Create a new financial typ...Overview
----------------------------------------
Not a regression!
Financial types associated with quick config price sets can never be deleted.
Reproduction steps
----------------------------------------
1. Create a new financial type.
1. Create a new event.
1. Select the financial type as the default for the event and save.
1. Delete the event.
1. Delete the financial type.
Current behaviour
----------------------------------------
Obtuse error.
```
The following tables have an entry for this financial type: CRM_Price_DAO_PriceSet, CRM_Price_DAO_PriceFieldValue
```
Expected behaviour
----------------------------------------
Financial type should be deletable.
When the warning `Deleting this event will also delete associated Event Registration Page and Event Fee configurations. This action cannot be undone. Do you want to continue?` appears - continuing should delete the price set if it's a quick-config. But since I hope quick config dies a painful death, let's generalize to "deleting an event
Comments
----------------------------------------
Tangentially - you can't delete a price set that has any payments associated with it. This should be doable IMO and I believe is an artifact of pre-CiviAccounts (Civi 4.3) behavior when line items didn't exist.https://lab.civicrm.org/dev/core/-/issues/4891[PHP 8.1] Weight notices @ trash contact folder2024-02-09T20:39:06Zjofranzfranz@systopia.de[PHP 8.1] Weight notices @ trash contact folderOverview
----------------------------------------
_Weight notices @ trash contact folder_
Reproduction steps
----------------------------------------
1. Delete a contact in a non-permanent way
2. Go to: https://dmaster.demo.civicrm.org/...Overview
----------------------------------------
_Weight notices @ trash contact folder_
Reproduction steps
----------------------------------------
1. Delete a contact in a non-permanent way
2. Go to: https://dmaster.demo.civicrm.org/civicrm/contact/search/advanced (user/pass: demo demo)
3. Select: "Search in Trash
(deleted contacts)" (Important!!!)
4. Hit "Search"
Current behaviour
----------------------------------------
Many weight notices:
```
Warning: Undefined array key "weight" in CRM_Core_Action::{closure}() (line 318 of /srv/buildkit/build/dmaster/web/sites/all/modules/civicrm/CRM/Core/Action.php).
Warning: Undefined array key "weight" in CRM_Core_Action::{closure}() (line 318 of /srv/buildkit/build/dmaster/web/sites/all/modules/civicrm/CRM/Core/Action.php).
Warning: Undefined array key "weight" in CRM_Core_Action::{closure}() (line 318 of /srv/buildkit/build/dmaster/web/sites/all/modules/civicrm/CRM/Core/Action.php).
Warning: Undefined array key "weight" in CRM_Core_Action::{closure}() (line 318 of /srv/buildkit/build/dmaster/web/sites/all/modules/civicrm/CRM/Core/Action.php).
```
Expected behaviour
----------------------------------------
No notices.
Environment information
----------------------------------------
* __Browser:__ _Firefox_
* __CiviCRM:__ _5.68.1 (guess also below and above)_
* __PHP:__ _8.1+_
* __CMS:__ _Drupal10_
* __Database:__ _WhateverDB_
* __Web Server:__ _An amazing one even!_
----------------------------------------
_systopia reference: 23444_eileeneileen