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);