package LIMS::Controller::Admin::Config::OutreachPractices; use base 'LIMS::Base'; use LIMS::Local::Sugar; use Data::Dumper; __PACKAGE__->authz->authz_runmodes( ':all' => 'do_admin' ); #------------------------------------------------------------------------------- startmode default { $self->_debug_path($self->get_current_runmode); { # get all outreach practices: my $practices = $self->model('Outreach')->get_outreach_practices; # extract & add post_code info: for (@$practices) { my $address = $_->{display_name}; my @addr = split ', ', $address; $_->{post_code} = $addr[-1]; # last entry } $self->tt_params( practices => $practices ); } { # current practice overrides as hashref of practice_id => tube_type: my $practices = $self->model('Outreach')->get_blood_tube_overrides; $self->tt_params( overrides => $practices ); } { # callback for default blood-tube-type: require LIMS::Controller::Outreach; # load at run-time not compile-time !! $self->tt_params( tube_type => sub { LIMS::Controller::Outreach::get_blood_tube_type(@_); } ); } return $self->tt_process; } # ------------------------------------------------------------------------------------- runmode edit ($id) { $self->_debug_path($self->get_current_runmode); $id || return $self->error('no id passed to '.$self->get_current_runmode); # $self->debug('id:'.$id); my $data = $self->model('Outreach')->get_practice_blood_tube($id); $self->tt_params( data => $data ); return $self->tt_process($errs); } #------------------------------------------------------------------------------- runmode update { $self->_debug_path($self->get_current_runmode); my @parent_ids = $self->query->param('parent_id'); # warn Dumper \@parent_ids; my $rtn = $self->model('ReferralSource')->update_network_locations(\@parent_ids); return $rtn ? $self->error($rtn) : $self->redirect( $self->query->url . '/config/hmrn-locations' ); } 1;