diff --git a/changelog.md b/changelog.md index d030d63..665305c 100644 --- a/changelog.md +++ b/changelog.md @@ -48,6 +48,9 @@ #### Feature - Add licencing +#### Improve +- Add unassigned filter to activities + #### Fix - Doctrine deprecation - Activity filter does not shows unassigned activities \ No newline at end of file diff --git a/src/Form/Activity/ActivityFilterForm.php b/src/Form/Activity/ActivityFilterForm.php index d3e3acc..ebf6f46 100644 --- a/src/Form/Activity/ActivityFilterForm.php +++ b/src/Form/Activity/ActivityFilterForm.php @@ -31,6 +31,7 @@ $this->actors = $data['actors']; $formBuilder->setData([ 'actor' => null, + 'unassigned' => false, 'followed' => false, 'status' => null, @@ -52,24 +53,26 @@ public function getActivities(ActivityRepository $activityRepository): array { $data = $this->getData(); - + // Create query $query = $activityRepository->createQueryBuilder('activity'); - + // Create filter $criteria = new Criteria(); // Filter actors - if (!is_null($data['actor']) || $data['followed']) { + if ($data['followed']) { $query->join(ActorEntity::class, 'actor', Join::WITH, 'activity.actor = actor'); - if (!is_null($data['actor'])) { - $criteria->andWhere($criteria->expr() - ->eq('activity.actor', $data['actor'])); - } - if ($data['followed']) { - $criteria->andWhere($criteria->expr() - ->eq('actor.followed', true)); - } + $criteria->andWhere($criteria->expr() + ->eq('actor.followed', true)); + } + if (!is_null($data['actor'])) { + $criteria->andWhere($criteria->expr() + ->eq('activity.actor', $data['actor'])); + } + if ($data['unassigned']) { + $criteria->andWhere($criteria->expr() + ->isNull('activity.actor')); } // Filter status @@ -135,6 +138,9 @@ 'choice_label' => 'displayName', 'required' => false, ]) + ->add('unassigned', CheckboxType::class, [ + 'required' => false, + ]) ->add('followed', CheckboxType::class, [ 'required' => false, ]); diff --git a/templates/_includes/html/form/activity/filter.html.twig b/templates/_includes/html/form/activity/filter.html.twig index 37e9dc9..f3d3e1f 100644 --- a/templates/_includes/html/form/activity/filter.html.twig +++ b/templates/_includes/html/form/activity/filter.html.twig @@ -6,8 +6,12 @@ {{ form_widget(form.actor, {attr: {class: 'w-100'}}) }}
+ {{ form_widget(form.unassigned) }} + {{ form_label(form.unassigned, 'Non assigné') }} +
+
{{ form_widget(form.followed) }} - {{ form_label(form.followed, 'Acteurs suivis') }} + {{ form_label(form.followed, 'Acteur suivi') }}
@@ -17,7 +21,7 @@
{{ form_widget(form.active) }} - {{ form_label(form.active, 'Actifs') }} + {{ form_label(form.active, 'Actif') }}
{{ form_widget(form.notClosed) }}