[open-ils-commits] ***SPAM*** [GIT] Evergreen ILS branch master updated. 63a26679e88b056909257b6e7657a0d4aed469f7

Evergreen Git git at git.evergreen-ils.org
Thu Sep 25 17:15:09 EDT 2014


This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "Evergreen ILS".

The branch, master has been updated
       via  63a26679e88b056909257b6e7657a0d4aed469f7 (commit)
      from  a4dd07fe7c8cca910941ba8abbc1a5f656063229 (commit)

Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.

- Log -----------------------------------------------------------------
commit 63a26679e88b056909257b6e7657a0d4aed469f7
Author: Chris Sharp <csharp at georgialibraries.org>
Date:   Thu Sep 25 11:45:44 2014 -0400

    LP#1373693: Speed up call number browse search at top level org.
    
    Signed-off-by: Chris Sharp <csharp at georgialibraries.org>
    Signed-off-by: Ben Shum <bshum at biblio.org>

diff --git a/Open-ILS/src/perlmods/lib/OpenILS/Application/SuperCat.pm b/Open-ILS/src/perlmods/lib/OpenILS/Application/SuperCat.pm
index 4d4ed93..bf795e4 100644
--- a/Open-ILS/src/perlmods/lib/OpenILS/Application/SuperCat.pm
+++ b/Open-ILS/src/perlmods/lib/OpenILS/Application/SuperCat.pm
@@ -335,7 +335,7 @@ sub _label_sortkey_from_label {
     my $closest_cn = $_storage->request(
             "open-ils.cstore.direct.asset.call_number.search.atomic",
             { label      => { ">=" => { transform => "oils_text_as_bytea", value => ["oils_text_as_bytea", $label] } },
-              owning_lib => $ou_ids,
+              (scalar(@$ou_ids) ? (owning_lib => $ou_ids) : ()),
               deleted    => 'f',
               @$cp_filter
             },
@@ -375,22 +375,33 @@ sub cn_browse {
 
     my $_storage = OpenSRF::AppSession->create( 'open-ils.cstore' );
 
-    my $o_search = { shortname => $ou };
-    if (!$ou || $ou eq '-') {
-        $o_search = { parent_ou => undef };
-    }
-
-    my $orgs = $_storage->request(
-        "open-ils.cstore.direct.actor.org_unit.search",
-        $o_search,
-        { flesh     => 100,
-          flesh_fields  => { aou    => [qw/children/] }
-        }
-    )->gather(1);
+    my @ou_ids;
+    # if OU is not specified, or if '-' is specified, do not enter the block
+    unless (!$ou || $ou eq '-') {
+        # check if the shortname of the top org_unit is specified
+	    my $top_org = $_storage->request(
+            "open-ils.cstore.direct.actor.org_unit.search",
+             { parent_ou => undef }
+	    )->gather(1);
+
+        if ($ou eq $top_org->shortname) {
+	        $logger->debug("Searching for CNs at top org $ou");
+	    } else {
+            my $o_search = { shortname => $ou };
+
+            my $orgs = $_storage->request(
+                "open-ils.cstore.direct.actor.org_unit.search",
+                $o_search,
+                { flesh     => 100,
+                flesh_fields  => { aou    => [qw/children/] }
+                }
+            )->gather(1);
 
-    my @ou_ids = tree_walker($orgs, 'children', sub {shift->id}) if $orgs;
+            @ou_ids = tree_walker($orgs, 'children', sub {shift->id}) if $orgs;
 
-    $logger->debug("Searching for CNs at orgs [".join(',', at ou_ids)."], based on $ou");
+            $logger->debug("Searching for CNs at orgs [".join(',', at ou_ids)."], based on $ou");
+        }
+    }
 
     my @list = ();
 
@@ -416,7 +427,7 @@ sub cn_browse {
         my $before = $_storage->request(
             "open-ils.cstore.direct.asset.call_number.search.atomic",
             { label_sortkey => { "<" => { transform => "oils_text_as_bytea", value => ["oils_text_as_bytea", $label_sortkey] } },
-              owning_lib    => \@ou_ids,
+              (scalar(@ou_ids) ? (owning_lib => \@ou_ids) : ()),
               deleted => 'f',
               @cp_filter
             },
@@ -434,7 +445,7 @@ sub cn_browse {
         my $after = $_storage->request(
             "open-ils.cstore.direct.asset.call_number.search.atomic",
             { label_sortkey => { ">=" => { transform => "oils_text_as_bytea", value => ["oils_text_as_bytea", $label_sortkey] } },
-              owning_lib    => \@ou_ids,
+              (scalar(@ou_ids) ? (owning_lib => \@ou_ids) : ()),
               deleted => 'f',
               @cp_filter
             },

-----------------------------------------------------------------------

Summary of changes:
 .../perlmods/lib/OpenILS/Application/SuperCat.pm   |   45 ++++++++++++-------
 1 files changed, 28 insertions(+), 17 deletions(-)


hooks/post-receive
-- 
Evergreen ILS


More information about the open-ils-commits mailing list