class DecidedCase extends DataObject {
static $db = array(
'Type' => "Enum('Appeal,Complaint,Consent Order,High Court Judgement,Intermediate Merger,Interim Relief,Large Merger,Procedure')",
'Status' => "Enum('Undecided,Approved,Approved with Conditions,Declined')",
'Title' => 'Varchar',
'Number' => 'Varchar(64)',
'Applicant' => 'Text',
'Respondent' => 'Text',
'Rating' => 'Int(2)',
'Date' => 'Date',
'Time' => 'Time',
'Summary' => 'HTMLText',
'Keywords' => 'Text',
'Source' => 'Varchar'
);
static $defaults = array(
"Status" => 'Undecided',
);
static $has_one = array(
'Document' => 'File',
'CaseHolder' => 'DecidedCaseHolder'
);
static $searchable_fields = array(
'Number' => 'PartialMatchFilter',
'Date' => 'ExactMatchFilter',
'Title' => 'PartialMatchFilter',
'Type' => 'ExactMatchFilter',
'Status' => 'ExactMatchFilter',
'Applicant' => 'PartialMatchFilter',
'Respondent' => 'PartialMatchFilter',
'Summary' => 'PartialMatchFilter',
'Keywords' => 'PartialMatchFilter'
);
static $summary_fields = array(
'Number',
'Date',
'Title',
'Applicant',
'Respondent',
'Type',
'Status',
);
public static $default_sort = "Date DESC";
static $extensions = array(
'SphinxSearchable'
);
static $sphinx = array(
"mode" => "xmlpipe",
"external_content" => array("file_content" => array("DecidedCase", "getDocumentContent"))
);
function getDocumentContent($caseID) {
$case = DataObject::get_by_id("DecidedCase", $caseID);
if (!$case || !$case->Document()) return "";
return $case->Document()->extractFileAsText();
}
function Link(){
$Holder = $this->CaseHolder();
$Link = $Holder->Link() . 'cases/' . $Type=strtolower(str_replace( " ", "-", $this->Type)) . '/retrieve_case/' . $this->ID;
return $Link;
}