/**
  * Create action : create and generate a new achievement
  * @access public
  * @return void
  */
 public function create()
 {
     $this->_open_form();
     if ($this->request->is_post()) {
         if (!$this->form->is_valid($this->params['achievement'])) {
             $this->flash['error'] = __('Fail to create achievement : Check data.');
             return;
         }
         $this->achievement = new Achievement($this->form->cleaned_data);
         $this->achievement->creator_id = $this->session['user']->id;
         if (!$this->achievement->save()) {
             $this->form->errors = $this->achievement->errors;
             $this->flash['error'] = __('Fail to create achievement : Check data.');
             return;
         }
         must_regenerate_achievement($this->achievement);
         $this->redirect_to(home_url());
         $mailer = new ApplicationMailer();
         $mailer->send_achievement_created_notification($this->achievement);
     }
 }