]> wagnertech.de Git - kivitendo-erp.git/commitdiff
exact match funktion wieder hergestellt nach dem letzten commit
authorSven Schöling <s.schoeling@linet-services.de>
Wed, 10 Jul 2013 17:18:42 +0000 (19:18 +0200)
committerSven Schöling <s.schoeling@linet-services.de>
Thu, 11 Jul 2013 09:08:14 +0000 (11:08 +0200)
SL/Controller/Part.pm
SL/Presenter/Part.pm

index 4d8da25f854a57e0b2e675f622d24497d20e3bd2..9b4744e9e6bebdb8cf8ae2fcc6e53cf2a175dfde 100644 (file)
@@ -44,8 +44,23 @@ sub action_ajax_autocomplete {
 
   # if someone types something, and hits enter, assume he entered the full name.
   # if something matches, treat that as sole match
 
   # if someone types something, and hits enter, assume he entered the full name.
   # if something matches, treat that as sole match
+  # unfortunately get_models can't do more than one per package atm, so we d it
+  # the oldfashioned way.
   if ($::form->{prefer_exact}) {
   if ($::form->{prefer_exact}) {
-    # TODO!
+    my $exact_matches;
+    if (1 == scalar @{ $exact_matches = SL::DB::Manager::Part->get_all(
+      query => [
+        obsolete => 0,
+        SL::DB::Manager::Part->type_filter($::form->{filter}{type}),
+        or => [
+          description => { ilike => $::form->{filter}{'all:substr::ilike'} },
+          partnumber  => { ilike => $::form->{filter}{'all:substr::ilike'} },
+        ]
+      ],
+      limit => 2,
+    ) }) {
+      $self->parts($exact_matches);
+    }
   }
 
   my @hashes = map {
   }
 
   my @hashes = map {
@@ -57,7 +72,7 @@ sub action_ajax_autocomplete {
      description => $_->description,
      type        => $_->type,
     }
      description => $_->description,
      type        => $_->type,
     }
-  } @{ $self->parts };
+  } @{ $self->parts }; # neato: if exact match triggers we don't even need the init_parts
 
   $self->render(\ SL::JSON::to_json(\@hashes), { layout => 0, type => 'json', process => 0 });
 }
 
   $self->render(\ SL::JSON::to_json(\@hashes), { layout => 0, type => 'json', process => 0 });
 }
index bef55a35f2f0623ed574e47728de85aa89cd346a..e2ca020858eeffde4a9d3b106aa9058b510de2dc 100644 (file)
@@ -49,10 +49,14 @@ section C<PART PICKER SPECIFICATION>.
 
 C<VALUE> can be an id or C<Rose::DB:Object> instance.
 
 
 C<VALUE> can be an id or C<Rose::DB:Object> instance.
 
-If C<PARAMS> contains C<type> only parts of this type will be used for autocompletion.
+If C<PARAMS> contains C<type> only parts of this type will be used for
+autocompletion. Currently only one type may be specified.
 
 Obsolete parts will by default not displayed for selection. However they are
 
 Obsolete parts will by default not displayed for selection. However they are
-accepted as default values and can persist during updates.
+accepted as default values and can persist during updates. As with other
+selectors though, they are not selecatble once overridden.
+
+
 
 =back
 
 
 =back