forked from science-ation/science-ation
44a79493aa
Create scheduler configuration page to handle setup parameters for the automatic judge team assignments Create the annealer to handle the actual assignments of judges to judging teams based on the lowest cost function of each individual team. Currently takes into account: a) age category preference, b) divisional areas of expertise. still requires: years of experience, language preference, and 'team captain' scheduling.
219 lines
6.5 KiB
PHP
219 lines
6.5 KiB
PHP
<?
|
|
/*
|
|
This file is part of the 'Science Fair In A Box' project
|
|
SFIAB Website: http://www.sfiab.ca
|
|
|
|
Copyright (C) 2005 Sci-Tech Ontario Inc <info@scitechontario.org>
|
|
Copyright (C) 2005 James Grant <james@lightbox.org>
|
|
|
|
This program is free software; you can redistribute it and/or
|
|
modify it under the terms of the GNU General Public
|
|
License as published by the Free Software Foundation, version 2.
|
|
|
|
This program is distributed in the hope that it will be useful,
|
|
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
|
General Public License for more details.
|
|
|
|
You should have received a copy of the GNU General Public License
|
|
along with this program; see the file COPYING. If not, write to
|
|
the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
|
|
Boston, MA 02111-1307, USA.
|
|
*/
|
|
?>
|
|
<?
|
|
//this file is meant to be used as a popup from the judging teams page to view the judge info
|
|
//it needs the judge ID passed into it.
|
|
//thus, we do not need the normal header and footer
|
|
require("../common.inc.php");
|
|
auth_required('admin');
|
|
|
|
$preferencechoices=array(
|
|
-2=>"Very Low",
|
|
-1=>"Low",
|
|
0=>"Indifferent",
|
|
1=>"Medium",
|
|
2=>"High"
|
|
);
|
|
|
|
|
|
if($_GET['id'])
|
|
{
|
|
//include "../register_judges.inc.php";
|
|
|
|
$q=mysql_query("SELECT
|
|
judges.*
|
|
FROM
|
|
judges
|
|
WHERE
|
|
judges.id='".$_GET['id']."'");
|
|
echo mysql_error();
|
|
$judgeinfo=mysql_fetch_object($q);
|
|
|
|
send_popup_header(i18n("Judge Information - %1 %2",array($judgeinfo->firstname,$judgeinfo->lastname)));
|
|
|
|
echo "<h3>".i18n("Personal Info")."</h3>";
|
|
echo "<table class=\"viewtable\">\n";
|
|
|
|
echo "<tr>\n";
|
|
echo " <th>".i18n("First Name")."</th><td>$judgeinfo->firstname</td>\n";
|
|
echo " <th>".i18n("Last Name")."</th><td>$judgeinfo->lastname</td>\n";
|
|
echo "</tr>\n";
|
|
echo "<tr>\n";
|
|
echo " <th>".i18n("Email Address")."</th><td>$judgeinfo->email</td>\n";
|
|
echo " <th>".i18n("City")."</th><td>$judgeinfo->city</td>\n";
|
|
echo "</tr>\n";
|
|
echo "<tr>\n";
|
|
echo " <th>".i18n("Address 1")."</th><td>$judgeinfo->address</td>\n";
|
|
echo " <th>".i18n("Province")."</th><td>$judgeinfo->province";
|
|
echo "</td>\n";
|
|
echo "</tr>\n";
|
|
echo "<tr>\n";
|
|
echo " <th>".i18n("Address 2")."</th><td>$judgeinfo->address2</td>\n";
|
|
echo " <th>".i18n("Phone (Home)")."</th><td>$judgeinfo->phonehome</td>\n";
|
|
echo "</tr>\n";
|
|
|
|
echo "<tr>\n";
|
|
echo " <th>".i18n("Postal Code")."</th><td>$judgeinfo->postalcode</td>\n";
|
|
echo " <th>".i18n("Phone (Work)")."</th><td>$judgeinfo->phonework ext $judgeinfo->phoneworkext</td>\n";
|
|
echo "</tr>";
|
|
|
|
echo "<tr>\n";
|
|
echo " <th>".i18n("Organization")."</th><td>$judgeinfo->organization</td>\n";
|
|
echo " <th>".i18n("Phone (Cell)")."</th><td>$judgeinfo->phonecell</td>\n";
|
|
echo "</tr>";
|
|
|
|
echo "<tr><td colspan=\"4\"><hr /></td></tr>";
|
|
|
|
echo "<tr>\n";
|
|
echo " <th valign=\"top\"colspan=\"2\">".i18n("Age category preference")."</th><td colspan=\"2\">";
|
|
|
|
$q=mysql_query("SELECT judges_catpref.*,projectcategories.category FROM judges_catpref,projectcategories WHERE judges_id='{$_GET['id']}' AND judges_catpref.year='".$config['FAIRYEAR']."' AND judges_catpref.projectcategories_id=projectcategories.id");
|
|
echo mysql_error();
|
|
while($r=mysql_fetch_object($q))
|
|
echo i18n($r->category).": ".$preferencechoices[$r->rank]." <br />";
|
|
|
|
echo "</td>\n";
|
|
echo "</tr>\n";
|
|
|
|
echo "</td>\n";
|
|
echo "</tr>\n";
|
|
|
|
echo "<tr>\n";
|
|
echo " <th colspan=\"2\">".i18n("Highest post-secondary degree")."</th>";
|
|
echo " <td colspan=\"2\">$judgeinfo->highest_psd</td>\n";
|
|
echo "</tr>\n";
|
|
|
|
echo "<tr>\n";
|
|
echo " <th colspan=\"2\">".i18n("Other professional qualifications")."</th>";
|
|
echo " <td colspan=\"2\">$judgeinfo->professional_quals</td>\n";
|
|
echo "</tr>\n";
|
|
|
|
echo "<tr>\n";
|
|
echo " <th colspan=\"2\" valign=\"top\">".i18n("Languages")."</th>";
|
|
echo " <td colspan=\"2\">";
|
|
|
|
$q=mysql_query("SELECT languages_lang FROM judges_languages WHERE judges_id='$judgeinfo->id'");
|
|
while($r=mysql_fetch_object($q))
|
|
{
|
|
echo $r->languages_lang;
|
|
echo "<br />";
|
|
}
|
|
|
|
echo " </td>\n";
|
|
echo "</tr>\n";
|
|
|
|
echo "<tr>\n";
|
|
echo " <th colspan=\"2\">".i18n("Judging experience at school/local level")."</th>\n";
|
|
echo " <td colspan=\"2\">$judgeinfo->years_school ".i18n("years")."</td>\n";
|
|
echo "</tr>\n";
|
|
|
|
echo "<tr>\n";
|
|
echo " <th colspan=\"2\">".i18n("Judging experience at regional level")."</th>\n";
|
|
echo " <td colspan=\"2\">$judgeinfo->years_regional ".i18n("years")."</td>\n";
|
|
echo "</tr>\n";
|
|
|
|
echo "<tr>\n";
|
|
echo " <th colspan=\"2\">".i18n("Judging experience at national level")."</th>\n";
|
|
echo " <td colspan=\"2\">$judgeinfo->years_national ".i18n("years")."</td>\n";
|
|
echo "</tr>\n";
|
|
|
|
echo "<tr>\n";
|
|
echo " <th colspan=\"2\">".i18n("Willing to act as a division chair?")."</th>\n";
|
|
echo " <td colspan=\"2\">$judgeinfo->willing_chair";
|
|
echo "</tr>\n";
|
|
|
|
echo "<tr>\n";
|
|
echo " <th colspan=\"2\">".i18n("Attending lunch?")."</th>\n";
|
|
echo " <td colspan=\"2\">$judgeinfo->attending_lunch";
|
|
echo "</tr>\n";
|
|
|
|
|
|
echo "</table>";
|
|
|
|
|
|
echo "<hr />";
|
|
echo "<br />";
|
|
echo "<h3>Areas of Expertise</h3>";
|
|
echo "<table class=\"viewtable\">";
|
|
|
|
//grab the list of divisions, because the last fields of the table will be the sub-divisions
|
|
$q=mysql_query("SELECT * FROM projectdivisions ORDER BY id AND year='".$config['FAIRYEAR']."'");
|
|
$divs=array();
|
|
while($r=mysql_fetch_object($q))
|
|
{
|
|
$divs[]=$r->id;
|
|
$divnames[$r->id]=$r->division;
|
|
}
|
|
|
|
$subdivq=mysql_query("SELECT judges_expertise.*, projectsubdivisions.subdivision, projectsubdivisions.projectdivisions_id AS parent_id FROM judges_expertise
|
|
LEFT JOIN projectsubdivisions ON judges_expertise.projectsubdivisions_id=projectsubdivisions.id
|
|
WHERE judges_id='$judgeinfo->id' AND judges_expertise.year='".$config['FAIRYEAR']."' ORDER BY projectdivisions_id, projectsubdivisions_id");
|
|
$judge_divs=array();
|
|
$judge_subdivs=array();
|
|
$divdata=array();
|
|
|
|
while($subdivr=mysql_fetch_object($subdivq))
|
|
{
|
|
if($subdivr->projectdivisions_id)
|
|
{
|
|
$judge_divs[$subdivr->projectdivisions_id]=$subdivr->val;
|
|
}
|
|
else
|
|
$judge_subdivs[$subdivr->parent_id][]=$subdivr->subdivision;
|
|
}
|
|
|
|
|
|
foreach($divs as $div)
|
|
{
|
|
echo "<tr><th>".i18n($divnames[$div])."</th>";
|
|
echo " <td>".$judge_divs[$div]."/5</td>";
|
|
|
|
echo "<td>";
|
|
if(count($judge_subdivs[$div]))
|
|
{
|
|
$divdata=implode(", ",$judge_subdivs[$div]);
|
|
echo "$divdata";
|
|
}
|
|
else
|
|
echo " ";
|
|
echo "</td>";
|
|
echo "</tr>";
|
|
}
|
|
|
|
echo "</table>";
|
|
}
|
|
else
|
|
{
|
|
send_popup_header("Judge Information");
|
|
echo error(i18n("No Judge ID passed to Judges Info"));
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
send_popup_footer();
|
|
|
|
?>
|