package LIMS::Controller::Admin::Lab::Test::Accreditation; use Data::Dumper; use LIMS::Local::Sugar; use Moose; BEGIN { extends 'LIMS::Base'; } with 'LIMS::Controller::Roles::Misc'; __PACKAGE__->meta->make_immutable(inline_constructor => 0); __PACKAGE__->authz->authz_runmodes( ':all' => 'do_admin' ); # ------------------------------------------------------------------------------ startmode default ($errs) { # not using $errs $self->_debug_path($self->get_current_runmode); my $lab_sections = $self->model('LabSection')->get_lab_sections; $self->tt_params( lab_sections => $lab_sections ); if ( my $lab_section_id = $self->query->param('lab_section_id') ) { my @tests = do { my %args = ( lab_section_id => $lab_section_id, is_active => 'yes', ); my $o = $self->model('LabTest')->get_section_lab_tests(\%args); # sort by field label lc: sort { lc $a->field_label cmp lc $b->field_label } @$o; }; # warn Dumper \@tests; $self->tt_params( lab_tests => \@tests ); { # get existing data: my $data = $self->lab_test_accreditation_map; # warn Dumper $data; $self->tt_params( data => $data ); } } return $self->tt_process('admin/lab/test/accreditation/default.tt'); } # ------------------------------------------------------------------------------------- runmode edit ($id) { $self->_debug_path($self->get_current_runmode); # $self->stash( errs => $errs); $id || return $self->error('no id passed to '.$self->get_current_runmode); { my $data = $self->model('LabTest')->get_lab_test_accreditation($id); $self->tt_params( data => $data ); } return $self->tt_process(); # not using errs - only date var handled by form } # ------------------------------------------------------------------------------------- runmode update ($id) { $self->_debug_path($self->get_current_runmode); my $accreditation_uri = '/admin/lab_test_accreditation'; my $accreditation_date = $self->query->param('accreditation_date'); my $lab_section_id = $self->query->param('lab_section_id'); # hidden field # incorrect date format unlikely if date picker used: if ($accreditation_date && $accreditation_date !~ /^\d{4}-\d{2}-\d{2}$/) { $self->flash( error => qq!incorrect date format "$accreditation_date"!); my $url = $self->query->url . $accreditation_uri . '/edit/' . $id; return $self->redirect( $url ); } my %data = ( lab_test_id => $id, accreditation_date => $accreditation_date, ); my $url = $accreditation_uri . '?lab_section_id=' . $lab_section_id; my $rtn = $self->model('LabTest')->update_accreditation_date(\%data); return $rtn ? $self->error($rtn) : $self->redirect_after_edit_success($url); } 1;