Bugzilla – Attachment 164369 Details for
Bug 33568
Use the REST API to display items on the staff biblio detail view
Home
|
New
|
Browse
|
Search
|
[?]
|
Reports
|
Help
|
New Account
|
Log In
[x]
|
Forgot Password
Login:
[x]
[patch]
Bug 33568: (follow-up) Fix ordering - WIP
Bug-33568-follow-up-Fix-ordering---WIP.patch (text/plain), 3.34 KB, created by
Jonathan Druart
on 2024-04-03 07:41:54 UTC
(
hide
)
Description:
Bug 33568: (follow-up) Fix ordering - WIP
Filename:
MIME Type:
Creator:
Jonathan Druart
Created:
2024-04-03 07:41:54 UTC
Size:
3.34 KB
patch
obsolete
>From 6c5d0681bfd1cfb6c9621c5afa3ef0322c04d278 Mon Sep 17 00:00:00 2001 >From: Jonathan Druart <jonathan.druart@bugs.koha-community.org> >Date: Thu, 1 Feb 2024 09:48:31 +0100 >Subject: [PATCH] Bug 33568: (follow-up) Fix ordering - WIP >MIME-Version: 1.0 >Content-Type: text/plain; charset=UTF-8 >Content-Transfer-Encoding: 8bit > >This is not working. We are still getting the error >Unable to programatically derive a required group_by from the supplied order_by criteria. To proceed either add an explicit group_by, or simplify your order_by to only include plain columns (supplied order_by: 'lpad_copynumber'). > >To recreate the problem you can go to detail.pl and search for something >Without search the query is working. > >The problem appears when the query has WHERE parameters added and "GROUP >BY" is added. >DBIC is adding to the GROUP BY what is added to the select, but does not >handle this situation (not a plain column). > >You can play with: >1. >Remove from Koha::Items->search_ordered >475 'lpad_copynumber', >=> all good > >2. Remove the following block from /usr/share/perl5/DBIx/Class/Storage/DBIHacks.pm > 584 # only consider real columns (for functions the user got to do an explicit group_by) > 585 my $chunk_ci; > 586 if ( > 587 @{$order_by[$o_idx]} != 1 > 588 or > 589 # only declare an unknown *plain* identifier as "leftover" if we are called with > 590 # aliastypes to examine. If there are none - we are still in _resolve_attrs, and > 591 # can just assume the user knows what they want > 592 ( ! ( $chunk_ci = $colinfos->{$order_by[$o_idx][0]} ) and $attrs->{_aliastypes} ) > 593 ) { > 594 push @$leftovers, $order_by[$o_idx][0]; > 595 } >=> all good > >I don't know if we are doing something wrong here, but I have no idea >how we can build the group_by explicitely. > >Is there another way to do this? > >Signed-off-by: Laurence Rault <laurence.rault@biblibre.com> >Signed-off-by: Emily Lamancusa <emily.lamancusa@montgomerycountymd.gov> >Signed-off-by: Tomás Cohen Arazi <tomascohen@theke.io> >--- > Koha/Items.pm | 5 ++++- > Koha/REST/V1/Biblios.pm | 1 + > 2 files changed, 5 insertions(+), 1 deletion(-) > >diff --git a/Koha/Items.pm b/Koha/Items.pm >index 4089068b34d..03fd6da0ac3 100644 >--- a/Koha/Items.pm >+++ b/Koha/Items.pm >@@ -466,10 +466,13 @@ sub search_ordered { > return $self->search( > {}, > { >+ '+select' => [{ >+ lpad => ['copynumber', \8, \"'0'"], '-as' => 'lpad_copynumber', >+ }], > order_by => [ > 'homebranch.branchname', > 'me.enumchron', >- \"LPAD( me.copynumber, 8, '0' )", >+ 'lpad_copynumber', > {-desc => 'me.dateaccessioned'} > ], > join => ['homebranch'] >diff --git a/Koha/REST/V1/Biblios.pm b/Koha/REST/V1/Biblios.pm >index edb51653146..59d4c62f297 100644 >--- a/Koha/REST/V1/Biblios.pm >+++ b/Koha/REST/V1/Biblios.pm >@@ -307,6 +307,7 @@ sub get_items { > $items_rs = $items_rs->filter_by_bookable if $bookable_only; > # FIXME We need to order_by serial.publisheddate if we have _order_by=+me.serial_issue_number > my $items = $c->objects->search($items_rs); >+ delete $_->{lpad_copynumber} for @$items; > > return $c->render( > status => 200, >-- >2.34.1
You cannot view the attachment while viewing its details because your browser does not support IFRAMEs.
View the attachment on a separate page
.
View Attachment As Diff
View Attachment As Raw
Actions:
View
|
Diff
|
Splinter Review
Attachments on
bug 33568
:
151339
|
153791
|
164308
|
164309
|
164310
|
164311
|
164312
|
164313
|
164314
|
164315
|
164316
|
164317
|
164318
|
164319
|
164320
|
164321
|
164322
|
164323
|
164324
|
164325
|
164326
|
164327
|
164328
|
164329
|
164330
|
164331
|
164332
|
164333
|
164334
|
164335
|
164336
|
164337
|
164338
|
164339
|
164340
|
164341
|
164342
|
164343
|
164344
|
164345
|
164346
|
164347
|
164348
|
164349
|
164350
|
164351
|
164352
|
164353
|
164354
|
164355
|
164356
|
164358
|
164359
|
164360
|
164361
|
164362
|
164363
|
164364
|
164365
|
164366
|
164367
|
164368
|
164369
|
164370
|
164371
|
164372
|
164373
|
164374
|
164472
|
164480
|
164482
|
164483
|
164485
|
164528