CiviCRM Core issueshttps://lab.civicrm.org/dev/core/-/issues2020-08-07T03:09:34Zhttps://lab.civicrm.org/dev/core/-/issues/1675Adding a timeline to a case doesn't get the last activity in the timeline right2020-08-07T03:09:34ZDaveDAdding a timeline to a case doesn't get the last activity in the timeline rightI can see it working in 5.20 and 5.22, not working in 5.23/5.24/master, so stopped working in 5.23. Not sure why yet.
1. Edit a case type and click add at the far right and from the dropdown choose timeline.
1. Add some activity to the ...I can see it working in 5.20 and 5.22, not working in 5.23/5.24/master, so stopped working in 5.23. Not sure why yet.
1. Edit a case type and click add at the far right and from the dropdown choose timeline.
1. Add some activity to the timeline config. Doesn't really matter what, let's say a meeting at 7 days offset from case start.
1. Save.
1. Create a case of that type.
1. Click add timeline, in the middle of the manage case screen. Choose the timeline you added earlier. If you forgot to give it a title it will just be called "Timeline". The title doesn't make a difference here.
1. It appears to succeed but it also appears as if no activities are added to the case. The activity has been added, but it's on the non-case side and you can see it on the client's regular activity tab.
1. If you have multiple activities in the timeline then it will add all except the last one to the case, and the last one will be on the non-case side.5.24.0https://lab.civicrm.org/dev/core/-/issues/1623My Case dashlet doesn't sort by name but contact_id instead2020-03-02T17:03:11ZMonish DebMy Case dashlet doesn't sort by name but contact_id insteadOverview
----------------------------------------
My Case dashlet doesn't sort by name but contact_id instead
Reproduction steps
----------------------------------------
1. Enable CiviCase component
2. Create multiple case for differen...Overview
----------------------------------------
My Case dashlet doesn't sort by name but contact_id instead
Reproduction steps
----------------------------------------
1. Enable CiviCase component
2. Create multiple case for different contact
3. Go to dashboard and add 'My Cases' dashlet.
4. Try to sort by 'Contact'
Current behaviour
----------------------------------------
![after](/uploads/e365f2ba1e39512e79ebffb165f54ade/after.gif)
Expected behaviour
----------------------------------------
As you can sort by 'Contact' doesn't consider the name. Internally it is sorted by contact ID which is not correct, which should be by sort name.
5.24.0Monish DebMonish Debhttps://lab.civicrm.org/dev/core/-/issues/1584Allow payment processors to indicate whether they require an email address2020-02-24T21:27:10Zaydunsaidan.saunders@squiffle.ukAllow payment processors to indicate whether they require an email addressOverview
----------------------------------------
Payment processors in webforms are assumed to require an email address, but that is not necessarily true, for example in the case of the Cash/Check payment processor. Currently there is ...Overview
----------------------------------------
Payment processors in webforms are assumed to require an email address, but that is not necessarily true, for example in the case of the Cash/Check payment processor. Currently there is no way for the payment processor to indicate that it does not require an address.
Proposed changes
----------------
~~Create CRM_Core_Payment::requiresEmailAddress() to return TRUE, but can be overridden by processors - https://github.com/civicrm/civicrm-core/pull/16503~~
~~Adjust wf_crm_webform_postprocess.inc to check requiresEmailAddress() (if method is defined) - https://github.com/colemanw/webform_civicrm/pull/292~~
~~Override requiresEmailAddress() in Cash processor - https://lab.civicrm.org/extensions/cashpp/blob/master/CRM/Core/Payment/Manual/Cash.php#L8-10~~
[Updated as per Eileen's comment]
Create CRM_Core_Payment::supportsNoEmailProvided() to return FALSE, but can be overridden by processors - https://github.com/civicrm/civicrm-core/pull/16503
Adjust wf_crm_webform_postprocess.inc to check $processor->supports('NoEmailProvided')- https://github.com/colemanw/webform_civicrm/pull/292
Override supportsNoEmailProvided() in Manual processor to return TRUE
5.24.0aydunsaidan.saunders@squiffle.ukaydunsaidan.saunders@squiffle.ukhttps://lab.civicrm.org/dev/core/-/issues/1579CRM_Core_Payment_PayPalProIPN should not call getPayPalPaymentProcessorID() i...2020-08-06T21:15:00ZAllenShawCRM_Core_Payment_PayPalProIPN should not call getPayPalPaymentProcessorID() if processor_id is clearly provided in URLWhen processing PayPal Pro IPN messages, `CRM_Core_Payment_PayPalProIPN::main()` attempts to determine the payment processor ID by calling `self::getPayPalPaymentProcessorID()` ([code reference](https://github.com/civicrm/civicrm-core/bl...When processing PayPal Pro IPN messages, `CRM_Core_Payment_PayPalProIPN::main()` attempts to determine the payment processor ID by calling `self::getPayPalPaymentProcessorID()` ([code reference](https://github.com/civicrm/civicrm-core/blob/990a93e05dceeba0f6e1872a2d8081e06825d3d9/CRM/Core/Payment/PayPalProIPN.php#L460)), despite having already determined the processor ID `xx` based on the url `civicrm/payment/ipn/xx ` earlier ([here](https://github.com/civicrm/civicrm-core/blob/990a93e05dceeba0f6e1872a2d8081e06825d3d9/CRM/Core/Payment/PayPalImpl.php#L711), then passed in [here](https://github.com/civicrm/civicrm-core/blob/990a93e05dceeba0f6e1872a2d8081e06825d3d9/CRM/Core/Payment/PayPalImpl.php#L726))
This method immediately logs a warning message, "Unreliable method used to get payment_processor_id for PayPal Pro IPN - this will cause problems if you have more than one instance", which seems needless if the processor_id is already provided in the url.
I propose skipping this call if processor_id is already known.https://lab.civicrm.org/dev/core/-/issues/1577Custom Group Types not filterable2020-02-10T04:27:09ZMonish DebCustom Group Types not filterableOn Manage groups, you can filter the group list by group type (e.g. Mailing List, Access Control). If you add an additional group type (add value to the respective option group). that works fine when managing groups (i.e. you can save th...On Manage groups, you can filter the group list by group type (e.g. Mailing List, Access Control). If you add an additional group type (add value to the respective option group). that works fine when managing groups (i.e. you can save the record with the custom group), but although the option is displayed in manage groups, the filter does not work. there must be some hardcoding for that filter field.
Issue:
![after](/uploads/09f8d3fbc1f672f23a297c1c9d5b999b/after.gif)
Custom group type filter doesn't work
Proposed fix:
Currently, the custom group type is available to choose as filter in 'Manage Group' but doesn't filter the list of groups. Fix the code to allow filtering of groups on basis of custom group type.5.24.0Monish DebMonish Debhttps://lab.civicrm.org/dev/core/-/issues/1424Export doesn't work in Excel with diacritic chars2020-07-12T03:19:04ZeileenExport doesn't work in Excel with diacritic charsPROPOSAL - prepend the BOM for UTF8 "\xEF\xBB\xBF" so csv's exported from excel
Discussion (note this is the same writeup on the PR - creating a gitlab too as I suspect there might be discussion).
There is a long-standing issue ...PROPOSAL - prepend the BOM for UTF8 "\xEF\xBB\xBF" so csv's exported from excel
Discussion (note this is the same writeup on the PR - creating a gitlab too as I suspect there might be discussion).
There is a long-standing issue whereby files exported from CiviCRM with diacritic characters - eg.
ę are mangled when opened in MS Excel.
The underlying issue is that the characters are UTF-8 encoded & MS Excel by default does not assume UTF8.
In order to do so it needs a BOM - Byte Order Marker - which is a few hex characters at the start of
the csv.
The BOM indicator is 'not recommended' .... unless you want your csv to work with
MS Excel. Since MS Excel is a major use case for csvs I think it's pretty clear that all
things being equal we want to support it... I note that there are extensions to export to excel
natively but I don't think that replaces this. The number one reason to want to export
a csv is to work with it in a spreadsheeting programme & unless we can't safely make it
work in core we shouldn't require an extension for that.
There are various recommendations over time but it seems things have improved in the MS
Excel world and what works on Windows now appears to work on Mac too - at least on a recent version.
This link https://donatstudios.com/CSV-An-Encoding-Nightmare is a pretty good discussion.
While the above link and others say that you need a different BOM for MAC than Windows my
testing shows that the one recommended for Windows works fine on Mac Excel (while you would need
to convert to UTF 16 to follow the Mac recommendation. (https://csv.thephpleague.com/9.0/interoperability/encoding/)
Other links
https://stackoverflow.com/questions/35294443/does-excel-for-mac-2016-properly-import-unicode-in-csv-files
https://stackoverflow.com/questions/2223882/whats-the-difference-between-utf-8-and-utf-8-without-bom/2223926#2223926
Notably this summary :
" When should you encode with a BOM?
If you're unable to record the metadata in any other way (through a charset tag or file system meta), and the programs being used like BOMs, you should encode with a BOM. This is especially true on Windows where anything without a BOM is generally assumed to be using a legacy code page. The BOM tells programs like Office that, yes, the text in this file is Unicode; here's the encoding used.
When it comes down to it, the only files I ever really have problems with are CSV. Depending on the program, it either must, or must not have a BOM. For example, if you're using Excel 2007+ on Windows, it must be encoded with a BOM if you want to open it smoothly and not have to resort to importing the data."
So the argument for a BOM is - if you want it to be compatible with MS Excel use a BOM. This seems to apply.
The risk is that perhaps there is some variant of csv viewing programme that can't cope - the risk of this is rather mitigited by
1) the fact that MS Excel adds the BOM to the start of any files it saves as UTF-8 encoded csv so any programme that expects to open MS Excel generated
csvs would need to be able to cope with it. In addition it is a standard, if not required, file indicator so it feels like the programmes
that were legacy in 2016 writeups might be of no concern now.
2) There really is no programatic way to export these csvs so the risk that this is being parsed by code is close to zero
There are 2 other things we could do to mitigate
1) test on more platforms - I've tested with MS Excel for Mac (Office 365 v 16.31) and Libre Office and MS Numbers
& MS word, cot editor & notes
2) We could add a setting. I'm generally a bit loath on settings as they are a bit of a maintenance nightmare.
However, perhaps it would be a setting like 'export csvs in legacy format & there could be a link
to the gitlab to explain your use-case if you feel the need to set it. If no-one does then we could later remove.
Final note - csv tables are created with the CRM_Core_Report_Excel (spot the irony) from 3 places
- the main export, the export for custom fields & a third place which I believe to be unreachable. This is one path
only but I can look at centralising for the custom fields export path.5.22.0https://lab.civicrm.org/dev/core/-/issues/1387"config_backend" should be thoroughly removed2023-02-05T05:03:36Ztotten"config_backend" should be thoroughly removedOverview
----------------------------------------
In CiviCRM 4.7.0, the column `civicrm_domain.config_backend` was migrated to the `civicrm_setting` table. However, the migration was incomplete.
Reproduction steps
----------------------...Overview
----------------------------------------
In CiviCRM 4.7.0, the column `civicrm_domain.config_backend` was migrated to the `civicrm_setting` table. However, the migration was incomplete.
Reproduction steps
----------------------------------------
1. Create a new site (e.g. `civibuild create dmaster`)
2. Run `DESC civicrm_domain`
3. Observe that column `config_backend` exists
Current behaviour
----------------------------------------
* If a site upgrades from `$ver <= 4.6`, then the column `civicrm_domain.config_backend` does NOT exist.
* If a new site is created in `4.7 <= $ver <= 5.21`, then the column `civicrm_domain.config_backend` DOES exist.
Expected behaviour
----------------------------------------
The column should not exist in v5.21 (or whatever gets the fix). It should not matter if the site originated on v4.5, v4.7, or v5.20.
Comments
----------------------------------------
Historically, this field is related to `CRM_Core_BAO_ConfigSetting`. One should grep on both `config_backend` and `ConfigSetting` to track down code-paths that may be referencing it.
It is still desirable to retain upgrade/transitional logic (eg `CRM_Upgrade_Incremental_php_FourSeven`, `Civi\Core\SettingsBag`); but otherwise these should be removed, and any dependent code-paths should be re-tested.https://lab.civicrm.org/dev/core/-/issues/1379Status should be Pending Refund but stays at Completed2023-01-09T05:03:23Zmagnolia61Status should be Pending Refund but stays at CompletedTesting some more with price sets and recording refunds and payments I ran into the following issue, which is pretty specific but can be a symptom of something that should be changed.
STEPS:
1. Event registration with price set. Fee 50....Testing some more with price sets and recording refunds and payments I ran into the following issue, which is pretty specific but can be a symptom of something that should be changed.
STEPS:
1. Event registration with price set. Fee 50. Contribution status = pending
2. Record Payment of 50 euro. Contribution status = Completed
3. Change Event price set to Fee 25. Contribution status = Pending Refund
4. Record Refund of 25. Contribution status = Completed
All is well at this point. But check what happens next
5. Change Event price set to Fee 50. Contribution status should become: Partially Paid.
Instead it remains at completed. Event Balance = 25 (25 should still be paid).
Also the contribution amount should have become 50 again. But it remains to be 25.
Two observations:
a. When at step 5 a fee higher than the original 50 is selected (fi. 75 euro) then the contribution changes correctly to Partially Paid
b. Because the 'record payment' & 'record refund' buttons react to the contribution status rather than the Balance, they are not shown when the contribution has a false status of Completed.
As a sidenote I think the 'Record Payment' and 'Record Refund' buttons/links should always be available and other amounts than the full balance should be able to be refunded.
Tested this on the sandbox as shown below:
![Peek_2019-11-09_10-59](/uploads/7d6a80a12e83bf62c8fe30f534567399/Peek_2019-11-09_10-59.gif)https://lab.civicrm.org/dev/core/-/issues/1309Contribution Dashboard still uses broken Open Flash Charts2019-10-12T16:11:35ZeileenContribution Dashboard still uses broken Open Flash ChartsReplacement chart not rendering on Contribution Dashboard @artfulrobot promised to make it beautiful againReplacement chart not rendering on Contribution Dashboard @artfulrobot promised to make it beautiful again5.20.0RichRichhttps://lab.civicrm.org/dev/core/-/issues/1299Fix Changelog Reports2022-12-22T05:03:22ZguyiacFix Changelog ReportsCorrect anomalies in the change log reporting (for example the representation when of changes made in batch).
Patrick working on at BCN Sprint.Correct anomalies in the change log reporting (for example the representation when of changes made in batch).
Patrick working on at BCN Sprint.Patrick Figelpfigel@greenpeace.orgPatrick Figelpfigel@greenpeace.orghttps://lab.civicrm.org/dev/core/-/issues/1298Add Email and Phone as Entities that Custom Fields can be assigned to2022-12-23T05:03:31ZguyiacAdd Email and Phone as Entities that Custom Fields can be assigned toPatrick working on this at BCN SprintPatrick working on this at BCN SprintPatrick Figelpfigel@greenpeace.orgPatrick Figelpfigel@greenpeace.orghttps://lab.civicrm.org/dev/core/-/issues/1295Per agreement in NYC sprint, add status check is_active to table2019-10-17T18:16:43ZeileenPer agreement in NYC sprint, add status check is_active to tablehttps://docs.google.com/document/d/1z1Lm-DUrri6xPzGXU37nLk5SfRjo4i9Elvx-lfbmK24/edit#heading=h.164d9ulc2oa3https://docs.google.com/document/d/1z1Lm-DUrri6xPzGXU37nLk5SfRjo4i9Elvx-lfbmK24/edit#heading=h.164d9ulc2oa35.20.0https://lab.civicrm.org/dev/core/-/issues/1286Do not escape html in report header and footers on API create2020-01-20T10:52:39ZMichael McAndrewDo not escape html in report header and footers on API createReportInstance.create escapes the HTML when inserting into the DB (and when retreiving, it seems) but other parts of the UI do not.
`civicrm_report_instance.header` and `civicrm_report_instance.footer` both contain HTML that (if I am fo...ReportInstance.create escapes the HTML when inserting into the DB (and when retreiving, it seems) but other parts of the UI do not.
`civicrm_report_instance.header` and `civicrm_report_instance.footer` both contain HTML that (if I am following https://lab.civicrm.org/dev/core/blob/master/CRM/Utils/API/HTMLInputCoder.php correctly - @colemanw - you touched that file recently) should not be escaped.
Adding 'header' and 'footer' to the list of fields that should not be escaped fixes the issue.
Aside: `CRM_Utils_API_HTMLInputCoder::getSkipFields()` seems flawed in that it does not specify the entity of the field that is to be ignored. Thankfully in this instance, the CiviCRM DB schema 'header' and 'footer' are only used the civicrm_report_instance but it feels like this class could end up inadvertently not escaping html that should be escaped (and maybe that is a potential security issue?)5.23.0colemanwcolemanwhttps://lab.civicrm.org/dev/core/-/issues/1262Case statuses in case type configuration page are not ordered by their weight.2019-09-18T13:27:08ZvarshithCase statuses in case type configuration page are not ordered by their weight.In the case type settings/config page, where we have a tab for 'Case status' that lists all case statuses from which we can select the ones we want for that case type.
This list of case statuses are not ordered by their weight which woul...In the case type settings/config page, where we have a tab for 'Case status' that lists all case statuses from which we can select the ones we want for that case type.
This list of case statuses are not ordered by their weight which would the correct way to list these.
![screenshot-localhost-2019.09.18-11_02_06](/uploads/cabdc1dbad15de7e10ca1867f3999e1f/screenshot-localhost-2019.09.18-11_02_06.png)
I have added a screenshot of the page when adding a new case type. In this the case status 'first' has the lowest weight and so I expect to see it on the top of the list.https://lab.civicrm.org/dev/core/-/issues/1177Add system check for deprecated ARCHIVE log tables2022-12-06T05:03:34ZPatrick Figelpfigel@greenpeace.orgAdd system check for deprecated ARCHIVE log tablesIn #663, we changed the default engine for log tables from `ARCHIVE` to `InnoDB` and shipped this with 5.16. While new installations (and tables first created on 5.16+) will use the `InnoDB` engine by default, existing log tables are not...In #663, we changed the default engine for log tables from `ARCHIVE` to `InnoDB` and shipped this with 5.16. While new installations (and tables first created on 5.16+) will use the `InnoDB` engine by default, existing log tables are not migrated automatically. This needs to be done using the `System.updatelogtables` API with `forceEngineMigration` set to "1".
Once the change has seen some production usage (i.e. a couple of releases from now), we should add a system check to warn admins if any of their log tables use the `ARCHIVE` engine and prompt them to migrate affected tables using the API.https://lab.civicrm.org/dev/core/-/issues/1164Editing event participant can affect wrong record if multiple participants ar...2023-08-24T10:07:23ZJKingsnorthEditing event participant can affect wrong record if multiple participants are opened in multiple tabs/windowsThis is an old issue (sorry I couldn't yet find the original issue in JIRA that was raised for this.)
It was recently attempted to get fixed here: https://lab.civicrm.org/dev/core/issues/1164 / https://github.com/civicrm/civicrm-core/pu...This is an old issue (sorry I couldn't yet find the original issue in JIRA that was raised for this.)
It was recently attempted to get fixed here: https://lab.civicrm.org/dev/core/issues/1164 / https://github.com/civicrm/civicrm-core/pull/14244 but a regression caused the patch for event participants to be reverted.
The problem, example of dmaster:
* Events > Find participants > Search
* 'Edit' one participant (Lincoln) in a new tab
* 'Edit' a second participant (Teresa) in a new tab
* Go to Lincoln's edit tab, change to no-show, save
* The change has been applied to the WRONG record (Event registration information for Teresa Terry has been updated.)
This is because the participant ID is being stored in the session.https://lab.civicrm.org/dev/core/-/issues/1155Activity Summary Report sorts by activity type id than label2022-11-28T05:03:19ZmountevActivity Summary Report sorts by activity type id than labelActivity Summary Report when sorted by "Activity Type" sorts by type-id than activity type label, resulting in unexpected result.
![image](/uploads/7f8aa211b5b4a9313b111f1954aacf06/image.png)Activity Summary Report when sorted by "Activity Type" sorts by type-id than activity type label, resulting in unexpected result.
![image](/uploads/7f8aa211b5b4a9313b111f1954aacf06/image.png)https://lab.civicrm.org/dev/core/-/issues/1153Remove old code for standalone CiviCRM2021-12-17T13:32:06ZJKingsnorthRemove old code for standalone CiviCRMRemove \CRM_Core_Invoke::hackStandalone - and the single call to it. It refers to a removed function (CRM_Core_Standalone::).
This path/handle no longer exist and should be removed from the schema XML and DB?
civicrm/standalone/registe...Remove \CRM_Core_Invoke::hackStandalone - and the single call to it. It refers to a removed function (CRM_Core_Standalone::).
This path/handle no longer exist and should be removed from the schema XML and DB?
civicrm/standalone/register
CRM_Standalone_Form_Register
There's also a comment reference in \CRM\Core\Session.phphttps://lab.civicrm.org/dev/core/-/issues/1150Date/Time of the first activity in a repeat activity sequence is wrong if you...2022-11-27T05:03:22ZDaveDDate/Time of the first activity in a repeat activity sequence is wrong if you choose a start date in the repeating section1. Create an activity.
2. In the repeat activity section choose a start date/time.
3. When you click save the confirmation popup seems to have the correct date/times all listed.
4. The first activity that gets created has the activity da...1. Create an activity.
2. In the repeat activity section choose a start date/time.
3. When you click save the confirmation popup seems to have the correct date/times all listed.
4. The first activity that gets created has the activity date/time from the original (which is likely the current date/time), not the start date you picked.
Can reproduce on dmaster.demohttps://lab.civicrm.org/dev/core/-/issues/1149With logging turned on editing an activity displays as a deletion2019-07-29T13:37:33ZDaveDWith logging turned on editing an activity displays as a deletionI don't have any more details at the moment but can reproduce on dmaster.demo.
1. Turn on logging (system settings - misc).
2. Create an activity
3. Edit it.
4. View the "Contact Logging Report (Summary)". It shows it as a deletion.
Al...I don't have any more details at the moment but can reproduce on dmaster.demo.
1. Turn on logging (system settings - misc).
2. Create an activity
3. Edit it.
4. View the "Contact Logging Report (Summary)". It shows it as a deletion.
Also actual deletions don't show up at all in the report.