summaryrefslogtreecommitdiff
path: root/tbc_external_review.module
diff options
context:
space:
mode:
authorJayaram Pai2014-03-02 22:14:28 +0530
committerJayaram Pai2014-03-02 22:14:28 +0530
commitc74a90b3c158f54cf87ff9be5582fe08f7938776 (patch)
tree3d64f63c83f577e29872dd02dba25047970b8312 /tbc_external_review.module
parentf4bc0e0afdc808878157d8e49cd5e36000a66e19 (diff)
downloadtbc-external-review-c74a90b3c158f54cf87ff9be5582fe08f7938776.tar.gz
tbc-external-review-c74a90b3c158f54cf87ff9be5582fe08f7938776.tar.bz2
tbc-external-review-c74a90b3c158f54cf87ff9be5582fe08f7938776.zip
added /status for external reviewer
Mark completed feature for external, Some Link $item changed. Ordinal suffix function added.
Diffstat (limited to 'tbc_external_review.module')
-rw-r--r--tbc_external_review.module119
1 files changed, 107 insertions, 12 deletions
diff --git a/tbc_external_review.module b/tbc_external_review.module
index 5596227..06c6a29 100644
--- a/tbc_external_review.module
+++ b/tbc_external_review.module
@@ -16,7 +16,7 @@
);
$items["tbc_external_review/view_reviewers"] = array(
"title" => "ER List Reviewers",
- "page callback" => "tbc_external_review_view_all",
+ "page callback" => "tbc_external_review_view_reviewers_all",
"access arguments" => array("administer tbc_external_review"),
"type" => MENU_NORMAL_ITEM
);
@@ -32,8 +32,14 @@
"access arguments" => array("download tbc_external_review"),
"type" => MENU_NORMAL_ITEM
);
+ $items["tbc_external_review/status"] = array(
+ "title" => "External Review Status",
+ "page callback" => "tbc_external_review_status_all",
+ "access arguments" => array("download tbc_external_review"),
+ "type" => MENU_NORMAL_ITEM
+ );
$items["tbc_external_review/comments"] = array(
- "title" => "Comments",
+ "title" => "External Review Comments",
"page callback" => "tbc_external_review_comments_all",
"access arguments" => array("download tbc_external_review"),
"access callback" => TRUE,
@@ -60,9 +66,9 @@
"access arguments" => array("administer tbc_external_review"),
"type" => MENU_NORMAL_ITEM
);
- $items["tbc_external_review/status"] = array(
+ $items["tbc_external_review/view_status"] = array(
"title" => "ER View Status",
- "page callback" => "tbc_external_review_status_all",
+ "page callback" => "tbc_external_review_view_status_all",
"access arguments" => array("administer tbc_external_review"),
"type" => MENU_NORMAL_ITEM
);
@@ -140,7 +146,7 @@
$selections = $form_state["values"]["selections"];
foreach($selections as $selection) {
- $query = "update {external_review_details} set uid = {$user->uid}, status = 1 where preference_id = {$selection}";
+ $query = "update {external_review_details} set uid = {$user->uid}, status = 1, review = 1 where preference_id = {$selection}";
db_query($query);
}
drupal_set_message("<strong>Your selections have been updated sucessfully.</strong>", "status");
@@ -177,6 +183,29 @@
return $result;
}
+ function suffix($number) {
+ /*
+ considering number will be not more than 10
+ eg: 11th, 21st - Not required
+ */
+ $output = "";
+ switch ($number) {
+ case "1":
+ $output = $number. "st";
+ break;
+ case "2":
+ $output = $number. "nd";
+ break;
+ case "3":
+ $output = $number. "rd";
+ break;
+ default:
+ $output = $number. "th";
+ break;
+ }
+ return $output;
+ }
+
/*
external reviewer profile form,
save the data in {external_review_profile}
@@ -324,7 +353,7 @@
return $page_content;
}
- function tbc_external_review_view_all() {
+ function tbc_external_review_view_reviewers_all() {
$page_content = "";
$query = "select * from {external_review_profile}";
$result = db_query($query);
@@ -672,7 +701,7 @@
return $books;
}
- function tbc_external_review_status_all() {
+ function tbc_external_review_view_status_all() {
$page_content = "";
$query = "
SELECT * from textbook_companion_preference tcp INNER JOIN external_review_details erd
@@ -681,15 +710,15 @@
";
$result = db_query($query);
$headers = array(
- "Book",
- "Author",
- "User",
+ "Book", "Review No.",
+ "Status", "Reviewer",
);
$rows = array();
while($row = db_fetch_object($result)) {
$item = array(
- "{$row->book}",
- "{$row->author}",
+ "{$row->book}<br><em>by {$row->author}</em>",
+ suffix($row->review),
+ ($row->completed?"Completed":"Ongoing"),
"{$row->name}",
);
array_push($rows, $item);
@@ -833,6 +862,72 @@
drupal_goto("manage_proposal/all");
}
+ function tbc_external_review_status_all($action="", $preference_id=0, $confirm="") {
+ global $user;
+ $page_content = "";
+ if($action == "complete" && $preference_id) {
+ if($confirm == "yes"){
+ $query = "
+ UPDATE external_review_details
+ SET completed = 1
+ WHERE preference_id = %d
+ ";
+ $result = db_query($query, $preference_id);
+
+ if(!$result) {
+ drupal_set_message("Updation failed.", "error");
+ } else {
+ drupal_set_message("Book marked as completed successfully.");
+ /* send mail here */
+ }
+ drupal_goto("tbc_external_review/status");
+ } else {
+ $query = "
+ SELECT erd.review, pre.id, pre.book, pre.author FROM external_review_details erd
+ LEFT JOIN textbook_companion_preference pre ON erd.preference_id = pre.id
+ WHERE erd.preference_id = %d
+ ";
+ $result = db_query($query, $preference_id);
+ $row = db_fetch_object($result);
+
+ $page_content .= "<strong>Are you sure you want to mark the book completed ?</strong><br>";
+ $page_content .= "Book: {$row->book} <br>";
+ $page_content .= "Author: {$row->author} <br>";
+ $page_content .= l("Yes", "tbc_external_review/status/complete/{$row->id}/yes") . " | ";
+ $page_content .= l("Cancel", "tbc_external_review/status/");
+ }
+ } else {
+ $query = "
+ SELECT erd.*, pre.* FROM external_review_details erd
+ LEFT JOIN textbook_companion_preference pre ON pre.id = erd.preference_id
+ WHERE erd.uid = %d
+ ORDER BY pre.book
+ ";
+ $result = db_query($query, $user->uid);
+
+ $headers = array(
+ "Book", "Review No.",
+ "Action"
+ );
+ $rows = array();
+ while($row = db_fetch_object($result)) {
+ $item = array(
+ "{$row->book}<br>by <em>{$row->author}</em>",
+ suffix($row->review),
+ );
+ if($row->completed){
+ array_push($item, "Completed");
+ } else {
+ array_push(
+ $item, l("Mark Completed", "tbc_external_review/status/complete/".$row->preference_id)
+ );
+ }
+ array_push($rows, $item);
+ }
+ $page_content .= theme("table", $headers, $rows);
+ }
+ return $page_content;
+ }
function tbc_external_review_init() {
drupal_add_css(drupal_get_path("module", "tbc_external_review") . "/css/tbc_external_review.css");