Development issueshttps://lab.civicrm.org/groups/dev/-/issues2019-05-23T23:07:11Zhttps://lab.civicrm.org/dev/financial/-/issues/56Changing financial type on a contribution records incorrect financial items2019-05-23T23:07:11ZJonGoldChanging financial type on a contribution records incorrect financial items### To replicate on master:
* Ensure sales tax is off (this is the default).
* Create a contribution however you like. Note the contact ID.
* Run `SELECT * FROM civicrm_financial_item WHERE contact_id = <contact_id>`.
* Note the new fin...### To replicate on master:
* Ensure sales tax is off (this is the default).
* Create a contribution however you like. Note the contact ID.
* Run `SELECT * FROM civicrm_financial_item WHERE contact_id = <contact_id>`.
* Note the new financial item created as a result of your contribution. Something like example 1 below.
* Edit the contribution, change the financial type, and save.
* Run the SQL above again. You'll see something like example 2 below.
### Problems
* The third entry shouldn't exist. It's attempting to record sales tax on an item that has none.
* The fourth entry has a description of "Sales Tax". It should be inheriting its description as "Contribution Amount".
The issue is [this line in CRM_Contribute_BAO_Contribution::updateFinancialAccounts()](https://github.com/civicrm/civicrm-core/blob/5.13.4/CRM/Contribute/BAO/Contribution.php#L3701). If the financial type is being changed, a sales tax entry will ALWAYS be created. I'm not sure why this is; I assume it has to do with ensuring tax is charged when switching from a non-taxable to a taxable financial type. However, it's a mistake to always generate sales tax entries, even when sales tax is completely disabled.
Example 1:
```
mysql> select * from civicrm_financial_item WHERE contact_id = 202 and id < 105;
+-----+---------------------+---------------------+------------+---------------------+--------+----------+----------------------+-----------+-------------------+-----------+
| id | created_date | transaction_date | contact_id | description | amount | currency | financial_account_id | status_id | entity_table | entity_id |
+-----+---------------------+---------------------+------------+---------------------+--------+----------+----------------------+-----------+-------------------+-----------+
| 104 | 2019-05-22 15:20:23 | 2019-05-22 15:20:00 | 202 | Contribution Amount | 22.00 | USD | 3 | 1 | civicrm_line_item | 104 |
+-----+---------------------+---------------------+------------+---------------------+--------+----------+----------------------+-----------+-------------------+-----------+
```
Example 2:
```
mysql> select * from civicrm_financial_item WHERE contact_id = 202;
+-----+---------------------+---------------------+------------+---------------------+--------+----------+----------------------+-----------+-------------------+-----------+
| id | created_date | transaction_date | contact_id | description | amount | currency | financial_account_id | status_id | entity_table | entity_id |
+-----+---------------------+---------------------+------------+---------------------+--------+----------+----------------------+-----------+-------------------+-----------+
| 104 | 2019-05-22 15:20:23 | 2019-05-22 15:20:00 | 202 | Contribution Amount | 22.00 | USD | 3 | 1 | civicrm_line_item | 104 |
| 105 | 2019-05-22 15:20:34 | 2019-05-22 15:20:00 | 202 | Contribution Amount | -22.00 | USD | 3 | 1 | civicrm_line_item | 104 |
| 106 | 2019-05-22 15:20:34 | 2019-05-22 15:20:00 | 202 | Sales Tax | 0.00 | USD | NULL | 1 | civicrm_line_item | 104 |
| 107 | 2019-05-22 15:20:34 | 2019-05-22 15:20:00 | 202 | Sales Tax | 22.00 | USD | 1 | 1 | civicrm_line_item | 104 |
+-----+---------------------+---------------------+------------+---------------------+--------+----------+----------------------+-----------+-------------------+-----------+
```5.15.0https://lab.civicrm.org/dev/translation/-/issues/37Ancient switch statement that provides hardcoded translation doesn't do anyth...2020-02-24T16:28:47ZDaveDAncient switch statement that provides hardcoded translation doesn't do anything anymore@bgm FYI since you might find this academically interesting since it's like "Translation Archaeology".
These lines do nothing: https://github.com/civicrm/civicrm-core/blob/5.22.1/CRM/Activity/Selector/Activity.php#L397-L420
Except for ...@bgm FYI since you might find this academically interesting since it's like "Translation Archaeology".
These lines do nothing: https://github.com/civicrm/civicrm-core/blob/5.22.1/CRM/Activity/Selector/Activity.php#L397-L420
Except for a code-format whitespace change, these lines are unchanged from when they were added 13 years ago and predates the concept of option value labels and was likely added when translation capability was first being added. The comment even still says "DRAFTING".
In particular note that $row['activity_type'] here is the `LABEL` for the option value. **So this switch() doesn't do anything.** Here's a table:
| Scenario | Effect of the switch() |
|------------------------------------------------------------------------------------------------------------------------------------------|---------------------------------------------------------------------------------------------------------------------------------------------------------------|
| US English | Does nothing |
| UK English, labels and names are the same | Does nothing |
| UK English, labels and names are different | Almost never does anything (see next scenario) |
| UK English, but for example the label for activity type Meeting has been changed to Email. I don't know why anyone would do that though. | It would translate Email to Email since it's english, so still does nothing. |
| Non-english, and the label is non-english. | Does nothing |
| Non-english, but you've for some reason changed the label for e.g. Email back to english. But why would you do that? | It will translate it, but in this situation that's a bug because you changed the label to english on purpose because you wanted english, for whatever reason. |
Extra
-----
What's also interesting but is a separate TODO that I'm not going to look closer at right now: I'm not 100% sure when this code even runs. You can trigger it by visiting manage case if the client has some non-case activities, but I don't know why it's even retrieving those non-case activities when you're looking at manage case. And the function is NOT called when looking at a contact's activity tab. It does NOT run when showing results for an activity search.
For manage case it's called from Case_Page_Tab which calls Core_Select_Controller(output = SESSION).
Note that getRows isn't returning any case activities, just the non-case ones. The actual rows you see on manage case come from CRM/Case/Form/ActivityTab.tpl via ajax call to civicrm/ajax/activity, which is CRM_Activity_Page_AJAX::getCaseActivity()5.24.0https://lab.civicrm.org/dev/wordpress/-/issues/48Dashboard is empty2020-05-11T13:47:29ZcliffnhansenDashboard is emptyHello, I am brand new to CiviCRM and excited to use it, however my dashboard in Wordpress has suddenly gone blank. It says that there is a system alert, but when I click it, nothing happens. I've tried clicking the configure your dashboa...Hello, I am brand new to CiviCRM and excited to use it, however my dashboard in Wordpress has suddenly gone blank. It says that there is a system alert, but when I click it, nothing happens. I've tried clicking the configure your dashboard and reconfigure your dashboard options and nothing happens. I've also tried deactivating, and reinstalling the addon with the newest version, but still nothing happens. If you could help me out, I'd appreciate it!
![civicrdashboard](/uploads/929f6376069e33c9669c325368a5b929/civicrdashboard.JPG)https://lab.civicrm.org/dev/translation/-/issues/38Unable to add new custom field set or new fields (to existing field set) afte...2022-05-19T14:22:15Zdarren.woodsUnable to add new custom field set or new fields (to existing field set) after enabling multilingual setting.Reproduced on demo site https://dmaster.demo.civicrm.org/ running 5.24.alpha1 and also 5.21.1
1) Settings - Localization - enable Multilingual setting.
2) Custom Data - Add set of custom fields.
3) Enter "Set Name" and select "Used For"...Reproduced on demo site https://dmaster.demo.civicrm.org/ running 5.24.alpha1 and also 5.21.1
1) Settings - Localization - enable Multilingual setting.
2) Custom Data - Add set of custom fields.
3) Enter "Set Name" and select "Used For", click "Save"
**Error returned:-**
Database Error Code: Field of view 'dmastercivi_g5lis.civicrm_custom_group_en_US' underlying table doesn't have a default value, 1423
Additional Details:
`
Array
(
[callback] => Array
(
[0] => CRM_Core_Error
[1] => handle
)
[code] => -1
[message] => DB Error: unknown error
[mode] => 16
[debug_info] => INSERT INTO `civicrm_custom_group_en_US` (`name` , `title` , `extends` , `extends_entity_column_id` , `extends_entity_column_value` , `style` , `collapse_display` , `help_pre` , `help_post` , `weight` , `is_active` , `is_multiple` , `max_multiple` , `created_id` , `created_date` , `is_public` ) VALUES ('test' , 'test' , 'Contact' , NULL , NULL , 'Inline' , 1 , '' , '' , 6 , 1 , 0 , NULL , 203 , 20200305111654 , 1 ) [nativecode=1423 ** Field of view 'dmastercivi_g5lis.civicrm_custom_group_en_US' underlying table doesn't have a default value]
[type] => DB_Error
[user_info] => INSERT INTO `civicrm_custom_group_en_US` (`name` , `title` , `extends` , `extends_entity_column_id` , `extends_entity_column_value` , `style` , `collapse_display` , `help_pre` , `help_post` , `weight` , `is_active` , `is_multiple` , `max_multiple` , `created_id` , `created_date` , `is_public` ) VALUES ('test' , 'test' , 'Contact' , NULL , NULL , 'Inline' , 1 , '' , '' , 6 , 1 , 0 , NULL , 203 , 20200305111654 , 1 ) [nativecode=1423 ** Field of view 'dmastercivi_g5lis.civicrm_custom_group_en_US' underlying table doesn't have a default value]
[to_string] => [db_error: message="DB Error: unknown error" code=-1 mode=callback callback=CRM_Core_Error::handle prefix="" info="INSERT INTO `civicrm_custom_group_en_US` (`name` , `title` , `extends` , `extends_entity_column_id` , `extends_entity_column_value` , `style` , `collapse_display` , `help_pre` , `help_post` , `weight` , `is_active` , `is_multiple` , `max_multiple` , `created_id` , `created_date` , `is_public` ) VALUES ('test' , 'test' , 'Contact' , NULL , NULL , 'Inline' , 1 , '' , '' , 6 , 1 , 0 , NULL , 203 , 20200305111654 , 1 ) [nativecode=1423 ** Field of view 'dmastercivi_g5lis.civicrm_custom_group_en_US' underlying table doesn't have a default value]"]
)
`
Also unable to add new fields to existing sets.
1) Open exiting field set
2) Click "Add custom field"
3) Enter Label
4) Click "Save"
Error details:-
Database Error Code: Field of view 'dmastercivi_g5lis.civicrm_custom_field_en_US' underlying table doesn't have a default value, 1423
Additional Details:
`Array
(
[callback] => Array
(
[0] => CRM_Core_Error
[1] => handle
)
[code] => -1
[message] => DB Error: unknown error
[mode] => 16
[debug_info] => INSERT INTO `civicrm_custom_field_en_US` (`custom_group_id` , `name` , `label` , `data_type` , `html_type` , `default_value` , `is_required` , `is_searchable` , `is_search_range` , `weight` , `help_pre` , `help_post` , `is_active` , `is_view` , `options_per_line` , `text_length` , `start_date_years` , `end_date_years` , `date_format` , `time_format` , `note_columns` , `note_rows` , `column_name` , `option_group_id` , `filter` , `in_selector` ) VALUES ( 7 , 'test' , 'test' , 'String' , 'Text' , NULL , NULL , NULL , 0 , 2 , NULL , NULL , 1 , NULL , NULL , 255 , NULL , NULL , NULL , NULL , 60 , 4 , 'test' , NULL , NULL , 0 ) [nativecode=1423 ** Field of view 'dmastercivi_g5lis.civicrm_custom_field_en_US' underlying table doesn't have a default value]
[type] => DB_Error
[user_info] => INSERT INTO `civicrm_custom_field_en_US` (`custom_group_id` , `name` , `label` , `data_type` , `html_type` , `default_value` , `is_required` , `is_searchable` , `is_search_range` , `weight` , `help_pre` , `help_post` , `is_active` , `is_view` , `options_per_line` , `text_length` , `start_date_years` , `end_date_years` , `date_format` , `time_format` , `note_columns` , `note_rows` , `column_name` , `option_group_id` , `filter` , `in_selector` ) VALUES ( 7 , 'test' , 'test' , 'String' , 'Text' , NULL , NULL , NULL , 0 , 2 , NULL , NULL , 1 , NULL , NULL , 255 , NULL , NULL , NULL , NULL , 60 , 4 , 'test' , NULL , NULL , 0 ) [nativecode=1423 ** Field of view 'dmastercivi_g5lis.civicrm_custom_field_en_US' underlying table doesn't have a default value]
[to_string] => [db_error: message="DB Error: unknown error" code=-1 mode=callback callback=CRM_Core_Error::handle prefix="" info="INSERT INTO `civicrm_custom_field_en_US` (`custom_group_id` , `name` , `label` , `data_type` , `html_type` , `default_value` , `is_required` , `is_searchable` , `is_search_range` , `weight` , `help_pre` , `help_post` , `is_active` , `is_view` , `options_per_line` , `text_length` , `start_date_years` , `end_date_years` , `date_format` , `time_format` , `note_columns` , `note_rows` , `column_name` , `option_group_id` , `filter` , `in_selector` ) VALUES ( 7 , 'test' , 'test' , 'String' , 'Text' , NULL , NULL , NULL , 0 , 2 , NULL , NULL , 1 , NULL , NULL , 255 , NULL , NULL , NULL , NULL , 60 , 4 , 'test' , NULL , NULL , 0 ) [nativecode=1423 ** Field of view 'dmastercivi_g5lis.civicrm_custom_field_en_US' underlying table doesn't have a default value]"]
)`5.47.0https://lab.civicrm.org/dev/wordpress/-/issues/49CiviCRM front end pages broken on WP Latest (master)2021-07-30T16:20:09ZkcristianoCiviCRM front end pages broken on WP Latest (master)WordPress just committed bug fixes `redirect_canonical()` in their master branch. The history is as follows:
Original redirect_canonical issues and patches :
[ticket 11694](https://core.trac.wordpress.org/ticket/11694)
[svn 34492](...WordPress just committed bug fixes `redirect_canonical()` in their master branch. The history is as follows:
Original redirect_canonical issues and patches :
[ticket 11694](https://core.trac.wordpress.org/ticket/11694)
[svn 34492](https://core.trac.wordpress.org/changeset/34492)
2020 redirect_canonical issues :
[ticket 45337](https://core.trac.wordpress.org/ticket/45337)
[ticket 40773](https://core.trac.wordpress.org/ticket/40773)
[ticket 28081](https://core.trac.wordpress.org/ticket/28081)
2020 redirect_canonical svn patches:
[svn 47727](https://core.trac.wordpress.org/changeset/47727)
[svn 47760](https://core.trac.wordpress.org/changeset/47760)
[svn 47761](https://core.trac.wordpress.org/changeset/47761)
[svn 47759](https://core.trac.wordpress.org/changeset/47759)
2020 redirect_canonical Git patches:
[47727](https://github.com/WordPress/wordpress-develop/commit/af596bcc5b37b259982b3e7af4a8c5ab41b8e27e)
[47760](https://github.com/WordPress/wordpress-develop/commit/de14ea86bfe7b34cf99276ae356da43cec088c5c)
[47761](https://github.com/WordPress/wordpress-develop/commit/0206900cfff1b44af94f33f95510b18a77f5dd60)
[47759](https://github.com/WordPress/wordpress-develop/commit/54c8470bd625c843a00f1ecca328c22d279b9632)
[changelog for canonical.php](https://github.com/WordPress/WordPress/commits/master/wp-includes/canonical.php)
These WP changes are correct, the root of the issue is that CiviCRM used `page=CiviCRM` was used on the front end. It should only have been used on the back end. We've gotten away with this for 8 years, it's now time to fix.
The issue is that `canonical_redirect()` now properly strips `page=CiviCRM` from front end pages.
https://wplatest.tadpole.cc is an example site running master of both WP and CiviCRM. CiviCRM pages built with shortcode pages load, but if you take action - try and contribute, submit a profile, click on a link to register on an event info page - 404.
Pages that are linbked to directly - cleanurls or ugly urls, 404.
We need to remove `page=CiviCRM` from the front end pages.
We need to do this before WP updates and we need to backport to ESR as this will break all WP CiviCRM sites.
There is no way understate that if we do dont fix ALL WP Sites will break on update. And if WP does this as aminor release that gets pushed out via auto-update :boom: :bomb:5.26.0https://lab.civicrm.org/dev/financial/-/issues/58Batch payment page breaks when an exported activity has no file to download2019-08-23T22:27:09ZJonGoldBatch payment page breaks when an exported activity has no file to downloadI had a batch export fail because `max_execution_time` failed. This left me with an exported batch without an export file - which causes the View Batches page to fail with the backtrace below.
My patch will prevent the page from crashi...I had a batch export fail because `max_execution_time` failed. This left me with an exported batch without an export file - which causes the View Batches page to fail with the backtrace below.
My patch will prevent the page from crashing so it's possible to view the batch page,
```
May 28 20:13:12 [info] $backTrace = #0 /home/jon/local/agbud8/htdocs/vendor/civicrm/civicrm-core/CRM/Core/Error.php(385): CRM_Core_Error::backtrace("backTrace", TRUE)
#1 /home/jon/local/agbud8/htdocs/vendor/civicrm/civicrm-core/CRM/Core/DAO.php(1196): CRM_Core_Error::fatal()
#2 /home/jon/local/agbud8/htdocs/vendor/civicrm/civicrm-core/CRM/Batch/BAO/Batch.php(337): CRM_Core_DAO::getFieldValue("CRM_Core_DAO_EntityFile", NULL, "file_id", "entity_id")
#3 /home/jon/local/agbud8/htdocs/vendor/civicrm/civicrm-core/CRM/Batch/BAO/Batch.php(172): CRM_Batch_BAO_Batch::getBatchList((Array:31))
#4 /home/jon/local/agbud8/htdocs/vendor/civicrm/civicrm-core/CRM/Batch/Page/AJAX.php(100): CRM_Batch_BAO_Batch::getBatchListSelector((Array:31))
#5 /home/jon/local/agbud8/htdocs/vendor/civicrm/civicrm-core/CRM/Core/Invoke.php(277): CRM_Batch_Page_AJAX::getBatchList()
#6 /home/jon/local/agbud8/htdocs/vendor/civicrm/civicrm-core/CRM/Core/Invoke.php(85): CRM_Core_Invoke::runItem((Array:12))
#7 /home/jon/local/agbud8/htdocs/vendor/civicrm/civicrm-core/CRM/Core/Invoke.php(52): CRM_Core_Invoke::_invoke((Array:3))
#8 /home/jon/local/agbud8/htdocs/web/modules/contrib/civicrm/src/Civicrm.php(88): CRM_Core_Invoke::invoke((Array:3))
#9 /home/jon/local/agbud8/htdocs/web/modules/contrib/civicrm/src/Controller/CivicrmController.php(75): Drupal\civicrm\Civicrm->invoke((Array:3))
#10 [internal function](): Drupal\civicrm\Controller\CivicrmController->main((Array:3), "")
#11 /home/jon/local/agbud8/htdocs/web/core/lib/Drupal/Core/EventSubscriber/EarlyRenderingControllerWrapperSubscriber.php(123): call_user_func_array((Array:2), (Array:2))
#12 /home/jon/local/agbud8/htdocs/web/core/lib/Drupal/Core/Render/Renderer.php(582): Drupal\Core\EventSubscriber\EarlyRenderingControllerWrapperSubscriber->Drupal\Core\EventSubscriber\{closure}()
#13 /home/jon/local/agbud8/htdocs/web/core/lib/Drupal/Core/EventSubscriber/EarlyRenderingControllerWrapperSubscriber.php(124): Drupal\Core\Render\Renderer->executeInRenderContext(Object(Drupal\Core\Render\RenderContext), Object(Closure))
#14 /home/jon/local/agbud8/htdocs/web/core/lib/Drupal/Core/EventSubscriber/EarlyRenderingControllerWrapperSubscriber.php(97): Drupal\Core\EventSubscriber\EarlyRenderingControllerWrapperSubscriber->wrapControllerExecutionInRenderContext((Array:2), (Array:2))
#15 /home/jon/local/agbud8/htdocs/vendor/symfony/http-kernel/HttpKernel.php(151): Drupal\Core\EventSubscriber\EarlyRenderingControllerWrapperSubscriber->Drupal\Core\EventSubscriber\{closure}()
#16 /home/jon/local/agbud8/htdocs/vendor/symfony/http-kernel/HttpKernel.php(68): Symfony\Component\HttpKernel\HttpKernel->handleRaw(Object(Symfony\Component\HttpFoundation\Request), 1)
#17 /home/jon/local/agbud8/htdocs/web/core/lib/Drupal/Core/StackMiddleware/Session.php(57): Symfony\Component\HttpKernel\HttpKernel->handle(Object(Symfony\Component\HttpFoundation\Request), 1, TRUE)
#18 /home/jon/local/agbud8/htdocs/web/core/lib/Drupal/Core/StackMiddleware/KernelPreHandle.php(47): Drupal\Core\StackMiddleware\Session->handle(Object(Symfony\Component\HttpFoundation\Request), 1, TRUE)
#19 /home/jon/local/agbud8/htdocs/web/core/modules/page_cache/src/StackMiddleware/PageCache.php(106): Drupal\Core\StackMiddleware\KernelPreHandle->handle(Object(Symfony\Component\HttpFoundation\Request), 1, TRUE)
#20 /home/jon/local/agbud8/htdocs/web/core/modules/page_cache/src/StackMiddleware/PageCache.php(85): Drupal\page_cache\StackMiddleware\PageCache->pass(Object(Symfony\Component\HttpFoundation\Request), 1, TRUE)
#21 /home/jon/local/agbud8/htdocs/web/core/lib/Drupal/Core/StackMiddleware/ReverseProxyMiddleware.php(47): Drupal\page_cache\StackMiddleware\PageCache->handle(Object(Symfony\Component\HttpFoundation\Request), 1, TRUE)
#22 /home/jon/local/agbud8/htdocs/web/core/lib/Drupal/Core/StackMiddleware/NegotiationMiddleware.php(52): Drupal\Core\StackMiddleware\ReverseProxyMiddleware->handle(Object(Symfony\Component\HttpFoundation\Request), 1, TRUE)
#23 /home/jon/local/agbud8/htdocs/vendor/stack/builder/src/Stack/StackedHttpKernel.php(23): Drupal\Core\StackMiddleware\NegotiationMiddleware->handle(Object(Symfony\Component\HttpFoundation\Request), 1, TRUE)
#24 /home/jon/local/agbud8/htdocs/web/core/lib/Drupal/Core/DrupalKernel.php(693): Stack\StackedHttpKernel->handle(Object(Symfony\Component\HttpFoundation\Request), 1, TRUE)
#25 /home/jon/local/agbud8/htdocs/web/index.php(19): Drupal\Core\DrupalKernel->handle(Object(Symfony\Component\HttpFoundation\Request))
#26 {main}
```5.18.0https://lab.civicrm.org/dev/translation/-/issues/39Installing CiviCRM in another language, with civicrm-setup2020-05-26T00:28:31ZbgmInstalling CiviCRM in another language, with civicrm-setupI have perhaps a bit of a less-common setup, with Aegir, and running into the following situation when installing CiviCRM on Drupal8 with the 'new' civicrm-setup installer:
At first, the installer failed because of:
```
Error: Call to ...I have perhaps a bit of a less-common setup, with Aegir, and running into the following situation when installing CiviCRM on Drupal8 with the 'new' civicrm-setup installer:
At first, the installer failed because of:
```
Error: Call to a member function getPath() on null in CRM_Core_I18n::getResourceDir()
(line 301 of [...]/vendor/civicrm/civicrm-core/CRM/Core/I18n.php
```
So I patched with the following in `civicrm-setup/plugins/installDatabase/InstallSchema.civi-setup.php`:
```
elseif ($seedLanguage) {
global $tsLocale;
$tsLocale = $seedLanguage;
// Added this:
require_once $model->settingsPath;
\Civi\Core\Container::boot(FALSE);
```
but now I'm getting:
```
Exception: No domain in DB
```
since `Civi/Core/Paths.php` initializes CRM_Core_Config::singleton(), which checks for a domain.
trace:
```
civicrm-core/CRM/Core/Config.php line 115
civicrm-core/Civi/Core/Paths.php line 36
civicrm-core/Civi/Core/Paths.php line 145
civicrm-core/Civi/Core/Paths.php line 189
civicrm-core/Civi/Core/Paths.php line 84
civicrm-core/Civi/Core/Paths.php line 145
civicrm-core/Civi/Core/Paths.php line 189
civicrm-core/CRM/Core/I18n.php line 301
```
i.e. it ends up running:
```
->register('civicrm.root', function () {
return \CRM_Core_Config::singleton()->userSystem->getCiviSourceStorage();
})
```
which brings me to a bit of a catch-22, because `civicrm_domain` gets populated by `sql/civicrm_data.fr_CA.mysql`.
I feel like this is a regression caused by the new-ish `[civicrm.l10n]` variable.
If I patch `CRM/Core/I18n.php` to return a hardcoded l10n resourceDir, the installer runs fine.5.27.0https://lab.civicrm.org/dev/wordpress/-/issues/50Upgrade to 5.25.0 failed with CiviCRM WP REST API plugin installed2020-05-14T23:21:36ZMWestergaardUpgrade to 5.25.0 failed with CiviCRM WP REST API plugin installedAttempted upgrade to 5.25.0 on Wordpress dev box. Failed with "Fatal error: Cannot declare class CiviCRM_WP_REST\Autoloader, because the name is already in use in /var/www/html/wp-content/plugins/civicrm-wp-rest-master/src/Autoloader.php...Attempted upgrade to 5.25.0 on Wordpress dev box. Failed with "Fatal error: Cannot declare class CiviCRM_WP_REST\Autoloader, because the name is already in use in /var/www/html/wp-content/plugins/civicrm-wp-rest-master/src/Autoloader.php on line 10". Removed "CiviCRM WP REST API" plugin and successfully restarted upgrade.kcristianokcristianohttps://lab.civicrm.org/dev/core/-/issues/59scheduled reminders: add form validation to email field2021-03-23T02:27:09Zlcdwebscheduled reminders: add form validation to email fieldcurrently a person could put something other than an email address in the From email field and it doesn't throw a form validation error. as a result, no emails are delivered (silent failure).currently a person could put something other than an email address in the From email field and it doesn't throw a form validation error. as a result, no emails are delivered (silent failure).lcdweblcdwebhttps://lab.civicrm.org/dev/financial/-/issues/59[Unreleased regression] Undefined method when viewing Contribution Batch Sear...2019-09-04T14:42:48ZJonGold[Unreleased regression] Undefined method when viewing Contribution Batch Search screenThis exists on `master` but not the `5.13` branch.
To replicate: Go to **Contributions » Accounting Batches » New Batch**, then press **Save** on the next screen.
You'll receive an "Undefined Method" error:
```
[29-May-2019 21:24:28 U...This exists on `master` but not the `5.13` branch.
To replicate: Go to **Contributions » Accounting Batches » New Batch**, then press **Save** on the next screen.
You'll receive an "Undefined Method" error:
```
[29-May-2019 21:24:28 UTC] PHP Fatal error: Uncaught Error: Call to undefined method CRM_Financial_Form_BatchTransaction::addSearchFieldMetadata() in /srv/www/wpcvmaster/wp-content/plugins/civicrm/civicrm/CRM/Contribute/BAO/Query.php:945
Stack trace:
#0 /srv/www/wpcvmaster/wp-content/plugins/civicrm/civicrm/CRM/Financial/Form/BatchTransaction.php(134): CRM_Contribute_BAO_Query::buildSearchForm(Object(CRM_Financial_Form_BatchTransaction))
#1 /srv/www/wpcvmaster/wp-content/plugins/civicrm/civicrm/CRM/Core/Form.php(606): CRM_Financial_Form_BatchTransaction->buildQuickForm()
#2 /srv/www/wpcvmaster/wp-content/plugins/civicrm/civicrm/CRM/Core/QuickForm/Action/Display.php(92): CRM_Core_Form->buildForm()
#3 /srv/www/wpcvmaster/wp-content/plugins/civicrm/civicrm/packages/HTML/QuickForm/Controller.php(203): CRM_Core_QuickForm_Action_Display->perform(Object(CRM_Financial_Form_BatchTransaction), 'display')
#4 /srv/www/wpcvmaster/wp-content/plugins/civicrm/civicrm/packages/HTML/QuickForm/Page.php(103): HTML_QuickForm_Controller->handle(Object(CRM_Financial_Form_Bat in /srv/www/wpcvmaster/wp-content/plugins/civicrm/civicrm/CRM/Contribute/BAO/Query.php on line 945
```
I assume this is because a method got shifted to another file.
**Note** When someone tried to replicate this, it didn't occur until they cleared their cache. I'm assuming that's why this isn't happening on the demo sites.5.15.0https://lab.civicrm.org/dev/translation/-/issues/40Can't install 5.23 in another language2020-03-25T04:34:05ZDaveDCan't install 5.23 in another language5.23.3 drupal 7
Also affects 5.24
Also reported on Stackexchange for wordpress by two separate people (but it's a bit buried inside another question https://civicrm.stackexchange.com/questions/35014/local-flywheel-wordpress-install-with...5.23.3 drupal 7
Also affects 5.24
Also reported on Stackexchange for wordpress by two separate people (but it's a bit buried inside another question https://civicrm.stackexchange.com/questions/35014/local-flywheel-wordpress-install-with-civicrm)
You get a white screen and the apache error log has a truncated stack trace:
```
PHP Fatal error: Uncaught RuntimeException: Undefined constant: CIVICRM_TEMPLATE_COMPILEDIR in http://example.org/sites/all/modules/civicrm/CRM/Utils/File.php:583
Stack trace:
0 http://example.org/sites/all/modules/civicrm/Civi/Core/Paths.php(65): CRM_Utils_File::baseFilePath()
1 [internal function]: Civi/Core/Paths->Civi/Core/{closure}()
2 http://example.org/sites/all/modules/civicrm/Civi/Core/Paths.php(145): call_user_func(Object(Closure))
3 http://example.org/sites/all/modules/civicrm/Civi/Core/Paths.php(228): Civi/Core/Paths->getVariable('civicrm.private', 'path')
4 http://example.org/sites/all/modules/civicrm/Civi/Core/Paths.php(82): Civi/Core/Paths->getPath('l10n')
5 [internal function]: Civi/Core/Paths->Civi/Core/{closure}()
6 http://example.org/sites/all/modules/civicrm/Civi/Core/Paths.php(145): call_user_func(Object(Closure))
7 [useless since it's truncated] in http://example.org/sites/all/modules/civicrm/CRM/Utils/File.php on line 583, referer: http://example.org/sites/all/modules/civicrm/install/index.php
```5.24.0https://lab.civicrm.org/dev/wordpress/-/issues/51Drop support for WordPress versions prior to 4.92020-06-08T14:50:26ZkcristianoDrop support for WordPress versions prior to 4.9Currently we state that we support WordPress versions back to 3.4 ["WordPress 3.4.x or newer is required."](https://docs.civicrm.org/sysadmin/en/latest/requirements/#wordpress)
However, CiviCRM won't run on all older versions of WP. A...Currently we state that we support WordPress versions back to 3.4 ["WordPress 3.4.x or newer is required."](https://docs.civicrm.org/sysadmin/en/latest/requirements/#wordpress)
However, CiviCRM won't run on all older versions of WP. As WP itself raised it's minimum requirements to php 5.6 in [version 5.2](https://make.wordpress.org/core/2018/12/08/updating-the-minimum-php-version/) it's time to change the minimum required version.
So why Version 4.9?
4.9 was released on [November 15 2017](https://wordpress.org/support/wordpress-version/version-4-9/) and is fully compatible with php versions up to [7.2](https://wordpress.org/support/wordpress-version/version-4-9/#miscellaneous) 4.9 will support our current ESR release and our upcoming releases until we drop php 7.2 support. I expect that will cover us for quite some time.https://lab.civicrm.org/dev/core/-/issues/60"Check number" isn't shown on Pay Later event registrations when edited2023-09-06T16:08:21Zlaryn"Check number" isn't shown on Pay Later event registrations when editedThis happens to me with an event registration that comes through 'webform_civicrm' as a "Pending (Pay Later)". When I try to edit the participant record to record a payment, the "Check Number" field never shows up despite "Check" being s...This happens to me with an event registration that comes through 'webform_civicrm' as a "Pending (Pay Later)". When I try to edit the participant record to record a payment, the "Check Number" field never shows up despite "Check" being selected as the payment instrument.
**I was able to reproduce on a demo server by doing the following**:
* Create a registration, marking it as "Pending (Pay Later)" and unchecking "Record Payment"
* Edit the new participant you just created, check "Record Payment" and make sure "Check" is selected as the payment instrument.
No "Check Number" field is shown.
![Screen_Shot_2018-04-11_at_3.52.02_PM](/uploads/02f92e016aa97074be80d410ca596db1/Screen_Shot_2018-04-11_at_3.52.02_PM.jpg)5.2.0eileeneileenhttps://lab.civicrm.org/dev/wordpress/-/issues/52Public mailing URL links are broken after merge of REST API wrapper code2020-05-24T23:12:30ZandyburnsPublic mailing URL links are broken after merge of REST API wrapper codeOn 5.25.0 with the https://github.com/civicrm/civicrm-wordpress/pull/160, and the [filter](https://docs.civicrm.org/dev/en/latest/api/v3/wp-rest/#settings) in place, when you go to the the public mailing URL, the links are broken and res...On 5.25.0 with the https://github.com/civicrm/civicrm-wordpress/pull/160, and the [filter](https://docs.civicrm.org/dev/en/latest/api/v3/wp-rest/#settings) in place, when you go to the the public mailing URL, the links are broken and results in this response
![invalid-mailing-url](/uploads/0e03aa0d71166f15070f790d1126891f/invalid-mailing-url.PNG)
There is no qid for link tracking so it fails. New link: https://example.org/wp-json/civicrm/v3/url?u=1344&qid= However, the old way of things didn't have a qid either, e.g. https://example.org/wp-content/plugins/civicrm/civicrm/extern/url.php?u=1344&qid= and that resolved to the correct link.
Related: #475.26.0https://lab.civicrm.org/dev/core/-/issues/61Split edit message templates permission2018-10-05T01:39:35ZajesamsonSplit edit message templates permissionThe `edit message templates` permission currently grants access to user-driven messages and system workflow message. The implication of this is that, there is no way of restricting a particular user to just user-driven messages or system...The `edit message templates` permission currently grants access to user-driven messages and system workflow message. The implication of this is that, there is no way of restricting a particular user to just user-driven messages or system workflow messages.
It is therefore better to split `edit message templates` into two granular permissions (`edit user-driven message templates` and `edit system workflow message templates`) so that user access can be better managed.
![before](/uploads/896ebbdb81b419fb607750667c569486/before.gif)5.3.0https://lab.civicrm.org/dev/wordpress/-/issues/53CiviMail doesn't send to full recipient list with merge of REST API wrapper code2020-06-06T14:13:05ZandyburnsCiviMail doesn't send to full recipient list with merge of REST API wrapper codeWith these changes https://github.com/civicrm/civicrm-wordpress/pull/160 and the [filter](https://docs.civicrm.org/dev/en/latest/api/v3/wp-rest/#settings) in place a mailing that was intended for 1605 recipients stopped sending at 399 re...With these changes https://github.com/civicrm/civicrm-wordpress/pull/160 and the [filter](https://docs.civicrm.org/dev/en/latest/api/v3/wp-rest/#settings) in place a mailing that was intended for 1605 recipients stopped sending at 399 recipients. Typically a mailing of this size would complete in 5-7 minutes. This is using Sparkpost 1.3.
The mailing status was stuck in running and did not change after a new cron run time 15 min later. When we tried to manually execute the Send Scheduled Mailings job that resulted in this error from WP debugging:
```Notice: Undefined index: html in /var/www/lporg/wp-content/plugins/civicrm/wp-rest/Civi/Mailing-Hooks.php on line 109Fatal error: Uncaught TypeError: Argument 1 passed to CiviCRM_WP_REST\Civi\Mailing_Hooks::is_mail_tracking_url_alterable() must be of the type string, null given, called in /var/www/lporg/wp-content/plugins/civicrm/wp-rest/Civi/Mailing-Hooks.php on line 109 and defined in /var/www/lporg/wp-content/plugins/civicrm/wp-rest/Civi/Mailing-Hooks.php:191 Stack trace: #0 /var/www/lporg/wp-content/plugins/civicrm/wp-rest/Civi/Mailing-Hooks.php(109): CiviCRM_WP_REST\Civi\Mailing_Hooks->is_mail_tracking_url_alterable(NULL) #1 /var/www/lporg/wp-includes/class-wp-hook.php(287): CiviCRM_WP_REST\Civi\Mailing_Hooks->do_mailing_urls(Array, 'civimail') #2 /var/www/lporg/wp-includes/class-wp-hook.php(311): WP_Hook->apply_filters('', Array) #3 /var/www/lporg/wp-includes/plugin.php(544): WP_Hook->do_action(Array) #4 /var/www/lporg/wp-content/plugins/civicrm/civicrm/CRM/Utils/Hook/WordPress.php(108): do_action_ref_array('civicrm_alterMa...', Array) #5 /var/www/lporg/wp-content/plugins/civicrm/civicrm/Civi/Core/CiviEventDispatcher.php(90): CRM_ in /var/www/lporg/wp-content/plugins/civicrm/wp-rest/Civi/Mailing-Hooks.php on line 19```
We removed the filter and executed the scheduled job and the mailing started again and finished successfully.
Ref: #47https://lab.civicrm.org/dev/core/-/issues/62Relationship report: add address columns2018-04-18T07:42:28ZjaapjansmaRelationship report: add address columnsThe relationship report has the ability to show the e-mail address, phone number and name of contact a and contact b of a relationship.
There is no ability to show the address of contact a or contact bThe relationship report has the ability to show the e-mail address, phone number and name of contact a and contact b of a relationship.
There is no ability to show the address of contact a or contact bhttps://lab.civicrm.org/dev/translation/-/issues/43Ticket to collect steps needed when adding a new language2020-10-22T14:36:09ZDaveDTicket to collect steps needed when adding a new languageSorry if this is already documented somewhere. I found [this page](https://lab.civicrm.org/dev/translation/-/wikis/New-official-language) but it's about policies not procedures.
As I learned recently, when a new language is added to civ...Sorry if this is already documented somewhere. I found [this page](https://lab.civicrm.org/dev/translation/-/wikis/New-official-language) but it's about policies not procedures.
As I learned recently, when a new language is added to civicrm-core:master, future PR's against the RC or current release will fail test runs in a confusingly unrelated way. So at least at the moment one of the non-obvious steps is that the language needs to be backported. (UPDATE: not strictly needed now as of 2020-04-08.)
So while it's fresh in my head trying to gather the steps.
ref: https://lab.civicrm.org/dev/translation/-/issues/4
* Create the new translation of CiviCRM in transifex.
* If a language variant, sync it from another variant (jenkins script).
* Update [conf/distributed_languages.txt](https://lab.civicrm.org/dev/translation/-/blob/master/conf/distributed_languages.txt).
* Wait until the language appears in the daily l10n tarball.
* Update [xml/templates/languages.tpl](https://github.com/civicrm/civicrm-core/blob/master/xml/templates/languages.tpl), and then run bin/regen.sh which will update
* install/langs.php
* sql/civicrm_generated.mysql
* Make a core PR against master including those three files, and an upgrade script to add the option value.
* ~~Backport the PR to the RC and current (maybe - pending https://github.com/civicrm/civicrm-core/pull/17021).~~ 17021 was merged so it's not strictly necessary - lang will show as the code, e.g `(nl_BE)`, and is technically usable, until master becomes current.https://lab.civicrm.org/dev/wordpress/-/issues/54Tentative: issue with new page/civiwp patch2020-05-22T13:55:16ZAndrew WestTentative: issue with new page/civiwp patchThis is a tentative issue, but I wanted to flag it while I do some more testing - just in case someone somewhere is dropping a point release tonight.
I applied the patch for turning page= into civiwp= and have had problems with forms in...This is a tentative issue, but I wanted to flag it while I do some more testing - just in case someone somewhere is dropping a point release tonight.
I applied the patch for turning page= into civiwp= and have had problems with forms in extensions. Our URL /civicrm/governance/proxyvote began resolving to /civicrm/governance/proxyvote?civiwp=CiviCRM. And then the form didn't process when submitted - postprocess() just didn't fire. I'm seeing similar on profile links: /civicrm/profile/create/?gid=1&reset=1 becomes /civicrm/profile/create/?gid=1&reset=1&civiwp=CiviCRM.
I think it's very likely this is something in our setup, or a silly mistake on my part somewhere. @kcristiano seems to have tested on similar setups and it's been fine. But I've tried this on two sites with the same issue. The first is running WP 5.4, Civi 5.24.6, the second WP 5.4 and 5.25. The latter has far fewer plugins or extensions, but neither are entirely clean.
I'll test more tomorrow and report back. Hopefully this is something I've done wrong / in our setup.https://lab.civicrm.org/dev/core/-/issues/63Clarify profile permissions2019-08-14T08:30:09ZherbdoolClarify profile permissionsThe profile permissions (listings, listings and forms, view/create/edit) are quite vague and confusing, even for seasoned devs like myself. Most of them don't have descriptions nor warnings. This is at least in Drupal but maybe others as...The profile permissions (listings, listings and forms, view/create/edit) are quite vague and confusing, even for seasoned devs like myself. Most of them don't have descriptions nor warnings. This is at least in Drupal but maybe others as well.
![Screenshot_from_2018-04-16_10-36-50](/uploads/6bb35484ff0f5bdbecd612d42526d7b9/Screenshot_from_2018-04-16_10-36-50.png)
For instance, in the code "CiviCRM: profile listings and forms" is described as "all powerful". And in the guide https://docs.civicrm.org/user/en/latest/initial-set-up/permissions-and-access-control/ it doesn't really clarify that this is a dangerous permission for anon/authenticated users. In fact, it even implies that anonymous roles are given this permission!
![Screenshot_from_2018-04-16_10-45-18](/uploads/45c5a8f36699cac403b81177de1a43b7/Screenshot_from_2018-04-16_10-45-18.png)
But ironically, "CiviCRM: profile create" sounds dangerous--can the user create forms?--when in fact it just means they can fill out a form.
It wouldn't be hard to just clarify these for everyone.