Projekt

Allgemein

Profil

« Zurück | Weiter » 

Revision 954eb9c0

Von Bernd Bleßmann vor etwa 4 Jahren hinzugefügt

  • ID 954eb9c0ecad0e5acf697e39ea0ad1418bd7cca9
  • Vorgänger f1b3bf5f
  • Nachfolger bc465323

Projekt-Picker: exact match auf GetModels umgestellt

Unterschiede anzeigen:

SL/Controller/Project.pm
# if someone types something, and hits enter, assume he entered the full name.
# if something matches, treat that as the sole match
# unfortunately get_models can't do more than one per package atm, so we do it
# the oldfashioned way.
# since we need a second get models instance with different filters for that,
# we only modify the original filter temporarily in place
if ($::form->{prefer_exact}) {
local $::form->{filter}{'all::ilike'} = delete local $::form->{filter}{'all:substr:multi::ilike'};
# active and valid filters are use as they are
my $exact_models = SL::Controller::Helper::GetModels->new(
controller => $self,
sorted => 0,
paginated => { per_page => 2 },
with_objects => [ 'customer', 'project_status', 'project_type' ],
);
my $exact_matches;
if (1 == scalar @{ $exact_matches = SL::DB::Manager::Project->get_all(
query => [
valid => 1,
or => [
description => { ilike => $::form->{filter}{'all:substr:multi::ilike'} },
projectnumber => { ilike => $::form->{filter}{'all:substr:multi::ilike'} },
]
],
limit => 2,
) }) {
$self->projects($exact_matches);
if (1 == scalar @{ $exact_matches = $exact_models->get }) {
$self->project($exact_matches);
}
}

Auch abrufbar als: Unified diff