/**
  * Check grade hidden status. Uses data from both grade item and grade.
  *
  * @return int 0 means visible, 1 hidden always, timestamp hidden until
  */
 public function get_hidden()
 {
     $this->load_grade_item();
     $item_hidden = $this->grade_item->get_hidden();
     if ($item_hidden == 1) {
         return 1;
     } else {
         if ($item_hidden == 0) {
             return $this->hidden;
         } else {
             if ($this->hidden == 0) {
                 return $item_hidden;
             } else {
                 if ($this->hidden == 1) {
                     return 1;
                 } else {
                     if ($this->hidden > $item_hidden) {
                         return $this->hidden;
                     } else {
                         return $item_hidden;
                     }
                 }
             }
         }
     }
 }