Development issueshttps://lab.civicrm.org/groups/dev/-/issues2022-06-11T14:42:45Zhttps://lab.civicrm.org/dev/core/-/issues/3526Extensions Mapper caches full path which breaks with dynamic containers2022-06-11T14:42:45ZherbdoolExtensions Mapper caches full path which breaks with dynamic containersCRM_Extension_Mapper caches the full path to extensions which with dynamic containers (such as with Pantheon) means that the cached path might not match the active container's path. This causes a fatal error.
The only solution seems to ...CRM_Extension_Mapper caches the full path to extensions which with dynamic containers (such as with Pantheon) means that the cached path might not match the active container's path. This causes a fatal error.
The only solution seems to be to force CRM_Extension_Mapper to fetch the extensions paths from the database, or prevent it from caching the full path. Currently with the CiviCRM Starterkit we are forcing it to fetch the list from the database each time (https://www.drupal.org/node/2347897).
Relates to https://lab.civicrm.org/dev/cloud-native/issues/6https://lab.civicrm.org/dev/core/-/issues/3525Move example data to an optional/add-on step2024-02-07T05:03:27ZtottenMove example data to an optional/add-on stepDuring installation, the installer shows a checkbox which asks whether you want to load sample data. Then:
* If you don't want sample data, it loads `sql/civicrm_data.mysql`.
* If you do want sample data, it loads `sql/civicrm_generat...During installation, the installer shows a checkbox which asks whether you want to load sample data. Then:
* If you don't want sample data, it loads `sql/civicrm_data.mysql`.
* If you do want sample data, it loads `sql/civicrm_generated.mysql`.
This has some consequences:
* You must choose whether to load sample data during *installation*. This is presented in the installer UI.
* The `civicrm_generated.mysql` takes extra work to maintain (eg `bin/regen.sh`; the output of which is not merge-friendly).
The goal here would be to have one *installation* process -- which could be headless. *Afterwards*, you should have the *option* to enable create the sample data. This *option* may be specified as at same time as other install parameters (eg via arg) or perhaps via a separate command afterwards.https://lab.civicrm.org/dev/core/-/issues/3524Does CiviCRM make it possible to specify which directories are private and wh...2022-06-11T14:42:36ZherbdoolDoes CiviCRM make it possible to specify which directories are private and which are public-accessible?This is currently not possible in CiviCRM. A PAAS like Pantheon provides a specific folder for private file uploads and we can't change it to any other folder. However, CiviCRM assumes that the site is either running on Apache (and it ca...This is currently not possible in CiviCRM. A PAAS like Pantheon provides a specific folder for private file uploads and we can't change it to any other folder. However, CiviCRM assumes that the site is either running on Apache (and it can use .htaccess files) or that custom NGINX rules can be set. This is an unreasonable expectation.
CiviCRM requires some filepaths to be private and will complain if they're not configured properly: https://civicrm.org/advisory/civi-sa-2014-001-risk-information-disclosure
CiviCRM has hardcoded the filepaths of some things based on the path of CIVICRM_TEMPLATE_COMPILEDIR. The problem is that CIVICRM_TEMPLATE_COMPILEDIR needs to be private but many of the files that CiviCRM is trying to write based on that path need to be publicly available (e.g. dynamically written JS).
An audit of both baseFilePath() and CIVICRM_TEMPLATE_COMPILEDIR:
[audit-template_compiledir.txt](/uploads/9302db5820d0af0181edf9990fd47b90/audit-template_compiledir.txt).
Tim provided some technical guidance in another thread https://lab.civicrm.org/dev/cloud-native/issues/1#note_3124:
> - The references to `baseFilePath()` in `CRM_Utils_System_*` should become irrelevant if `civicrm.settings.php` has the `$civicrm_paths['civicrm.files']`
>
> - The references to `baseFilePath()` in `CRM_Utils_File::absoluteDirectory` and `::relativeDirectory` already appear to be irrelevant within `civicrm-core`. (The only usage I could find was one which explicitly set its own base.)
>
> - The reference to `baseFilePath()` in `CRM_Core_Config_Runtime` is more effort. I don't know if it'd work, but my first try would be (a) lookup a path-variable like `Civi::paths()->getVariable('civicrm.log', 'path')`, (b) declare the variable in `Civi\Core\Paths`, (c) change the relative boot order of `Civi\Core\Paths` and `CRM_Core_Config_Runtime`.
>
> - I think `CRM/Utils/Cache/SerializeCache.php` is unused.
>
> - The `CRM/Core/IDS.php` line feels silly. We should pick one folder! Pointing that at `templates_c` makes as much sense as `uploadDir`. (TBH, I'm not sure does anything now that `Config.IDS.ini` has been killed.)
>
> - `Civi/Core/Container.php` and `CRM/Extension/ClassLoader.php` are very similar to the Smarty use-case (i.e. writing out ephemeral PHP files to take advantage of opcode caching).https://lab.civicrm.org/dev/core/-/issues/3523Don't cache the full path of extensions so they don't break with dynamic paths2022-06-11T14:41:17ZherbdoolDon't cache the full path of extensions so they don't break with dynamic pathsExtension paths are cached as full paths, which are incompatible with cloud services that might have dynamic filepaths (such as Pantheon). Instead the full path can be determined by other means.
This is an example of what gets cached in...Extension paths are cached as full paths, which are incompatible with cloud services that might have dynamic filepaths (such as Pantheon). Instead the full path can be determined by other means.
This is an example of what gets cached in CRM_Extension_Mapper::getActiveModuleFiles:
```
a:6:{i:0;a:2:{s:6:"prefix";s:4:"iats";s:8:"filePath";s:101:"/var/www/vhosts/httpdocs/sites/all/civicrm_custom/extensions/com.iatspayments.civicrm/iats.php";}i:1;a:2:{s:6:"prefix";s:14:"extendedreport";s:8:"filePath";s:114:"/var/www/vhosts/httpdocs/sites/all/civicrm_custom/extensions/nz.co.fuzion.extendedreport/extendedreport.php";}i:2;a:2:{s:6:"prefix";s:12:"cividiscount";s:8:"filePath";s:116:"/var/www/vhosts/httpdocs/sites/all/civicrm_custom/extensions/org.civicrm.module.cividiscount/cividiscount.php";}i:3;a:2:{s:6:"prefix";s:9:"sumfields";s:8:"filePath";s:108:"/var/www/vhosts/httpdocs/sites/all/civicrm_custom/extensions/net.ourpowerbase.sumfields/sumfields.php";}i:4;a:2:{s:6:"prefix";s:4:"gdpr";s:8:"filePath";s:102:"/var/www/vhosts/httpdocs/sites/all/civicrm_custom/extensions/uk.co.vedaconsulting.gdpr/gdpr.php";}i:5;a:2:{s:6:"prefix";s:10:"l10nupdate";s:8:"filePath";s:107:"/var/www/vhosts/httpdocs/sites/all/civicrm_custom/extensions/com.cividesk.l10n.update/l10nupdate.php";}}
```
Previous solution was to use the patch in this issue https://www.drupal.org/node/2347897 but it meant there was a performance hit by always skipping cache.5.24.0https://lab.civicrm.org/dev/core/-/issues/3522Soften messages for read-only extensionsDir2022-06-11T14:41:07ZtiotsopSoften messages for read-only extensionsDirImprove messaging when someone has a different policy for managing `extensionsDir`.This a continuation of this [PR](https://github.com/civicrm/civicrm-core/pull/11895). Most of the messaging update has already been done. There is only on...Improve messaging when someone has a different policy for managing `extensionsDir`.This a continuation of this [PR](https://github.com/civicrm/civicrm-core/pull/11895). Most of the messaging update has already been done. There is only one message ("Read-Only Extensions"). It still encourages web-writable policy, but it lowers the severity and presents it a choice ("if you want X, do Y").
Probably, changing the `warning` into a `notice` is the only thing to update:- a `warning` implies something is wrong, while a `notice` says it's merely out of the ordinary.5.9tiotsoptiotsophttps://lab.civicrm.org/dev/core/-/issues/3521Maintain "official" containerized version(s) of CiviCRM2024-02-06T05:03:28ZmfbMaintain "official" containerized version(s) of CiviCRMCiviCRM could maintain container images for development and/or production use.
This could be useful for CI purposes (e.g. if CiviCRM is eventually doing CI via GitLab), and provide a baseline for shops, developers and implementers who n...CiviCRM could maintain container images for development and/or production use.
This could be useful for CI purposes (e.g. if CiviCRM is eventually doing CI via GitLab), and provide a baseline for shops, developers and implementers who need to deploy/develop/test CiviCRM.https://lab.civicrm.org/dev/core/-/issues/3520Proposal: Splitting up delete contacts permission / new permission "CiviCRM s...2024-03-03T05:03:25ZAndreasandreas.howiller@civiservice.deProposal: Splitting up delete contacts permission / new permission "CiviCRM soft delete contacts"?Overview
----------------------------------------
Currently CiviCRM already has a distinction between soft deletion and permanent deletion of contacts: With the permission _CiviCRM: delete contacts_ you're able to put a contact into the ...Overview
----------------------------------------
Currently CiviCRM already has a distinction between soft deletion and permanent deletion of contacts: With the permission _CiviCRM: delete contacts_ you're able to put a contact into the trash bin. Users with the additional permission _CiviCRM: access deleted contacts_ can then permanently delete these contacts. In many usecases this is fine – e.g. when you might just want to prevent temporary volunteer workers from accidently deleting contacts permanentely. However there are very common use cases where an explicit distinction between a soft and a hard delete permission would be needed:
Example use-case 1: Allow restoring but _not_ (hard) deleting contacts
----------------------------------------
Your're glad your temporary volunteers help taking care of your contacts. And you feel safe allowing them (soft) deletion, too, as you're happy with the fact that only a few of your colleagues have the permission to delete these contacts permanently. What you would also like, however, is for them to be able to view and restore the deleted contacts to fix mistakes.
Current behaviour
----------------------------------------
When you allow users to soft delete contacts and to view the bin to restore contacts, this combination also allows permanently deleting contacts.
Proposed behaviour
----------------------------------------
In combination with a new permission _CiviCRM: soft delete contacts_ the permission _CiviCRM: access deleted contacts_ would allow this use case.
It seems like there had been a workaround for that around the permission _CiviCRM: edit all contacts View, Edit and Delete ANY CONTACT in the CiviCRM database_ which is not working anymore ([see this discussion on StackExchange](https://civicrm.stackexchange.com/questions/42008/allow-deletion-of-contacts-but-not-in-trash)).
Example use-case 2: Allow deduplication but _not_ (hard) deleting contacts
----------------------------------------
You deal a lot with event submissions and imports, so deduplication is very important for you. That is why you want your team to be able to deduplicate and also to fix mistakes by looking in the trash. But you don't want everybody to delete contacts in trash.
Current behaviour
----------------------------------------
Same like in use-case 1 except that even the broken workaround mentioned there would not work here as _CiviCRM: merge duplicate contacts_ requires the delete contacts permission.
Proposed behaviour
----------------------------------------
In combination with a new permission _CiviCRM: soft delete contacts_ the permissions _CiviCRM: merge duplicate contacts_ plus _CiviCRM: access deleted contacts_ would allow this use case.
Comment
----------------------------------------
Since this would mean touching a basic thing and might have some unexpected consequences in practice or in code (I'm not a developer) a broader discussion would be great :-)https://lab.civicrm.org/dev/core/-/issues/3519UI for tracking user jobs2023-03-20T10:07:38ZeileenUI for tracking user jobsThis is a place holder for the user being able to access a UI to see their user jobs and for sysadmins to be able to see all jobs.
I expect the UI would be a packaged search kit display & that should be a pretty easy add.
Wish list fea...This is a place holder for the user being able to access a UI to see their user jobs and for sysadmins to be able to see all jobs.
I expect the UI would be a packaged search kit display & that should be a pretty easy add.
Wish list features
- information from the queue (x jobs out of y completed)
- ability to see the related import table
- ability to update rows in the related import table & re-queue those rowshttps://lab.civicrm.org/dev/core/-/issues/3518Ajax error in import queue runner if too slow2022-09-05T22:47:42ZeileenAjax error in import queue runner if too slowI've been hitting this when it is slow because of debugging - in theory could be other reasons
![image](/uploads/9f8e318d8819d3b0a08cb6d8d510e17c/image.png)I've been hitting this when it is slow because of debugging - in theory could be other reasons
![image](/uploads/9f8e318d8819d3b0a08cb6d8d510e17c/image.png)https://lab.civicrm.org/dev/core/-/issues/3517Re-add a confirm step to Imports2023-01-31T04:41:48ZeileenRe-add a confirm step to ImportsThe really really ugly confirm warning got lost - but we probably need to re-add a `crmConfirm`The really really ugly confirm warning got lost - but we probably need to re-add a `crmConfirm`https://lab.civicrm.org/dev/core/-/issues/3516User Job & User import table cleanup strategy2023-03-20T10:08:27ZeileenUser Job & User import table cleanup strategyIdeally the user job and import would be dropped at the same time - either through a manual process or a cleanup job. As of writing, all import tables are dropped on upgrade or, if they are more than two days old, they are dropped on ca...Ideally the user job and import would be dropped at the same time - either through a manual process or a cleanup job. As of writing, all import tables are dropped on upgrade or, if they are more than two days old, they are dropped on cache clearing.https://lab.civicrm.org/dev/core/-/issues/3515Import feature request Ability to specify default for fields2023-01-31T04:42:36ZeileenImport feature request Ability to specify default for fieldsIdeally it would be possible to add a widget to `MapField` page on imports to store defaults - this gets us away from saying 'add a another column to your spreadsheet for (e.g) Financial Type and here is a video to watch to learn how to ...Ideally it would be possible to add a widget to `MapField` page on imports to store defaults - this gets us away from saying 'add a another column to your spreadsheet for (e.g) Financial Type and here is a video to watch to learn how to fill-down'
This is primarily a UI issue -injecting the widget - which could be angular - once saved to the user Job it would be easy to handlehttps://lab.civicrm.org/dev/core/-/issues/3514Define interfaces for interacting with newly cleaned up import code2023-04-03T02:29:57ZeileenDefine interfaces for interacting with newly cleaned up import codeThis is a bit of a placeholder but I think it will be necessary for integrations to
- ~~add new user_job_types - currently this is a hard-coded list and the Parser class is hard-coded into it - we probably need to solve this to get the ...This is a bit of a placeholder but I think it will be necessary for integrations to
- ~~add new user_job_types - currently this is a hard-coded list and the Parser class is hard-coded into it - we probably need to solve this to get the csvimporter working~~ these are declared by any class that `implements UserJobInterface`
- alter the metadate - eg inject 'full_name' into the available fields to map to. UPDATE - am wondering if being able to add pseudofields for the api is enough - would work for full_name
- intervene once `getMappedRow` has run
- ideally we would extract out the `lookup` code where matching contacts are found or matching entities and add some interaction there - assuming the hook in `findDuplicates` is not enough. UPDATE - I think intervening at the end of `getMappedRow` will work
- be able to alter the validation of the mapping. I know a form rule could be added by hook but I think a specific hook is cleaner as the hook would also need to alter existing ruleshttps://lab.civicrm.org/dev/core/-/issues/3513After completing an activity import, it takes you to the contact import screen2022-06-18T23:13:12ZDaveDAfter completing an activity import, it takes you to the contact import screenIt's maybe more likely to come up during testing than during real life, but if you were importing a series of files it's a bit confusing.
I don't remember if it did this before. I don't think so, but I'm not sure where I'd rank this for...It's maybe more likely to come up during testing than during real life, but if you were importing a series of files it's a bit confusing.
I don't remember if it did this before. I don't think so, but I'm not sure where I'd rank this for priority. It's not high.5.51.0https://lab.civicrm.org/dev/financial/-/issues/198Possible improvements to the "Invalid price fields" status check2022-10-11T01:31:47ZDaveDPossible improvements to the "Invalid price fields" status check1. It doesn't tell you WHICH financial type is the problem, and because the manage price sets UI oddly shows blank when looking at the price field definition instead of showing the type, you can't even find it without looking in the db o...1. It doesn't tell you WHICH financial type is the problem, and because the manage price sets UI oddly shows blank when looking at the price field definition instead of showing the type, you can't even find it without looking in the db or api explorer.
* Since one of the error conditions is that the financial type might not even exist anymore, the status check could at least show the id so you could check a backup or something.
* Possibly there could be a "enable all needed financial types" button that just goes and undisables all the needed disabled ones.
2. As far as I know there isn't a way in civi to tell, given just the name of a price set or field, WHERE it's being used, and if that place is CURRENTLY active. This would help the user determine if they even want to spend time on it or simply disable the price set.
* Relatedly maybe the status check should ignore disabled price sets/fields, or at least indicate the status on the check results screen.https://lab.civicrm.org/dev/core/-/issues/35125.51beta1: TypeError on CRM_Contact_Import_Parser_Contact::checkStatesForCoun...2022-06-11T20:27:42ZJonGold5.51beta1: TypeError on CRM_Contact_Import_Parser_Contact::checkStatesForCountry()Another TypeError, this time on `CRM_Contact_Import_Parser_Contact::checkStatesForCountry()`
Sidenote - I'm hoping standalone CiviCRM comes to fruition because it would greatly simplify the process of using static analysis (e.g. PhpStan...Another TypeError, this time on `CRM_Contact_Import_Parser_Contact::checkStatesForCountry()`
Sidenote - I'm hoping standalone CiviCRM comes to fruition because it would greatly simplify the process of using static analysis (e.g. PhpStan) on Civi, which would catch type errors.
```
811744 10/Jun 11:23 php Error TypeError: Argument 2 passed to CRM_Contact_Import_Parser_Contact::checkStatesForCountry() must be of the type array, null given, called in
/home/jon/local/mysite/web/vendor/civicrm/civicrm-core/CRM/Contact/Import/Parser/Contact.php on line 1794 in CRM_Contact_Import_Parser_Contact->checkStatesForCountry() (line 1854 of
/home/jon/local/mysite/web/vendor/civicrm/civicrm-core/CRM/Contact/Import/Parser/Contact.php) #0
/home/jon/local/mysite/web/vendor/civicrm/civicrm-core/CRM/Contact/Import/Parser/Contact.php(1794): CRM_Contact_Import_Parser_Contact->checkStatesForCountry(1228, NULL)
#1 /home/jon/local/mysite/web/vendor/civicrm/civicrm-core/CRM/Contact/Import/Parser/Contact.php(1828): CRM_Contact_Import_Parser_Contact->tryToResolveStateProvince('invalid_import_...', '')
#2 /home/jon/local/mysite/web/vendor/civicrm/civicrm-core/CRM/Contact/Import/Parser/Contact.php(1449): CRM_Contact_Import_Parser_Contact->fillStateProvince(Array)
#3 /home/jon/local/mysite/web/vendor/civicrm/civicrm-core/CRM/Import/Parser.php(1665): CRM_Contact_Import_Parser_Contact->getMappedRow(Array)
#4 /home/jon/local/mysite/web/vendor/civicrm/civicrm-core/CRM/Import/Parser.php(1645): CRM_Import_Parser->validateValues(Array)
#5 /home/jon/local/mysite/web/vendor/civicrm/civicrm-core/CRM/Contact/Import/Form/MapField.php(450): CRM_Import_Parser->validate()
#6 /home/jon/local/mysite/web/vendor/civicrm/civicrm-core/CRM/Contact/Import/Form/MapField.php(372): CRM_Contact_Import_Form_MapField->submit(Array)
#7 /home/jon/local/mysite/web/vendor/civicrm/civicrm-core/CRM/Core/Form.php(573): CRM_Contact_Import_Form_MapField->postProcess()
#8 /home/jon/local/mysite/web/vendor/civicrm/civicrm-core/CRM/Core/StateMachine.php(144): CRM_Core_Form->mainProcess()
#9 /home/jon/local/mysite/web/vendor/civicrm/civicrm-core/CRM/Core/QuickForm/Action/Next.php(43): CRM_Core_StateMachine->perform(Object(CRM_Contact_Import_Form_MapField), 'next', 'Next')
#10 /home/jon/local/mysite/web/vendor/civicrm/civicrm-packages/HTML/QuickForm/Controller.php(203): CRM_Core_QuickForm_Action_Next->perform(Object(CRM_Contact_Import_Form_MapField), 'next')
#11 /home/jon/local/mysite/web/vendor/civicrm/civicrm-packages/HTML/QuickForm/Page.php(103): HTML_QuickForm_Controller->handle(Object(CRM_Contact_Import_Form_MapField), 'next')
#12 /home/jon/local/mysite/web/vendor/civicrm/civicrm-core/CRM/Core/Controller.php(355): HTML_QuickForm_Page->handle('next')
#13 /home/jon/local/mysite/web/vendor/civicrm/civicrm-core/CRM/Core/Invoke.php(319): CRM_Core_Controller->run(Array, NULL)
#14 /home/jon/local/mysite/web/vendor/civicrm/civicrm-core/CRM/Core/Invoke.php(69): CRM_Core_Invoke::runItem(Array)
#15 /home/jon/local/mysite/web/vendor/civicrm/civicrm-core/CRM/Core/Invoke.php(36): CRM_Core_Invoke::_invoke(Array)
#16 /home/jon/local/mysite/web/modules/contrib/civicrm/src/Civicrm.php(88): CRM_Core_Invoke::invoke(Array)
#17 /home/jon/local/mysite/web/modules/contrib/civicrm/src/Controller/CivicrmController.php(80): Drupal\civicrm\Civicrm->invoke(Array)
#18 [internal function]: Drupal\civicrm\Controller\CivicrmController->main(Array, '')
#19 /home/jon/local/mysite/web/core/lib/Drupal/Core/EventSubscriber/EarlyRenderingControllerWrapperSubscriber.php(123): call_user_func_array(Array, Array)
#20 /home/jon/local/mysite/web/core/lib/Drupal/Core/Render/Renderer.php(564): Drupal\Core\EventSubscriber\EarlyRenderingControllerWrapperSubscriber->Drupal\Core\EventSubscriber\{closure}()
#21 /home/jon/local/mysite/web/core/lib/Drupal/Core/EventSubscriber/EarlyRenderingControllerWrapperSubscriber.php(124):
Drupal\Core\Render\Renderer->executeInRenderContext(Object(Drupal\Core\Render\RenderContext), Object(Closure))
#22 /home/jon/local/mysite/web/core/lib/Drupal/Core/EventSubscriber/EarlyRenderingControllerWrapperSubscriber.php(97):
Drupal\Core\EventSubscriber\EarlyRenderingControllerWrapperSubscriber->wrapControllerExecutionInRenderContext(Array, Array)
#23 /home/jon/local/mysite/web/vendor/symfony/http-kernel/HttpKernel.php(158): Drupal\Core\EventSubscriber\EarlyRenderingControllerWrapperSubscriber->Drupal\Core\EventSubscriber\{closure}()
#24 /home/jon/local/mysite/web/vendor/symfony/http-kernel/HttpKernel.php(80): Symfony\Component\HttpKernel\HttpKernel->handleRaw(Object(Symfony\Component\HttpFoundation\Request), 1)
#25 /home/jon/local/mysite/web/core/lib/Drupal/Core/StackMiddleware/Session.php(58): Symfony\Component\HttpKernel\HttpKernel->handle(Object(Symfony\Component\HttpFoundation\Request), 1,
true)
#26 /home/jon/local/mysite/web/core/lib/Drupal/Core/StackMiddleware/KernelPreHandle.php(48): Drupal\Core\StackMiddleware\Session->handle(Object(Symfony\Component\HttpFoundation\Request), 1,
true)
#27 /home/jon/local/mysite/web/core/modules/page_cache/src/StackMiddleware/PageCache.php(106):
Drupal\Core\StackMiddleware\KernelPreHandle->handle(Object(Symfony\Component\HttpFoundation\Request), 1, true)
#28 /home/jon/local/mysite/web/core/modules/page_cache/src/StackMiddleware/PageCache.php(85):
Drupal\page_cache\StackMiddleware\PageCache->pass(Object(Symfony\Component\HttpFoundation\Request), 1, true)
#29 /home/jon/local/mysite/web/core/lib/Drupal/Core/StackMiddleware/ReverseProxyMiddleware.php(48):
Drupal\page_cache\StackMiddleware\PageCache->handle(Object(Symfony\Component\HttpFoundation\Request), 1, true)
#30 /home/jon/local/mysite/web/core/lib/Drupal/Core/StackMiddleware/NegotiationMiddleware.php(51):
Drupal\Core\StackMiddleware\ReverseProxyMiddleware->handle(Object(Symfony\Component\HttpFoundation\Request), 1, true)
#31 /home/jon/local/mysite/web/vendor/stack/builder/src/Stack/StackedHttpKernel.php(23):
Drupal\Core\StackMiddleware\NegotiationMiddleware->handle(Object(Symfony\Component\HttpFoundation\Request), 1, true)
#32 /home/jon/local/mysite/web/core/lib/Drupal/Core/DrupalKernel.php(708): Stack\StackedHttpKernel->handle(Object(Symfony\Component\HttpFoundation\Request), 1, true)
#33 /home/jon/local/mysite/web/index.php(19): Drupal\Core\DrupalKernel->handle(Object(Symfony\Component\HttpFoundation\Request))
#34 {main}.
```5.51.0https://lab.civicrm.org/dev/core/-/issues/3509When doing back office Renewals 'Renewal message' is missing 5.49+2022-06-10T14:31:11ZkcristianoWhen doing back office Renewals 'Renewal message' is missing 5.49+Expected behavior pre: 5.49
- in CiviCRM admin choose renew or renew credit card
- You can send a confirm and add a custom message
![image](/uploads/779c2938f9f1540caa2573bacc265f67/image.png)
After upgrade to 5.49+
- Message is a...Expected behavior pre: 5.49
- in CiviCRM admin choose renew or renew credit card
- You can send a confirm and add a custom message
![image](/uploads/779c2938f9f1540caa2573bacc265f67/image.png)
After upgrade to 5.49+
- Message is available for 'new' memberships but not 'renewal'
![image](/uploads/86f1cbaf072653d549baebe4c64d13e8/image.png)https://lab.civicrm.org/dev/core/-/issues/3508Translation for Search Kit 5.502023-01-28T19:10:08ZGuillaumeSorelTranslation for Search Kit 5.50It seems that 3 chains are not being translated in CiviCRM 5.50.1 when they actually are in Transifex. Following @bgm recommendation I exported and compiled the .mo file, named it search_kit.mo and uploaded it in the dedicated folder, h...It seems that 3 chains are not being translated in CiviCRM 5.50.1 when they actually are in Transifex. Following @bgm recommendation I exported and compiled the .mo file, named it search_kit.mo and uploaded it in the dedicated folder, here following WP structure.
2 of them also seem to be translatable in code ([https://lab.civicrm.org/dev/core/-/blob/master/ext/search_kit/Civi/Api4/Action/SearchDisplay/GetSearchTasks.php](https://lab.civicrm.org/dev/core/-/blob/master/ext/search_kit/Civi/Api4/Action/SearchDisplay/GetSearchTasks.php)):
line 72 `'title' => E::ts('Tag - Add/Remove Tags'),`
line 102 `$task['title'] = E::ts('Profile Update');`
But I couldn't find Update Contacts in Transifex. Could it be added?![Image_collée_à_2022-6-10_12-42](/uploads/eaec662c5d2365315c1ae27c9e9c70bf/Image_collée_à_2022-6-10_12-42.png)
![Capture_d_écran_2022-06-10_à_12.40.29](/uploads/e19a91c0ba801c505b79a98b236a8a2d/Capture_d_écran_2022-06-10_à_12.40.29.png)https://lab.civicrm.org/dev/core/-/issues/35065.50.1: Import CSV record fails for Country: 'Côte d'Ivoire'2022-06-11T04:49:21ZDmitry Smirnov5.50.1: Import CSV record fails for Country: 'Côte d'Ivoire'Whenever a contact in the imported CSV have a Country: `Côte d'Ivoire`, import fails with an error `Country input value not in country table: "The Country value appears to be invalid. It does not match any value in CiviCRM table of count...Whenever a contact in the imported CSV have a Country: `Côte d'Ivoire`, import fails with an error `Country input value not in country table: "The Country value appears to be invalid. It does not match any value in CiviCRM table of countries."`.
I've specifically checked that CSV have the country name _exactly_ as CiviCRM knows it. The CSV file is properly UTF-8 encoded and the value is quoted correctly.5.51.0https://lab.civicrm.org/dev/core/-/issues/35055.50.1: import CSV record fails due to unicode Website2022-08-04T15:56:33ZDmitry Smirnov5.50.1: import CSV record fails due to unicode WebsiteI'm importing contacts from CSV file and one particular record is not imported due to `Invalid value for field(s) : Website`.
The *Website* is **https://কানাডা.com** and it is valid, as can be seen from clicking on it.
It would be great...I'm importing contacts from CSV file and one particular record is not imported due to `Invalid value for field(s) : Website`.
The *Website* is **https://কানাডা.com** and it is valid, as can be seen from clicking on it.
It would be great to relax website checking to allow import of such URLs. Thanks.5.51.0