During our ILL development we noticed that there are issues with translations and the API. Using the C4::Languages::getlanguage method from the API controller is not working because the cookies is not passed and the environment variables are lost.
As part of our work on an ILL backend we have implemented this solution in Koha/REST/V1/Illrequests.pm. It works really well, but of course only for this small part. Is there way the solution could be generalized? Koha/REST/V1/Illrequests.pm sub list { my $c = shift->openapi->valid_input or return; eval { $ENV{HTTP_ACCEPT_LANGUAGE} = $c->req->cookie('KohaOpacLanguage')->value; }; return try {
Any way we could help to move this forward?
(In reply to Katrin Fischer from comment #2) > Any way we could help to move this forward? You did. Thanks for the reminder [U+1F397]️
Created attachment 160354 [details] [review] Bug 32551: Regression tests
Created attachment 160355 [details] [review] Bug 32551: HTTP_ACCEPT_LANGUAGE legacy CGI variable not set in Mojolicious This patch addresses the fact some of our code still relies on those CGI-era ENV variables. In particular, C4::Laguages::getlanguage expects it to calculate the most suitable language. As this is reported as required, I provide a fix. I did a `git grep HTTP_` on the codebase, and the only other occurences are: * C4::Output (HTTP_X_REQUESTED_WITH) * C4::Context (HTTP_USER_AGENT, HTTP_X_FORWARDED_FOR) * C4::Auth_with_shibboleth (using HTTP_ variables for matchpoints) * Some handling on the 'Koha as a Mojo app' code * Some .pl script not relevant to this report I decided to limit this patch to the requested header which seems harmless. I leave the other cases. To test: 1. Apply the regression tests patch 2. Run: $ ktd --shell k$ qa -c 1 => FAIL: Tests fail! 3. Apply this patch 4. Run: k$ qa -c 2 => SUCCESS: Tests pass! All green! 5. Sign off :-D
Created attachment 160358 [details] [review] Bug 32551: Regression tests Signed-off-by: David Nind <david@davidnind.com>
Created attachment 160359 [details] [review] Bug 32551: HTTP_ACCEPT_LANGUAGE legacy CGI variable not set in Mojolicious This patch addresses the fact some of our code still relies on those CGI-era ENV variables. In particular, C4::Laguages::getlanguage expects it to calculate the most suitable language. As this is reported as required, I provide a fix. I did a `git grep HTTP_` on the codebase, and the only other occurences are: * C4::Output (HTTP_X_REQUESTED_WITH) * C4::Context (HTTP_USER_AGENT, HTTP_X_FORWARDED_FOR) * C4::Auth_with_shibboleth (using HTTP_ variables for matchpoints) * Some handling on the 'Koha as a Mojo app' code * Some .pl script not relevant to this report I decided to limit this patch to the requested header which seems harmless. I leave the other cases. To test: 1. Apply the regression tests patch 2. Run: $ ktd --shell k$ qa -c 1 => FAIL: Tests fail! 3. Apply this patch 4. Run: k$ qa -c 2 => SUCCESS: Tests pass! All green! 5. Sign off :-D Signed-off-by: David Nind <david@davidnind.com>
Created attachment 160585 [details] [review] Bug 32551: Regression tests Signed-off-by: David Nind <david@davidnind.com> Signed-off-by: Nick Clemens <nick@bywatersolutions.com>
Created attachment 160586 [details] [review] Bug 32551: HTTP_ACCEPT_LANGUAGE legacy CGI variable not set in Mojolicious This patch addresses the fact some of our code still relies on those CGI-era ENV variables. In particular, C4::Laguages::getlanguage expects it to calculate the most suitable language. As this is reported as required, I provide a fix. I did a `git grep HTTP_` on the codebase, and the only other occurences are: * C4::Output (HTTP_X_REQUESTED_WITH) * C4::Context (HTTP_USER_AGENT, HTTP_X_FORWARDED_FOR) * C4::Auth_with_shibboleth (using HTTP_ variables for matchpoints) * Some handling on the 'Koha as a Mojo app' code * Some .pl script not relevant to this report I decided to limit this patch to the requested header which seems harmless. I leave the other cases. To test: 1. Apply the regression tests patch 2. Run: $ ktd --shell k$ qa -c 1 => FAIL: Tests fail! 3. Apply this patch 4. Run: k$ qa -c 2 => SUCCESS: Tests pass! All green! 5. Sign off :-D Signed-off-by: David Nind <david@davidnind.com> Signed-off-by: Nick Clemens <nick@bywatersolutions.com>
Pushed for 24.05! Well done everyone, thank you!
Pushed to 23.11.x for 23.11.02
Backported to 23.05.x for upcoming 23.05.08