my $tournament = $cgi->param('tournament');
$dbh->{AutoCommit} = 0;
-$dbh->do('DELETE FROM bigscreen.active_rounds');
+$dbh->do('DELETE FROM bigscreen.active_groups');
$dbh->do('DELETE FROM bigscreen.active_tournament');
if ($tournament != -1) {
$dbh->do('INSERT INTO bigscreen.active_tournament VALUES (?)', undef, $tournament);
$closing_valid = 0;
}
-# Find all rounds currently shown on the bigscreen.
-my $active_rounds = $dbh->selectall_hashref('SELECT round FROM bigscreen.active_rounds WHERE tournament=?', 'round', undef, $id);
+# Find all groups currently shown on the bigscreen.
+my $active_groups = ccbs::db_fetch_all($dbh, 'SELECT * FROM bigscreen.active_groups WHERE tournament=?', $id);
# Swoop all the data in in a big join, then order it over to quasi-sane Perl objects.
# (round -> parallel -> player -> songs -> title,chosen,score)
$round = $score->{'round'};
push @rounds, { round => $round, parallels => [], locked => 0 };
$parallel = -1;
-
- if (defined($active_rounds->{$round})) {
- $rounds[$#rounds]->{'bigscreen'} = 1;
- } else {
- $rounds[$#rounds]->{'bigscreen'} = 0;
- }
}
my $p = $rounds[$#rounds]->{'parallels'};
if ($score->{'parallel'} != $parallel) {
push @$p, { parallel => $parallel, players => [], songs => [], num_songs => 0 };
$player = '';
+ # suboptimal, but heck :-)
+ $p->[$#$p]->{'bigscreen'} = 0;
+ for my $ag (@$active_groups) {
+ if ($ag->{'round'} == $round && $ag->{'parallel'} == $parallel) {
+ $p->[$#$p]->{'bigscreen'} = 1;
+ last;
+ }
+ }
+
# Information on songs is not selected from roundrandomsongs etc.,
# but is filled in the first time the song is seen for this round
# (ie. below)
<div>
+ [% FOR p = r.parallels %]
<form method="post" action="do-set-active-round.pl">
<p>
<input type="hidden" name="tournament" value="[% tournament.tournament %]" />
<input type="hidden" name="round" value="[% r.round %]" />
+ <input type="hidden" name="parallel" value="[% p.parallel %]" />
[% IF p.bigscreen %]
<input type="hidden" name="show" value="false" />
<input type="submit" value="Fjern fra storskjerm" />
</p>
</form>
- [% FOR p = r.parallels %]
<form method="post" action="do-edit-scores.pl">
<table class="scores">
<tr>
CREATE TABLE bigscreen.active_tournament (
tournament INTEGER NOT NULL PRIMARY KEY REFERENCES tournaments
);
-CREATE TABLE bigscreen.active_rounds (
+CREATE TABLE bigscreen.active_groups (
tournament INTEGER NOT NULL REFERENCES bigscreen.active_tournament,
round INTEGER NOT NULL,
+ parallel INTEGER NOT NULL,
- PRIMARY KEY ( tournament, round ),
- FOREIGN KEY ( tournament, round ) REFERENCES rounds
+ PRIMARY KEY ( tournament, round, parallel ),
+ FOREIGN KEY ( tournament, round, parallel ) REFERENCES groups
);
);