Development issueshttps://lab.civicrm.org/groups/dev/-/issues2021-03-16T02:13:04Zhttps://lab.civicrm.org/dev/core/-/issues/2461Boolean custom values can't be of type boolean2021-03-16T02:13:04ZJonGoldBoolean custom values can't be of type booleanOverview
----------------------------------------
The CustomValue APIv4 fails if you pass in a boolean with a value of `TRUE` or `FALSE`.
Reproduction steps
----------------------------------------
* Create a multi-record custom field s...Overview
----------------------------------------
The CustomValue APIv4 fails if you pass in a boolean with a value of `TRUE` or `FALSE`.
Reproduction steps
----------------------------------------
* Create a multi-record custom field set.
* Create a boolean custom field.
* Try writing to that custom field with a value of `TRUE` or `FALSE`. Note that this isn't possible with API Explorer, because that will pass the *string* `"TRUE"` or `"FALSE"`.
Current behaviour
----------------------------------------
```
Error
value: is not of the right field data type: Boolean
```
Expected behaviour
----------------------------------------
Value saves correctly.
Comments
----------------------------------------
This happens because `CRM_Utils_Type::escape()` does a `preg_replace` on Boolean fields, assuming they're strings. And on APIv3, that would be correct. On APIv4 we can pass an actual Boolean, which fails because it can't be parsed as a string.
I'm not sure if this belongs more appropriately in `CRM_Utils_Type::escape()` or `CRM_Utils_Rule::boolean()`. I'll let more knowledgeable folks bikeshed that.5.37.0JonGoldJonGoldhttps://lab.civicrm.org/dev/wordpress/-/issues/96Incorrect capability assigned to CiviCRM menu items2021-10-16T13:35:41ZhaystackIncorrect capability assigned to CiviCRM menu itemsThe capability assigned to CiviCRM sub-menu items in 5.34+ is `access_civicrm` and should be `administer_civicrm` by default.
Edit: because `administer_civicrm` is not automatically granted to WordPress admins, `manage_options` seems a ...The capability assigned to CiviCRM sub-menu items in 5.34+ is `access_civicrm` and should be `administer_civicrm` by default.
Edit: because `administer_civicrm` is not automatically granted to WordPress admins, `manage_options` seems a more sensible default capability. I have add filters so that this can be overridden if required.
https://github.com/civicrm/civicrm-wordpress/pull/245haystackhaystackhttps://lab.civicrm.org/dev/core/-/issues/2460Ordering of theme CSS files2023-07-30T05:03:20Zaydunsaidan.saunders@squiffle.ukOrdering of theme CSS filesOverview
----------------------------------------
Change the ordering of CSS files so that theme files can easily override core files.
Current behaviour
----------------------------------------
A theme can declare itself through a `myex...Overview
----------------------------------------
Change the ordering of CSS files so that theme files can easily override core files.
Current behaviour
----------------------------------------
A theme can declare itself through a `myextension.theme.php` file which is handled by the civix boilerplate using `hook_civicrm_themes()`. If the theme is active it causes the theme's CSS files to be loaded in place of the default Greenwich theme.
Other CSS files like `contactSummary.css` are loaded after the theme's CSS file making it difficult to override.
Proposed behaviour
----------------------------------------
Change the order so that theme CSS files are loaded after other core CSS so that theme files can do their job more easily.
Example
-------
`contactSummary.css` has:
```
#crm-container div.crm-summary-display_name {
font-size: 19px;
padding-bottom: 10px;
}
```
`civicrm.css` (from Finsbury Park) has:
```
#crm-container div.crm-summary-display_name {
font-size: 1.4rem;
margin: 30px 0 20px;
line-height: 1.4rem;
}
```
The current ordering results in the theme's font-size being overridden by core.
Comments
----------------------------------------
Can someone point me to where the theme's CSS gets added to the page?https://lab.civicrm.org/dev/core/-/issues/2459Changing a custom field from multiple choice to Text breaks the API2021-03-16T14:41:38ZJonGoldChanging a custom field from multiple choice to Text breaks the APIOverview
----------------------------------------
Changing a custom field from a multiple choice (Radio, Checkboxes, etc.) to a free-entry text box works, until you try to write to the custom field via the API.
Reproduction steps
------...Overview
----------------------------------------
Changing a custom field from a multiple choice (Radio, Checkboxes, etc.) to a free-entry text box works, until you try to write to the custom field via the API.
Reproduction steps
----------------------------------------
1. On a demo site, go to **Administer » Customize Data and Screens » Custom Fields**.
1. In *Constituent Information*, edit the *Most Important Issue* field to have a *Field Input Type* of **Single-line input field (text or numeric)** and save.
1. Attempt to use APIv3 `Contact.create` to write a value to the field that wasn't in the original set of multiple-choice values.
Current behaviour
----------------------------------------
API Error - your value isn't an accepted value for this field.
Expected behaviour
----------------------------------------
A custom field with a data type of "String" and HTML type of "Text" should take any alphanumeric value.
Comments
----------------------------------------
Changing the HTML type doesn't remove the Option Group ID. While arguably the API code should ignore that, it seems more important that the data be correct.5.37.0JonGoldJonGoldhttps://lab.civicrm.org/dev/core/-/issues/2458Feature Request: API endpoint to trigger rebuild paths2021-03-14T14:07:46ZhescoFeature Request: API endpoint to trigger rebuild pathsOverview
----------------------------------------
As a devops engineer responsible for automating the installation, upgrade, and migration of CiviCRM, I want an API endpoint which I can invoke with the cv utility to run the rebuild path...Overview
----------------------------------------
As a devops engineer responsible for automating the installation, upgrade, and migration of CiviCRM, I want an API endpoint which I can invoke with the cv utility to run the rebuild paths script, accessible through the gui on the drupal platform at: /civicrm/admin/setting/updateConfigBackend?reset=1
Current behaviour
----------------------------------------
Currently, performing this operation requires that
I visit a webpage on the running installation, at:
/civicrm/admin/setting/updateConfigBackend?reset=1 leanup Caches, then a >_Reset Paths button.
Proposed behaviour
----------------------------------------
I can already use `cv flush` to accomplish the first task.
I next need a new option to `cv` which will invoke this process,
and to have that process documented at `cv -h`.homotechsualhomotechsualhttps://lab.civicrm.org/dev/core/-/issues/2457Notice: A non well formed numeric value encountered when choosing "other amou...2023-07-09T19:01:32ZDaveDNotice: A non well formed numeric value encountered when choosing "other amount" on contribution page using non-US settings`Notice: A non well formed numeric value encountered in CRM_Price_BAO_LineItem::format() (line 317 of .../web/sites/all/modules/civicrm/CRM/Price/BAO/LineItem.php).`
Haven't looked further yet. Set the settings to non-US money formats a...`Notice: A non well formed numeric value encountered in CRM_Price_BAO_LineItem::format() (line 317 of .../web/sites/all/modules/civicrm/CRM/Price/BAO/LineItem.php).`
Haven't looked further yet. Set the settings to non-US money formats and then visit a contribution page and choose other amount and fill it in, e.g. `12,34`, then on the next page you get the notice. Everything still works though.https://lab.civicrm.org/dev/core/-/issues/2456Explore use of JWTs for authentication2023-07-07T05:03:19ZcolemanwExplore use of JWTs for authentication(*Migrated from a totten comment on another thread about simulating permissions in afform and searchkit*)
## JSON Web Tokens: Microsoft example
(*This example demonstrates the data-flow. Many symbols/URLs are edited to improve readabil...(*Migrated from a totten comment on another thread about simulating permissions in afform and searchkit*)
## JSON Web Tokens: Microsoft example
(*This example demonstrates the data-flow. Many symbols/URLs are edited to improve readability/intuition.*)
A "JSON Web Token" (JWT) is a building-block for an access-control system. (Analogy: JSON serves a purpose like XML... but JSON is easier to encode/decode/remix/improvise. Similarly, JWT serves a purpose like ASN.1/X.509... but JWT is easier to encode/decode/remix/improvise.)
Microsoft uses JWT for their web-service APIs - and also for email APIs, like MS Exchange Online. When Civi talks to MS Exchange Online, it uses JWTs. In this process, a user "Alice" (`alice@example.com`) starts out in Civi web UI. We redirect her to `https://login.microsoftonline.com`, where she clicks a button to say "Yes, trust CiviCRM", and (long-story-short) MS sends us an access token.
This access token looks like a long, random password (`aSdF12.34QwErTy.DvORak`), and we can use it to make REST calls. For example, we might request a copy of Alice's user profile:
```
GET https://api.microsoft.com/about-me HTTP/1.1
Authorization: Bearer aSdF12.34QwErTy.DvORak
```
```
HTTP/1.1 200 OK
Content-type: application/json
{"email": "alice@example.com", "first_name": "Alice", "last_name": "Alison", ...}
```
Again, it looks like a password, so one can plug it into many different systems. We can use it to connect to IMAP or SMTP servers.
But it's not really a password. It is encoded JSON. If you clean it up, then it looks like this:
```js
{
"issuer": "login.microsoftonline.com",
"user": "alice@example.com",
"scopes": ["imap", "smtp", "profile"],
"expires": "2021-04-08 12:16:20"
}
```
This says that `login.microsoftonline.com` (the master security service at Microsoft) is vouching for us. We're approved to access a few services (`"scopes":["imap", "smtp", "profile"]`) on behalf of a particular person (`"user": "alice@example.com"`). When we connect to `api.microsoft.com` or IMAP or SMTP, the server parses the JWT, validates the signature cryptographically, and then gives us access.
The fields (`user`, `scopes`, etc) determine access control. If we try to access any other API -- editing Alice's address book, deleting Word docs, generating maps, etc -- then it will reject us. That's because our `"scopes"` do not include `address_book`, `manage_docs`, or `mapping`.
The token format doesn't *have* to be based on JSON or JWT. Civi's email hashes are a fine example of a token that doesn't use JSON. However, JSON is flexible and easy to parse. If you're designing a protocol, you have a lot of latitude to pick and choose which fields to include. Additionally, because it's standard, it's easier to inspect/debug. (Got a failed request? Decode the JWT and see if anything looks wrong.)
## JSON Web Tokens: Why
Why would someone like Microsoft adopt an access-token pattern like JWT?
Because they are actually running many distributed apps - and, when you get to a certain scale (#apps/#devs/#users), it gets hard to think straight (or run performantly) if they are linked-up one-by-one using a shared session.
Ordinarily, one would expect the demands on a self-hosted PHP app to be gentle enough to address with a straight-forward session/global variable (`$session->get('userID')`; `global $user`). There's a lot of mileage there. However, with the complexity of supporting multiple CMSs with different routing/session/identity mechanisms -- and with the goal of doing targeted permission escalations/changes/bypasses -- I'm not so sure. Civi is not positioned to be as simple as a singular PHP app - maybe it's more like a distributed app (where access+identity messages are coordinated among many different components - Drupal, Joomla, WordPress, Civi QF, Civi APIs, etc)
## Browser (JS) apps and alternative permissions
OK, so how would you use JWT to accomplish alternate permissions in a Civi/JS/Angular/API app?
Recall that the page-load goes a bit like this:
```
GET https://example.org/civicrm/search HTTP/1.1
Cookie: SESS=abcd1234
GET https://example.org/civicrm/ajax/api4/SavedSearch/get?name=foobar HTTP/1.1
Cookie: SESS=abcd1234
GET https://example.org/civicrm/ajax/api4/Contact/get?complexCriteria=... HTTP/1.1
Cookie: SESS=abcd1234
```
In each request, the permissions are determined by the cookie. But you don't want those permissions. So... don't use the cookie. Use something with different permissions - like a JWT.
```
GET https://example.org/civicrm/search HTTP/1.1
Cookie: SESS=abcd1234
GET https://example.org/civicrm/ajax/api4/SavedSearch/get?name=foobar HTTP/1.1
Authorization: Bearer aSdF12.34QwErTy.DvORak
GET https://example.org/civicrm/ajax/api4/Contact/get?complexCriteria=... HTTP/1.1
Authorization: Bearer aSdF12.34QwErTy.DvORak
```
During the initial page-view, you have to construct and output the token. This is where you decide what kind of actions will be permitted. Maybe it looks like:
```php
$token = Civi::service('crypto.jwt')->encode([
'exp' => time() + 3600,
'scopes' => ['api4/SavedSearch/get', 'api4/Contact/get'],
]);
Civi::resources()->addSetting('apiAuthToken', $token);
```
or maybe:
```php
$token = Civi::service('crypto.jwt')->encode([
'exp' => time() + 1800,
'scopes' => ['SavedSearch:foobar'],
]);
Civi::resources()->addSetting('apiAuthToken', $token);
```
or:
```php
$token = Civi::service('crypto.jwt')->encode([
'exp' => time() + 3600,
'contactId' => 1234,
'savedSearch' => 'foobar',
'perms' => ['access AJAX API']
Civi::resources()->addSetting('apiAuthToken', $token);
```
This is a very generic/flexible way to think about changing permissions while supporting AJAX apps.https://lab.civicrm.org/dev/core/-/issues/2455league/csv package a bit of a booby trap in waiting2023-07-06T05:03:19Zeileenleague/csv package a bit of a booby trap in waitingWe currently have v9.3 of csv/league on our wmf code and 9.2 in our civi code and have no issues - however we recently tried 9.6 in our CI and found it crashes when co-existing with 9.2 which civi has - due to this removal
https://githu...We currently have v9.3 of csv/league on our wmf code and 9.2 in our civi code and have no issues - however we recently tried 9.6 in our CI and found it crashes when co-existing with 9.2 which civi has - due to this removal
https://github.com/thephpleague/csv/commit/bbfb63b6c4df045353f095f842942038a529f69a#diff-fe65dcdace9cc44252b537bee79dd574edd1bccf6cee646cc860006a6ec50e8bL119
Although we have no specific reason to update to 9.6 at this stage we can assume that some WP sites might in the nearish future and I think we could mitigate the iminent pain by upgrading civi to a patched version of 9.6 that puts that function back & hence gets us past the transitional wobbles (we can unpatch later on)https://lab.civicrm.org/dev/core/-/issues/2454Access Control by Financial Type permissioning does not cover contribution_recur2023-07-08T05:03:19ZandyburnsAccess Control by Financial Type permissioning does not cover contribution_recurWhen having _Access Control by Financial Type_ turned on a user without the permission over a given financial type can still access it in 3 ways:
- Can view corresponding recurring contribution (under recurring contributions tab)
- Can ...When having _Access Control by Financial Type_ turned on a user without the permission over a given financial type can still access it in 3 ways:
- Can view corresponding recurring contribution (under recurring contributions tab)
- Can cancel it
- Can view all contributions related to the recurring. So it is a backdoor around the permissioning.
I've checked the financial type in civicrm_contribution_recur and it is one they should not see.
![cancel-recurring](/uploads/f514ebffe682dfa823c54512a9a5b505/cancel-recurring.png)
![recurring-contritbutions-log](/uploads/a28ecf0d139ff3c11c1b3aad320576f3/recurring-contritbutions-log.png)
WP 5.6.2 Civi 5.31.1https://lab.civicrm.org/dev/core/-/issues/2453payment balance should be cast to float, not int, when checking if a contribu...2021-03-10T19:47:06Zlcdwebpayment balance should be cast to float, not int, when checking if a contribution form should loadIf the contribution form is loaded in "invoice" mode -- an existing contrib ID is passed to allow payment of the balance due -- there is a check to make sure there is actually a balance due. But that value is cast as an integer, which me...If the contribution form is loaded in "invoice" mode -- an existing contrib ID is passed to allow payment of the balance due -- there is a check to make sure there is actually a balance due. But that value is cast as an integer, which means if the balance due is less than 1, it fails the check. It should be cast as a float.
https://github.com/civicrm/civicrm-core/blob/master/CRM/Contribute/Form/Contribution/Main.php#L14755.37.0lcdweblcdwebhttps://lab.civicrm.org/dev/financial/-/issues/170Minor buttonrama issue with Cancel button after exporting financial batch2021-03-19T19:29:58ZDaveDMinor buttonrama issue with Cancel button after exporting financial batchOn the non-modal screen after you choose the export format and export the batch, what's supposed to happen is the Cancel button text should change to say "Done". Since it's no longer an `<input>` element the current method used to do tha...On the non-modal screen after you choose the export format and export the batch, what's supposed to happen is the Cancel button text should change to say "Done". Since it's no longer an `<input>` element the current method used to do that doesn't work anymore.
It's this line in templates/CRM/Financial/Form/Export.tpl:
`$('#_qf_Export_cancel').val('{/literal}{ts}Done{/ts}{literal}');`
It's a little tricky with the button because you need to replace the text without also replacing the `<i>` element which is inside the button, so you can't just change `val` to `text`. This might do it as long as the translation doesn't have special chars in it, but that would have been a problem before too:
`$('#_qf_Export_cancel').html($('#_qf_Export_cancel').html().replace('{/literal}{ts}Cancel{/ts}{literal}', '{/literal}{ts}Done{/ts}{literal}'));`
Or since the icon shouldn't be an X anymore anyway, maybe it's ok to just use text().5.37.0https://lab.civicrm.org/dev/core/-/issues/24525.36 upgrade should check if foreign keys exist before adding them2021-03-10T04:47:08ZDaveD5.36 upgrade should check if foreign keys exist before adding themThere's a function in Upgrade/Base.php to check for this: checkFKExists. I thought I remembered a generic function for adding stuff but all I see is safeRemoveFK().There's a function in Upgrade/Base.php to check for this: checkFKExists. I thought I remembered a generic function for adding stuff but all I see is safeRemoveFK().5.36.0https://lab.civicrm.org/dev/core/-/issues/2451The mailings screen is very slow to load when there are many campaigns in the...2021-03-17T01:46:25ZromainThe mailings screen is very slow to load when there are many campaigns in the databaseOverview
----------------------------------------
Opening the mailings screen takes a very long time (~30 seconds in my case), and this also happens on other pages.
Using the performance analysis of the browser, I was able to pin it do...Overview
----------------------------------------
Opening the mailings screen takes a very long time (~30 seconds in my case), and this also happens on other pages.
Using the performance analysis of the browser, I was able to pin it down to a javascript loop that breaks down a list of select options into groups: https://github.com/civicrm/civicrm-core/blob/master/js/Common.js#L440
The wrapAll function loops on each element of the group and insert it into the newly created DOM element, which I imagine triggers internally a analyzeHTML event in the browser.
On the mailings screen, this loop is used by the campaigns search field, I'm guessing this problem was not noticed elsewhere because my organisation has defined many campaigns (~ 2000).
Reproduction steps
----------------------------------------
1. Use a database with many campaigns (e.g. 2000)
1. Click on Mailings > Sent and scheduled mailings
1. Be patient and notice how the browser is stuck while the page loads
Environment information
----------------------------------------
Your mileage may vary depending on how fast your computer can redraw repeatedly the page
Comments
----------------------------------------
I have already prepared a fix for it, will PRhttps://lab.civicrm.org/dev/core/-/issues/2450Activity contact is not updated when contribution contact is changed2023-02-23T16:00:44ZPatrick Figelpfigel@greenpeace.orgActivity contact is not updated when contribution contact is changedPrior to 5.34, when the `contact_id` of a contribution was updated, `CRM_Contribute_BAO_Contribution` would also update the source or target contact of the corresponding contribution activity. In 5.34, [a change was merged](https://githu...Prior to 5.34, when the `contact_id` of a contribution was updated, `CRM_Contribute_BAO_Contribution` would also update the source or target contact of the corresponding contribution activity. In 5.34, [a change was merged](https://github.com/civicrm/civicrm-core/pull/19202) that causes this update to be skipped. This leads to the contribution activity being stuck with the wrong/old contact.
This seems to affected at least one extension: https://github.com/lcdservices/biz.lcdservices.movecontrib5.37.0https://lab.civicrm.org/dev/core/-/issues/2449Contribution page creates a wrong amount and probably payment processor use t...2021-03-15T18:40:07ZjaapjansmaContribution page creates a wrong amount and probably payment processor use this wrong amount**Steps to reproduce**
1. Set localization settings **decimal separator**: `,` and **thousand separator**: `.`
2. Create a contribution page with a amount `897.654.321,987654321`
3. Make a contribution with this contribution page in liv...**Steps to reproduce**
1. Set localization settings **decimal separator**: `,` and **thousand separator**: `.`
2. Create a contribution page with a amount `897.654.321,987654321`
3. Make a contribution with this contribution page in live mode. (We used a dummy payment processor)
**Whats is wrong?**
The amount is changed from `897.654.321,99` to `89.765.432.198.765,00` this is shown on the thank you page as in CiviCRM contribution. So it looks like the wrong amount is charged on the dummy payment processor.
**Screenshots**
![Screenshot_20210309_120737](/uploads/b26eded4cc5e5312a44daa90b1971db9/Screenshot_20210309_120737.png)
![Screenshot_20210309_120742](/uploads/dfcf28497afd690f702ca5399fe89672/Screenshot_20210309_120742.png)
![Screenshot_20210309_120643](/uploads/4fe5b4cfcb0d28d5ca5177d83b4c30fd/Screenshot_20210309_120643.png)
![Screenshot_20210309_120834](/uploads/dfb07362bc3421f7fdc4e4c9fd40b5d4/Screenshot_20210309_120834.png)
**Environment**
Drupal 7
CiviCRM 5.37.aplha1 (dmaster)5.37.0https://lab.civicrm.org/dev/core/-/issues/2448Possible bug: authenticated user with ACL Edit Right for a group of contacts ...2023-07-05T05:03:19ZalmeidamPossible bug: authenticated user with ACL Edit Right for a group of contacts can "Record Activity, Tag Contact and Add to Group" on ALL contactsOverview
----------------------------------------
I have an ACL role that has Edit right over a group of contacts (group A). When I list all my contacts this user is able perform some actions it shouldn't on the other contacts (not in g...Overview
----------------------------------------
I have an ACL role that has Edit right over a group of contacts (group A). When I list all my contacts this user is able perform some actions it shouldn't on the other contacts (not in group A).
Actions: "Record Activity", "Tag Contact" and "Add to group"
Reproduction steps
----------------------------------------
1. Create ACL with Edit Permission over a group of contacts (i.e. European Manager has Edit Access over European Contacts)
![image](/uploads/33e2bf2f5eadca89c6742b49072991f8/image.png)
2. Give "View All" permission to authenticated users in CMS
OR
Do not give "View All Contacts" permission to authenticated users in CMS AND create a group "All Contacts", add all contacts to that group and give ACL View permission to authenticated users
(Note: the only other CMS permissions set for this role are "CiviCRM: access CiviCRM backend and API and CiviCRM: access AJAX API).
3. List All Contacts
Current behaviour
----------------------------------------
You'll see that this user can perform actions "Record Activity", "Tag Contact" and "Add to Group" on all contacts.
![image](/uploads/7cbd921841b091cf276de03e0b47202d/image.png)
Expected behaviour
----------------------------------------
This user should only be allowed these actions (Record activity, etc) on the contacts it has Edit rights over. For the ones it has only View access, it should only be allowed to "View" and "Send Email".
Environment information
----------------------------------------
* __CiviCRM:__ 5.33.2
* __PHP:__ 7.4
* __CMS:__ Drupal 7
* __Database:__ MySQL 5.7
Comments
----------------------------------------
I am unsure if this is a bug or just a bad configuration on my part, but the inconsistency brought me to create this issue.
I have found a counter example that further exposes this inconsistency:
* When we don't have "View All Contacts" for authenticated users and we an ACL View Permissions on "All Groups" (instead of an ACL View permission over a group of all contacts) .
With this configuration we don't get "Record Activity", "Tag Contact" or "Add to Group" on any of the contacts:
![image](/uploads/6f28d4906016223ffc130e9228c89e19/image.png)
![image](/uploads/1e34b4040254cbfa90d31867b4052772/image.png)
This may actually be the expected result, since my user does not have "Manage Groups" permission.
However, what I would actually like to achieve is:
* All authenticated user can View All contacts
* Users with Edit ACLs can edit specific contacts
* Users with ACL's can Add to groups (and created groups) of contacts ONLY over which they have Edit Permission.
Which seems impossible at the moment.https://lab.civicrm.org/dev/core/-/issues/2447Wrong event fee shown in CiviCRM2023-07-07T05:03:20ZjaapjansmaWrong event fee shown in CiviCRM**Steps to reproduce**
1. Set the localization settings to **decimal separator**: `,` and **thousand separator**: `.`
2. Create a price set with two quantity fields and a drop down.
3. Create an event with only registration and payments...**Steps to reproduce**
1. Set the localization settings to **decimal separator**: `,` and **thousand separator**: `.`
2. Create a price set with two quantity fields and a drop down.
3. Create an event with only registration and payments and select the created price set above
4. Do a registration and a payment. All amounts are correct on the registration screen
5. After you have done a registration check the participant list or the event tab on the contact card. And/or click on view participant. The total amount for the event fee is displayed wrong.
**Screenshot**
Below a screenshot which shows the wrong amount.
![Screenshot_20210309_114606](/uploads/c3150fda8f90aacccfc26b9c50584e92/Screenshot_20210309_114606.png)
**Remarks**
This also happens when you do an event registration from the contact record in CiviCRM.
**Environment**
Drupal 7
CiviCRM 5.37.aplha1 (dmaster)https://lab.civicrm.org/dev/core/-/issues/2446Custom field of type money and drop down does not hold the selected option (C...2021-12-01T09:37:57ZjaapjansmaCustom field of type money and drop down does not hold the selected option (CiviCase & CiviContact)**Steps to reproduce**
1. Create custom field of type money and input type Drop Down Select List.
2. Add a couple of options
3. Go to a case and select a value for the custom field press save.
4. Check the custom field value it is saved...**Steps to reproduce**
1. Create custom field of type money and input type Drop Down Select List.
2. Add a couple of options
3. Go to a case and select a value for the custom field press save.
4. Check the custom field value it is saved and displayed
5. Press edit again - the drop down is now empty
Here is a screen recording of the problem:
![Dropdown_on_case](/uploads/4bef0bd4b99af9d3b0cfab36334c4a43/Dropdown_on_case.gif)
**Remarks**
This problem also occurs when you add a money drop down for contacts (probably also on other screens).
**Environment**
Drupal 7
CiviCRM 5.37.alpha1https://lab.civicrm.org/dev/financial/-/issues/169"Export" from Batch Edit screen no longer works on D82021-03-11T19:14:54ZJonGold"Export" from Batch Edit screen no longer works on D8#### To replicate on d8master:
* Click **Contributions » Accounting Batches » New Batch**.
* Click **Save**.
* Assign at least one transaction to the batch.
* Go to **Contributions » Accounting Batches » Open Batches**.
* Attempt to expo...#### To replicate on d8master:
* Click **Contributions » Accounting Batches » New Batch**.
* Click **Save**.
* Assign at least one transaction to the batch.
* Go to **Contributions » Accounting Batches » Open Batches**.
* Attempt to export, either from the *Actions* menu, or by clicking **More » Export**.
* A pop-up will appear allowing you to select the export format. Click **OK**
#### Expected result
Batch export proceeds.
#### Actual result
Nada.
The Dev console shows the error - "jquery.redirect.min.js" can't be found. This has to do with how the Resource URLs are split into `core` and `packages` inside `<webroot>/libraries/civicrm`. It's impossible to call `jquery.redirect.min.js`.
Moreover, this UI has always been a bit flaky. If you click **Transactions** on the *Open Batches* screen, the **Export** button will bring you to the next screen. The two methods I outlined above bring up an extra modal dialog, the options of which are repeated on the next screen. So rather than fix the bug, I think we should remove the modal altogether.5.37.0JonGoldJonGoldhttps://lab.civicrm.org/dev/core/-/issues/2445Soft Credit Type does not display in Contribution Detail report2023-07-05T05:03:18ZyashodhaSoft Credit Type does not display in Contribution Detail reportThe value for _Soft Credit Type_ is missing in _Contribution Detail_ report.
![missing_soft_credit_type](/uploads/3b85264817fa79fe1c993ec4a0de80eb/missing_soft_credit_type.png)The value for _Soft Credit Type_ is missing in _Contribution Detail_ report.
![missing_soft_credit_type](/uploads/3b85264817fa79fe1c993ec4a0de80eb/missing_soft_credit_type.png)yashodhayashodha