2006-01-31 22:34:04 +00:00
< ?
2006-08-01 19:43:15 +00:00
function judges_scheduler_check_timeslots ()
2006-01-31 22:34:04 +00:00
{
2010-10-20 21:58:26 +00:00
global $conference ;
2006-01-31 22:34:04 +00:00
2006-08-01 19:43:15 +00:00
$q = mysql_query ( " SELECT * FROM judges_timeslots WHERE " .
2010-10-20 21:58:26 +00:00
" conferences_id=' " . $conference [ 'id' ] . " ' " .
2009-09-09 00:26:12 +00:00
" AND `type`='divisional1' " );
2010-01-18 16:24:34 +00:00
if ( mysql_num_rows ( $q )) {
$round = mysql_fetch_object ( $q );
$q = mysql_query ( " SELECT * FROM judges_timeslots WHERE round_id=' $round->id ' AND type='timeslot' " );
return mysql_num_rows ( $q );
}
else
return 0 ;
2006-08-01 19:43:15 +00:00
}
2006-01-31 22:34:04 +00:00
2010-03-26 06:03:31 +00:00
function judges_scheduler_check_timeslots_sa ()
{
2010-10-20 21:58:26 +00:00
global $conference ;
2010-03-26 06:03:31 +00:00
$rows = 0 ;
$q = mysql_query ( " SELECT * FROM judges_timeslots WHERE " .
2010-10-20 21:58:26 +00:00
" conferences_id=' " . $conference [ 'id' ] . " ' " .
2010-03-26 06:03:31 +00:00
" AND `type`='special' " );
if ( mysql_num_rows ( $q )) {
while (( $round = mysql_fetch_object ( $q ))) {
$rq = mysql_query ( " SELECT * FROM judges_timeslots WHERE round_id=' $round->id ' AND type='timeslot' " );
$rows += mysql_num_rows ( $rq );
}
}
return $rows ;
}
2006-08-01 19:43:15 +00:00
function judges_scheduler_check_awards ()
{
2010-10-20 21:58:26 +00:00
global $config , $conferenece ;
2006-01-31 22:34:04 +00:00
2010-10-20 21:58:26 +00:00
$q = mysql_query ( " SELECT * FROM projectdivisions WHERE conferences_id=' " . $conference [ 'id' ] . " ' ORDER BY id " );
2006-01-31 22:34:04 +00:00
while ( $r = mysql_fetch_object ( $q ))
$div [ $r -> id ] = $r -> division ;
2010-10-20 21:58:26 +00:00
$q = mysql_query ( " SELECT * FROM projectcategories WHERE conferences_id=' " . $conference [ 'id' ] . " ' ORDER BY id " );
2006-01-31 22:34:04 +00:00
while ( $r = mysql_fetch_object ( $q ))
$cat [ $r -> id ] = $r -> category ;
2006-08-01 19:43:15 +00:00
$dkeys = array_keys ( $div );
$ckeys = array_keys ( $cat );
2007-12-10 19:21:21 +00:00
if ( $config [ 'filterdivisionbycategory' ] == " yes " ) {
2010-10-20 21:58:26 +00:00
$q = mysql_query ( " SELECT * FROM projectcategoriesdivisions_link WHERE conferences_id=' " . $conference [ 'id' ] . " ' ORDER BY projectdivisions_id,projectcategories_id " );
2007-12-10 19:21:21 +00:00
$divcat = array ();
while ( $r = mysql_fetch_object ( $q )) {
$divcat [] = array ( " c " => $r -> projectcategories_id , " d " => $r -> projectdivisions_id );
}
}
else {
$divcat = array ();
foreach ( $dkeys AS $d ) {
foreach ( $ckeys AS $c ) {
$divcat [] = array ( " c " => $c , " d " => $d );
}
}
}
2006-08-01 19:43:15 +00:00
$missing_awards = array ();
2007-12-10 19:21:21 +00:00
foreach ( $divcat AS $dc ) {
$d = $dc [ 'd' ];
$c = $dc [ 'c' ];
2006-01-31 22:34:04 +00:00
$q = mysql_query ( " SELECT award_awards.id FROM
award_awards ,
award_awards_projectcategories ,
award_awards_projectdivisions
WHERE
2010-10-20 21:58:26 +00:00
award_awards . conferences_id = '{$conference[' id ']}'
AND award_awards_projectcategories . conferences_id = '{$conference[' id ']}'
AND award_awards_projectdivisions . conferences_id = '{$conference[' id ']}'
2006-01-31 22:34:04 +00:00
AND award_awards . id = award_awards_projectcategories . award_awards_id
AND award_awards . id = award_awards_projectdivisions . award_awards_id
2006-08-01 19:43:15 +00:00
AND award_awards_projectcategories . projectcategories_id = '$c'
AND award_awards_projectdivisions . projectdivisions_id = '$d'
2006-01-31 22:34:04 +00:00
AND award_awards . award_types_id = '1'
" );
echo mysql_error ();
2006-08-01 19:43:15 +00:00
if ( mysql_num_rows ( $q ) != 1 ) {
2007-12-10 19:21:21 +00:00
$missing_awards [] = " { $cat [ $c ] } - { $div [ $d ] } ( " . i18n ( " %1 found " , array ( mysql_num_rows ( $q ))) . " ) " ;
2006-01-31 22:34:04 +00:00
}
}
2006-08-01 19:43:15 +00:00
return $missing_awards ;
}
function judges_scheduler_check_jdivs ()
{
$q = mysql_query ( " SELECT DISTINCT jdiv_id FROM judges_jdiv " );
$rows = mysql_num_rows ( $q );
return $rows ;
}
function judges_scheduler_check_judges ()
{
2010-10-20 21:58:26 +00:00
global $config , $conference ;
2006-08-11 21:10:33 +00:00
$ok = 1 ;
2006-08-01 19:43:15 +00:00
$jdiv = array ();
2007-12-20 15:53:11 +00:00
$q = mysql_query ( " SELECT * FROM judges_jdiv ORDER BY jdiv_id " );
2006-08-01 19:43:15 +00:00
while ( $r = mysql_fetch_object ( $q )) {
2008-02-28 20:23:27 +00:00
/* Ignore any div/cat with jdiv 0 */
if ( $r -> jdiv_id == 0 ) continue ;
2006-08-01 19:43:15 +00:00
$d = $r -> projectdivisions_id ;
$c = $r -> projectcategories_id ;
$l = $r -> lang ;
2006-08-12 18:05:38 +00:00
$qp = mysql_query ( " SELECT COUNT(projects.id) as cnt FROM projects, registrations WHERE " .
2010-10-20 21:58:26 +00:00
" projects.conferences_id=' " . $conference [ 'id' ] . " ' AND " .
2006-08-01 19:43:15 +00:00
" projectdivisions_id=' $d ' AND " .
" projectcategories_id=' $c ' AND " .
2006-08-12 18:05:38 +00:00
" language=' $l ' AND " .
" registrations.id = projects.registrations_id " .
getJudgingEligibilityCode ()
2006-08-01 19:43:15 +00:00
);
$qr = mysql_fetch_object ( $qp );
2009-03-27 20:31:57 +00:00
$jdiv [ $r -> jdiv_id ][ 'num_projects' ][ 'total' ] += $qr -> cnt ;
$jdiv [ $r -> jdiv_id ][ 'num_projects' ][ $l ] += $qr -> cnt ;
$projectlanguagetotal [ $l ] += $qr -> cnt ;
$projecttotal += $qr -> cnt ;
2006-08-01 19:43:15 +00:00
2006-01-31 22:34:04 +00:00
}
2009-03-27 20:31:57 +00:00
$totalteams [ 'total' ] = 0 ;
echo " <table border=1 width= \" 85% \" ><tr><th></th> " .
" <th colspan= \" " . ( count ( $config [ 'languages' ]) + 1 ) . " \" > " . i18n ( " Projects " ) . " </th> " .
2010-04-06 18:30:23 +00:00
" <th colspan= \" " . ( count ( $config [ 'languages' ]) + 1 ) . " \" > " . i18n ( " Estimated Required Teams " ) . " </th></tr> " ;
2009-03-27 20:31:57 +00:00
echo " <tr> " ;
echo " <th></th><th> " . i18n ( " Total " ) . " </th> " ;
foreach ( $config [ 'languages' ] AS $lkey => $lname )
echo " <th> $lkey </th> " ;
2010-04-06 18:30:23 +00:00
echo " <th> " . i18n ( " Total " ) . " </th> " ;
foreach ( $config [ 'languages' ] AS $lkey => $lname )
echo " <th> $lkey </th> " ;
2009-03-27 20:31:57 +00:00
echo " </tr> \n " ;
2010-04-06 18:30:23 +00:00
foreach ( $jdiv AS $jdiv_id => $jd ) {
$c = $jd [ 'num_projects' ][ 'total' ];
//total judge teams calculation
$t [ 'total' ] = ceil ( $c / $config [ 'max_projects_per_team' ] * $config [ 'times_judged' ]);
if ( $t [ 'total' ] < $config [ 'times_judged' ] && $c > 0 ) $t [ 'total' ] = $config [ 'times_judged' ];
$jdiv [ $jdiv_id ][ 'num_jteams' ][ 'total' ] = $t [ 'total' ];
$totalteams [ 'total' ] += $t [ 'total' ];
//language teams calculation
foreach ( $config [ 'languages' ] AS $lkey => $lname ) {
$c = $jd [ 'num_projects' ][ $lkey ];
$t [ 'total_' . $lkey ] = ceil ( $c / $config [ 'max_projects_per_team' ] * $config [ 'times_judged' ]);
if ( $t [ 'total_' . $lkey ] < $config [ 'times_judged' ] && $c > 0 ) $t [ 'total_' . $lkey ] = $config [ 'times_judged' ];
$jdiv [ $jdiv_id ][ 'num_jteams' ][ 'total_' . $lkey ] = $t [ 'total_' . $lkey ];
$totalteams [ 'total_' . $lkey ] += $t [ 'total_' . $lkey ];
}
echo " <tr><td>Judging Division Group $jdiv_id </td> " ;
echo " <td align= \" center \" > $c </td> " ;
$langstr = " " ;
foreach ( $config [ 'languages' ] AS $lkey => $lname ) {
$clang = ( $jd [ 'num_projects' ][ $lkey ] ? $jd [ 'num_projects' ][ $lkey ] : 0 );
echo " <td align= \" center \" > $clang </td> " ;
2009-03-27 20:31:57 +00:00
}
echo " <td align= \" center \" > { $t [ 'total' ] } </td> " ;
2010-04-06 18:30:23 +00:00
foreach ( $config [ 'languages' ] AS $lkey => $lname ) {
$clang = ( $jd [ 'num_projects' ][ $lkey ] ? $jd [ 'num_projects' ][ $lkey ] : 0 );
//echo "<td align=\"center\">{$t['total']}</td>";
echo " <td align= \" center \" > { $t [ 'total_' . $lkey ] } </td> " ;
}
2009-03-27 20:31:57 +00:00
echo " </tr> " ;
2006-08-01 19:43:15 +00:00
}
2009-03-27 20:31:57 +00:00
echo " </table> " ;
2006-01-31 22:34:04 +00:00
2009-03-27 20:31:57 +00:00
echo " <br /> " ;
2006-08-01 19:43:15 +00:00
echo " <b> " ;
2009-03-27 20:31:57 +00:00
echo i18n ( " Total judging teams required: %1 " , array ( $totalteams [ 'total' ]));
2006-08-01 19:43:15 +00:00
echo " <br /> " ;
echo " <br /> " ;
2009-03-27 20:31:57 +00:00
$minjudges [ 'total' ] = ( $totalteams [ 'total' ] * $config [ 'min_judges_per_team' ]);
$maxjudges [ 'total' ] = ( $totalteams [ 'total' ] * $config [ 'max_judges_per_team' ]);
echo i18n ( " Minimum number of judges required: %1 " , array ( $minjudges [ 'total' ])) . " <br /> " ;
foreach ( $config [ 'languages' ] AS $lkey => $lname ) {
2009-04-01 17:30:31 +00:00
if ( $minjudges [ 'total' ] && $projecttotal )
2010-04-06 18:30:23 +00:00
$minjudges [ $lkey ] = round ( $totalteams [ 'total_' . $lkey ] * $config [ 'min_judges_per_team' ]); //$projectlanguagetotal[$lkey]/$projecttotal*$minjudges['total']);
2009-04-01 17:30:31 +00:00
else
$minjudges [ $lkey ] = 0 ;
2009-03-27 20:35:33 +00:00
echo " " . i18n ( " Minimum number of %1 judges required: %2 " , array ( $lname , $minjudges [ $lkey ])) . " <br /> " ;
2009-03-27 20:31:57 +00:00
}
echo i18n ( " Maximum number of judges needed: %1 " , array ( $maxjudges [ 'total' ]));
echo " <br /> " ;
2006-08-01 19:43:15 +00:00
echo " <br /> " ;
2006-01-31 22:34:04 +00:00
2010-10-20 21:58:26 +00:00
/* $jq = mysql_query ( " SELECT COUNT(judges.id) AS num FROM judges,judges_years WHERE complete='yes' AND deleted='no' AND judges_years.conferences_id=' { $conference [ 'id' ] } ' AND judges_years.judges_id=judges.id " );
2006-08-01 19:43:15 +00:00
$jr = mysql_fetch_object ( $jq );
2009-09-09 00:26:12 +00:00
$currentjudges = $jr -> num ; */
/* FIXME: this his highly inefficient :), but won't be done very often */
$judges = judges_load_all ();
$currentjudges = count ( $judges );
2006-08-01 19:43:15 +00:00
echo " Current number of registered judges: $currentjudges " ;
2009-03-27 20:31:57 +00:00
echo " </b> " ;
2006-08-01 19:43:15 +00:00
echo " <br /> " ;
2009-03-27 20:35:33 +00:00
if ( $currentjudges < $minjudges [ 'total' ]) {
2009-03-27 20:31:57 +00:00
echo error ( i18n ( " You do not have sufficient number of total judges based on your parameters " ));
$ok = false ;
}
foreach ( $config [ 'languages' ] AS $lkey => $lname ) {
2010-01-08 20:25:40 +00:00
$lcount = 0 ;
foreach ( $judges AS $j ) {
foreach ( $j [ 'languages' ] AS $jlang ) {
if ( $jlang == $lkey ) $lcount ++ ;
}
}
$currentjudges = $lcount ;
2009-03-27 20:35:33 +00:00
echo " <b> " . i18n ( " Current number of registered judges that can judge in %1: %2 " , array ( $lname , $currentjudges )) . " </b> " ;
2009-03-27 20:31:57 +00:00
echo " <br /> " ;
2009-03-27 20:35:33 +00:00
if ( $currentjudges < $minjudges [ $lkey ]) {
2009-03-27 20:31:57 +00:00
echo error ( i18n ( " You do not have sufficient number of %1 judges based on your parameters " , array ( $lname )));
$ok = false ;
}
}
if ( ! $ok ) {
2006-08-01 19:43:15 +00:00
echo " " ;
2007-12-20 15:58:07 +00:00
echo " <a href= \" judges_schedulerconfig.php \" > " . i18n ( " Update Scheduler Configuration " ) . " </a> ( " . i18n ( " or get more judges! " ) . " ) " ;
2006-01-31 22:34:04 +00:00
}
else
2006-08-01 19:43:15 +00:00
echo happy ( i18n ( " You have a sufficient number of judges based on your parameters " ));
2006-01-31 22:34:04 +00:00
2006-08-01 19:43:15 +00:00
//now check if we can find a divisional award for each division and category
2006-01-31 22:34:04 +00:00
return $ok ;
}
?>