CiviCRM Core issueshttps://lab.civicrm.org/dev/core/-/issues2022-11-01T08:51:34Zhttps://lab.civicrm.org/dev/core/-/issues/3914Missing getRoleNames() method in WordPress System Utility2022-11-01T08:51:34ZBastien HoMissing getRoleNames() method in WordPress System UtilityOverview
----------------------------------------
Some extensions use the `CRM_Core_Config::singleton()->userSystem->getRoleNames()` method, which is not implemented for WordPressOverview
----------------------------------------
Some extensions use the `CRM_Core_Config::singleton()->userSystem->getRoleNames()` method, which is not implemented for WordPresshttps://lab.civicrm.org/dev/core/-/issues/3912Recreate core screens as Search Displays2024-03-01T22:32:39ZwmortadaRecreate core screens as Search DisplaysSee also dev/core#3761 for the SK/FB roadmap.
This is a meta issue for the work required to recreate many core screens using SearchKit and FormBuilder.
These new screens are in one of three locations:
1. Directly in core ([list](#core...See also dev/core#3761 for the SK/FB roadmap.
This is a meta issue for the work required to recreate many core screens using SearchKit and FormBuilder.
These new screens are in one of three locations:
1. Directly in core ([list](#core-replacements)): these screens replace the old screens, and often the old code is removed. There is no option to revert to the old versions.
2. In the [CiviCRM Administration UI](https://github.com/civicrm/civicrm-core/tree/master/ext/civicrm_admin_ui) extension ([list](#adminui)): these screens replace the old screens but administrators can either disable the extension, or disable individual screens (by removing the URL in FormBuilder). These will eventually become the standard screens and old code removed - but need a bit more testing and verification.
3. In the [CiviCRM Search UI](https://github.com/civicrm/civicrm-core/tree/master/ext/civicrm_search_ui) extension ([list](#searchui)): these screens don't have the full functionality of the screens they will eventually replace. In some cases, new features in SK are needed before they can fully replace existing screens. They are still useful and are a basis for further development. These may eventually migrate into AdminUI.
We welcome contributions from anyone who wants to get involved with this. If you need any help getting started, ask in the \~AdminUI channel on Mattermost.
It builds on the work started by Coleman to create the [CiviCRM Administration UI](https://github.com/civicrm/civicrm-core/tree/master/ext/civicrm_admin_ui) extension. Many more screens were created during the Manchester Sprint in October 2022.
Notes:
1. Join the \~AdminUI channel on Mattermost.
2. If you want to work on any of these, please add your name to the item and keep it updated as work progresses.
3. Look at the screens that have already been converted and try to follow a similar format.
4. The aim is to include all the functionality of the existing screens but without twisting SK in knots to exactly reproduce an existing screen.
5. Each screen will have at least three files: `.aff.html` and `.aff.json` copied from the `<civicrm.files>/ang` directory and `.mgd.php` exported from API Explorer.
6. If you can't reproduce some aspect of an existing screen, create a WIP (Work in Progress) PR and note it below. Someone else may know how to do that, or it may need a new feature adding to SK.
7. Some people found creating the PR harder than creating the new screen. We don't want that to be a barrier to getting these screens converted so if you don't want to create the PR, just [email me](mailto:aidan.saunders@squiffle.uk?subject=%22AdminUI%22) with the 3 files to and I'll do the PR.
8. There are more screens to do than those below. If you want to do something else, please add it to this page.
## AdminUI pages
| Form | URL | Status | PR | Who | Notes |
|------|-----|--------|----|-----|-------|
| Profiles | `civicrm/admin/uf/group` | Merged | [24715](https://github.com/civicrm/civicrm-core/pull/24725) | Alain | |
| Location Types | `civicrm/admin/locationType` | Merged | [24722](https://github.com/civicrm/civicrm-core/pull/24722) | @wmortada | |
| Financial Types | `civicrm/admin/financial/financialType` | Submitted | [24720](https://github.com/civicrm/civicrm-core/pull/24720) | Nicolas | |
| Financial Accounts | `civicrm/admin/financial/financialAccount` | Merged | [24730](https://github.com/civicrm/civicrm-core/pull/24730) | Dave J | |
| Relationship Types | `/civicrm/admin/reltype` | Merged | [24709](https://github.com/civicrm/civicrm-core/pull/24709) | Damilare | |
| Grant Status Options | `/civicrm/admin/options/grant_status` | Submitted | [24729](https://github.com/civicrm/civicrm-core/pull/24729) | Damilare | |
| Grant Type | `/civicrm/admin/options/grant_type` | Submitted | [24729](https://github.com/civicrm/civicrm-core/pull/24729) | Damilare | |
| Option Values | `civicrm/admin/options` | Blocked | | Patrick | To be used for all option values |
| Import/Export Mappings | civicrm/admin/mapping | Submitted | [28509](https://github.com/civicrm/civicrm-core/pull/28509) | @pradeep | |
| Label Formats | civicrm/admin/labelFormats | Done | [28513](https://github.com/civicrm/civicrm-core/pull/28513) | @dewymercerais | |
| Manage Premiums | civicrm/admin/contribute/managePremiums | Submitted | [28540](https://github.com/civicrm/civicrm-core/pull/28540) | @AllenShaw | |
| Personal Campaign Pages | civicrm/admin/pcp | Done | [29541](https://github.com/civicrm/civicrm-core/pull/29541) | @kcristiano | |
| Print Page (PDF) Formats | civicrm/admin/pdfFormats | done | [28520](https://github.com/civicrm/civicrm-core/pull/28520) | @usha.makoa | |
| Settings - SMS Provider | civicrm/admin/sms/provider | Submitted | [28512](https://github.com/civicrm/civicrm-core/pull/28512) | @pradeep | |
| Event Templates | civicrm/admin/eventTemplate | Submitted | [28514](https://github.com/civicrm/civicrm-core/pull/28514) | @pradeep | |
| Event Name Badge Layouts | civicrm/admin/badgelayout | Done | [28518](https://github.com/civicrm/civicrm-core/pull/28518) | @dewymercerais | |
| Settings - Payment Processor | civicrm/admin/paymentProcessor | done | | | |
| Headers, Footers, and Automated Messages | civicrm/admin/component | | [28484](https://github.com/civicrm/civicrm-core/pull/28484) | @kcristiano @19ATF72 | |
| Message Templates | civicrm/admin/messageTemplates | done | | | |
| Membership Types | civicrm/admin/member/membershipType | WIP | | @ayduns | |
| Membership Status Rules | civicrm/admin/member/membershipStatus | Done | [28480](https://github.com/civicrm/civicrm-core/pull/28480) | @usha.makoa | |
| Campaigns | the search doesn't exist in core (the dashboard does and is already in SearchUI) | abandonned | | | |
| Discounts | civicrm/cividiscount | | | Coleman | [CiviDiscount MR](https://lab.civicrm.org/extensions/cividiscount/-/merge_requests/284 "Convert all tables to SearchKit displays") |
| Dedupe Exceptions | civicrm/dedupe/exception | | | | see [comment](https://github.com/civicrm/civicrm-core/pull/25522#issue-1575266329) |
| Contact Types | civicrm/admin/option/subtype | done | | | |
| Joblogs | civicrm/admin/joblog | Merged | [26732](https://github.com/civicrm/civicrm-core/pull/26732) | @ayduns | |
| Mail Accounts | civicrm/admin/mailSettings | Merged | [26733](https://github.com/civicrm/civicrm-core/pull/26733) | @ayduns | Does not yet support oauth-client method to add mail accounts |
| Participant Status | civicrm/admin/participant_status | | | @ayduns | see [conditional in-place edit](https://lab.civicrm.org/dev/core/-/issues/4406 "SearchKit: make 'inplace edit' conditional") |
| Payment Processor Type | civicrm/admin/paymentProcessorType | | | | Doesn't exist in menus. Don't think this is needed as processor types added by extensions, not UI. |
| Date Preferences | civicrm/admin/setting/preferences/date | | [28483](https://github.com/civicrm/civicrm-core/pull/28483) | @pradpnayak | |
| ACL Assign Users to Roles | civicrm/admin/acl/entityrole | Merged | [26925](https://github.com/civicrm/civicrm-core/pull/26925) | @ayduns | |
More challenging:
| Form | URL | Status | PR | Who | Notes |
|------|-----|--------|----|-----|-------|
| Message Templates | civicrm/admin/messageTemplates | On hold | [24981](https://github.com/civicrm/civicrm-core/pull/24981) | @ayduns | There is a new Message Admin Core extension. See comments on PR |
| Option Groups/Values | civicrm/admin/options | In progress | [25387](https://github.com/civicrm/civicrm-core/pull/25387) | @colemanw | |
| Schedule Reminders | civicrm/admin/scheduleReminders | Merged | [26896](https://github.com/civicrm/civicrm-core/pull/26896) | @colemanw | |
| Settings - Scheduled Jobs | civicrm/admin/job | Merged | [26060](https://github.com/civicrm/civicrm-core/pull/26060) | @ayduns | |
| Price Sets | civicrm/admin/price | WIP | | @ayduns | |
| Price set fields | civicrm/admin/price/field | WIP | | @ayduns | |
| Manage Contribution Pages | civicrm/admin/contribute | Merged | [24937](https://github.com/civicrm/civicrm-core/pull/24937) | @ayduns | |
| Manage Events | civicrm/event/manage | Merged | [28476](https://github.com/civicrm/civicrm-core/pull/28476) | @alainb (Alain Benbassat) | |
| CiviCRM Reports | civicrm/report/list | WIP - need PR (see wip [28511](https://github.com/civicrm/civicrm-core/pull/28511)) to add a pseudo field with components list | [28480](https://github.com/civicrm/civicrm-core/pull/28480) | @usha.makoa | |
| Create New Report from Template | civicrm/admin/report/template/list | | | | The Report Templates Entity lacks in SK |
| Manage Groups | civicrm/group | Merged | [26261](https://github.com/civicrm/civicrm-core/pull/26261) | @samuelsov | |
Other Option Values (when main Option Values is done):
| Form | URL | Status | PR | Who | Notes |
|------|-----|--------|----|-----|-------|
| Accepted Credit Cards Options | civicrm/admin/options/accept_creditcard | | | | |
| Activity Type Options | civicrm/admin/options/activity_type | | | | |
| Addressee Type Options | civicrm/admin/options/addressee | | | | |
| Communication Style Options | civicrm/admin/options/communication_style | | | | |
| Custom Search Options | civicrm/admin/options/custom_search | | | | |
| Email Greeting Type Options | civicrm/admin/options/email_greeting | | | | |
| From Email Address Options | civicrm/admin/options/from_email_address | | | | |
| Gender Options | civicrm/admin/options/gender | | | | |
| Individual contact suffixes Options | civicrm/admin/options/individual_suffix | | | | |
| Instant Messenger (IM) screen-names Options | civicrm/admin/options/instant_messenger_service | | | | |
| Languages Options | civicrm/admin/options/languages | | | | |
| Mobile Phone Providers Options | civicrm/admin/options/mobile_provider | | | | |
| Payment Methods Options | civicrm/admin/options/payment_instrument | | | | |
| Phone Type Options | civicrm/admin/options/phone_type | | | | |
| Postal Greeting Type Options | civicrm/admin/options/postal_greeting | | | | |
| Preferred Communication Method Options | civicrm/admin/options/preferred_communication_method | | | | |
| Soft Credit Types Options | civicrm/admin/options/soft_credit_type | | | | |
| Website Type Options | civicrm/admin/options/website_type | | | | |
| Word Replacements | civicrm/admin/options/wordreplacements | | | | |
## SearchUI
These searches should be placed in the SearchUI extension rather than AdminUI. When the new search fully replaces the functionality of the core page it can override the existing URL. Otherwise, create an alternate URL and place a menu entry under Experimental.
<table>
<tr>
<th>Form</th>
<th>URL</th>
<th>Status</th>
<th>PR</th>
<th>Who</th>
<th>Notes</th>
</tr>
<tr>
<td>Find Contacts</td>
<td>civicrm/contact/search</td>
<td>Merged</td>
<td>
[26381](https://github.com/civicrm/civicrm-core/pull/26381)
</td>
<td>
@samuelsov
</td>
<td>
</td>
</tr>
<tr>
<td>Advanced Search</td>
<td>civicrm/contact/search/advanced</td>
<td>
</td>
<td>
</td>
<td>
</td>
<td>it doesn't make sense since we can create appropriate searches with SK</td>
</tr>
<tr>
<td>Find Contributions</td>
<td>civicrm/contribute/search</td>
<td>Merged, needs more work</td>
<td>
[26746](https://github.com/civicrm/civicrm-core/pull/26746)
</td>
<td>
@ayduns
</td>
<td>
</td>
</tr>
<tr>
<td>Find Mailings</td>
<td>civicrm/mailing civicrm/mailing/browse/scheduled civicrm/mailing/browse/archived civicrm/mailing/browse/unscheduled</td>
<td>WIP</td>
<td>
[26532](https://github.com/civicrm/civicrm-core/pull/26532)
</td>
<td>
@samuelsov
</td>
<td>
</td>
</tr>
<tr>
<td>Find Memberships</td>
<td>civicrm/membership/search</td>
<td>Submitted</td>
<td>
[29064](https://github.com/civicrm/civicrm-core/pull/29064)
</td>
<td>
@jitendra
</td>
<td>
</td>
</tr>
<tr>
<td>Find Participants</td>
<td>civicrm/event/search</td>
<td>Done</td>
<td>
[28477](https://github.com/civicrm/civicrm-core/pull/28477)
</td>
<td>
@breheret
</td>
<td>
it's staying :
- Add the 'fee level' field which I was unable to put
- Add custom group fields linked to an event/participant
- Add actions that are not native to Searchkit:
- Cancel registration
- Email - send now
- Group - add contacts
- Group - create smart group
- Name badges - print
- PDF letter - print for participants
- Participant status - change
- Print selected rows
- Update multiple participants
</td>
</tr>
<tr>
<td>Find Activities</td>
<td>civicrm/activity/search</td>
<td>Done</td>
<td>
[28480](https://github.com/civicrm/civicrm-core/pull/28480)
</td>
<td>
@usha.makoa
</td>
<td>
</td>
</tr>
<tr>
<td>Cases Dashboard</td>
<td>civicrm/case</td>
<td>Done</td>
<td>
</td>
<td>
@ayduns and @simon.hermann
</td>
<td>
https://lab.civicrm.org/extensions/casesummary/-/merge_requests/3
</td>
</tr>
<tr>
<td>Single Case View</td>
<td>civicrm/contact/view/case</td>
<td>WIP</td>
<td>
</td>
<td>
@simon.hermann
</td>
<td>
</td>
</tr>
</table>
## Core replacements
| Form | URL | Status | PR | Who | Notes |
|------|-----|--------|----|-----|-------|
| Contact summary: Notes tab | civicrm/note | Merged | [27610](https://github.com/civicrm/civicrm-core/pull/27610) | @colemanw | |
| Contact summary: Relationships tab | civicrm/contact/view/rel | Merged | [27701](https://github.com/civicrm/civicrm-core/pull/27701) | @colemanw | |
| Campaign Dashboard | civicrm/campaign, civicrm/petition, civicrm/survey | Merged | [27271](https://github.com/civicrm/civicrm-core/pull/27271) | @colemanw | |
| Contact summary: Membership tab | civicrm/ | Merged | [28810](https://github.com/civicrm/civicrm-core/pull/28810) | @jitendra | |
| Contact summary: Event tab | civicrm/ | Submitted | [29570](https://github.com/civicrm/civicrm-core/pull/29570)| @guyiac | |https://lab.civicrm.org/dev/core/-/issues/3911civix upgrade fails on afform extension with mgd mixin incompatible version e...2022-10-21T07:23:20Zaydunsaidan.saunders@squiffle.ukcivix upgrade fails on afform extension with mgd mixin incompatible version errorOn master, go to `civicrm/ext/afform/core` run `civix upgrade`
Error:
```
General upgrade
===============
In Mixlib.php line 147:
Received incompat...On master, go to `civicrm/ext/afform/core` run `civix upgrade`
Error:
```
General upgrade
===============
In Mixlib.php line 147:
Received incompatible version (expected="mgd-php@1.1.0", actual="mgd-php@1.0.0")
```
`info.xml` includes:
```
<mixin>mgd-php@1.1.0</mixin>
```tottentottenhttps://lab.civicrm.org/dev/core/-/issues/3910afform: Support url-params and other config options for Values in Submmission...2022-11-03T17:23:57ZAllenShawafform: Support url-params and other config options for Values in Submmission formsPer conversations with @kurund , @totten , and @colemanw at the 2022 Manchester sprint:
Submission forms currently offer configuration of Values as a way to ensure a certain value is submitted for a given property of the submitted entit...Per conversations with @kurund , @totten , and @colemanw at the 2022 Manchester sprint:
Submission forms currently offer configuration of Values as a way to ensure a certain value is submitted for a given property of the submitted entity, without displaying a field to the form user. Currently it's only possible to specify a static value for each Value. This issue covers work to increase this functionality by allowing the specification of more options for each value. As a start, we're aiming to support these: a default value; and a value defined by URL parameter (overriding the default value). Future efforts may allow for defining a mechanism for on-page calculation of the value; specifying that the submitted value should not be applied if updating an existing entity (could be useful e.g. for Source field); and more.
## New attributes:
At the start we aim to support only these:
- `default`: the default value
- `urlparam`: the name of a URL parameter from which the value can be taken (which value, if given, will override the `default` value)
We're also aiming to make decisions now which would facilitate adding other attributes in the future.
## UI changes:
- Move the Values section out of the "pallette" pane in the left, to a new "Values" tab in the "canvas" pane on the right:
![values](/uploads/4a5fb8bd7c29c136ddb18ebc191e7201/values.png)
- For each defined Value, support configuration of various attributes, probably through a pop-up accessed through a gear icon, similar to that already in use under for fields under the Fields tab:
![gear2](/uploads/6c850f34b123efd4651720ff50ef30e1/gear2.png)
Rationale:
- We currently have the "Values" configuration appearing at the top of the left-side "pallette" pane. This leaves limited space for configuration options on each Value, whereas there will be more room for that in the "canvas" pane.
- It would make for a more consisten user experience to treat the left-side "pallette" only as a pool of available entity properties (fields), and the right-side "canvas" as the place for configuring those properties which one has selected for use in the form.
## Form storage/schema changes:
Values are currently stored in the form markup within the `data` attribute of each `<af-entity>` tag; e.g. this line indicates that the do_not_email field should be forced to "yes":
```
<af-entity data="{contact_type: 'Individual', do_not_email: '1'}" type="Contact" name="Individual1" label="Individual 1" actions="{create: true, update: true}" security="RBAC" />
```
To store these additional config options, we make some changes to this schema:
- Values will be stored as an `<af-field>` element within the `<af-entity>` container, so that the above-mentioned `<af-entity>` tag would be represented like so:
```
<af-entity data="{contact_type: 'Individual'}" type="Contact" name="Individual1" label="Individual 1" actions="{create: true, update: true}" security="RBAC">
<af-field name="do_not_email" default="1" />
</af-entity>
```
Rationale:
- The `<af-field>` tag is appropriate here because these "entity properties" are in fact fields -- though they won't be presented as _form_ fields, they will be submitted as _API_ fields (consider the "getFields" api action).
- Storing as attributes of an `<af-field>` tag is an alternative to cramming arrays of increasing complexity into the `data` attribute of the `<af-entity>` tag, and this alternative facilitates easier validation.
- When parsing the stored form markup for display, it should be pretty easy to identify `<af-field>` tags within an `<af-entity>` container, then avoid formatting them as displayed form fields, and ensure they're attributed to the correct entity upon submission.https://lab.civicrm.org/dev/core/-/issues/3908Permission to view Subscription History in SearchKit2022-11-22T09:40:51ZwmortadaPermission to view Subscription History in SearchKitOverview
----------------------------------------
I've created a saved search using SearchKit to show contacts that have recently signed up to a mailing list. This search works fine for users with full administer permissions to CiviCRM ...Overview
----------------------------------------
I've created a saved search using SearchKit to show contacts that have recently signed up to a mailing list. This search works fine for users with full administer permissions to CiviCRM but doesn't show any results for users with more limited permissions to CiviCRM.
Reproduction steps
----------------------------------------
1. Create a search using SearchKit that uses the Contact Subscription Histories entity - see below
2. View the search as a user with access to CiviCRM but not the 'administer CiviCRM' permission
![image](/uploads/7ec66c8b8ae197ebb4c6d0c5a847cb36/image.png)
Current behaviour
----------------------------------------
The results don't load for the user with limited permissions. Note that the column headings are also missing.
![image](/uploads/aa2eadeac7872d9ff9432d0c6fcb0d4f/image.png)
Expected behaviour
----------------------------------------
The results should load
![image](/uploads/6a430f08519863c1cf05fb8f19b06bf8/image.png)
Environment information
----------------------------------------
CiviCRM 5.56.alpha1https://lab.civicrm.org/dev/core/-/issues/3906FormBuilder URL Filter dropdown with multiple values are only filterd with fi...2022-10-21T07:28:15ZdavidFormBuilder URL Filter dropdown with multiple values are only filterd with first valueOverview
----------------------------------------
If a URL filter with multiple values is used in formbuilder, all values are picked up and shown in the multiselect, but the search is only filterd with the first value.
e.g. /civicrm/for...Overview
----------------------------------------
If a URL filter with multiple values is used in formbuilder, all values are picked up and shown in the multiselect, but the search is only filterd with the first value.
e.g. /civicrm/forms/fzt-suche/#?event_type_id=2,3,4
![Unbenannt](/uploads/10a0f5f22f4acd9aaa2a2912743ae71a/Unbenannt.JPG)
Environment information
----------------------------------------
* __Browser:__ Firefox 105
* __CiviCRM:__ 5.54.0
* __PHP:__ 7.3
* __CMS:__ Drupal 7https://lab.civicrm.org/dev/core/-/issues/3905Need to increase data size for 'data' column on 'civicrm_job_log' table2022-10-12T13:27:08ZyashodhaNeed to increase data size for 'data' column on 'civicrm_job_log' tableOverview
----------------------------------------
Currently _data_ column of the _civicrm_job_log_ table is of data type TEXT. This is sufficient for running most jobs. However we have a some comprehensive log for mailchimp sync extensio...Overview
----------------------------------------
Currently _data_ column of the _civicrm_job_log_ table is of data type TEXT. This is sufficient for running most jobs. However we have a some comprehensive log for mailchimp sync extension and it would throw errors when running the job.
`INSERT INTO civicrm_job_log (domain_id , job_id , name , command , ...", "1406 ** Data too long for column 'data' at row 1`
Proposed behaviour
----------------------------------------
The Proposal is to change the data type of the _data_ column of the _civicrm_job_log_ table to LONGTEXT instead of TEXT.5.56.0yashodhayashodhahttps://lab.civicrm.org/dev/core/-/issues/3904SearchKit: Active Relationship filter doesn't work in Form Builder2024-02-01T11:35:21ZGhost UserSearchKit: Active Relationship filter doesn't work in Form BuilderOverview
----------------------------------------
When you create a report with Search Kit and Form Builder to view the current Active Relationships, when you filter by "Is Active: Yes" it messes up and shows you the inactive Relationsh...Overview
----------------------------------------
When you create a report with Search Kit and Form Builder to view the current Active Relationships, when you filter by "Is Active: Yes" it messes up and shows you the inactive Relationships.
Reproduction steps
----------------------------------------
1. Create a Search Kit with Related Contacts such as Below
![image](/uploads/76051b5efdcbe35c7ae8f8d0f06ef021/image.png)
2. In the Form Builder add the "Relationship is Active" Field to be able to filter by it.
![image](/uploads/973c5d23ca11fece04f5eb86e957bbbe/image.png)
3. In the Report just filter by active Relationhsips. It will show you the inactive relationships.
![image](/uploads/bca81addc8e401ebf691152bfe62b44f/image.png)
Current behaviour
----------------------------------------
When you filter in the Search Kit Form it filters correctly.
![image](/uploads/089efa35f6f7bbb42836608e7e9e6ad2/image.png)
But when you filter in the Form, it shows you the inactive relationships, as showed above.
When you filter by Inactive relationships they are showed correctly.
![image](/uploads/226ea4dd88937432a00b3db138d5ff69/image.png)
But when you filter by both, it shows only Inactive Relationships.
![image](/uploads/e06ba811de15c17b6db2439a6243727d/image.png)
When you leave the filtering empy it works fine. It shows Active and Inactive Relationships.
Expected behaviour
----------------------------------------
Filter by Active relationships when you input "Yes".
Filter by Inactive relationships when you input "No".
Environment information
----------------------------------------
* __CiviCRM:__ dmaster v.5.56https://lab.civicrm.org/dev/core/-/issues/3903FormBuilder - Unable to set default values for date ranges default values (UI...2024-03-13T17:16:43ZfrancescbassasFormBuilder - Unable to set default values for date ranges default values (UI problem)It's not possible to define date range default values when "Search by range" is selected in a config date filter options for an Afform.
![date-ranges](/uploads/00d838cdd6e6a5daa9a740e2eeb2612c/date-ranges.png)
I think it should be poss...It's not possible to define date range default values when "Search by range" is selected in a config date filter options for an Afform.
![date-ranges](/uploads/00d838cdd6e6a5daa9a740e2eeb2612c/date-ranges.png)
I think it should be possible to define two default date values corresponding the first with the start of the range and the second with the end.https://lab.civicrm.org/dev/core/-/issues/3899Creating a cms user account from a civi org contact converts the org contact ...2022-10-25T11:47:42ZDaveDCreating a cms user account from a civi org contact converts the org contact into an individualThis might be drupal 9 only - it seems ok in drupal 7 but haven't tried any others.
While there have been arguments that [corporations are people](https://www.npr.org/2014/07/28/335288388/when-did-companies-become-people-excavating-the-...This might be drupal 9 only - it seems ok in drupal 7 but haven't tried any others.
While there have been arguments that [corporations are people](https://www.npr.org/2014/07/28/335288388/when-did-companies-become-people-excavating-the-legal-evolution), with some comedy side-benefits, either:
* a civi org contact should stay an org contact when a cms user is created for it (using the actions dropdown on the contact summary - create user record),
* the action shouldn't be allowed
Since it seems to have worked in drupal 7, probably the first one.https://lab.civicrm.org/dev/core/-/issues/3898CiviCRM log triggers don't fire on CASCADE DELETE2022-10-25T11:48:10ZbrienneCiviCRM log triggers don't fire on CASCADE DELETEOverview
----------------------------------------
When there is a CASCADE DELETE on an entity record, it does not trigger the CiviCRM log for the records (such as from a custom field attached to an entity) that are deleted as a result of...Overview
----------------------------------------
When there is a CASCADE DELETE on an entity record, it does not trigger the CiviCRM log for the records (such as from a custom field attached to an entity) that are deleted as a result of the cascade. This behavior makes it difficult to restore custom data from the log tables when the entity it was attached to is deleted and then needs to be restored.
Reproduction steps
----------------------------------------
1. Create a custom field to be *Used For* Grants (**Administer > Custom data and Screens > Custom Fields > Add Set of Custom Fields**)
1. Create a new Grant record and be sure to fill out the custom field(s) (**CiviGrant > New Grant**)
1. Delete the grant record (**CiviGrant Dashboard > View > Delete**)
1. View the log table of the custom field and you will note that there is no delete log_action on the custom field in question
* If using the command line or a SQL editor like DBeaver, you can use the following command to note the lack of the delete action from the custom field civicrm_log table. (*Be sure to change tablename to the actual log table's name*).
```sql
SELECT id, log_date, log_action FROM tablename;
Current behaviour
----------------------------------------
If a record is deleted as a result of a CASCADE DELETE, then the action is not logged in the applicable civicrm_log table.
Expected behaviour
----------------------------------------
The log triggers should fire on records that are deleted, even if as a result of a CASCADE DELETE.
Comments
----------------------------------------
This issue has been previously noted on this [post](https://stackoverflow.com/questions/26328570/on-delete-cascade-not-firing-trigger) on Stack Overflow.https://lab.civicrm.org/dev/core/-/issues/3896api.Contact.create happy to create invalid employer relationship2022-10-20T07:25:22Zkonadaveapi.Contact.create happy to create invalid employer relationshipOverview
----------------------------------------
api.Contact.create does not check that the relationship between `employer_id` and the contact is valid.
Reproduction steps
----------------------------------------
Reproduced on dmaster....Overview
----------------------------------------
api.Contact.create does not check that the relationship between `employer_id` and the contact is valid.
Reproduction steps
----------------------------------------
Reproduced on dmaster.demo using combo of UI and API 3 Explorer. Showing as command line here to better illustrate.
```bash
$ cv api Contact.create first_name="Mickey" last_name="Mouse" email="mickey.mouse@example.com" contact_type="Individual"
{
"is_error": 0,
"version": 3,
"count": 1,
"id": 9,
"values": {...}
}
$ cv api Contact.create first_name="Minnie" last_name="Mouse" email="minnie.mouse@example.com" contact_type="Individual"
{
"is_error": 0,
"version": 3,
"count": 1,
"id": 10,
"values": {...}
}
$ cv api RelationshipType.getsingle name_b_a="Employer of" return="id,contact_type_b"
{
"id": "5",
"contact_type_b": "Organization"
}
$ cv api Relationship.create contact_id_a="9" contact_id_b="10" relationship_type_id="5"
{
"tip": "add debug=1 to your API call to have more info about the error",
"is_error": 1,
"error_message": "Invalid Relationship"
}
$ cv api Contact.create id="9" employer_id="10"
{
"is_error": 0,
"version": 3,
"count": 1,
"id": 9,
"values": {...}
}
$ cv api Relationship.get contact_id_a="9"
{
"is_error": 0,
"version": 3,
"count": 1,
"id": 5,
"values": {
"5": {
"id": "5",
"contact_id_a": "9",
"contact_id_b": "10",
"relationship_type_id": "5",
"is_active": "1",
"is_permission_a_b": "0",
"is_permission_b_a": "0",
"created_date": "2022-10-05 19:48:23",
"modified_date": "2022-10-05 19:48:23"
}
}
}
```
Current behaviour
----------------------------------------
An invalid relationship is created. On the contact summary screen, an employer may or may not be listed, but it's unlikely to be the invalid contact (i.e. it lists a unrelated org instead).
Expected behaviour
----------------------------------------
The API call should fail for the same reason as api.Relationship.create.
Environment information
----------------------------------------
Confirmed on dmaster.demo, and a local vanilla install of D9/Civi 5.48.2.https://lab.civicrm.org/dev/core/-/issues/3895SK/FB: Labelling a SK Form Builder form identically to a packaged search over...2022-10-25T11:48:33ZJonGoldSK/FB: Labelling a SK Form Builder form identically to a packaged search overwrites itIf you create two Search Forms with the same label, the machine name of the second one will automatically be changed. Eg. two forms labelled "Example" will create `afSearchExample` and `afSearchExample1`.
However, if one of the forms i...If you create two Search Forms with the same label, the machine name of the second one will automatically be changed. Eg. two forms labelled "Example" will create `afSearchExample` and `afSearchExample1`.
However, if one of the forms is a packaged form, this is NOT true.
### Steps to Replicate
* Enable an extension that provides a packaged SK form (e.g. CiviGrant provides `afSearchGrants`.
* Create a minimal Search Kit search.
* Create a form from that search and name it `Grants`.
### Expected Result
The new FB form is named `afSearchGrants1` and is separate from the packaged FB search form.
### Actual Result
The new FB form is named `afSearchGrants` and replaces the old form. You can't revert this without CLI access to rename the `.html` and `.json` files in `[civicrm.files]/ang`.
This came about when a client created a new FB search form and named it "Grants", causing their Grants tab to disappear.
I suspect that the naming behavior looks at other files in the same folder, and appends the `1` if it finds a file of the same name. It should be comparing against all `.aff.*` files. It should provide a warning that you're going to replace a core FB form.https://lab.civicrm.org/dev/core/-/issues/3893Searchkit: Change Rewrite field to textarea2023-11-15T14:51:59ZshaneonabikeSearchkit: Change Rewrite field to textareaHey there,
After realizing that we can use SMARTY conditions in Searchkit this really took one of our clients systems to an entire new level. Thanks so much for all the hard work on Searchkit!
## Problem
Presently, the Searchkit Rewri...Hey there,
After realizing that we can use SMARTY conditions in Searchkit this really took one of our clients systems to an entire new level. Thanks so much for all the hard work on Searchkit!
## Problem
Presently, the Searchkit Rewrite field is a textfield, which is fine if you want to append a few characters to the end or before a value. It gets extremely hard to read and also modify (I have to use a texteditor beside) to modify if you start using SMARTY attributes.
In the situation below, we are generating one column that contains one of two values using a SMARTY ```if```.
![Selection_001](/uploads/57432093e023009c9b311a77f1fe00eb/Selection_001.png)
to generate
![Selection_002](/uploads/1a87132c9a0e9ce080c8e9bd2418c5ea/Selection_002.png)
## Proposed solution
Would it be difficult to modify this field to a textarea instead? It would make it much easier to modify and read. I really don't know if this would be a massive change but I think it would really help. Also, we could provide a help icon to inform people that they can use SMARTY in these fields as long as they put quotes around the different values being retrieved (this was the element I was missing when I first tried and didn't get it working.
![Selection_003](/uploads/10973172b4588429613fbc87616ea879/Selection_003.png)5.56.0https://lab.civicrm.org/dev/core/-/issues/3882SearchKit - distinct values should be sorted by id2022-10-25T11:52:13ZvitiusSearchKit - distinct values should be sorted by idWhen we have List of contact name and dont use distinct. On output we get sorted list of names on contact id. And when we want have hyperlinks on contacts name, that works perfectly. But when we use distinct function, on output we get un...When we have List of contact name and dont use distinct. On output we get sorted list of names on contact id. And when we want have hyperlinks on contacts name, that works perfectly. But when we use distinct function, on output we get unsorted list of names. But links on contacts is sorted by contact id. That causes missmatch. First of display name have link to lowest contact id and last of display name have link to highest contact id.
I tried this on version 5.51.1 and 5.55.alpha1. And I tried this on case clients (you need enable multiple case clients) like you can see on images bellow. Also I tried this on event participants, where I use aggregation on event id and display participants names. On both distinct causes bad hyper links.
![image](/uploads/7fd977598194996923ddf3e1a698b261/image.png)
![image](/uploads/ac8b4684a84cc8da39b7179eff4ee749/image.png)https://lab.civicrm.org/dev/core/-/issues/3881Edit fields for invoicing information2022-10-25T11:52:40Zthoni56Edit fields for invoicing informationOverview
----------------------------------------
The form fields for invoicing information (in CiviEvent) seems to be hardcoded. E.g. it lacks company name and email. It does not seem possible to change or amend these fields.
Example u...Overview
----------------------------------------
The form fields for invoicing information (in CiviEvent) seems to be hardcoded. E.g. it lacks company name and email. It does not seem possible to change or amend these fields.
Example use-case
----------------------------------------
1. Create an event and enable web registrations
1. Make invoicing mandatory
2. Make a registration and notice what the only available fields are
Current behaviour
----------------------------------------
Hard coded fields
Proposed behaviour
----------------------------------------
Possiblity to use a profile, or custom form.
Comments
----------------------------------------
There is a StackExchange question around this: https://civicrm.stackexchange.com/questions/42202/how-can-i-add-company-to-billing-pay-later-fields but the proposed "solution" is hard and really not a solution.https://lab.civicrm.org/dev/core/-/issues/3875Pressing return on additional participants page for event registration goes b...2023-06-03T19:57:34ZlarsssandergreenPressing return on additional participants page for event registration goes back to previous page instead of forwardThere are three buttons on the additional participant page: Go Back, Continue, Skip Participant. Since all three are type="submit", when you press the return/enter key, the first button of type="submit" is clicked, so you go back one pag...There are three buttons on the additional participant page: Go Back, Continue, Skip Participant. Since all three are type="submit", when you press the return/enter key, the first button of type="submit" is clicked, so you go back one page. Contrast with the primary participant registration page, where return does take you to the next page because there is only one button or with a contribution page where return takes you to the confirmation page, again because there is only one button.
The easiest fix would be to change the types of the other buttons to "button". The button type [is set here](https://github.com/civicrm/civicrm-core/blob/c94963f7637912571ce62b33de60f7d5ce640f69/CRM/Core/Form.php#L758) for all buttons as "submit" unless type="reset" is passed to addButtons. So I propose to review button types in use, setting those that make sense as "submit" (next, done, submit, upload, process, etc) and others as "button" (cancel, refresh). Any buttons without a type will be left as "submit" so as to avoid breaking anything.
There is also a class default added to buttons that have isDefault, but it's unclear to me what this does.https://lab.civicrm.org/dev/core/-/issues/3874APIv4 Relationships refused if duplicated2022-11-26T20:59:14ZshaneonabikeAPIv4 Relationships refused if duplicated**Backlog**
I see that @samuelsov already reported this, but the bot closed the issue #451.
**Disabled Relationships**
I came across a scenario where if a Contact Relationship was disabled, and you attempt to create a new one (that ma...**Backlog**
I see that @samuelsov already reported this, but the bot closed the issue #451.
**Disabled Relationships**
I came across a scenario where if a Contact Relationship was disabled, and you attempt to create a new one (that matches dates) it is refused. Ironically, the UI let's me add the Relationship.
+ Create a Relationship with a start / end date
+ Disable relationship
+ Create a new Relationship with the same start / end date via UI (works)
+ Create a new Relationship with the same start / end date via APIv4 (fails with Duplicate Exception)
**Cases**
Today, I came across another scenario where we are using ActivityProfile with CiviRules. The gist is that when someone submits a CiviCase then CiviRules assigned the Case Coordinator to their case. It's the same person each time.
In this scenario, the APIv4 is also refused the submission because of the duplicated Relationship. But really I think it makes sense to have multiple cases open for one person with the same case coordinator managing them all right?
My scenario can be replicated without ActivityProfile
+ Create a Case for test user A and Coordinator X
+ Create a new Case for Test User A
+ Use the APiv4 to setup a relationship to Coordinator X
It should throw an exception Duplicate Relationship on relationship.create.
Thoughts?https://lab.civicrm.org/dev/core/-/issues/3868Link contribution view with asssociated entity2023-05-18T23:37:57ZyashodhaLink contribution view with asssociated entityWhen you view a contribution, there's no way to know whether this contribution was done as a part of membership, pledge or an event registration.
I propose provide this additional data. Display this under total amount
e,g
![Screens...When you view a contribution, there's no way to know whether this contribution was done as a part of membership, pledge or an event registration.
I propose provide this additional data. Display this under total amount
e,g
![Screenshot_from_2022-09-23_19-15-29](/uploads/24028770f5b17e20ab40334973061b05/Screenshot_from_2022-09-23_19-15-29.png)
Membership will be a link to membership view page.
(depending on the related entity we display the link)yashodhayashodhahttps://lab.civicrm.org/dev/core/-/issues/3866API - CustomGroup - extends_entity_column_value2022-09-26T23:06:37ZtschuettlerAPI - CustomGroup - extends_entity_column_valueOverview
----------------------------------------
Filtering custom field groupy by `extends_entity_column_value` is not possible via API. It is also not possible to create a custom field group via API explorer when trying to limit it by ...Overview
----------------------------------------
Filtering custom field groupy by `extends_entity_column_value` is not possible via API. It is also not possible to create a custom field group via API explorer when trying to limit it by `extends_entity_column_value`, because you have no option value to select.
Reproduction steps
----------------------------------------
1. Create a new Custom Field Group via UI.
* Let it extend `Activity` and limit it to `Phone Call`
1. Try to retrieve that Custom Field Group via APIv3 or APIv4 by adding a filter on `extends_entity_column_value`
1. The field for the Option list will remain empty with a loading gif in the API Explorer
Current behaviour
----------------------------------------
``` php
\Civi\Api4\CustomGroup::get()
->addWhere('extends', '=', 'Activity')
->addWhere('extends_entity_column_value:name', '=', 'Phone Call')
->execute();
```
Returns an empty result. The value for `extends_entity_column_value` seems to get dropped in the process of executing the query.
Creating the Custom Group via API works via code or browser, by creating the request manually.
https://dmaster.demo.civicrm.org/civicrm/api4#/explorer/CustomGroup/create?values=%5B%5B%22title%22,%22Phone%20Call%20Fields%22%5D,%5B%22extends%22,%22Activity%22%5D,%5B%22extends_entity_column_value:name%22,%22Phone%20Call%22%5D%5D
There is no drop down option in the API Explorer.
``` php
\Civi\Api4\CustomGroup::create()
->addValue('title', 'Phone Call Fields')
->addValue('extends', 'Activity')
->addValue('extends_entity_column_value:name', 'Phone Call')
->execute();
```
Expected behaviour
----------------------------------------
Existing custom field groups should be filterable by `extends_entity_column_value` via API.
Environment information
----------------------------------------
* __Browser:__ _Firefox 102.2.0
* https://dmaster.demo.civicrm.org
Comments
----------------------------------------
This seems to fail both with APIv3 and APIv4.