/**
  * Deletes a program assignment activity
  *
  * Deletes all database records, files and calendar events for this assignment.
  *
  * @param object $assignment The assignment to be deleted
  * @return boolean False indicates error
  */
 function delete_instance($assignment)
 {
     global $CFG, $DB;
     // delete onlinejudge submissions
     $submissions = $DB->get_records('assignment_submissions', array('assignment' => $assignment->id));
     foreach ($submissions as $submission) {
         if (!$DB->delete_records('assignment_oj_submissions', array('submission' => $submission->id))) {
             return false;
         }
     }
     // delete testcases
     // parent will delete all files in this context
     if (!$DB->delete_records('assignment_oj_testcases', array('assignment' => $assignment->id))) {
         return false;
     }
     // delete onlinejudge settings
     if (!$DB->delete_records('assignment_oj', array('assignment' => $assignment->id))) {
         return false;
     }
     // inform judgelib to delete related tasks
     $cm = get_coursemodule_from_instance('assignment', $assignment->id);
     if (!onlinejudge_delete_coursemodule($cm->id)) {
         return false;
     }
     $result = parent::delete_instance($assignment);
     return $result;
 }