forked from science-ation/science-ation
336 lines
15 KiB
PHP
336 lines
15 KiB
PHP
<?php
|
|
/*
|
|
This file is a plug-in to the 'Science Fair In A Box' project
|
|
SFIAB Website: http://www.sfiab.ca
|
|
|
|
Copyright (C) 2011 At Work Software (dennis@spanogle.net>
|
|
Copyright (C) 2011 Dennis Spanogle <dennis@spanogle.net>
|
|
|
|
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.
|
|
*/
|
|
?>
|
|
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
|
<html xmlns="http://www.w3.org/1999/xhtml">
|
|
<head>
|
|
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
|
|
<title>Teams Evaluations Forms</title>
|
|
</head>
|
|
|
|
<body>
|
|
<?php
|
|
include "sfiab_common.inc.php"; // check SFIAB install and get config etc.
|
|
include "eval_common.inc.php"; // check Evaluations setup and get eval_config
|
|
include "eval_menu_inc.php";
|
|
|
|
/*
|
|
This is an evaluation form(s) for a team. Here the team can evaluate each project assigned to the team.
|
|
* First input the team number
|
|
* Verify one of the team members is signed in and accessing this page (TBD)
|
|
* Fill in a drop down with project numbers and project titles (TBD for now just a list and manual input)
|
|
* Select a project number from the drop down box. (TBD)
|
|
* Create the evaluation form - pre fill with any current evaluation entries.
|
|
* Enter the evaluation (button)
|
|
* Select another project
|
|
* continue untill...
|
|
* Exit the page
|
|
*/
|
|
if($_POST['enter']=="evals") { // come here if have an evaluation entry for a given team and project
|
|
// get the values saved in the form.
|
|
$project_id = $_POST['project_id']; // save in form
|
|
$project_num = $_POST['project_num']; // saved in form
|
|
$team_num = $_POST['team_num']; // saved in form
|
|
$judges_team_name = $_POST['team_name'];
|
|
$judges_teams_id = $_POST['team_id'];
|
|
/*
|
|
* for each possible critera for the project see if it was entered (will not be a POST entry if slection was made for the post)
|
|
* the posts have names CR_nnn where nnn is the criteria number. The values are the 'selected' level_id (stored in evals_projects_entries)
|
|
* if a selection, save it in the database if not set a flag not complete.
|
|
* return to the form
|
|
*/
|
|
$q = mysql_query("SELECT * FROM eval_projects WHERE project_id = '".$project_id."' ");
|
|
if (!$q OR mysql_num_rows($q) == 0){
|
|
// what to do here? Should not happen
|
|
}
|
|
while($r=mysql_fetch_object($q)) {
|
|
$scheme_id = $r->scheme_id;
|
|
}
|
|
$q = mysql_query("SELECT * FROM eval_criteria WHERE scheme_id = '".$scheme_id."' ");
|
|
if (!$q OR mysql_num_rows($q) == 0){
|
|
// what to do here? Should not happen
|
|
}
|
|
while($r=mysql_fetch_object($q)) {
|
|
// skip those that have criteria weight == 0 (compatibility with Apperson Scanner export/import)
|
|
if ($r->criteria_weight > 0){
|
|
$criteria_id = $r->criteria_id;
|
|
$postname= "CR_".$criteria_id;
|
|
if ($_POST[$postname]){
|
|
$value_id = $_POST[$postname];
|
|
// now save this one in the database
|
|
$status = mysql_query("UPDATE eval_projects_entries SET level_id = '".$value_id."' WHERE judges_teams_id = '".$judges_teams_id."' AND project_id = '".$project_id."' AND criteria_id = '".$criteria_id."' " );
|
|
// should work but need check if $status == false
|
|
}
|
|
}
|
|
}
|
|
}
|
|
if($_POST['selection']=="team_num") {
|
|
// Get some necessary information: Team_id, All projects (create dropdown list of projects)
|
|
$team_num = $_POST['team_num'];
|
|
$qstr_prjs = "SELECT judges_teams_timeslots_projects_link.`year`, judges_teams_timeslots_projects_link.judges_teams_id, judges_teams.num, ".
|
|
"judges_teams.name, projects.projectnumber, projects.floornumber, projects.title, projects.shorttitle, projects.`language` ".
|
|
"FROM judges_teams, judges_teams_timeslots_projects_link, projects ".
|
|
"WHERE judges_teams.id = judges_teams_timeslots_projects_link.judges_teams_id ".
|
|
"AND judges_teams_timeslots_projects_link.projects_id = projects.id ".
|
|
"AND judges_teams.num = '$team_num' ";
|
|
$qprjs=mysql_query($qstr_prjs);
|
|
if ($qprjs) {
|
|
$num_projects = mysql_num_rows($qprjs);
|
|
if ($num_projects > 0 ){
|
|
$cnt = 0;
|
|
while($rprjs=mysql_fetch_object($qprjs)) {
|
|
if($cnt == 0 ){
|
|
$judges_teams_id = $rprjs->judges_teams_id;
|
|
$judges_team_name = $rprjs->name;
|
|
$cnt = 1;
|
|
}
|
|
// create an array / fill in the dropdownbox
|
|
echo "<br />project number ".$rprjs->projectnumber." ".$rprjs->title."floor number=".$rprjs->floornumber;
|
|
}
|
|
}
|
|
else{
|
|
// no projects assigned or incorrect team number.
|
|
}
|
|
}
|
|
$project_num = "";
|
|
echo "<br /> Enter one of the above listed project numbers<br />";
|
|
}
|
|
if($_POST['selection']=="project_num") {
|
|
// Create the evaluation form for this project - team combination
|
|
$project_num = $_POST['project_num']; // just entered or changed
|
|
$team_num = $_POST['team_num']; // saved in form
|
|
$judges_team_name = $_POST['team_name'];
|
|
$judges_teams_id = $_POST['team_id'];
|
|
}
|
|
if ($team_num == 0)
|
|
{
|
|
echo "<form method=\"post\" action=\"eval_webentry.php\">";
|
|
echo "<input type=\"hidden\" name=\"selection\" value=\"team_num\" />";
|
|
echo "<table>";
|
|
echo "<tr><td>Team Number</td><td><input size=\"5\" type=\"text\" name=\"team_num\" value=\"$team_num\"></td><td><input type=\"submit\" value=\"Enter Team Number\"></td></tr>";
|
|
echo "</table>";
|
|
echo "</form>";
|
|
echo "</body></html>";
|
|
exit;
|
|
}
|
|
// have a team number and a list if projects was presented. Get which project to work on.
|
|
if($project_num == 0){
|
|
echo "<br /> Have team number data: Number: ".$team_num." Id=",$judges_teams_id." name=".$judges_team_name."<br />";
|
|
echo "<form method=\"post\" action=\"eval_webentry.php\">";
|
|
echo "<input type=\"hidden\" name=\"selection\" value=\"project_num\" />";
|
|
echo "<input type=\"hidden\" name=\"team_id\" value=\"$judges_teams_id\" />";
|
|
echo "<input type=\"hidden\" name=\"team_name\" value=\"$judges_team_name\" />";
|
|
echo "<table>";
|
|
echo "<tr><td>Team Number</td><td><input size=\"5\" type=\"text\" name=\"team_num\" value=\"$team_num\"></td><td> Reload form for new team! </td></tr>";
|
|
echo "<tr><td>Project Number</td><td><input size=\"5\" type=\"text\" name=\"project_num\" value=\"$project_num\"></td><td><input type=\"submit\" value=\"Enter Project Number\"></td></tr>";
|
|
echo "</table>";
|
|
echo "</form>";
|
|
echo "</body></html>";
|
|
exit;
|
|
}
|
|
// have team id and project number
|
|
$q = mysql_query("SELECT * FROM projects WHERE projectnumber = '".$project_num."' ");
|
|
if (!$q OR mysql_num_rows($q) == 0){
|
|
echo "<br /><b>No such project number! Start over:</b><br />";
|
|
$project_num = 0;
|
|
echo "<form method=\"post\" action=\"eval_webentry.php\">";
|
|
echo "<input type=\"hidden\" name=\"selection\" value=\"team_num\" />";
|
|
echo "<table>";
|
|
echo "<tr><td>Team Number</td><td><input size=\"5\" type=\"text\" name=\"team_num\" value=\"$team_num\"></td><td><input type=\"submit\" value=\"Enter Team Number\"></td></tr>";
|
|
echo "</table>";
|
|
echo "</form>";
|
|
echo "</body></html>";
|
|
exit;
|
|
}
|
|
$r=mysql_fetch_object($q);
|
|
$project_id = $r->id;
|
|
// double check this project is assigned to this team
|
|
$q = mysql_query("SELECT * FROM judges_teams_timeslots_projects_link WHERE projects_id = '".$project_id."' AND judges_teams_id = '".$judges_teams_id."'");
|
|
if (!$q OR mysql_num_rows($q) == 0){
|
|
echo "<br /><b>Project NOT assigned to the selected team! Start over:</b><br />";
|
|
$project_num = 0;
|
|
echo "<form method=\"post\" action=\"eval_webentry.php\">";
|
|
echo "<input type=\"hidden\" name=\"selection\" value=\"team_num\" />";
|
|
echo "<table>";
|
|
echo "<tr><td>Team Number</td><td><input size=\"5\" type=\"text\" name=\"team_num\" value=\"$team_num\"></td><td><input type=\"submit\" value=\"Enter Team Number\"></td></tr>";
|
|
echo "</table>";
|
|
echo "</form>";
|
|
echo "</body></html>";
|
|
exit;
|
|
}
|
|
echo "<form method=\"post\" action=\"eval_webentry.php\">";
|
|
echo "<input type=\"hidden\" name=\"selection\" value=\"project_num\" />";
|
|
echo "<input type=\"hidden\" name=\"team_id\" value=\"$judges_teams_id\" />";
|
|
echo "<input type=\"hidden\" name=\"team_name\" value=\"$judges_team_name\" />";
|
|
echo "<table>";
|
|
echo "<tr><td>Team Number</td><td><input size=\"5\" type=\"text\" name=\"team_num\" value=\"$team_num\"></td><td> Reload form for new team! </td></tr>";
|
|
echo "<tr><td>Project Number</td><td><input size=\"5\" type=\"text\" name=\"project_num\" value=\"$project_num\"></td><td><input type=\"submit\" value=\"Enter Project Number\">";
|
|
echo " (for now, enter -1 to select a different judge team)</td></tr>";
|
|
echo "</table>";
|
|
echo "</form>";
|
|
// Get project information for display
|
|
//$qst = "SELECT projects.projectdivisions_id AS Expr1, projectdivisions.division, projectcategories.category, projects.title AS ptitle, ".
|
|
// "projects.shorttitle AS pshorttitle, projectcategories.category_shortform, projectdivisions.division_shortform, projects.language ".
|
|
// "FROM projects, projectcategories, projectdivisions ".
|
|
// "WHERE projects.projectcategories_id = projectcategories.id AND projects.projectdivisions_id = projectdivisions.id ".
|
|
// "AND projects.id = '".$project_id."'";
|
|
|
|
$qst = "SELECT projects.projectdivisions_id, projectdivisions.division, projectdivisions.division_shortform, projectcategories.category, ".
|
|
"projectcategories.category_shortform, projects.projectnumber, projects.floornumber, projects.title, projects.shorttitle, ".
|
|
"projects.`language`, eval_projects.scheme_id, eval_projects.team ".
|
|
"FROM projects, eval_projects, projectcategories, projectdivisions ".
|
|
"WHERE projects.id = eval_projects.project_id AND projects.projectcategories_id = projectcategories.id ".
|
|
"AND projects.projectdivisions_id = projectdivisions.id AND projects.id = '".$project_id."'";
|
|
$q=mysql_query($qst);
|
|
if ($q) {
|
|
while($r=mysql_fetch_object($q)) {
|
|
$ptitle = $r->title;
|
|
$pshort_title = $r->shorttitle;
|
|
$category = $r->category;
|
|
$division = $r->division;
|
|
$shortcategory = $r->category_shortform;
|
|
$division_shortform = $r->division_shortform;
|
|
$language = $r->language;
|
|
$scheme_id = $r->scheme_id;
|
|
$team = $r->team;
|
|
}
|
|
}
|
|
echo "<br /><b> Project Title: ".$ptitle."</b>";
|
|
echo "<br /> Project Category: ".$category;
|
|
$IsTeam = "";
|
|
if ($team == "yes"){ $IsTeam = " (Team Project)";}
|
|
echo "<br /> Project Division: ".$division.$IsTeam;
|
|
echo "<br /> Language: ".$language;
|
|
// this is for test only at this time. will be used in the Apperson Scanner export and import.
|
|
// to create the file necessary to preslug the score forms.
|
|
// Barcode = 1 or 2 for team, 4 digits exn, 4 digits team number, 2 digits checksum?
|
|
$tempprnum = substr($project_num , 1);
|
|
if ( strlen($tempprnum) < 4 )
|
|
{
|
|
$tempprnum = "0".$tempprnum;
|
|
}
|
|
echo "<br /> Scanner Project number: ".$tempprnum;
|
|
echo "<break />";
|
|
$errors = 0;
|
|
$criteria_row = 0;
|
|
// First find the longest string in criteria and level names so the table will look nice
|
|
$maxstrlen = 0;
|
|
$qcr=mysql_query("SELECT * FROM eval_criteria WHERE scheme_id = '$scheme_id' Order by 'criteria_id'");
|
|
if ($qcr) {
|
|
while($rcr=mysql_fetch_object($qcr)) {
|
|
if (strlen($rcr->criteria_name) > $maxstrlen) {
|
|
$maxstrlen = strlen($rcr->criteria_name);
|
|
}
|
|
}
|
|
}
|
|
$qlv=mysql_query("SELECT * FROM eval_levels WHERE scheme_id = $scheme_id ".
|
|
"AND spec_use = 'no' ORDER BY level_value DESC");
|
|
if ($qlv) {
|
|
while($rlv=mysql_fetch_object($qlv)){
|
|
if (strlen($rlv->level_name) > $maxstrlen) {
|
|
$maxstrlen = strlen($rlv->level_name);
|
|
}
|
|
}
|
|
}
|
|
echo "<form id='form2' name='form2' method='post' action='eval_webentry.php' >";
|
|
// Build the table **************************************************************
|
|
echo "<table style='width:67%%; font-family: 'Courier New', Courier, monospace;' border='1' align='left'>";
|
|
// build the top row criteria labels. If a criteria weight == 0 do not put in form (for compatibilbity with Apperson Scanners)
|
|
$qcr=mysql_query("SELECT * FROM eval_criteria WHERE scheme_id = '$scheme_id' Order by 'criteria_id'");
|
|
echo "<tr>";
|
|
if ($qcr) {
|
|
$total_crits = mysql_num_rows($qcr); // used to check if all criteria have a selection
|
|
$count_crits = 0;
|
|
while($rcr=mysql_fetch_object($qcr)) {
|
|
if ($rcr->criteria_weight > 0){
|
|
$nam = $rcr->criteria_name;
|
|
if (strlen($nam) < $maxstrlen){
|
|
$addn = $maxstrlen - strlen($nam) + 5;
|
|
for ( $icnt = 1; $icnt <= $addn; $icnt += 1) {
|
|
$nam = $nam." ";
|
|
}
|
|
}
|
|
echo "<td>".$nam."</td>";
|
|
}
|
|
else{
|
|
$total_crits -= 1; // reduce the number of needed criteria marks for each criteria wiht weight = 0
|
|
}
|
|
}
|
|
}
|
|
echo "</tr>";
|
|
// Now add the row with the levels to select as a radio button list *********************
|
|
// ** important to order the same as above query ***
|
|
$qcr=mysql_query("SELECT * FROM eval_criteria WHERE scheme_id = '$scheme_id' Order by 'criteria_id'");
|
|
echo "<tr>";
|
|
if ($qcr) {
|
|
while($rcr=mysql_fetch_object($qcr)) {
|
|
// for each, add a colunm with the input list
|
|
// except.. if the criteria weight is 0 then do not add to the form (Special case for compatibility with Export / Apperson scanners)
|
|
if ($rcr->criteria_weight > 0){
|
|
echo "<td>";
|
|
$qlv=mysql_query("SELECT * FROM eval_levels WHERE scheme_id = $scheme_id ".
|
|
"AND spec_use = 'no' ORDER BY level_value DESC");
|
|
if ($qlv) {
|
|
while($rlv=mysql_fetch_object($qlv)){
|
|
// see if this level for this criteria is already set in the tables
|
|
$qset=mysql_query("SELECT * FROM eval_projects_entries WHERE judges_teams_id = '".$judges_teams_id."' AND project_id = '".$project_id."' AND criteria_id ='".$rcr->criteria_id."'");
|
|
if($qset){
|
|
while($rset=mysql_fetch_object($qset)){ // should only be one record for this criteria
|
|
if ($rset->level_id == $rlv->level_id){
|
|
$rbsel = "checked";
|
|
$count_crits += 1;
|
|
}
|
|
else{
|
|
$rbsel = "";
|
|
}
|
|
}
|
|
}
|
|
$nam = $rlv->level_name;
|
|
echo "<input type='radio' name='CR_".$rcr->criteria_id."' id='CR_".$rcr->criteria_id."_".$rlv->level_id."' value='".$rlv->level_id."' ".$rbsel." /> ".$nam."<br />";
|
|
}
|
|
}
|
|
echo "</td>";
|
|
}
|
|
}
|
|
}
|
|
echo "</tr><tr <td colspan='".$total_crits."' >";
|
|
echo "<input type=\"hidden\" name=\"team_num\" value=\"$team_num\" />";
|
|
echo "<input type=\"hidden\" name=\"project_num\" value=\"$project_num\" />";
|
|
echo "<input type=\"hidden\" name=\"project_id\" value=\"$project_id\" />";
|
|
echo "<input type=\"hidden\" name=\"team_name\" value=\"$judges_team_name\" />";
|
|
echo "<input type=\"hidden\" name=\"team_id\" value=\"$judges_teams_id\" />";
|
|
echo "<input type=\"hidden\" name=\"enter\" value=\"evals\" />";
|
|
if ( $total_crits == $count_crits ){
|
|
echo "Complete! Enter changes or select another project.";
|
|
}
|
|
else{
|
|
echo "EVALUATION NOT COMPLETE!";
|
|
}
|
|
echo "<br /><input type=\"submit\" value=\"Enter Evaluations\" />";
|
|
echo "</td></tr>";
|
|
echo "</table>";
|
|
echo "</form>";
|
|
echo "<br />";
|
|
?>
|
|
</body>
|
|
</html>
|