/** * Cleans up the {@link MockDataLog} records. This is kind of expensive to attach to every * DataObject for every delete, but fortunately this module is never used in production. */ public function onBeforeDelete() { $log = MockDataLog::get()->filter(array("RecordClass" => $this->owner->ClassName, "RecordID" => $this->owner->ID))->first(); if ($log) { $log->delete(); } }
/** * Deletes mock data records using references in {@link MockDataLog} * * @param string The class of records to delete */ protected function cleanup($className) { $classes = $className == "__all__" ? MockDataLog::get()->column('RecordClass') : array($className); foreach ($classes as $recordClass) { $logs = MockDataLog::get()->filter(array('RecordClass' => $recordClass)); $ids = $logs->column('RecordID'); $list = DataList::create($recordClass)->byIDs($ids); $this->writeOut("Deleting " . $list->count() . " {$recordClass} records"); $list->removeAll(); $this->writeOut("Done."); $logs->removeAll(); } }