forked from science-ation/science-ation
233 lines
7.3 KiB
PHP
233 lines
7.3 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.
|
|
*/
|
|
?>
|
|
<?
|
|
require_once ('common.inc.php');
|
|
require_once ('user.inc.php');
|
|
require_once ('judge.inc.php');
|
|
|
|
/* Sort out who we're editting */
|
|
if (get_value_from_array($_POST, 'users_id'))
|
|
$eid = intval($_POST['users_id']); /* From a save form */
|
|
else if (array_key_exists('embed_edit_id', $_SESSION))
|
|
$eid = $_SESSION['embed_edit_id']; /* From the embedded editor */
|
|
else
|
|
$eid = $_SESSION['users_id']; /* Regular entry */
|
|
|
|
if ($eid != $_SESSION['users_id']) {
|
|
/*
|
|
* Not editing ourself, we had better be
|
|
* a committee member
|
|
*/
|
|
user_auth_required('committee', 'admin');
|
|
}
|
|
|
|
$u = user_load($eid);
|
|
|
|
switch (get_value_from_array($_GET, 'action')) {
|
|
case 'save':
|
|
if (!is_array($_POST['division']))
|
|
$_POST['division'] = array();
|
|
if (!is_array($_POST['subdivision']))
|
|
$_POST['subdivision'] = array();
|
|
|
|
$u['div_prefs'] = array();
|
|
foreach ($_POST['division'] AS $key => $val)
|
|
$u['div_prefs'][$key] = $val;
|
|
|
|
$u['div_prefs_sub'] = array();
|
|
foreach ($_POST['subdivision'] AS $key => $val)
|
|
$u['div_prefs_sub'][$key] = $val;
|
|
|
|
if ($_POST['expertise_other'])
|
|
$u['expertise_other'] = stripslashes($_POST['expertise_other']);
|
|
else
|
|
$u['expertise_other'] = NULL;
|
|
|
|
$u['cat_prefs'] = array();
|
|
if (is_array($_POST['catpref'])) {
|
|
foreach ($_POST['catpref'] AS $k => $v) {
|
|
if ($v == '')
|
|
continue;
|
|
|
|
$u['cat_prefs'][$k] = $v;
|
|
}
|
|
}
|
|
user_save($u);
|
|
happy_('Preferences successfully saved');
|
|
|
|
// reload the user record because we dont know if we saved or didnt save above, we just want
|
|
// to know what the user looks like _now_
|
|
$u = user_load($eid);
|
|
$newstatus = judge_status_expertise($u);
|
|
echo '<script type="text/javascript">';
|
|
echo "expertise_update_status('$newstatus');\n";
|
|
echo "</script>\n";
|
|
exit;
|
|
}
|
|
|
|
if ($_SESSION['embed'] == true) {
|
|
echo '<br /><h3>' . i18n('Judging Expertise') . '</h3>';
|
|
display_messages();
|
|
} else {
|
|
// send the header
|
|
send_header('Category and Division Preferences',
|
|
array('Judge Registration' => 'judge_main.php'));
|
|
}
|
|
|
|
$newstatus = judge_status_expertise($u);
|
|
?>
|
|
<script type="text/javascript">
|
|
function judgeexpertise_save()
|
|
{
|
|
$("#debug").load("<?= $config['SFIABDIRECTORY'] ?>/judge_expertise.php?action=save", $("#judgeexpertise_form").serializeArray());
|
|
return false;
|
|
}
|
|
|
|
function expertise_update_status(s) {
|
|
if(s!='complete') {
|
|
$("#expertise_info_status").html('<?= error(i18n('Divisional Judging Information Incomplete')) ?>');
|
|
}
|
|
else
|
|
$("#expertise_info_status").html('<?= happy(i18n('Divisional Judging Information Complete')) ?>');
|
|
}
|
|
|
|
//when we're ready, output the status
|
|
$(document).ready( function() { expertise_update_status('<?= $newstatus ?>');});
|
|
|
|
</script>
|
|
<?
|
|
|
|
judge_status_update($u);
|
|
|
|
echo "<div id=\"expertise_info_status\"></div>\n";
|
|
|
|
if ($u['special_award_only'] == 'yes') {
|
|
echo i18n('You have specified that you are a judge for a specific special award. Divisional Judging preferences have been disabled because they do not apply to you.');
|
|
echo '<br />';
|
|
send_footer();
|
|
exit;
|
|
}
|
|
|
|
echo "<form name=\"expertiseform\" id=\"judgeexpertise_form\">\n";
|
|
echo "<input type=\"hidden\" name=\"users_id\" value=\"{$u['id']}\">\n";
|
|
|
|
$q = $pdo->prepare("SELECT * FROM projectcategories WHERE year=? ORDER BY mingrade");
|
|
$q->execute([$config['FAIRYEAR']]);
|
|
echo '<br /><h4>' . i18n('Age Category Preferences') . '</h4><br>';
|
|
echo '<table class="editor" style="width: 300px;" >';
|
|
while ($r = $q->fetch(PDO::FETCH_OBJ)) {
|
|
echo '<tr><td class="label" >';
|
|
echo i18n('%1 (Grades %2-%3)', array(i18n($r->category), $r->mingrade, $r->maxgrade));
|
|
echo ':</td>';
|
|
echo '<td>';
|
|
echo "<select name=\"catpref[$r->id]\">";
|
|
echo '<option value="">' . i18n('Choose') . "</option>\n";
|
|
foreach ($preferencechoices AS $val => $str) {
|
|
if ($u['cat_prefs'][$r->id] == $val && $u['cat_prefs'][$r->id] != '')
|
|
$sel = 'selected="selected"';
|
|
else
|
|
$sel = '';
|
|
echo "<option $sel value=\"$val\">" . i18n($str) . "</option>\n";
|
|
}
|
|
echo '</select>' . REQUIREDFIELD;
|
|
|
|
echo '</td>';
|
|
echo '</tr>';
|
|
}
|
|
echo '</table>';
|
|
echo '<br />';
|
|
echo '<br />';
|
|
echo '<h4>' . i18n('Division Expertise') . '</h4><br>';
|
|
|
|
echo i18n("Please rank the following divisions according to the amount of knowledge you have of each subject. A '1' indicates very little knowledge, and a '5' indicates you are very knowledgeable of the subject");
|
|
echo '<br />';
|
|
echo '<br />';
|
|
echo i18n('Once you save, any division that you specified as 3 or more might offer sub-divisions for you to choose from.');
|
|
echo '<br />';
|
|
echo '<br />';
|
|
|
|
echo "<table>\n";
|
|
|
|
// query all of the categories
|
|
$q = $pdo->prepare("SELECT * FROM projectdivisions WHERE year=? ORDER BY division");
|
|
$q->execute([$config['FAIRYEAR']]);
|
|
$first = true;
|
|
$trclass = '';
|
|
while ($r = $q->fetch(PDO::FETCH_OBJ)) {
|
|
$trclass = ($trclass == 'odd') ? 'even' : 'odd';
|
|
if ($first == true) {
|
|
echo '<tr><td></td><td colspan="2">' . i18n('Novice') . '</td><td colspan="3" align="right">' . i18n('Expert') . '</td></tr>';
|
|
echo '<tr><th></th>';
|
|
for ($x = 1; $x <= 5; $x++)
|
|
echo "<th>$x</th>";
|
|
echo '</tr>';
|
|
$first = false;
|
|
}
|
|
|
|
echo "<tr class=\"$trclass\"><td><b>" . i18n($r->division) . '</b></td>';
|
|
|
|
for ($x = 1; $x <= 5; $x++) {
|
|
if (!$u['div_prefs'][$r->id])
|
|
$u['div_prefs'][$r->id] = 1;
|
|
$sel = ($u['div_prefs'][$r->id] == $x) ? 'checked="checked"' : '';
|
|
echo "<td width=\"30\"><input onclick=\"fieldChanged()\" $sel type=\"radio\" name=\"division[$r->id]\" value=\"$x\" /></td>";
|
|
}
|
|
// echo "<td width=\"100\"></td>";
|
|
echo '</tr>';
|
|
|
|
// only show the sub-divisions if the 'main' division is scored >=3
|
|
if ($u['div_prefs'][$r->id] >= 3) {
|
|
$subq = $pdo->prepare("SELECT * FROM projectsubdivisions WHERE projectdivisions_id=? AND year=? ORDER BY subdivision");
|
|
$subq->execute([$r->id, $config['FAIRYEAR']]);
|
|
while ($subr = $subq->fetch(PDO::FETCH_OBJ)) {
|
|
echo '<tr>';
|
|
echo '<td> </td>';
|
|
$ch = ($u['div_prefs_sub'][$subr->id]) ? 'checked="checked"' : '';
|
|
|
|
echo "<td><input onclick=\"fieldChanged()\" $ch type=\"checkbox\" name=\"subdivision[$subr->id]\" value=\"1\" /></td>";
|
|
echo '<td colspan="5">';
|
|
echo "$subr->subdivision";
|
|
echo '</td>';
|
|
echo '</tr>';
|
|
}
|
|
}
|
|
}
|
|
?>
|
|
</table>
|
|
<br />
|
|
<h4><?= i18n('Other Areas of Expertise not listed above') ?></h4>
|
|
<textarea name="expertise_other" rows="4" cols="60"><?= htmlspecialchars($u['expertise_other']) ?></textarea>
|
|
<br />
|
|
<br />
|
|
|
|
<input type="submit" onclick="judgeexpertise_save();return false;" value="<?= i18n('Save Judging Preferences') ?>" />
|
|
</form>
|
|
|
|
<?
|
|
if ($_SESSION['embed'] != true)
|
|
send_footer();
|
|
|
|
?>
|