Tuesday, October 15, 2013

Rewrite peer review process (1)




Under admin/edu/pr_manage_new.php, add a button "Primary peer review  is done." If it is done,
then disable the button.
 admin/edu/pr_manage_new.php,
line 22 add
$sub_level_pages[3]  = Array('url'=>'select_committee_members.php','title'=>'Manage Committee Review');
 line 59 add
function submitReviewDone(){
   document.forms['revisons'].action = 'submit_reviewDone.php';
   document.forms['revisons'].submit();

 function submitChair(){
   document.forms['revisons'].action = 'submit_emailChair.php';
   document.forms['revisons'].submit();
}
line 118 add:

  $sql = "SELECT  review_done, email_chair FROM  cesei_review_done WHERE module_id=$module_id";
   $result = mysql_query($sql,$db);
   $review_result  = mysql_result($result, 0, 0);
   $email_chair  = mysql_result($result, 0, 1);

   if($review_result ==1) echo "Primary peer review is done. <br /><br />";

line 153 add:
   <input type="submit" class="input-button" name="reviewDone" value="Review is done" <?php if($review_result ==1) echo 'disabled="disabled"'; ?> onclick="submitReviewDone()"/>
<input type="submit" class="input-button" name="emailChair" value="Email notification to committee chair" <?php if(($review_result ==0)||($email_chair==1))
                        echo 'disabled="disabled"'; ?> onclick="submitChair()"/>

In MySQL,create a new table cesei_review_done
CREATE TABLE  `cesei_new1`.`cesei_review_done` (
   `module_id` mediumint(8) unsigned NOT NULL default '0',
   `creation_date` datetime NOT NULL default '0000-00-00 00:00:00',
   `review_done` mediumint(8) unsigned NOT NULL default '0',
   `email_chair` mediumint(8) unsigned NOT NULL default '0',
   `voting_method` mediumint(8) unsigned NOT NULL default '0',
   PRIMARY KEY  (`module_id`)
) ENGINE=MyISAM

Create new file: submit_reviewDone.php, copy from delete_review.php and modify:
line 37 change
   $sql    = "DELETE FROM cesei_review_new WHERE id=$rid";
to
    $creation_date = date('Y-m-d H:i:s');
     $sql    = "REPLACE INTO cesei_review_done VALUES ('$module_id','$creation_date', 1, 0, 0)";


line  40 comment out
$msg->addFeedback('RESULT_DELETED');
line 49 changed to
$title = '';
    $sql = "SELECT C.title,C.status FROM edu_courses C WHERE C.course_id = $module_id";
    $result = mysql_query($sql,$db);
   if($row = mysql_fetch_assoc($result)){
      if($row['status'] == 'approved'){
         $msg->addError('This module is already  approved.<br />Only modules that are not in approved stage can be submited for final approval.');
         header('Location: pr_manage_new.php?module_id='.$module_id);
        exit;
      }else{
         $title = $row['title'];
      }
   }else{
      $msg->addError('Module not found');
      header('Location: pr_manage_new.php?module_id='.$module_id);
     exit;
   }
   $sql = "UPDATE edu_courses SET hide=0,status='review' WHERE course_id = $module_id";
   @mysql_query($sql,$db);
   //check to see if this is a first timer
   $sql = "SELECT revision_cycle FROM cesei_module_reviews WHERE module_id=$module_id ORDER BY revision_cycle DESC";
   $result = mysql_query($sql,$db);
   $num_rows = mysql_num_rows($result);
   $revision_cycle = 1;
 
   //add it to module_reviews
  if($num_rows<1)
   $sql = "INSERT INTO cesei_module_reviews VALUES($module_id,$revision_cycle,'in_review','pending','',NOW(),'0000-00-00','0000-00-00','0000-00-00')";
   else
     $sql = "UPDATE cesei_module_reviews SET state='in_review',date_in_review=NOW() WHERE module_id=$module_id AND state='submitted'";
    $creation_date = date('Y-m-d H:i:s');
    $sql    = "REPLACE INTO cesei_review_done VALUES ('$module_id','$creation_date', 1, 0)";
    $result    = mysql_query($sql, $db);
    header('Location: pr_manage_new.php?module_id='.$module_id);
    exit;


Create new file: submit_emailChair.php:
<?php
ini_set('display_errors', 1);
error_reporting(E_ALL);
define('PORTAL_ID', 0);
require_once($_SERVER['DOCUMENT_ROOT'].'/_includes/cesei_globals.inc.php');
require_once($_SERVER['DOCUMENT_ROOT'].'/_lib/peer_review_tools.inc.php');
validate_cesei_access(STATUS_ADMIN);


$savant->assign('section_title', 'CESEI Administration');
$savant->assign('section_href', '/admin/');
$savant->assign('page_title', 'Email Notification to Chiar');

$savant->assign('path', Array(Array('url'=>'index.php','title'=>'Education Administration')) );

$sub_level_pages = Array();
$sub_level_pages[0]  = Array('url'=>'pr_manage_new.php','title'=>'Manage Peer Review (new)');
$sub_level_pages[1]  = Array('url'=>'','title'=>'Delete Review');
$back_to_page = Array('url'=>$_PORTALS[PORTAL_ID]['root'].'/admin/edu/','title'=>'Educational Administration');

$savant->assign('sub_level_pages', $sub_level_pages);
$savant->assign('back_to_page', $back_to_page);        
$module_id = intval($_POST['module_id']);
$module_title =  $_POST['module_title'];

$rid = intval($_POST['rid']);

if (isset($_POST['submit_no'])) {
    $msg->addFeedback('CANCELLED');
    header('Location: pr_manage_new.php?module_id='.$module_id.'&rid='.$rid);
    exit;

} else if (isset($_POST['submit_yes'])) {
   include($_SERVER['DOCUMENT_ROOT'].'/_includes/email_content.inc.php');
   $committee_members = get_pr_members();
    foreach($committee_members as $member){
       if($member['is_chair'] == 1) $email = $member['email'];
    }
     $sql_1 = "UPDATE cesei_review_new set prefix='$prefix', first_name='$first_name', last_name='$last_name', email='$email',
        review_date='$review_date',creation_date='$creation_date',module_id='$module_id',author='$author',comment='$comment'
        WHERE id=".$_POST['rid'];
   $sql    = "UPDATE cesei_review_done set email_chair=1 WHERE module_id=".$module_id;
   $result    = mysql_query($sql, $db);
   $mail = new PHPMailer();
   $mail->AddAddress($email);
  
   $mail->Subject = "Module ".$module_title." has requested for education committee approval";
   $_mail_body ="Dear Education Committee Chair,

    A new module, %1s, has been submitted to the ".INSTITUTION_SHORT_NAME." Education Committee for final approval.

     Please log-in to ".INSTITUTION_SHORT_NAME."'s peer review area to assign committee members to review this module.

    http://".$_SERVER_NAME."/education/peer_review/
    ";
  
   $mail->Body    = vsprintf($_mail_body.$_mail_cesei_ftr.$_mail_inquiry_ftr,$module_title);
       
       if(!$mail->Send()) {
              $msg->addError('There was an error sending the email message. Please try again in a few minutes.');
       }
    else{
            $msg->addFeedback('Email to committee chair for module final approval is sent.');
    }
    unset($mail);
    header('Location: pr_manage_new.php?module_id='.$module_id);
    exit;
}
$savant->display('document_top.tmpl.php');
unset($hidden_vars);
$hidden_vars['rid'] = $rid;
$hidden_vars['module_id'] = $module_id;
$hidden_vars['module_title'] = $module_title;
//$msg->addConfirm('DELETE_TEST_RESULTS_ALL', $hidden_vars);

$msg->addConfirm('Are you sure to send an email notification to committee chair for  module final approval?', $hidden_vars);
$msg->printConfirm();


 $savant->display('document_bottom.tmpl.php'); 
 ?>







No comments:

Post a Comment