[edit export] add required method on export's interface

The method "getFormDefaultData" is applyied on every interface which
will use it:

- ExportInterface
- AggregatorInterface
- DirectExportInterface
- FilterInterface

The method buildForm is moved to those interfaces.

[ci-skip]
This commit is contained in:
Julien Fastré 2023-06-05 16:47:45 +02:00
parent d5ee158caa
commit ea77adc640
Signed by: julienfastre
GPG Key ID: BDE2190974723FCB
6 changed files with 50 additions and 4 deletions

View File

@ -12,6 +12,7 @@ declare(strict_types=1);
namespace Chill\MainBundle\Export; namespace Chill\MainBundle\Export;
use Closure; use Closure;
use Symfony\Component\Form\FormBuilderInterface;
/** /**
* Interface for Aggregators. * Interface for Aggregators.
@ -21,6 +22,16 @@ use Closure;
*/ */
interface AggregatorInterface extends ModifierInterface interface AggregatorInterface extends ModifierInterface
{ {
/**
* Add a form to collect data from the user.
*/
public function buildForm(FormBuilderInterface $builder);
/**
* Get the default data, that can be use as "data" for the form
*/
public function getFormDefaultData(): array;
/** /**
* get a callable which will be able to transform the results into * get a callable which will be able to transform the results into
* viewable and understable string. * viewable and understable string.

View File

@ -11,10 +11,21 @@ declare(strict_types=1);
namespace Chill\MainBundle\Export; namespace Chill\MainBundle\Export;
use Symfony\Component\Form\FormBuilderInterface;
use Symfony\Component\HttpFoundation\Response; use Symfony\Component\HttpFoundation\Response;
interface DirectExportInterface extends ExportElementInterface interface DirectExportInterface extends ExportElementInterface
{ {
/**
* Add a form to collect data from the user.
*/
public function buildForm(FormBuilderInterface $builder);
/**
* Get the default data, that can be use as "data" for the form
*/
public function getFormDefaultData(): array;
/** /**
* Generate the export. * Generate the export.
*/ */

View File

@ -19,10 +19,6 @@ use Symfony\Component\Form\FormBuilderInterface;
*/ */
interface ExportElementInterface interface ExportElementInterface
{ {
/**
* Add a form to collect data from the user.
*/
public function buildForm(FormBuilderInterface $builder);
/** /**
* get a title, which will be used in UI (and translated). * get a title, which will be used in UI (and translated).

View File

@ -13,6 +13,7 @@ namespace Chill\MainBundle\Export;
use Doctrine\ORM\NativeQuery; use Doctrine\ORM\NativeQuery;
use Doctrine\ORM\QueryBuilder; use Doctrine\ORM\QueryBuilder;
use Symfony\Component\Form\FormBuilderInterface;
/** /**
* Interface for Export. * Interface for Export.
@ -28,6 +29,16 @@ use Doctrine\ORM\QueryBuilder;
*/ */
interface ExportInterface extends ExportElementInterface interface ExportInterface extends ExportElementInterface
{ {
/**
* Add a form to collect data from the user.
*/
public function buildForm(FormBuilderInterface $builder);
/**
* Get the default data, that can be use as "data" for the form
*/
public function getFormDefaultData(): array;
/** /**
* Return which formatter type is allowed for this report. * Return which formatter type is allowed for this report.
* *

View File

@ -11,6 +11,8 @@ declare(strict_types=1);
namespace Chill\MainBundle\Export; namespace Chill\MainBundle\Export;
use Symfony\Component\Form\FormBuilderInterface;
/** /**
* Interface for filters. * Interface for filters.
* *
@ -23,6 +25,16 @@ interface FilterInterface extends ModifierInterface
{ {
public const STRING_FORMAT = 'string'; public const STRING_FORMAT = 'string';
/**
* Add a form to collect data from the user.
*/
public function buildForm(FormBuilderInterface $builder);
/**
* Get the default data, that can be use as "data" for the form
*/
public function getFormDefaultData(): array;
/** /**
* Describe the filtering action. * Describe the filtering action.
* *

View File

@ -34,6 +34,11 @@ interface FormatterInterface
array $aggregatorAliases array $aggregatorAliases
); );
/**
* get the default data for the form build by buildForm
*/
public function getFormDefaultData(array $aggregatorAliases): array;
public function getName(); public function getName();
/** /**