function run(Contact $user, $qreq, $ssel) { global $Conf, $Opt; // maybe download preferences for someone else $Rev = $user; if (($cid = cvtint($qreq->reviewer)) > 0 && $user->privChair) { if (!($Rev = Contact::find_by_id($cid))) { return Conf::msg_error("No such reviewer"); } } if (!$Rev->isPC) { return self::EPERM; } $q = $Conf->paperQuery($Rev, array("paperId" => $ssel->selection(), "topics" => 1, "reviewerPreference" => 1)); $result = Dbl::qe_raw($q); $texts = array(); while ($prow = PaperInfo::fetch($result, $Rev)) { $t = $prow->paperId . "," . CsvGenerator::quote($prow->title); if ($prow->conflictType > 0) { $t .= ",conflict"; } else { $t .= "," . unparse_preference($prow); } $t .= "\n"; if ($this->extended) { if ($Rev->can_view_authors($prow, false)) { $t .= prefix_word_wrap("# Authors: ", $prow->pretty_text_author_list(), "# "); } $t .= prefix_word_wrap("# Abstract: ", rtrim($prow->abstract), "# "); if ($prow->topicIds != "") { $t .= prefix_word_wrap("# Topics: ", $prow->unparse_topics_text(), "# "); } $t .= "\n"; } defappend($texts[$prow->paperId], $t); } downloadCSV(join("", $ssel->reorder($texts)), ["paper", "title", "preference"], "revprefs"); }
static function setReviewPreference($prow) { global $Conf, $Me, $Error, $OK; $ajax = defval($_REQUEST, "ajax", false); if (!$Me->allow_administer($prow) || ($contactId = cvtint(@$_REQUEST["reviewer"])) <= 0) { $contactId = $Me->contactId; } if (isset($_REQUEST["revpref"]) && ($v = parse_preference($_REQUEST["revpref"]))) { if (self::save_review_preferences(array(array($prow->paperId, $contactId, $v[0], $v[1])))) { $Conf->confirmMsg($ajax ? "Saved" : "Review preference saved."); } else { $Error["revpref"] = true; } $v = unparse_preference($v); } else { $v = null; Conf::msg_error($ajax ? "Bad preference" : "Bad preference “" . htmlspecialchars($_REQUEST["revpref"]) . "”."); $Error["revpref"] = true; } if ($ajax) { $Conf->ajaxExit(array("ok" => $OK && !@$Error["revpref"], "value" => $v)); } }
public function text($pl, $row) { return unparse_preference($this->preference_values($row)); }
function unparse_csv(AssignmentSet $aset, AssignmentCsv $acsv) { if (!$this->pref && $this->exp === null) { $pref = "none"; } else { $pref = unparse_preference($this->pref, $this->exp); } return ["pid" => $this->pid, "action" => "preference", "email" => $this->contact->email, "name" => $this->contact->name_text(), "preference" => $pref]; }
static function setpref_api($user, $qreq, $prow) { global $Conf; $cid = $user->contactId; if ($user->allow_administer($prow) && $qreq->reviewer && ($x = cvtint($qreq->reviewer)) > 0) { $cid = $x; } if ($v = parse_preference($qreq->pref)) { if (PaperActions::save_review_preferences([[$prow->paperId, $cid, $v[0], $v[1]]])) { $j = ["ok" => true, "response" => "Saved"]; } else { $j = ["ok" => false]; } $j["value"] = unparse_preference($v); } else { $j = ["ok" => false, "error" => "Bad preference"]; } json_exit($j); }