diff --git a/admin/judges_teams_projects.php b/admin/judges_teams_projects.php
index 10a3986..8815211 100644
--- a/admin/judges_teams_projects.php
+++ b/admin/judges_teams_projects.php
@@ -25,7 +25,7 @@
require("../common.inc.php");
auth_required('admin');
require("judges.inc.php");
- require("projects.inc.php");
+ require("../projects.inc.php");
send_header("Judging Teams Projects");
?>
@@ -343,7 +343,7 @@ if( ($action=="edit" || $action=="assign" ) && $edit)
foreach($teams AS $team)
{
echo "
";
echo "";
if($show_date)
diff --git a/admin/winners.php b/admin/winners.php
index 564cfb2..e3fbfeb 100644
--- a/admin/winners.php
+++ b/admin/winners.php
@@ -23,7 +23,7 @@
?>
require("../common.inc.php");
- require("projects.inc.php");
+ require("../projects.inc.php");
auth_required('admin');
send_header("Administration - Award Winners");
diff --git a/db/db.update.6.sql b/db/db.update.6.sql
index 8e00de2..05d9fa6 100644
--- a/db/db.update.6.sql
+++ b/db/db.update.6.sql
@@ -7,3 +7,10 @@ CREATE TABLE `judges_teams_awards_link` (
);
ALTER TABLE judges_teams_awards_link ADD UNIQUE (award_awards_id,judges_teams_id,year);
ALTER TABLE `judges_teams` CHANGE `name` `name` VARCHAR( 255 ) NOT NULL;
+CREATE TABLE `project_specialawards_link` (
+ `id` INT UNSIGNED NOT NULL AUTO_INCREMENT ,
+ `award_awards_id` INT UNSIGNED NOT NULL ,
+ `projects_id` INT UNSIGNED NOT NULL ,
+ `year` INT NOT NULL ,
+ PRIMARY KEY ( `id` )
+);
diff --git a/admin/projects.inc.php b/projects.inc.php
similarity index 62%
rename from admin/projects.inc.php
rename to projects.inc.php
index cd9f8ca..6d66a6f 100644
--- a/admin/projects.inc.php
+++ b/projects.inc.php
@@ -76,11 +76,89 @@ function getProjectsEligibleForAwards($awards_ids_array)
return $projects;
}
-function getAwardsEligibleForProject($projectnumber)
+function getSpecialAwardsEligibleForProject($projectid)
{
global $config;
- $prjq=mysql_query("SELECT
+ $awardsq=mysql_query("SELECT
+ award_awards.id,
+ award_awards.name,
+ award_awards.criteria,
+ award_awards_projectcategories.projectcategories_id,
+ award_awards_projectdivisions.projectdivisions_id,
+ projects.id AS projects_id
+ FROM
+ award_awards,
+ award_awards_projectcategories,
+ award_awards_projectdivisions,
+ award_types,
+ projects
+ WHERE
+ award_types.type='Special'
+ AND award_types.id=award_awards.award_types_id
+ AND award_awards.id=award_awards_projectcategories.award_awards_id
+ AND award_awards.id=award_awards_projectdivisions.award_awards_id
+ AND projects.projectcategories_id=award_awards_projectcategories.projectcategories_id
+ AND projects.projectdivisions_id=award_awards_projectdivisions.projectdivisions_id
+ AND award_awards.id is not null
+ AND projects.year='".$config['FAIRYEAR']."'
+ AND projects.id='$projectid'
+ ORDER BY
+ award_awards.name
+ ");
+ $awards=array();
+ echo mysql_error();
+ while($r=mysql_fetch_object($awardsq))
+ {
+ $awards[$r->id]=array(
+ "id"=>$r->id,
+ "criteria"=>$r->criteria,
+ "name"=>$r->name
+ );
+ }
+ return $awards;
+}
+
+function getSpecialAwardsNominatedForProject($projectid)
+{
+ global $config;
+
+ //FIXME: this query isnt done yet, its still a copy from above
+ $awardsq=mysql_query("SELECT
+ award_awards.id,
+ award_awards.name,
+ award_awards.criteria,
+ projects.id AS projects_id
+ FROM
+ award_awards,
+ project_specialawards_link,
+ projects
+ WHERE
+ project_specialawards_link.projects_id='$projectid'
+ AND project_specialawards_link.award_awards_id=award_awards.id
+ AND projects.year='".$config['FAIRYEAR']."'
+ AND projects.id='$projectid'
+ ORDER BY
+ award_awards.name
+ ");
+ $awards=array();
+ echo mysql_error();
+ while($r=mysql_fetch_object($awardsq))
+ {
+ $awards[$r->id]=array(
+ "id"=>$r->id,
+ "criteria"=>$r->criteria,
+ "name"=>$r->name
+ );
+ }
+ return $awards;
+}
+
+function getSpecialAwardsNominatedByRegistrationID($id)
+{
+ global $config;
+
+ $awardq=mysql_query("SELECT
award_awards.id,
award_awards.name,
award_awards_projectcategories.projectcategories_id,
@@ -112,20 +190,9 @@ function getAwardsEligibleForProject($projectnumber)
);
}
return $projects;
+
}
-function getAwardsEligibleForProjects($awards_ids_array)
-{
- $projects=array();
- foreach($awards_ids_array AS $award_id)
- {
- $awardprojects=array();
- $awardprojects=getProjectsEligibleForAward($award_id);
- //this will just overwrite ones that already exist, but still keep things in order because the main key is the projectnumber (i hope)
- foreach($awardprojects AS $proj)
- $projects[$proj['projectnumber']]=$proj;
- }
- return $projects;
-}
+
?>
diff --git a/register_participants.inc.php b/register_participants.inc.php
index 337d555..34771b7 100644
--- a/register_participants.inc.php
+++ b/register_participants.inc.php
@@ -185,5 +185,31 @@ function safetyStatus($reg_id="")
}
+function spawardStatus($reg_id="")
+{
+ if($reg_id) $rid=$reg_id;
+ else $rid=$_SESSION['registration_id'];
+
+ return false;
+ //grab all of their answers
+ $q=mysql_query("SELECT * FROM safety WHERE registrations_id='$rid'");
+ while($r=mysql_fetch_object($q))
+ {
+ $safetyanswers[$r->safetyquestions_id]=$r->answer;
+ }
+
+ //now grab all the questions
+ $q=mysql_query("SELECT * FROM safetyquestions ORDER BY ord");
+ while($r=mysql_fetch_object($q))
+ {
+ if($r->required=="yes" && !$safetyanswers[$r->id])
+ {
+ return "incomplete";
+ }
+ }
+ return "complete";
+
+}
+
?>
diff --git a/register_participants_main.php b/register_participants_main.php
index 84f97fb..239fe5c 100644
--- a/register_participants_main.php
+++ b/register_participants_main.php
@@ -84,93 +84,117 @@ echo mysql_error();
echo " ";
echo " ";
- echo "";
- echo "".i18n("Registration Item")." | ".i18n("Status")." | ";
+echo "";
-//participant information
-echo " | ";
-echo "";
-echo i18n("Student Information");
-echo "";
-echo " | ";
-//check to see if its complete
-$statusstudent=studentStatus();
-echo outputStatus($statusstudent);
-echo " | ";
+ echo "" ;
+
+ echo "";
+ echo "";
+ if($config['specawardnom']!="none")
+ {
+ echo "";
+ echo "".i18n("Special Award Nominations")." | ";
+ if(registrationFormsReceived())
+ {
+ echo "".i18n("Self-nominate for special awards")." | ";
+ // $awards=getSpecialAwardsNominatedByRegistrationID($_SESSION['registration_id']);
+ }
+ else
+ {
+ echo "".error(i18n("We must receive your signature form before you can nominate yourself for special awards"),"inline")." | ";
+ }
+
+ echo " ";
+ }
+
+ echo " | ";
echo " ";
-
+
echo "
";
echo "".i18n("Registration Instructions")."";
diff --git a/register_participants_spawards.php b/register_participants_spawards.php
new file mode 100644
index 0000000..9d03daa
--- /dev/null
+++ b/register_participants_spawards.php
@@ -0,0 +1,167 @@
+
+/*
+ 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
+ Copyright (C) 2005 James Grant
+
+ 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("common.inc.php");
+ include "register_participants.inc.php";
+ include "projects.inc.php";
+
+ //authenticate based on email address and registration number from the SESSION
+ if(!$_SESSION['email'])
+ {
+ header("Location: register_participants.php");
+ exit;
+ }
+ if(!$_SESSION['registration_number'])
+ {
+ header("Location: register_participants.php");
+ exit;
+ }
+
+ $q=mysql_query("SELECT registrations.id AS regid, students.id AS studentid, students.firstname FROM registrations,students ".
+ "WHERE students.email='".$_SESSION['email']."' ".
+ "AND registrations.num='".$_SESSION['registration_number']."' ".
+ "AND registrations.id='".$_SESSION['registration_id']."' ".
+ "AND students.registrations_id=registrations.id ".
+ "AND registrations.year=".$config['FAIRYEAR']." ".
+ "AND students.year=".$config['FAIRYEAR']);
+echo mysql_error();
+
+ if(mysql_num_rows($q)==0)
+ {
+ header("Location: register_participants.php");
+ exit;
+
+ }
+ $authinfo=mysql_fetch_object($q);
+
+ $q=mysql_query("SELECT * FROM projects WHERE registrations_id='".$_SESSION['registration_id']."'");
+ $project=mysql_fetch_object($q);
+
+ //send the header
+ send_header("Participant Registration - Self-Nomination for Special Awards");
+
+ echo "<< ".i18n("Back to Participant Registration Summary")." ";
+ echo " ";
+
+ if($_POST['action']=="save")
+ {
+ //FIXME: check the date when they have to have this in by and dont let them submit after that date
+// if(registrationFormsReceived())
+// {
+// echo error(i18n("Cannot make changes to forms once they have been received by the fair"));
+// }
+// else
+// {
+ //first we will delete all their old answer, its easier to delete and re-insert in this case then it would be to find the corresponding answers and update them
+ mysql_query("DELETE FROM project_specialawards_link WHERE projects_id='$project->id' AND year='".$config['FAIRYEAR']."'");
+ $count=0;
+ foreach($_POST['spaward'] AS $spaward)
+ {
+ mysql_query("INSERT INTO project_specialawards_link (award_awards_id,projects_id,year) VALUES (".
+ "'$spaward', ".
+ "'$project->id', ".
+ "'".$config['FAIRYEAR']."')");
+ echo mysql_error();
+ $count++;
+ }
+ echo happy(i18n("Successfully registered for %1 special awards",array($count)));
+// }
+ }
+
+
+
+//output the current status
+$newstatus=spawardStatus();
+if($newstatus!="complete")
+{
+ echo error(i18n("Special Awards Self-Nomination Incomplete"));
+}
+else if($newstatus=="complete")
+{
+ echo happy(i18n("Safety Awards Self-Nomination Complete"));
+
+}
+
+ echo "";
+
+
+ send_footer();
+?>
diff --git a/sfiab.css b/sfiab.css
index c6a5f7c..c26fcea 100644
--- a/sfiab.css
+++ b/sfiab.css
@@ -142,6 +142,7 @@ a {
margin: 0px;
padding: 0px;
margin-left: 30px;
+ margin-right: 30px;
}
|