diff --git a/admin/reports.inc.php b/admin/reports.inc.php
index 6552238c..1988e990 100644
--- a/admin/reports.inc.php
+++ b/admin/reports.inc.php
@@ -22,6 +22,8 @@
*/
require_once("reports_students.inc.php"); /* $report_students_fields */
+ require_once("reports_judges.inc.php"); /* $report_students_fields */
+ require_once("reports_awards.inc.php"); /* $report_students_fields */
require_once('../lpdf.php');
require_once('../lcsv.php');
@@ -136,7 +138,8 @@ foreach($stock as $n=>$v) {
function report_save_field($report, $type)
{
- global $allow_options, $report_students_fields, $report_judges_fields;
+ global $allow_options;
+ global $report_students_fields, $report_judges_fields, $report_awards_fields;
switch($report['type']) {
case 'student': $allow_fields = array_keys($report_students_fields); break;
@@ -373,8 +376,8 @@ foreach($stock as $n=>$v) {
$group_by[] = $fieldname[$f];
}
}
-
- if(count($group_query)) {
+
+ if(count($group_by)) {
$group_query = "GROUP BY ".implode(",", $group_by);
} else {
$group_query = "";
diff --git a/admin/reports_awards.inc.php b/admin/reports_awards.inc.php
index a34c7c21..e3d817a4 100644
--- a/admin/reports_awards.inc.php
+++ b/admin/reports_awards.inc.php
@@ -24,8 +24,8 @@
$report_awards_fields = array(
'name' => array(
'name' => 'Award -- Name',
- 'header' => 'Name',
- 'width' => 2.0,
+ 'header' => 'Award Name',
+ 'width' => 3.0,
'table' => 'award_awards.name' ),
'cwsfaward' => array(
@@ -35,6 +35,32 @@ $report_awards_fields = array(
'table' => 'award_awards.cwsfaward',
'value_map' => array ('0' => 'No', '1' => 'Yes')),
+ 'type' => array(
+ 'name' => 'Award -- Type',
+ 'header' => 'Award Type',
+ 'width' => 1.0,
+ 'table' => 'award_types.type' ),
+
+ 'judgeteamname' => array(
+ 'name' => 'Judging Team -- Name',
+ 'header' => 'Judging Team',
+ 'width' => 3.0,
+ 'table' => 'judges_teams.name'),
+
+ 'judgeteamnum' => array(
+ 'name' => 'Judging Team -- Number',
+ 'header' => 'Num',
+ 'width' => 0.5,
+ 'table' => 'judges_teams.num'),
+
+ 'judgeteammembers' => array(
+ 'name' => 'Judging Team -- Members (REQUIRES MySQL 5.0)',
+ 'header' => 'Team Members',
+ 'width' => 3.0,
+ 'table' => "GROUP_CONCAT(judges.firstname)",
+ 'group_by' => array('judges_teams.num') ),
+
+
);
function report_awards_fromwhere($report)
@@ -44,34 +70,28 @@ $report_awards_fields = array(
$fields = $report_awards_fields;
$year = $report['year'];
-/*
- $awards_join = '';
- $awards_where = '';
+
+ $judges_join = '';
+ $judges_where = '';
- if(in_array('awards', $report['col']) || in_array('pn_awards', $report['col'])
- || in_array('awards', $report['group']) || in_array('pn_awards', $report['group']) ) {
- /* This requires some extra gymnastics
- $awards_join = "LEFT JOIN winners ON(winners.projects_id = projects.id),award_prizes,award_awards,award_types";
- $awards_where = " AND winners.awards_prizes_id=award_prizes.id
- AND award_prizes.award_awards_id=award_award_awards.id
- AND award_types.id=award_award_awards.award_types_id
- AND winners.year='$year'
- AND award_award_awards.year='$year'
- AND award_prizes.year='$year'
- AND award_types.year='$year' ";
+ if(in_array('judgeteammembers', $report['col'])
+ || in_array('judgeteammembers', $report['group']) ) {
+ $judges_join = ', judges_teams_link, judges';
+ $judges_where = 'AND judges_teams_link.id=judges_teams.id
+ AND judges.id=judges_teams_link.judges_id';
}
- $partner_join = '';
- if(in_array('bothnames', $report['col']) || in_array('partner', $report['col'])) {
- $partner_join = "LEFT JOIN awards AS awards2
- ON(awards2.registrations_id=award_awards.registrations_id
- AND awards2.id != award_awards.id)";
- }
-*/
$q = " FROM
- award_awards
+ award_awards, judges_teams_awards_link, judges_teams,
+ award_types
+ $judges_join
WHERE
- awards_years.year='$year'
+ award_awards.year='$year'
+ AND judges_teams_awards_link.award_awards_id=award_awards.id
+ AND judges_teams.id=judges_teams_awards_link.judges_teams_id
+ AND award_types.id=award_types_id
+ AND award_types.year='$year'
+ $judges_where
";
return $q;
diff --git a/admin/reports_editor.php b/admin/reports_editor.php
index 3ba7d875..50fd95ce 100644
--- a/admin/reports_editor.php
+++ b/admin/reports_editor.php
@@ -194,7 +194,7 @@ function reportChange()
switch($report['type']) {
case 'student': $fields = $report_students_fields; break;
case 'judge': $fields = $report_judges_fields; break;
- case 'awards': $fields = $report_awards_fields; break;
+ case 'award': $fields = $report_awards_fields; break;
}
echo "<< ".i18n("Back to Reports")."
";
diff --git a/admin/reports_judges.inc.php b/admin/reports_judges.inc.php
index 92c1c351..4508bd6c 100644
--- a/admin/reports_judges.inc.php
+++ b/admin/reports_judges.inc.php
@@ -23,14 +23,14 @@
$report_judges_fields = array(
'last_name' => array(
- 'name' => 'Last Name',
- 'header' => 'Judge -- Last Name',
+ 'name' => 'Judge -- Last Name',
+ 'header' => 'Last Name',
'width' => 1.0,
'table' => 'judges.lastname' ),
'first_name' => array(
- 'name' => 'First Name',
- 'header' => 'Judge -- First Name',
+ 'name' => 'Judge -- First Name',
+ 'header' => 'First Name',
'width' => 1.0,
'table' => 'judges.firstname' ),
@@ -51,7 +51,7 @@ $report_judges_fields = array(
'email' => array(
'name' => 'Judge -- Email',
'header' => 'Email',
- 'width' => 1.5,
+ 'width' => 2.0,
'table' => 'judges.email'),
'address' => array(
@@ -92,11 +92,30 @@ $report_judges_fields = array(
'languages' => array(
'name' => 'Judges -- Languages (REQUIRES MySQL 5.0)',
- 'header' => 'Languages',
+ 'header' => 'Lang',
'width' => 0.75,
'table' => "GROUP_CONCAT(judges_languages.languages_lang ORDER BY judges_languages.languages_lang SEPARATOR ' ')",
'group_by' => array('judges.id')),
+ 'captain' => array(
+ 'name' => 'Judge Team -- Captain?',
+ 'header' => 'Cptn',
+ 'width' => 0.5,
+ 'table' => 'judges_teams_link.captain',
+ 'value_map' => array ('no' => 'No', 'yes' => 'Yes')),
+
+ 'team' => array(
+ 'name' => 'Judge Team -- Name',
+ 'header' => 'Team Name',
+ 'width' => 3.0,
+ 'table' => 'judges_teams.name'),
+
+ 'teamnum' => array(
+ 'name' => 'Judge Team -- Team Number',
+ 'header' => 'Team',
+ 'width' => 0.5,
+ 'table' => 'judges_teams.num'),
+
'complete' => array(
'name' => 'Judge -- Registration Complete',
'header' => 'Complete',
@@ -113,6 +132,14 @@ $report_judges_fields = array(
$fields = $report_judges_fields;
$year = $report['year'];
+ $languages_from = '';
+ $languages_where = '';
+ if(in_array('languages', $report['col'])) {
+ $languages_from = ', judges_languages';
+ $languages_where = 'AND judges_languages.judges_id=judges.id';
+ }
+
+
/*
$awards_join = '';
$awards_where = '';
@@ -138,10 +165,16 @@ $report_judges_fields = array(
}
*/
$q = " FROM
- judges, judges_years
+ judges, judges_years, judges_teams_link, judges_teams
+ $languages_from
WHERE
judges_years.judges_id = judges.id
AND judges_years.year='$year'
+ AND judges_teams_link.judges_id=judges.id
+ AND judges_teams_link.year='$year'
+ AND judges_teams.id=judges_teams_link.judges_teams_id
+ AND judges_teams.year='$year'
+ $languages_where
";
return $q;
diff --git a/admin/reports_judges_teams_view.php b/admin/reports_judges_teams_view.php
index da11462d..60ed78e0 100644
--- a/admin/reports_judges_teams_view.php
+++ b/admin/reports_judges_teams_view.php
@@ -62,9 +62,11 @@
if($numawards==1) $plural=""; else $plural="s";
$awardstr="$numawards Award$plural: ";
- foreach($team['awards'] AS $award)
- {
- $awardstr.="(".$award['award_type'].") ".$award['name'].", ";
+ if(is_array($team['awards'])) {
+ foreach($team['awards'] AS $award)
+ {
+ $awardstr.="(".$award['award_type'].") ".$award['name'].", ";
+ }
}
//trim off the last ", "
$awardstr=substr($awardstr,0,-2);