Ignore:
Timestamp:
08/14/09 17:00:11 (15 years ago)
Author:
nanardon
Message:
  • setting site attributes reset address attributes and make them return from the associated site object, eg people have address of their site
File:
1 edited

Legend:

Unmodified
Added
Removed
  • LATMOS-Accounts/lib/LATMOS/Accounts/Bases/Sql/Address.pm

    r329 r341  
    5858} 
    5959 
     60sub get_field { 
     61    my ($self, $field) = @_; 
     62    if ((grep { $field eq $_ } __PACKAGE__->_address_fields()) 
     63        && (my $fsite = $self->get_c_field('site'))) { 
     64        my $site = $self->base->get_object('site', $fsite); 
     65        if ($site) { 
     66            return 
     67            $site->_get_c_field($field); 
     68        } 
     69    } else { 
     70        return $self->SUPER::get_field($field); 
     71    } 
     72} 
     73 
     74sub set_fields { 
     75    my ($self, %data) = @_; 
     76    my %fdata; 
     77    foreach my $attr (keys %data) { 
     78        $attr =~ /^site$/ and do { 
     79            my $site = 
     80            $self->base->get_object('site', 
     81                $data{$attr}); 
     82            if ($site) { 
     83                foreach (__PACKAGE__->_address_fields()) { 
     84                    $fdata{$_} = undef; 
     85                } 
     86            }; 
     87            $fdata{$attr} = $data{$attr} || undef; 
     88        } 
     89    } 
     90    if  (keys %fdata) { 
     91        $self->SUPER::set_fields(%fdata); 
     92    } 
     93} 
     94 
     95 
    60961; 
    6197 
Note: See TracChangeset for help on using the changeset viewer.