public function handleCategoryChangeRequest(SS_HTTPResponse $r)
 {
     if (!Member::currentUser()) {
         return $this->httpError(403);
     }
     if (!is_numeric($r->getVar('new_cat'))) {
         return $this->httpError(500, "Invalid category id");
     }
     $c = PresentationCategory::get()->byID((int) $r->getVar('new_cat'));
     if ($c) {
         $request = new SummitCategoryChange();
         $request->PresentationID = $this->presentation->ID;
         $request->NewCategoryID = $r->getVar('new_cat');
         $request->ReqesterID = Member::currentUserID();
         $request->write();
         $m = Member::currentUser();
         $comment = $m->FirstName . ' ' . $m->Surname . ' suggested that this presentation be moved to the category ' . $c->Title . '.';
         $this->presentation->addComment($comment, Member::currentUserID());
         return new SS_HTTPResponse("change request made.", 200);
     }
 }
 /**
  * @param SS_HTTPResponse $r
  * @return SS_HTTPResponse|void
  * @throws SS_HTTPResponse_Exception
  * @throws ValidationException
  * @throws null
  */
 public function handleCategoryChangeRequest(SS_HTTPResponse $r)
 {
     if (!Member::currentUser()) {
         return $this->httpError(403);
     }
     $newCat = $r->postVar('new_cat');
     if (!is_numeric($newCat)) {
         return $this->httpError(500, "Invalid category id");
     }
     $c = PresentationCategory::get()->byID($newCat);
     if ($c) {
         $request = SummitCategoryChange::create();
         $request->PresentationID = $this->presentation->ID;
         $request->NewCategoryID = $newCat;
         $request->ReqesterID = Member::currentUserID();
         $request->write();
         $this->presentation->addNotification('
         	{member} submitted a request to change the category from ' . $request->Presentation()->Category()->Title . ' to ' . $c->Title);
         return new SS_HTTPResponse("change request made.", 200);
     }
 }