%# vim:syn=mason
% unless ($error) {
% if (@ids) {
% }
% } else {
<% $error %>
% }
<%args>
$object
$name => undef
$check => undef
$prop => {}
%args>
<%init>
my (%list, %sort, $error);
# Если оно хранится в поле типа integer[] то нам вернется массив, если в data, то ссылка на массив.
# Просекаем фишку
my @ids = ref($object->$name) eq 'ARRAY' ? @{ $object->$name } : $object->$name;
if ($prop && ref($prop) && ref($prop->{lookup_opts}) eq 'HASH') {
my $i = 0;
foreach my $obj ($keeper->get_documents(%{$prop->{lookup_opts}}, order => ['name','reverse'])) {
$list{$obj->id} = $obj;
$sort{$obj->id} = $i++;
}
} else {
$error = 'Похоже неверное описание lookup_opts в документе';
}
%init>