diff --git a/src/Controller/ActivityController.php b/src/Controller/ActivityController.php index 0a43b01..6ca187a 100644 --- a/src/Controller/ActivityController.php +++ b/src/Controller/ActivityController.php @@ -2,6 +2,8 @@ namespace App\Controller; use Symfony\Component\HttpFoundation\Response; +use App\Repository\ActivityRepository; +use App\Entity\ActivityEntity; /** * Controller for activity related pages @@ -16,6 +18,15 @@ */ public function activities(): Response { - return $this->render('activity/activities.html.twig'); + // Get repositories + $entityManager = $this->getDoctrine()->getManager(); + /** @var ActivityRepository $actorRepository */ + $activityRepository = $entityManager->getRepository(ActivityEntity::class); + + $activities = $activityRepository->findAll(); + + return $this->render('activity/activities.html.twig', [ + 'activities' => $activities, + ]); } } \ No newline at end of file diff --git a/src/Entity/ActivityEntity.php b/src/Entity/ActivityEntity.php index dd00b68..66a4b70 100644 --- a/src/Entity/ActivityEntity.php +++ b/src/Entity/ActivityEntity.php @@ -209,4 +209,29 @@ return $this; } + + /** + * Get the status of the activity + * + * @return string + * @see StatusEnum + */ + public function getStatus(): string + { + return $this->status; + } + + /** + * Set a new status for the activity + * + * @param string $status + * @return self + * @see StatusEnum + */ + public function setStatus(string $status): self + { + $this->status = $status; + + return $this; + } } \ No newline at end of file diff --git a/templates/_includes/html/arrays/activity.html.twig b/templates/_includes/html/arrays/activity.html.twig index 7f016ad..414b5d1 100644 --- a/templates/_includes/html/arrays/activity.html.twig +++ b/templates/_includes/html/arrays/activity.html.twig @@ -1,3 +1,6 @@ +{% import '_includes/macros/status.html.twig' as statusTools %} +{% import '_includes/macros/date.html.twig' as dateTools %} + @@ -7,8 +10,28 @@ - + + + {% for activity in activities %} + + + + + + + + + + + {% endfor %} +
Début planifié Début réél Fin planifiéeFin rééleFin réele Actions
{{ activity.name }}{{ statusTools.statusName(activity.status) }}{% if activity.actor is not null %} + {{ activity.actor.displayName }} + {% endif %}{% if activity.startDate is not null %} {{ dateTools.euro(activity.startDate) }} + {% endif %}{% if activity.realStartDate is not null %} {{ dateTools.euro(activity.realStartDate) }} + {% endif %}{% if activity.endDate is not null %} {{ dateTools.euro(activity.endDate) }} + {% endif %}{% if activity.realEndDate is not null %} {{ dateTools.euro(activity.realEndDate) }} + {% endif %}
\ No newline at end of file diff --git a/templates/_includes/macros/date.html.twig b/templates/_includes/macros/date.html.twig new file mode 100644 index 0000000..c868a58 --- /dev/null +++ b/templates/_includes/macros/date.html.twig @@ -0,0 +1,11 @@ +{% macro iso(date) %} +{{ date|date('Y-m-d') }} +{% endmacro %} + +{% macro euro(date) %} +{{ date|date('d/m/Y') }} +{% endmacro %} + +{% macro full(date) %} +{{ date|date('j F Y') }} +{% endmacro %} \ No newline at end of file diff --git a/templates/_includes/macros/status.html.twig b/templates/_includes/macros/status.html.twig new file mode 100644 index 0000000..9cef145 --- /dev/null +++ b/templates/_includes/macros/status.html.twig @@ -0,0 +1,9 @@ +{% macro statusName(statusId) %} +{{ { + open: 'Ouvert', + inProgress: 'En cours', + waiting: 'En attente', + planified: 'Planifié', + closed: 'Clos', +}[statusId] }} +{% endmacro %} \ No newline at end of file diff --git a/templates/activity/activities.html.twig b/templates/activity/activities.html.twig index 2d805ea..81d34c7 100644 --- a/templates/activity/activities.html.twig +++ b/templates/activity/activities.html.twig @@ -9,7 +9,7 @@

Activités

- {% include "_includes/html/arrays/activity.html.twig" %}
+ {% include "_includes/html/arrays/activity.html.twig" with {activities: activities} %} {% endblock %} \ No newline at end of file