diff --git a/core/model/DatabaseAdmin.php b/core/model/DatabaseAdmin.php
index 91299d497..6422c8769 100644
--- a/core/model/DatabaseAdmin.php
+++ b/core/model/DatabaseAdmin.php
@@ -119,6 +119,18 @@ class DatabaseAdmin extends Controller {
}
}
+ /**
+ * Build the default data, calling requireDefaultRecords on all
+ * DataObject classes
+ */
+ function buildDefaults() {
+ $dataClasses = ClassInfo::subclassesFor('DataObject');
+ array_shift($dataClasses);
+ foreach($dataClasses as $dataClass){
+ singleton($dataClass)->requireDefaultRecords();
+ print "Defaults loaded for $dataClass
";
+ }
+ }
/**
* Returns the timestamp of the time that the database was last built
diff --git a/dev/DevelopmentAdmin.php b/dev/DevelopmentAdmin.php
index d97e9cb27..6e6157fee 100644
--- a/dev/DevelopmentAdmin.php
+++ b/dev/DevelopmentAdmin.php
@@ -12,6 +12,7 @@ class DevelopmentAdmin extends Controller {
static $url_handlers = array(
'' => 'index',
+ 'build/defaults' => 'buildDefaults',
'$Action' => '$Action',
'$Action//$Action/$ID' => 'handleAction',
);
@@ -134,7 +135,31 @@ class DevelopmentAdmin extends Controller {
$renderer->writeFooter();
}
}
-
+
+ /**
+ * Build the default data, calling requireDefaultRecords on all
+ * DataObject classes
+ * Should match the $url_handlers rule:
+ * 'build/defaults' => 'buildDefaults',
+ */
+ function buildDefaults() {
+ $da = new DatabaseAdmin();
+
+ if (!Director::is_cli()) {
+ $renderer = new DebugView();
+ $renderer->writeHeader();
+ $renderer->writeInfo("Defaults Builder", Director::absoluteBaseURL());
+ echo "