fix handling of DirectExportInterface

This commit is contained in:
Julien Fastré 2023-06-25 15:47:30 +02:00
parent 9978b6a6e4
commit 0e9597bf77
Signed by: julienfastre
GPG Key ID: BDE2190974723FCB
2 changed files with 21 additions and 13 deletions

View File

@ -72,6 +72,7 @@ final readonly class ExportFormHelper
]; ];
} }
if ($export instanceof ExportInterface) {
$allowedFormatters = $this->exportManager $allowedFormatters = $this->exportManager
->getFormattersByTypes($export->getAllowedFormattersTypes()); ->getFormattersByTypes($export->getAllowedFormattersTypes());
$choices = []; $choices = [];
@ -83,6 +84,9 @@ final readonly class ExportFormHelper
1 => $choices[0], 1 => $choices[0],
default => null, default => null,
}; };
} else {
unset($data[ExportType::PICK_FORMATTER_KEY]);
}
return $data; return $data;
} }

View File

@ -113,8 +113,12 @@ class ExportManager
* *
* @return FilterInterface[] a \Generator that contains filters. The key is the filter's alias * @return FilterInterface[] a \Generator that contains filters. The key is the filter's alias
*/ */
public function &getFiltersApplyingOn(ExportInterface $export, ?array $centers = null) public function &getFiltersApplyingOn(ExportInterface|DirectExportInterface $export, ?array $centers = null): iterable
{ {
if ($export instanceof DirectExportInterface) {
return;
}
foreach ($this->filters as $alias => $filter) { foreach ($this->filters as $alias => $filter) {
if ( if (
in_array($filter->applyOn(), $export->supportsModifiers(), true) in_array($filter->applyOn(), $export->supportsModifiers(), true)
@ -132,9 +136,9 @@ class ExportManager
* *
* @return null|iterable<string, AggregatorInterface> a \Generator that contains aggretagors. The key is the filter's alias * @return null|iterable<string, AggregatorInterface> a \Generator that contains aggretagors. The key is the filter's alias
*/ */
public function &getAggregatorsApplyingOn(ExportInterface $export, ?array $centers = null): ?iterable public function &getAggregatorsApplyingOn(ExportInterface|DirectExportInterface $export, ?array $centers = null): ?iterable
{ {
if ($export instanceof ListInterface) { if ($export instanceof ListInterface || $export instanceof DirectExportInterface) {
return; return;
} }