Skip to content

Commit 04e1856

Browse files
Merge pull request #1657 from creative-commoners/pulls/2.1/model-importer-fix
FIX Use valid class for model importers
2 parents 5d57649 + c06b2f2 commit 04e1856

File tree

1 file changed

+5
-3
lines changed

1 file changed

+5
-3
lines changed

code/ModelAdmin.php

+5-3
Original file line numberDiff line numberDiff line change
@@ -545,17 +545,20 @@ public function isManagedModel(string $modelClassOrModelTab): bool
545545
public function getModelImporters()
546546
{
547547
$importerClasses = $this->config()->get('model_importers');
548+
$models = $this->getManagedModels();
548549

549550
// fallback to all defined models if not explicitly defined
550551
if (is_null($importerClasses)) {
551-
$models = $this->getManagedModels();
552552
foreach ($models as $modelName => $options) {
553553
$importerClasses[$modelName] = 'SilverStripe\\Dev\\CsvBulkLoader';
554554
}
555555
}
556556

557557
$importers = [];
558558
foreach ($importerClasses as $modelClass => $importerClass) {
559+
if (isset($models[$modelClass])) {
560+
$modelClass = $models[$modelClass]['dataClass'];
561+
}
559562
$importer = new $importerClass($modelClass);
560563
if (ClassInfo::hasMethod($importer, 'setCheckPermissions')) {
561564
$importer->setCheckPermissions(true);
@@ -675,8 +678,7 @@ public function import(array $data, Form $form): HTTPResponse
675678
$results = $loader->load($_FILES['_CsvFile']['tmp_name']);
676679
} catch (HTTPResponse_Exception $e) {
677680
$form->sessionMessage($e->getMessage(), ValidationResult::TYPE_ERROR);
678-
$this->redirectBack();
679-
return false;
681+
return $this->redirectBack();
680682
}
681683

682684
$message = '';

0 commit comments

Comments
 (0)