diff --git a/CHANGELOG.md b/CHANGELOG.md index ddd3cba..3bc70a0 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -7,6 +7,9 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ## [Unreleased] +- [#68](https://github.com/itk-dev/devops_itksites/pull/68) + 6667: Update advisories on Detailed site display + ## [1.9.2] - 2026-04-07 - [#67](https://github.com/itk-dev/devops_itksites/pull/67) diff --git a/src/Admin/Field/AdvisoryCountField.php b/src/Admin/Field/AdvisoryCountField.php index eebc444..6271123 100644 --- a/src/Admin/Field/AdvisoryCountField.php +++ b/src/Admin/Field/AdvisoryCountField.php @@ -19,6 +19,6 @@ public static function new(string $propertyName, TranslatableInterface|string|bo ->setLabel($label) // this template is used in 'index' and 'detail' pages - ->setTemplatePath('EasyAdminBundle/Fields/advisory_count.html.twig'); + ->setTemplatePath('EasyAdminBundle/Fields/advisories.html.twig'); } } diff --git a/src/Entity/Site.php b/src/Entity/Site.php index 96b3375..dbfd6c7 100644 --- a/src/Entity/Site.php +++ b/src/Entity/Site.php @@ -200,7 +200,10 @@ public function setType(string $type): self return $this; } - public function getAdvisoryCount(): int + /** + * @return Collection + */ + public function getAdvisories(): Collection { $advisories = new ArrayCollection(); foreach ($this->installation->getPackageVersions() as $packageVersion) { @@ -209,6 +212,11 @@ public function getAdvisoryCount(): int } } - return $advisories->count(); + return $advisories; + } + + public function getAdvisoryCount(): int + { + return $this->getAdvisories()->count(); } } diff --git a/templates/EasyAdminBundle/Fields/advisories.html.twig b/templates/EasyAdminBundle/Fields/advisories.html.twig new file mode 100644 index 0000000..cfe1bba --- /dev/null +++ b/templates/EasyAdminBundle/Fields/advisories.html.twig @@ -0,0 +1,33 @@ +{# @var ea \EasyCorp\Bundle\EasyAdminBundle\Context\AdminContext #} +{# @var field \EasyCorp\Bundle\EasyAdminBundle\Dto\FieldDto #} +{# @var entity \EasyCorp\Bundle\EasyAdminBundle\Dto\EntityDto #} +{% if ea().crud.currentAction == 'detail' %} + {% set advisories = entity.instance.advisories %} + {% if advisories|length > 0 %} + + + + + + + + + + {% for advisory in advisories %} + {% set url = ea_url() + .unsetAll() + .setController('App\\Controller\\Admin\\AdvisoryCrudController') + .setAction('detail') + .setEntityId(advisory.id) %} + + + + + + {% endfor %} + +
PackageCVETitle
{{ advisory.package }}{{ advisory.cve ?? advisory.advisoryId }}{{ advisory.title }}
+ {% endif %} +{% elseif field.formattedValue != 0 %} + {{ field.formattedValue }} +{% endif %} diff --git a/templates/EasyAdminBundle/Fields/advisory_count.html.twig b/templates/EasyAdminBundle/Fields/advisory_count.html.twig deleted file mode 100644 index 1b34775..0000000 --- a/templates/EasyAdminBundle/Fields/advisory_count.html.twig +++ /dev/null @@ -1,6 +0,0 @@ -{# @var ea \EasyCorp\Bundle\EasyAdminBundle\Context\AdminContext #} -{# @var field \EasyCorp\Bundle\EasyAdminBundle\Dto\FieldDto #} -{# @var entity \EasyCorp\Bundle\EasyAdminBundle\Dto\EntityDto #} -{% if field.formattedValue != 0 %} - {{ field.formattedValue }} -{% endif %}