forked from science-ation/science-ation
267 lines
6.6 KiB
PHP
267 lines
6.6 KiB
PHP
<?
|
|
function getJudgingTeams()
|
|
{
|
|
global $config, $pdo;
|
|
$q = $pdo->prepare("SELECT judges_teams.id,
|
|
judges_teams.num,
|
|
judges_teams.name
|
|
FROM
|
|
judges_teams
|
|
WHERE
|
|
judges_teams.year='" . $config['FAIRYEAR'] . "'
|
|
ORDER BY
|
|
num,name");
|
|
$q->execute();
|
|
|
|
$lastteamid = -1;
|
|
$lastteamnum = -1;
|
|
show_pdo_errors_if_any($pdo);
|
|
$teams = array();
|
|
while ($r = $q->fetch(PDO::FETCH_OBJ)) {
|
|
$teams[$r->id]['id'] = $r->id;
|
|
$teams[$r->id]['num'] = $r->num;
|
|
$teams[$r->id]['name'] = $r->name;
|
|
$lastteamid = $r->id;
|
|
$lastteamnum = $r->num;
|
|
|
|
/* Load timeslots */
|
|
$rounds = array();
|
|
$tq = $pdo->prepare("SELECT * FROM judges_teams_timeslots_link
|
|
LEFT JOIN judges_timeslots ON judges_timeslots.id=judges_teams_timeslots_link.judges_timeslots_id
|
|
WHERE judges_teams_timeslots_link.judges_teams_id='{$r->id}'");
|
|
$tq->execute();
|
|
$teams[$r->id]['timeslots'] = array();
|
|
$teams[$r->id]['rounds'] = array();
|
|
|
|
while ($ts = $tq->fetch(PDO::FETCH_ASSOC)) {
|
|
$teams[$r->id]['timeslots'][] = $ts;
|
|
$rounds[$ts['round_id']] = $ts['round_id'];
|
|
}
|
|
|
|
foreach ($rounds as $round_id) {
|
|
$tq = $pdo->prepare("SELECT * FROM judges_timeslots WHERE id='{$round_id}'");
|
|
$tq->execute();
|
|
$teams[$r->id]['rounds'][] = $tq->fetch(PDO::FETCH_ASSOC);
|
|
}
|
|
|
|
// get the members for this team
|
|
$mq = $pdo->prepare("SELECT \t
|
|
users.id AS judges_id,
|
|
users.firstname,
|
|
users.lastname,
|
|
judges_teams_link.captain
|
|
FROM
|
|
users,
|
|
judges_teams_link
|
|
WHERE
|
|
judges_teams_link.users_id=users.id AND
|
|
judges_teams_link.judges_teams_id='$r->id'
|
|
ORDER BY
|
|
captain DESC,
|
|
lastname,
|
|
firstname");
|
|
$mq->execute();
|
|
show_pdo_errors_if_any($pdo);
|
|
|
|
$teamlangs = array();
|
|
while ($mr = $mq->fetch(PDO::FETCH_OBJ)) {
|
|
$u = user_load($mr->judges_id, false);
|
|
$judgelangs = join('/', $u['languages']);
|
|
foreach ($u['languages'] as $l) {
|
|
if (!in_array($l, $teamlangs))
|
|
$teamlangs[] = $l;
|
|
}
|
|
|
|
$teams[$lastteamid]['members'][] = array(
|
|
'id' => $mr->judges_id,
|
|
'firstname' => $mr->firstname,
|
|
'lastname' => $mr->lastname,
|
|
'captain' => $mr->captain,
|
|
'languages' => $judgelangs,
|
|
'languages_array' => $u['languages']
|
|
);
|
|
}
|
|
$teams[$r->id]['languages_members'] = $teamlangs;
|
|
|
|
// we also need to add all the languages that the team must JUDGE to the teams languages.
|
|
$lq = $pdo->prepare("SELECT projects.language
|
|
FROM judges_teams_timeslots_projects_link
|
|
LEFT JOIN projects ON judges_teams_timeslots_projects_link.projects_id=projects.id
|
|
WHERE judges_teams_timeslots_projects_link.year='{$config['FAIRYEAR']}' AND
|
|
judges_teams_id='$r->id' AND language!='' ");
|
|
$lq->execute();
|
|
show_pdo_errors_if_any($pdo);
|
|
$projectlangs = array();
|
|
while ($lr = $lq->fetch(PDO::FETCH_OBJ)) {
|
|
if (!in_array($lr->language, $projectlangs))
|
|
$projectlangs[] = $lr->language;
|
|
if (!in_array($lr->language, $teamlangs))
|
|
$teamlangs[] = $lr->language;
|
|
}
|
|
$teams[$r->id]['languages_projects'] = $projectlangs;
|
|
$teams[$r->id]['languages'] = $teamlangs;
|
|
|
|
// get the awards for this team
|
|
$aq = $pdo->prepare("SELECT award_awards.id,
|
|
award_awards.name,
|
|
award_awards.criteria,
|
|
award_awards.award_types_id,
|
|
award_types.type AS award_type
|
|
FROM
|
|
award_awards,
|
|
judges_teams_awards_link,
|
|
award_types
|
|
WHERE
|
|
judges_teams_awards_link.award_awards_id=award_awards.id
|
|
AND judges_teams_awards_link.judges_teams_id='$r->id'
|
|
AND award_awards.award_types_id=award_types.id
|
|
AND award_types.year='{$config['FAIRYEAR']}'
|
|
ORDER BY
|
|
name
|
|
");
|
|
$aq->execute();
|
|
while ($ar = $aq->fetch(PDO::FETCH_OBJ)) {
|
|
$teams[$r->id]['awards'][] = array(
|
|
'id' => $ar->id,
|
|
'name' => $ar->name,
|
|
'criteria' => $ar->criteria,
|
|
'award_types_id' => $ar->award_types_id,
|
|
'award_type' => $ar->award_type
|
|
);
|
|
}
|
|
}
|
|
return $teams;
|
|
}
|
|
|
|
function getJudgingTeam($teamid)
|
|
{
|
|
global $config;
|
|
global $pdo;
|
|
$q = $pdo->prepare("SELECT \tjudges_teams.id,
|
|
judges_teams.num,
|
|
judges_teams.name
|
|
|
|
FROM
|
|
judges_teams
|
|
WHERE
|
|
judges_teams.year='" . $config['FAIRYEAR'] . "' AND
|
|
judges_teams.id='$teamid'
|
|
ORDER BY
|
|
num,
|
|
name
|
|
");
|
|
$q->execute();
|
|
|
|
$team = array();
|
|
|
|
$first = true;
|
|
while ($r = $q->fetch(PDO::FETCH_OBJ)) {
|
|
$team['id'] = $r->id;
|
|
$team['num'] = $r->num;
|
|
$team['name'] = $r->name;
|
|
|
|
// get the members for this team
|
|
$mq = $pdo->prepare("SELECT \t
|
|
users.id AS judges_id,
|
|
users.firstname,
|
|
users.lastname,
|
|
judges_teams_link.captain
|
|
|
|
FROM
|
|
users,
|
|
judges_teams_link
|
|
WHERE
|
|
judges_teams_link.users_id=users.id AND
|
|
judges_teams_link.judges_teams_id='$r->id'
|
|
ORDER BY
|
|
captain DESC,
|
|
lastname,
|
|
firstname");
|
|
$mq->execute();
|
|
show_pdo_errors_if_any($pdo);
|
|
|
|
while ($mr = $mq->fetch(PDO::FETCH_OBJ)) {
|
|
$team['members'][] = array(
|
|
'id' => $mr->judges_id,
|
|
'firstname' => $mr->firstname,
|
|
'lastname' => $mr->lastname,
|
|
'captain' => $mr->captain
|
|
);
|
|
}
|
|
|
|
// get the awards for this team
|
|
$aq = $pdo->prepare("SELECT award_awards.id,
|
|
award_awards.name,
|
|
award_awards.award_types_id,
|
|
award_types.type AS award_type
|
|
FROM
|
|
award_awards,
|
|
judges_teams_awards_link,
|
|
award_types
|
|
WHERE
|
|
judges_teams_awards_link.award_awards_id=award_awards.id
|
|
AND judges_teams_awards_link.judges_teams_id='$r->id'
|
|
AND award_awards.award_types_id=award_types.id
|
|
AND award_types.year='{$config['FAIRYEAR']}'
|
|
ORDER BY
|
|
name
|
|
");
|
|
$aq->execute();
|
|
while ($ar = $aq->fetch(PDO::FETCH_OBJ)) {
|
|
$team['awards'][] = array(
|
|
'id' => $ar->id,
|
|
'name' => $ar->name,
|
|
'award_types_id' => $ar->award_types_id,
|
|
'award_type' => $ar->award_type
|
|
);
|
|
}
|
|
}
|
|
|
|
return $team;
|
|
}
|
|
|
|
function getJudgingEligibilityCode()
|
|
{
|
|
global $config;
|
|
switch ($config['project_status']) {
|
|
case 'open':
|
|
return " AND registrations.status != 'open' ";
|
|
break;
|
|
case 'payment_pending':
|
|
return " AND registrations.status IN ('paymentpending', 'complete')";
|
|
break;
|
|
case 'complete':
|
|
return " AND registrations.status = 'complete'";
|
|
break;
|
|
}
|
|
}
|
|
|
|
function teamMemberToName($member)
|
|
{
|
|
return $member['firstname'] . ' ' . $member['lastname'];
|
|
}
|
|
|
|
function judges_load_all()
|
|
{
|
|
global $config, $pdo;
|
|
|
|
$ret = array();
|
|
|
|
$query = "SELECT id FROM users WHERE types LIKE '%judge%'
|
|
AND year='{$config['FAIRYEAR']}'
|
|
AND deleted='no'
|
|
ORDER BY lastname, firstname";
|
|
$r = $pdo->prepare($query);
|
|
$r->execute();
|
|
while ($i = $r->fetch(PDO::FETCH_ASSOC)) {
|
|
$u = user_load($i['id']);
|
|
if ($u['judge_complete'] == 'no')
|
|
continue;
|
|
if ($u['judge_active'] == 'no')
|
|
continue;
|
|
|
|
$ret[$i['id']] = $u;
|
|
}
|
|
return $ret;
|
|
}
|