|
From: Chris W. <la...@us...> - 2001-11-09 14:08:41
|
Update of /cvsroot/openinteract/OpenInteract/pkg/lookup/OpenInteract/Handler
In directory usw-pr-cvs1:/tmp/cvs-serv30471/OpenInteract/Handler
Modified Files:
LookupEdit.pm
Log Message:
update to allow users to have one or more fields be lookups to other
objects
Index: LookupEdit.pm
===================================================================
RCS file: /cvsroot/openinteract/OpenInteract/pkg/lookup/OpenInteract/Handler/LookupEdit.pm,v
retrieving revision 1.6
retrieving revision 1.7
diff -C2 -d -r1.6 -r1.7
*** LookupEdit.pm 2001/10/18 12:39:44 1.6
--- LookupEdit.pm 2001/11/09 14:08:38 1.7
***************
*** 103,108 ****
}
! my @lookup_keys = qw( field_list label_list size_list title lookup_type partition_field );
my %params = map { $_ => $lookup_info->{ $_ } } @lookup_keys;
$params{blank_count} = $BLANK_COUNT;
$params{remove_key} = $REMOVE_KEY;
--- 103,110 ----
}
! my @lookup_keys = qw( field_list label_list size_list title
! lookup_type partition_field );
my %params = map { $_ => $lookup_info->{ $_ } } @lookup_keys;
+
$params{blank_count} = $BLANK_COUNT;
$params{remove_key} = $REMOVE_KEY;
***************
*** 117,124 ****
my %lbl = map { $params{field_list}->[ $_ ] => $params{label_list}->[ $_ ] }
( 0 .. ( scalar @{ $params{field_list} } - 1 ) );
! $params{partition_label} = $lbl{ $params{partition_field} } || $params{partition_field};
}
! $params{lookup_list} = $class->_lookup_entries( $lookup_info, $params{partition_value} );
my $display_type = $R->apache->param( 'display_type' ) || DEFAULT_DISPLAY;
--- 119,142 ----
my %lbl = map { $params{field_list}->[ $_ ] => $params{label_list}->[ $_ ] }
( 0 .. ( scalar @{ $params{field_list} } - 1 ) );
! $params{partition_label} = $lbl{ $params{partition_field} } ||
! $params{partition_field};
}
! $params{lookup_list} = $class->_lookup_entries( $lookup_info,
! $params{partition_value} );
!
! # Check to see if the lookup action has defined a set of related
! # objects -- that is, the user when editing the lookup values
! # should choose one from many values.
!
! $lookup_info->{relate} ||= {};
! foreach my $field_name ( keys %{ $lookup_info->{relate} } ) {
! my $relate_info = $lookup_info->{relate}{ $field_name };
! next if ( $params{related}->{ $field_name } );
! $params{related}->{ $field_name } = $relate_info;
! $params{related}->{ $field_name }{list} = $class->_lookup_related_objects(
! $relate_info->{object},
! $relate_info );
! }
my $display_type = $R->apache->param( 'display_type' ) || DEFAULT_DISPLAY;
***************
*** 232,235 ****
--- 250,261 ----
}
return $lookup_class->fetch_group( \%args );
+ }
+
+
+ sub _lookup_related_objects {
+ my ( $class, $object_type, $params ) = @_;
+ my $R = OpenInteract::Request->instance;
+ return $R->$object_type()->fetch_group({ order => $params->{order} })
+
}
|