public function Announce($DiscussionID = '', $Target = '') {
      $Discussion = $this->DiscussionModel->GetID($DiscussionID);
      if (!$Discussion)
         throw NotFoundException('Discussion');
      $this->Permission('Vanilla.Discussions.Announce', TRUE, 'Category', $Discussion->PermissionCategoryID);
      
      if ($this->Form->IsPostBack()) {
         // Save the property.
         $CacheKeys = array('Announcements', 'Announcements_'.GetValue('CategoryID', $Discussion));
         $this->DiscussionModel->SQL->Cache($CacheKeys);
         $this->DiscussionModel->SetProperty($DiscussionID, 'Announce', (int)$this->Form->GetFormValue('Announce', 0));
         
         if ($Target)
            $this->RedirectUrl = Url($Target);
      } else {
         if (!$Discussion->Announce)
            $Discussion->Announce = 2;
         $this->Form->SetData($Discussion);
      }
      
      $Discussion = (array)$Discussion;
      $Category = CategoryModel::Categories($Discussion['CategoryID']);
      
      $this->SetData('Discussion', $Discussion);
      $this->SetData('Category', $Category);
      
      $this->Title(T('Announce'));
      $this->Render();         
   }