forked from science-ation/science-ation
Merge judge_availablilty into judge_other and delete
judge_availability.php
This commit is contained in:
parent
4bf2897f18
commit
e03902bbec
@ -65,6 +65,12 @@ function judge_status_other(&$u)
|
||||
/* They must select a language to judge in */
|
||||
if(count($u['languages']) < 1) return 'incomplete';
|
||||
|
||||
if($config['judges_availability_enable'] != 'no') {
|
||||
$q = mysql_query("SELECT id FROM judges_availability
|
||||
WHERE users_id=\"{$u['id']}\"");
|
||||
if(mysql_num_rows($q) == 0) return 'incomplete';
|
||||
}
|
||||
|
||||
return 'complete';
|
||||
}
|
||||
|
||||
@ -104,18 +110,6 @@ function judge_status_special_awards(&$u)
|
||||
return 'incomplete';
|
||||
}
|
||||
|
||||
function judge_status_availability(&$u)
|
||||
{
|
||||
global $config;
|
||||
if($config['judges_availability_enable'] == 'no') return 'complete';
|
||||
|
||||
$q = mysql_query("SELECT id FROM judges_availability
|
||||
WHERE users_id=\"{$u['id']}\"");
|
||||
if(mysql_num_rows($q) > 0) return 'complete';
|
||||
|
||||
return 'incomplete';
|
||||
}
|
||||
|
||||
function judge_status_update(&$u)
|
||||
{
|
||||
global $config;
|
||||
|
@ -1,163 +0,0 @@
|
||||
<?
|
||||
/*
|
||||
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>
|
||||
Copyright (C) 2009 David Grant <dave@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($_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);
|
||||
|
||||
$times = array();
|
||||
|
||||
/* Load the judging rounds */
|
||||
$q = mysql_query("SELECT date,starttime,endtime,name FROM judges_timeslots WHERE round_id='0' AND year='{$config['FAIRYEAR']}' ORDER BY starttime,type");
|
||||
$x = 0;
|
||||
while($r = mysql_fetch_object($q)) {
|
||||
$found = false;
|
||||
foreach($times as $xx => $t) {
|
||||
if($t['date'] == $r->date && $t['starttime'] == $r->starttime && $t['endtime'] == $r->endtime) {
|
||||
$times[$xx]['name'] .= ", {$r->name}";
|
||||
$found = true;
|
||||
break;
|
||||
}
|
||||
}
|
||||
if(!$found) {
|
||||
$times[$x] = array( 'date' => $r->date,
|
||||
'starttime' => $r->starttime,
|
||||
'endtime' => $r->endtime,
|
||||
'name' => $r->name);
|
||||
$x++;
|
||||
}
|
||||
}
|
||||
|
||||
switch($_GET['action']) {
|
||||
case 'save':
|
||||
mysql_query("DELETE FROM judges_availability WHERE users_id='{$u['id']}'");
|
||||
|
||||
if(is_array($_POST['time']) ) {
|
||||
foreach($_POST['time'] as $x) {
|
||||
if(trim($times[$x]['starttime']) == '') continue;
|
||||
|
||||
mysql_query("INSERT INTO judges_availability (users_id, `date`,`start`,`end`)
|
||||
VALUES ('{$u['id']}',
|
||||
'{$times[$x]['date']}',
|
||||
'{$times[$x]['starttime']}','{$times[$x]['endtime']}')");
|
||||
}
|
||||
}
|
||||
happy_("Time Availability preferences successfully saved");
|
||||
exit;
|
||||
}
|
||||
|
||||
if($_SESSION['embed'] == true) {
|
||||
display_messages();
|
||||
echo "<h4>".i18n('Time Availability')."</h4>";
|
||||
echo "<br />";
|
||||
} else {
|
||||
//send the header
|
||||
send_header('Time Availability',
|
||||
array('Judge Registration' => 'judge_main.php')
|
||||
);
|
||||
}
|
||||
|
||||
?>
|
||||
<script type="text/javascript">
|
||||
function judgeavailability_save()
|
||||
{
|
||||
$("#debug").load("<?=$config['SFIABDIRECTORY']?>/judge_availability.php?action=save", $("#judgeavailability_form").serializeArray());
|
||||
return false;
|
||||
}
|
||||
</script>
|
||||
<?
|
||||
|
||||
|
||||
judge_status_update($u);
|
||||
|
||||
if($_SESSION['embed'] != true) {
|
||||
//output the current status
|
||||
$newstatus=judge_status_availability($u);
|
||||
if($newstatus!='complete')
|
||||
echo error(i18n("Time Availability Preferences Incomplete"));
|
||||
else
|
||||
echo happy(i18n("Time Availability Preferences Complete"));
|
||||
}
|
||||
|
||||
?>
|
||||
<form id="judgeavailability_form" >
|
||||
<input type="hidden" name="users_id" value="<?=$u['id']?>" />
|
||||
<br />
|
||||
<table>
|
||||
<?
|
||||
/* Get all their available times */
|
||||
$q = mysql_query("SELECT * FROM judges_availability WHERE users_id=\"{$u['id']}\" ORDER BY `start`");
|
||||
|
||||
$sel = array();
|
||||
while($r=mysql_fetch_object($q)) {
|
||||
foreach($times as $x=>$t) {
|
||||
if($r->start == $t['starttime'] && $r->end == $t['endtime'] && $r->date == $t['date']) {
|
||||
$sel[$x] = true;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if(count($times) > 1) {
|
||||
echo i18n("Please Note, you will be scheduled to judge in ALL (not just one) judging timeslots you select.");
|
||||
echo '<br /><br />';
|
||||
}
|
||||
|
||||
foreach($times as $x=>$t) {
|
||||
$ch = $sel[$x] == true ? 'checked="checked"' : '';
|
||||
echo "<tr><td>";
|
||||
echo "<input onclick=\"checkboxclicked(this)\" $ch type=\"checkbox\" name=\"time[]\" value=\"$x\" />";
|
||||
$st = substr($t['starttime'], 0, 5);
|
||||
$end = substr($t['endtime'], 0, 5);
|
||||
echo "</td><td><b>{$times[$x]['date']} $st - $end</b></td></tr>";
|
||||
echo "<tr><td></td><td><p>{$t['name']}</td>";
|
||||
echo "</tr>";
|
||||
}
|
||||
?>
|
||||
</table>
|
||||
<br />
|
||||
<br />
|
||||
|
||||
<input type="submit" onclick="judgeavailability_save();return false;" value="<?=i18n("Save Time Availability Preferences")?>" />
|
||||
</form>
|
||||
|
||||
<?
|
||||
if($_SESSION['embed'] != true) send_footer();
|
||||
?>
|
@ -39,6 +39,30 @@ else
|
||||
|
||||
$u = user_load($edit_id);
|
||||
|
||||
/* Load the judging rounds */
|
||||
$times = array();
|
||||
$q = mysql_query("SELECT date,starttime,endtime,name FROM judges_timeslots WHERE round_id='0' AND year='{$config['FAIRYEAR']}' ORDER BY starttime,type");
|
||||
$x = 0;
|
||||
while($r = mysql_fetch_object($q)) {
|
||||
$found = false;
|
||||
foreach($times as $xx => $t) {
|
||||
if($t['date'] == $r->date && $t['starttime'] == $r->starttime && $t['endtime'] == $r->endtime) {
|
||||
$times[$xx]['name'] .= ", {$r->name}";
|
||||
$found = true;
|
||||
break;
|
||||
}
|
||||
}
|
||||
if(!$found) {
|
||||
$times[$x] = array( 'date' => $r->date,
|
||||
'starttime' => $r->starttime,
|
||||
'endtime' => $r->endtime,
|
||||
'name' => $r->name);
|
||||
$x++;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
switch($_GET['action']) {
|
||||
case 'save':
|
||||
if(!is_array($_POST['languages'])) $_POST['languages']=array();
|
||||
@ -53,10 +77,24 @@ case 'save':
|
||||
$u['years_regional'] = intval($_POST['years_regional']);
|
||||
$u['years_national'] = intval($_POST['years_national']);
|
||||
$u['highest_psd'] = stripslashes($_POST['highest_psd']);
|
||||
|
||||
user_save($u);
|
||||
|
||||
questions_save_answers("judgereg",$u['id'],$_POST['questions']);
|
||||
|
||||
mysql_query("DELETE FROM judges_availability WHERE users_id='{$u['id']}'");
|
||||
|
||||
if(is_array($_POST['time']) ) {
|
||||
foreach($_POST['time'] as $x) {
|
||||
if(trim($times[$x]['starttime']) == '') continue;
|
||||
|
||||
mysql_query("INSERT INTO judges_availability (users_id, `date`,`start`,`end`)
|
||||
VALUES ('{$u['id']}',
|
||||
'{$times[$x]['date']}',
|
||||
'{$times[$x]['starttime']}','{$times[$x]['endtime']}')");
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
happy_("Preferences successfully saved");
|
||||
|
||||
$u = user_load($u['id']);
|
||||
@ -69,9 +107,11 @@ case 'save':
|
||||
exit;
|
||||
}
|
||||
|
||||
$fields = array('languages[]', 'years_school','years_regional','years_national','willing_chair','highest_psd');
|
||||
$fields = array('languages[]', 'years_school','years_regional','years_national','willing_chair','highest_psd','time[]');
|
||||
$required = array('languages[]');
|
||||
|
||||
if(count($times) > 1) $required[] = 'time[]';
|
||||
|
||||
?>
|
||||
<h4><?=i18n("Judge Information")?> - <span class="status_judge"></span></h4>
|
||||
<br/>
|
||||
@ -88,6 +128,35 @@ $required = array('languages[]');
|
||||
<tr><?=user_edit_item($u, 'Judge at a Regional Fair', 'years_regional', 'textbox', 5)?></tr>
|
||||
<tr><?=user_edit_item($u, 'Judge at a National Fair', 'years_national', 'textbox', 5)?></tr>
|
||||
|
||||
<? if(count($times) > 1) { ?>
|
||||
<tr><td style="text-align: left" colspan="2"><br /><b><?=i18n('Time Availability')?></b><hr />
|
||||
<i><?=i18n('Please specify the time(s) you are available to judge. You will be scheduled to judge in ALL (not just one) judging timeslot.')?></i>
|
||||
</td></tr>
|
||||
|
||||
<?
|
||||
/* Get all their available times */
|
||||
$q = mysql_query("SELECT * FROM judges_availability WHERE users_id=\"{$u['id']}\" ORDER BY `start`");
|
||||
|
||||
$sel = array();
|
||||
while($r=mysql_fetch_object($q)) {
|
||||
foreach($times as $x=>$t) {
|
||||
if($r->start == $t['starttime'] && $r->end == $t['endtime'] && $r->date == $t['date'])
|
||||
$sel[] = $x;
|
||||
}
|
||||
}
|
||||
$items = array();
|
||||
foreach($times as $x=>$t) {
|
||||
$st = substr($t['starttime'], 0, 5);
|
||||
$end = substr($t['endtime'], 0, 5);
|
||||
$items[$x] = "{$t['name']} ({$times[$x]['date']} $st - $end)";
|
||||
}
|
||||
|
||||
echo '<tr>';
|
||||
user_edit_item($u, 'Time Availability', 'time[]', 'checklist', $items, $sel);
|
||||
echo '</tr>';
|
||||
}
|
||||
?>
|
||||
|
||||
<tr><td style="text-align: left" colspan="2"><br /><b><?=i18n('Judging Questions')?></b><hr /></td></tr>
|
||||
<tr><?=user_edit_item($u, 'I am willing to be the lead for my judging team', 'willing_chair', 'yesno')?></tr>
|
||||
<tr><?=user_edit_item($u, 'Highest post-secondary degree', 'highest_psd', 'textbox')?></tr>
|
||||
@ -121,6 +190,7 @@ $(document).ready(function() {
|
||||
|
||||
rules: {
|
||||
"languages[]": { required: true },
|
||||
"time[]": { required: <?=in_array('time[]', $required)?'true':'false'?> },
|
||||
years_school: { min: 0, max:100 },
|
||||
years_regional: { min: 0, max:100 },
|
||||
years_national: { min: 0, max:100 }
|
||||
@ -128,6 +198,7 @@ $(document).ready(function() {
|
||||
|
||||
messages: {
|
||||
"languages[]": { required: "<?=i18n('Please select the language(s) you can judge in')?>" },
|
||||
"time[]": { required: "<?=i18n('Please select the time(s) you are available for judging')?>" },
|
||||
years_school: {
|
||||
min: "<?=i18n('Please enter a valid number')?>",
|
||||
max: "<?=i18n('Please enter a valid number')?>",
|
||||
|
@ -24,7 +24,7 @@
|
||||
|
||||
require_once('account.inc.php');
|
||||
|
||||
function user_edit_item(&$u, $label, $fname, $type='textbox', $data1=NULL)
|
||||
function user_edit_item(&$u, $label, $fname, $type='textbox', $data1=NULL, $data2=NULL)
|
||||
{
|
||||
global $required, $fields, $config;
|
||||
|
||||
@ -87,6 +87,19 @@ function user_edit_item(&$u, $label, $fname, $type='textbox', $data1=NULL)
|
||||
}
|
||||
echo "</span>";
|
||||
break;
|
||||
|
||||
case 'checklist':
|
||||
/* data1 = items, data2 = checked items */
|
||||
echo "<span>";
|
||||
$x = 0;
|
||||
foreach($data1 AS $key=>$txt) {
|
||||
$ch = (in_array($key,$data2)) ? 'checked="checked"' : '';
|
||||
if($x) echo '<br />';
|
||||
echo "<input $ch type=\"checkbox\" name=\"$fname\" value=\"$l\" />$txt";
|
||||
$x=1;
|
||||
}
|
||||
echo "</span>";
|
||||
break;
|
||||
}
|
||||
echo '</td>';
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user