Merge branch '451-activity-social-actions-list' into 'master'

Fix: display also social actions linked to parents of the selected social issue

Closes #451

See merge request Chill-Projet/chill-bundles!907
This commit is contained in:
2025-11-05 08:51:47 +00:00
2 changed files with 19 additions and 6 deletions

View File

@@ -0,0 +1,6 @@
kind: Fixed
body: 'Fix: display also social actions linked to parents of the selected social issue'
time: 2025-10-29T12:43:55.008647232+01:00
custom:
Issue: "451"
SchemaChange: No schema change

View File

@@ -122,6 +122,8 @@ class SocialIssue
* get all the ancestors of the social issue. * get all the ancestors of the social issue.
* *
* @param bool $includeThis if the array in the result must include the present SocialIssue * @param bool $includeThis if the array in the result must include the present SocialIssue
*
* @return list<SocialIssue>
*/ */
public function getAncestors(bool $includeThis = true): array public function getAncestors(bool $includeThis = true): array
{ {
@@ -176,7 +178,7 @@ class SocialIssue
} }
/** /**
* @return Collection|SocialAction[] All the descendant social actions of the entity * @return Collection<int, SocialAction> All the descendant social actions of the entity
*/ */
public function getDescendantsSocialActions(): Collection public function getDescendantsSocialActions(): Collection
{ {
@@ -239,18 +241,23 @@ class SocialIssue
} }
/** /**
* @return Collection<SocialAction> All the descendant social actions of all * @return Collection<int, SocialAction> All the social actions of the entity, it's
* the descendants of the entity * the descendants and it's parents
*/ */
public function getRecursiveSocialActions(): Collection public function getRecursiveSocialActions(): Collection
{ {
$recursiveSocialActions = new ArrayCollection(); $recursiveSocialActions = new ArrayCollection();
// Get social actions from parent issues
foreach ($this->getAncestors(false) as $ancestor) {
foreach ($ancestor->getDescendantsSocialActions() as $descendant) {
$recursiveSocialActions->add($descendant);
}
}
foreach ($this->getDescendantsWithThis() as $socialIssue) { foreach ($this->getDescendantsWithThis() as $socialIssue) {
foreach ($socialIssue->getDescendantsSocialActions() as $descendant) { foreach ($socialIssue->getDescendantsSocialActions() as $descendant) {
if (!$recursiveSocialActions->contains($descendant)) { $recursiveSocialActions->add($descendant);
$recursiveSocialActions->add($descendant);
}
} }
} }