diff --git a/config/services.yaml b/config/services.yaml index 146ac71e..df74c644 100644 --- a/config/services.yaml +++ b/config/services.yaml @@ -92,6 +92,11 @@ services: tags: - name: doctrine.orm.entity_listener + # Dont use JSONSerializable Interface, + serializer.normalizer.json_serializable: + class: Symfony\Component\Serializer\Normalizer\JsonSerializableNormalizer + tags: + - {name: serializer.normalizer, priority: -9000} App\Controller\RedirectController: arguments: diff --git a/src/Controller/AdminPages/BaseAdminController.php b/src/Controller/AdminPages/BaseAdminController.php index 5590e44b..5542dbe5 100644 --- a/src/Controller/AdminPages/BaseAdminController.php +++ b/src/Controller/AdminPages/BaseAdminController.php @@ -152,6 +152,7 @@ abstract class BaseAdminController extends AbstractController 'entity' => $entity, 'form' => $form->createView(), 'attachment_helper' => $this->attachmentHelper, + 'route_base' => $this->route_base, ]); } @@ -264,6 +265,7 @@ abstract class BaseAdminController extends AbstractController 'import_form' => $import_form->createView(), 'mass_creation_form' => $mass_creation_form->createView(), 'attachment_helper' => $this->attachmentHelper, + 'route_base' => $this->route_base, ]); } diff --git a/src/Entity/Parts/Part.php b/src/Entity/Parts/Part.php index 61c08672..a94fa37f 100644 --- a/src/Entity/Parts/Part.php +++ b/src/Entity/Parts/Part.php @@ -85,7 +85,7 @@ class Part extends AttachmentContainingDBElement /** * TODO. */ - protected $devices; + protected $devices = []; /** * @ColumnSecurity(type="datetime") diff --git a/src/Services/EntityExporter.php b/src/Services/EntityExporter.php index 0b9d0d20..d55e09ba 100644 --- a/src/Services/EntityExporter.php +++ b/src/Services/EntityExporter.php @@ -43,6 +43,14 @@ declare(strict_types=1); namespace App\Services; use App\Entity\Base\AbstractNamedDBElement; +use Symfony\Component\Serializer\Encoder\CsvEncoder; +use Symfony\Component\Serializer\Encoder\JsonEncoder; +use Symfony\Component\Serializer\Encoder\XmlEncoder; +use Symfony\Component\Serializer\Encoder\YamlEncoder; +use Symfony\Component\Serializer\Normalizer\DataUriNormalizer; +use Symfony\Component\Serializer\Normalizer\DateTimeNormalizer; +use Symfony\Component\Serializer\Normalizer\ObjectNormalizer; +use Symfony\Component\Serializer\Serializer; use function in_array; use InvalidArgumentException; use function is_array; @@ -62,6 +70,10 @@ class EntityExporter public function __construct(SerializerInterface $serializer) { + /*$encoders = [new XmlEncoder(), new JsonEncoder(), new CSVEncoder(), new YamlEncoder()]; + $normalizers = [new ObjectNormalizer(), new DateTimeNormalizer()]; + $this->serializer = new Serializer($normalizers, $encoders); + $this->serializer-> */ $this->serializer = $serializer; } @@ -120,13 +132,15 @@ class EntityExporter $entity_array = [$entity]; } - $response = new Response($this->serializer->serialize($entity_array, $format, - [ - 'groups' => $groups, - 'as_collection' => true, - 'csv_delimiter' => ';', //Better for Excel - 'xml_root_node_name' => 'PartDBExport', - ])); + $serialized_data = $this->serializer->serialize($entity_array, $format, + [ + 'groups' => $groups, + 'as_collection' => true, + 'csv_delimiter' => ';', //Better for Excel + 'xml_root_node_name' => 'PartDBExport', + ]); + + $response = new Response($serialized_data); $response->headers->set('Content-Type', $content_type); diff --git a/templates/AdminPages/EntityAdminBase.html.twig b/templates/AdminPages/EntityAdminBase.html.twig index 3d335c6d..1b4a4130 100644 --- a/templates/AdminPages/EntityAdminBase.html.twig +++ b/templates/AdminPages/EntityAdminBase.html.twig @@ -132,7 +132,7 @@ {% if entity.id %}