modified autogenerated name method
[sgn.git] / lib / SGN / Controller / Dataset.pm
blobb92af299802e361e666ad3e1d73b3dd8970624bd
2 package SGN::Controller::Dataset;
4 use Moose;
5 use CXGN::Dataset;
6 use strict;
7 use warnings;
9 BEGIN { extends 'Catalyst::Controller'; }
11 sub dataset :Chained('/') Path('dataset') Args(1) {
12 my $self = shift;
13 my $c = shift;
14 my $dataset_id = shift;
15 my $schema = $c->dbic_schema('Bio::Chado::Schema', 'sgn_chado');
16 my $people_schema = $c->dbic_schema("CXGN::People::Schema");
17 my $html = "";
19 my $dataset = CXGN::Dataset->new({
20 schema => $schema,
21 people_schema => $people_schema,
22 sp_dataset_id => $dataset_id
23 });
24 my $info = $dataset->get_dataset_data();
26 my $dataset_info = {
27 id => $dataset_id,
28 name => $dataset->name(),
29 description => $dataset->description,
30 info => $info
33 my $lt = CXGN::List::Transform->new();
34 my %transform_dict = (
35 'plots' => 'stock_ids_2_stocks',
36 'accessions' => 'stock_ids_2_stocks',
37 'traits' => 'trait_ids_2_trait_names',
38 'locations' => 'locations_ids_2_location',
39 'plants' => 'stock_ids_2_stocks',
40 'trials' => 'project_ids_2_projects',
41 'trial_types' => 'cvterm_ids_2_cvterms',
42 'breeding_programs' => 'project_ids_2_projects',
43 'genotyping_protocols' => 'nd_protocol_ids_2_protocols'
45 $html .= '<table class="table-bordered"><thead><tr>' . "\n";
46 foreach my $category (@{$dataset_info->{info}->{category_order}}) {
47 $html .= '<th>' . $category . '</th>';
49 $html .= '</tr></thead><tbody><tr>' . "\n";
50 foreach my $category (@{$dataset_info->{info}->{category_order}}) {
51 my $ids = $dataset_info->{info}->{categories}->{$category};
52 my @items;
53 if (exists($transform_dict{$category})) {
54 my $transform = $lt->transform($schema, $transform_dict{$category}, $ids);
55 @items = @{$transform->{transform}};
56 } else {
57 if (defined($ids)) {
58 @items = @$ids;
61 $html .= "<td><div class='well well-sm'>";
62 $html .= "<select class='form-control' multiple>";
63 foreach my $item (@items) {
64 $html .= "<option value='$item' disabled>$item</option>";
66 $html .= "</select>";
67 $html .= "</td></div>\n";
69 $html .= "</table>";
71 $c->stash->{dataset_name} = $dataset->name();
72 $c->stash->{dataset_id} = $dataset_id;
73 $c->stash->{dataset_description} = $dataset->description;
74 $c->stash->{dataset_contents} = $html;
75 print STDERR "dataset name $dataset->name()\n";
76 $c->stash->{template} = '/dataset/index.mas';