ninegate
Some checks failed
Cadoles/nineskeletor/pipeline/head There was a failure building this commit

This commit is contained in:
2023-01-23 09:46:34 +01:00
parent 46c3f9ca12
commit 800945e44b
67 changed files with 3792 additions and 4288 deletions

View File

@@ -40,11 +40,10 @@ class AlertRepository extends EntityRepository
;
}
public function getUserAlerts($user, $idalertcategory, $alertcategoryfilter, $ssoitems)
public function getUserAlerts($user, $idalertcategory, $alertcategoryfilter)
{
// Profilage
$roles = ($user ? $user->getRoles() : ['ROLE_ANONYME']);
$niveau01 = ($user ? $user->getNiveau01() : null);
$groups = ($user ? $user->getGroups() : []);
$userreads = ($user ? $user->getAlertreaders() : new ArrayCollection());
@@ -78,30 +77,6 @@ class AlertRepository extends EntityRepository
}
}
// Récupération par Niveau01
$qb = $this->createQueryBuilder('a');
$qb->select('alert')
->from('App:Alert', 'alert')
->where(':niveau01 MEMBER OF alert.niveau01s')
->andWhere('alert.publishedat <= :today')
->andWhere($qb->expr()->orX(
$qb->expr()->gt('alert.unpublishedat', ':today'),
$qb->expr()->isNull('alert.unpublishedat')
))
->setParameter('niveau01', $niveau01)
->setParameter('today', date('Y-m-d'));
if ($idalertcategory && $alertcategoryfilter) {
$qb->andWhere('alert.alertcategory=:alertcategory')
->setParameter('alertcategory', $alertcategoryfilter);
}
$alertsniveau01s = $qb->getQuery()->getResult();
foreach ($alertsniveau01s as $alertniveau01) {
if (!$alerts->contains($alertniveau01) && !$userreads->contains($alertniveau01)) {
$alerts->add($alertniveau01);
}
}
// Récupération des alerts par group
foreach ($groups as $group) {
$qb = $this->createQueryBuilder('a');
@@ -128,36 +103,6 @@ class AlertRepository extends EntityRepository
}
}
// Récupération des alerts par item
$bookmarks = null;
$items = null;
$itemcategorys = null;
$this->getEntityManager()->getRepository('App:Item')->getUserItems($user, $bookmarks, $items, $itemcategorys, null, $ssoitems, 4);
foreach ($items as $item) {
$qb = $this->createQueryBuilder('a');
$qb->select('alert')
->from('App:Alert', 'alert')
->where(':item MEMBER OF alert.items')
->andWhere('alert.publishedat <= :today')
->andWhere($qb->expr()->orX(
$qb->expr()->gt('alert.unpublishedat', ':today'),
$qb->expr()->isNull('alert.unpublishedat')
))
->setParameter('item', $item)
->setParameter('today', date('Y-m-d'));
if ($idalertcategory && $alertcategoryfilter) {
$qb->andWhere('alert.alertcategory=:alertcategory')
->setParameter('alertcategory', $alertcategoryfilter);
}
$alertsitems = $qb->getQuery()->getResult();
foreach ($alertsitems as $alertitem) {
if (!$alerts->contains($alertitem) && !$userreads->contains($alertitem)) {
$alerts->add($alertitem);
}
}
}
// Trie des alerts
$alertsordered = $alerts->getIterator();
$alertsordered->uasort(function ($first, $second) {