notification: add more variable in twig template

This commit is contained in:
Julien Fastré 2022-01-04 17:00:31 +01:00
parent 3a207b2c5d
commit a8fe049ecd
5 changed files with 49 additions and 10 deletions

View File

@ -12,11 +12,19 @@ declare(strict_types=1);
namespace Chill\ActivityBundle\Notification;
use Chill\ActivityBundle\Entity\Activity;
use Chill\ActivityBundle\Repository\ActivityRepository;
use Chill\MainBundle\Entity\Notification;
use Chill\MainBundle\Notification\NotificationHandlerInterface;
final class ActivityNotificationRenderer implements NotificationHandlerInterface
final class ActivityNotificationHandler implements NotificationHandlerInterface
{
private ActivityRepository $activityRepository;
public function __construct(ActivityRepository $activityRepository)
{
$this->activityRepository = $activityRepository;
}
public function getTemplate()
{
return '@ChillActivity/Activity/showInNotification.html.twig';
@ -24,7 +32,10 @@ final class ActivityNotificationRenderer implements NotificationHandlerInterface
public function getTemplateData(Notification $notification)
{
return ['notification' => $notification];
return [
'notification' => $notification,
'activity' => $this->activityRepository->find($notification->getRelatedEntityId()),
];
}
public function supports(Notification $notification, array $options = []): bool

View File

@ -1,2 +1,10 @@
<a href="{{ path('chill_activity_activity_show', {'id': notification.relatedEntityId }) }}">Go to Activity</a>
{# available variables: notification, activity #}
{% if activity is not null %}
{% if is_granted('CHILL_ACTIVITY_SEE', activity) %}
<a href="{{ path('chill_activity_activity_show', {'id': activity.id }) }}">Go to Activity</a>
{% else %}
you are not allowed to see it details. This is the minimal data: {{ activity.id }}
{% endif %}
{% else %}
You get notified of an activity which does not exists any more.
{% endif %}

View File

@ -14,9 +14,17 @@ namespace Chill\PersonBundle\Notification;
use Chill\MainBundle\Entity\Notification;
use Chill\MainBundle\Notification\NotificationHandlerInterface;
use Chill\PersonBundle\Entity\AccompanyingPeriod;
use Chill\PersonBundle\Repository\AccompanyingPeriodRepository;
final class AccompanyingPeriodNotificationRenderer implements NotificationHandlerInterface
final class AccompanyingPeriodNotificationHandler implements NotificationHandlerInterface
{
private AccompanyingPeriodRepository $accompanyingPeriodRepository;
public function __construct(AccompanyingPeriodRepository $accompanyingPeriodRepository)
{
$this->accompanyingPeriodRepository = $accompanyingPeriodRepository;
}
public function getTemplate()
{
return 'ChillPersonBundle:AccompanyingPeriod:showInNotification.html.twig';
@ -24,7 +32,10 @@ final class AccompanyingPeriodNotificationRenderer implements NotificationHandle
public function getTemplateData(Notification $notification)
{
return ['notification' => $notification];
return [
'notification' => $notification,
'period' => $this->accompanyingPeriodRepository->find($notification->getRelatedEntityId()),
];
}
public function supports(Notification $notification)

View File

@ -1,3 +1,12 @@
<a href="{{ path('chill_person_accompanying_course_index', {'accompanying_period_id': notification.relatedEntityId }) }}">
Go to Acc. period.
</a>
{# variables availables: notification, period. #}
{% if period is not null %}
{% if is_granted('CHILL_PERSON_ACCOMPANYING_PERIOD_SEE', period) %}
<a href="{{ path('chill_person_accompanying_course_index', {'accompanying_period_id': notification.relatedEntityId }) }}">
Go to Acc. period.
</a>
{% else %}
You are getting a notification for a period you are not allowed to see. This is the minimal details: {{ period.id }}
{% endif %}
{% else %}
<div>You are getting a notification for a period which does not exists any more</div>
{% endif %}

View File

@ -1,4 +1,4 @@
services:
Chill\PersonBundle\Notification\AccompanyingPeriodNotificationRenderer:
Chill\PersonBundle\Notification\AccompanyingPeriodNotificationHandler:
autowire: true
autoconfigure: true