Need to distinguish between controlled and uncontrolled attributes when finding value IDs
authorMike Rylander <mrylander@gmail.com>
Fri, 17 Jan 2014 23:55:26 +0000 (18:55 -0500)
committerMike Rylander <mrylander@gmail.com>
Wed, 22 Jan 2014 14:45:02 +0000 (09:45 -0500)
Signed-off-by: Mike Rylander <mrylander@gmail.com>
Open-ILS/src/perlmods/lib/OpenILS/Application/Storage/Driver/Pg/QueryParser.pm

index 997c94f..147b165 100644 (file)
@@ -713,8 +713,10 @@ sub dynamic_filter_compile {
 
     my $method = $_dfilter_controlled_cache{$filter}{controlled} ?
         'search_config_coded_value_map' : 'search_metabib_uncontrolled_record_attr_value';
-    my $match_field = $_dfilter_controlled_cache{$filter}{controlled} ?
+    my $attr_field = $_dfilter_controlled_cache{$filter}{controlled} ?
         'ctype' : 'attr';
+    my $value_field = $_dfilter_controlled_cache{$filter}{controlled} ?
+        'code' : 'value';
 
     return sprintf('%s(%s)', $negate,
         join(
@@ -722,7 +724,7 @@ sub dynamic_filter_compile {
             map {
                 $_->id
             } @{
-                $e->$method({ $match_field => $filter, code => $params })
+                $e->$method({ $attr_field => $filter, $value_field => $params })
             }
         )
     );