assert_search_papers($user_chair, "sec:mgbaker", "2");
assert_search_papers($user_chair, "re:pri:mgbaker", "1 13 17");
$assignset = new AssignmentSet($user_chair, null);
$assignset->parse("action,paper,email,reviewtype\nreview,all,mgbaker@cs.stanford.edu,secondary:primary\n");
xassert_eqq(join("\n", $assignset->errors_text()), "");
xassert($assignset->execute());
xassert(AssignmentSet::run($user_chair, "action,paper,email,reviewtype\nreview,all,mgbaker@cs.stanford.edu,secondary:primary\n"));
assert_search_papers($user_chair, "re:sec:mgbaker", "");
assert_search_papers($user_chair, "re:pri:mgbaker", "1 2 13 17");
$review2d = fetch_review(2, $user_mgbaker);
xassert(!$review2d->reviewSubmitted);
xassert($review2d->reviewNeedsSubmit == 1);
xassert(AssignmentSet::run($user_chair, "action,paper,email,reviewtype\nreview,2,mgbaker@cs.stanford.edu,primary:secondary\n"));
assert_search_papers($user_chair, "re:sec:mgbaker", "2");
assert_search_papers($user_chair, "re:pri:mgbaker", "1 13 17");
$review2d = fetch_review(2, $user_mgbaker);
xassert(!$review2d->reviewSubmitted);
xassert($review2d->reviewNeedsSubmit == 0);
// uploading the current assignment makes no changes
function get_pcassignment_csv()
{
    global $user_chair;
    list($header, $texts) = SearchAction::pcassignments_csv_data($user_chair, range(1, 30));
    $csvg = new CsvGenerator();
    $csvg->set_header($header);
    $csvg->set_selection($header);
    $csvg->add($texts);
    return $csvg->unparse();
}
$old_pcassignments = get_pcassignment_csv();
xassert(AssignmentSet::run($user_chair, $old_pcassignments));
function save_review($pid, $contact, $revreq)
{
    $pid = is_object($pid) ? $pid->paperId : $pid;
    $rf = ReviewForm::get();
    $rf->save_review($revreq, fetch_review($pid, $contact), fetch_paper($pid, $contact), $contact);
    return fetch_review($pid, $contact);
}