From 1c231c329cccf70fa809f57e75378f0963742388 Mon Sep 17 00:00:00 2001 From: Christian Pointner Date: Sat, 26 Nov 2016 00:10:47 +0100 Subject: also add show types to multi-shows diff --git a/lib/RHRD/rddb.pm b/lib/RHRD/rddb.pm index e9f79ef..83a5f5b 100755 --- a/lib/RHRD/rddb.pm +++ b/lib/RHRD/rddb.pm @@ -2036,7 +2036,7 @@ sub list_multi_shows { my ($ctx) = @_; - my $sql = qq{select NUMBER,TITLE,USER_DEFINED from CART where GROUP_NAME = ? order by NUMBER}; + my $sql = qq{select NUMBER,TITLE,USER_DEFINED,NOTES from CART where GROUP_NAME = ? order by NUMBER}; my $sth = $ctx->{'dbh'}->prepare($sql) or return (undef, 'ERROR', "Database Error: " . $ctx->{'dbh'}->errstr); @@ -2045,12 +2045,13 @@ sub list_multi_shows or return (undef, 'ERROR', "Database Error: " . $sth->errstr); my @mshows; - while(my ($id, $title, $shows) = $sth->fetchrow_array()) { + while(my ($id, $title, $shows, $type) = $sth->fetchrow_array()) { my $entry = {}; $entry->{'ID'} = $id; $entry->{'TITLE'} = $title; $entry->{'SHOWS'} = {}; + $entry->{'TYPE'} = $type; my @showlist = split(';', $shows); foreach my $show (@showlist) { @@ -2097,6 +2098,7 @@ sub create_multi_show { my $ctx = shift; my $title = shift; + my $type = shift; my %shows = %{shift()}; my $showstr = join(";", map { "$_:$shows{$_}" } sort keys %shows); @@ -2106,12 +2108,12 @@ sub create_multi_show return (undef, $status, $errorstring); } - my $sql = qq{insert into CART (NUMBER, TYPE, GROUP_NAME, TITLE, USER_DEFINED, VALIDITY, METADATA_DATETIME) values (?, 2, ?, ?, ?, 3, NOW())}; + my $sql = qq{insert into CART (NUMBER, TYPE, GROUP_NAME, TITLE, USER_DEFINED, NOTES, VALIDITY, METADATA_DATETIME) values (?, 2, ?, ?, ?, ?, 3, NOW())}; my $sth = $ctx->{'dbh'}->prepare($sql) or return (undef, 'ERROR', "Database Error: " . $ctx->{'dbh'}->errstr); - $sth->execute($number, $ctx->{'config'}{'specialgroups'}{'multishows'}, $title, $showstr) + $sth->execute($number, $ctx->{'config'}{'specialgroups'}{'multishows'}, $title, $showstr, $type) or return (undef, 'ERROR', "Database Error: " . $sth->errstr); $sth->finish(); @@ -2124,16 +2126,17 @@ sub update_multi_show my $ctx = shift; my $showid = shift; my $title = shift; + my $type = shift; my %shows = %{shift()}; my $showstr = join(";", map { "$_:$shows{$_}" } sort keys %shows); - my $sql = qq{update CART set TITLE = ?, USER_DEFINED = ? where NUMBER = ?}; + my $sql = qq{update CART set TITLE = ?, USER_DEFINED = ?, NOTES = ? where NUMBER = ?}; my $sth = $ctx->{'dbh'}->prepare($sql) or return (undef, 'ERROR', "Database Error: " . $ctx->{'dbh'}->errstr); - my $cnt = $sth->execute($title, $showstr, $showid) + my $cnt = $sth->execute($title, $showstr, $type, $showid) or return (undef, 'ERROR', "Database Error: " . $sth->errstr); $sth->finish(); @@ -2149,7 +2152,7 @@ sub get_multi_show_info { my ($ctx, $showid) = @_; - my $sql = qq{select TITLE,USER_DEFINED from CART where NUMBER = ?}; + my $sql = qq{select TITLE,USER_DEFINED,NOTES from CART where NUMBER = ?}; my $sth = $ctx->{'dbh'}->prepare($sql) or return (undef, 'ERROR', "Database Error: " . $ctx->{'dbh'}->errstr); @@ -2161,13 +2164,14 @@ sub get_multi_show_info return (undef, 'ERROR', 'multi-show does not exist'); } - my ($title, $shows) = $sth->fetchrow_array(); + my ($title, $shows, $type) = $sth->fetchrow_array(); $sth->finish(); my $entry = {}; $entry->{'ID'} = $showid; $entry->{'TITLE'} = $title; $entry->{'SHOWS'} = {}; + $entry->{'TYPE'} = $type; my @showlist = split(';', $shows); foreach my $show (@showlist) { diff --git a/utils/rhrd-show b/utils/rhrd-show index 8bdc4cf..a9e0abc 100755 --- a/utils/rhrd-show +++ b/utils/rhrd-show @@ -37,8 +37,8 @@ sub print_usage " multi show handling:\n" . " rhrd-show multi-list\n" . " rhrd-show (multi-show|multi-remove) \n" . - " rhrd-show multi-add <week>=<show-id> [ <week>=<show-id> [ .. ] ]\n" . - " rhrd-show multi-edit <multi-show-id> <title> <week>=<show-id> [ <week>=<show-id> [ .. ] ]\n"; + " rhrd-show multi-add <title> <type> <week>=<show-id> [ <week>=<show-id> [ .. ] ]\n" . + " rhrd-show multi-edit <multi-show-id> <title> <type> <week>=<show-id> [ <week>=<show-id> [ .. ] ]\n"; } sub list @@ -340,8 +340,9 @@ sub multi_list my @sorted = sort { lc($a->{'TITLE'}) cmp lc($b->{'TITLE'}) } @mshows; for my $href (@sorted) { my %showids = %{$href->{'SHOWS'}}; + my $showtype = RHRD::utils::dropbox_param_showtype_to_string($href->{'TYPE'}); my $showstr = join(", ", map { "W$_: $showids{$_}" } sort keys %showids); - print $href->{'ID'} . ": " . $href->{'TITLE'} . " (" . $showstr . ")\n"; + print $href->{'ID'} . ": " . $href->{'TITLE'} . ", " . $showtype. ", (" . $showstr . ")\n"; } return 0; } @@ -406,6 +407,13 @@ sub multi_add { my $ctx = shift; my $title = shift; + my $type = shift; + + my ($result, $err, $hint) = RHRD::utils::dropbox_param_showtype_ok($type); + unless($result) { + print STDERR $err . "\n " . $hint . "\n"; + return 1; + } print " * creating multi-show: " . $title . "\n"; @@ -415,7 +423,7 @@ sub multi_add } my %shows = %{$showref}; - my ($result, $status, $errorstring) = RHRD::rddb::create_multi_show($ctx, $title, \%shows); + ($result, my $status, my $errorstring) = RHRD::rddb::create_multi_show($ctx, $title, $type, \%shows); unless(defined $result) { print STDERR $status . ": " . $errorstring . "\n"; return 1; @@ -431,6 +439,13 @@ sub multi_edit my $ctx = shift; my $showid = shift; my $title = shift; + my $type = shift; + + my ($result, $err, $hint) = RHRD::utils::dropbox_param_showtype_ok($type); + unless($result) { + print STDERR $err . "\n " . $hint . "\n"; + return 1; + } print " * updating multi-show: " . $showid . "\n"; @@ -440,7 +455,7 @@ sub multi_edit } my %shows = %{$showref}; - my ($result, $status, $errorstring) = RHRD::rddb::update_multi_show($ctx, $showid, $title, \%shows); + ($result, my $status, my $errorstring) = RHRD::rddb::update_multi_show($ctx, $showid, $title, $type, \%shows); unless(defined $result) { print STDERR $status . ": " . $errorstring . "\n"; return 1; @@ -459,7 +474,8 @@ sub multi_show print STDERR "$errorstring\n"; return 1; } - print $show->{'TITLE'} . ":\n"; + my $showtype = RHRD::utils::dropbox_param_showtype_to_string($show->{'TYPE'}); + print $show->{'TITLE'} . ": " . $showtype . "\n"; my %showids = %{$show->{'SHOWS'}}; foreach my $week (sort keys %showids) { @@ -578,13 +594,14 @@ if(defined $ctx) { } } elsif($cmd eq "multi-add") { - if($num_args < 3) { + if($num_args < 4) { print_usage(); $ret = 1; } else { shift @ARGV; my $title = shift @ARGV; - $ret = multi_add($ctx, $title, @ARGV) + my $type = shift @ARGV; + $ret = multi_add($ctx, $type, @ARGV) } } elsif($cmd eq "multi-show") { @@ -604,14 +621,15 @@ if(defined $ctx) { } } elsif($cmd eq "multi-edit") { - if($num_args < 4) { + if($num_args < 5) { print_usage(); $ret = 1; } else { shift @ARGV; my $showid = shift @ARGV; my $title = shift @ARGV; - $ret = multi_edit($ctx, $showid, $title, @ARGV) + my $type = shift @ARGV; + $ret = multi_edit($ctx, $showid, $title, $type, @ARGV) } } else { -- cgit v0.10.2