/** * @param BuildAfter $event */ public function onBuildAfter(BuildAfter $event) { $datagrid = $event->getDatagrid(); $datasource = $datagrid->getDatasource(); if ($datasource instanceof OrmDatasource) { $parameters = $datagrid->getParameters(); $entityClass = $this->entityRoutingHelper->resolveEntityClass($parameters->get('entityClass')); $entityId = $parameters->get('entityId'); // apply activity filter $this->activityManager->addFilterByTargetEntity($datasource->getQueryBuilder(), $entityClass, $entityId); } }
/** * @expectedException \RuntimeException * @expectedExceptionMessage The "Entity\NotRoot" must be the root entity. */ public function testAddFilterByTargetEntityWithInvalidActivityEntityClassSpecified() { $targetEntityClass = 'Oro\\Bundle\\ActivityBundle\\Tests\\Unit\\Fixtures\\Entity\\Target'; $targetEntityId = 123; $qb = $this->em->createQueryBuilder()->select('activity, another')->from('Test:Activity', 'activity')->from('Test:Another', 'another')->where('another.id = activity.id'); $this->manager->addFilterByTargetEntity($qb, $targetEntityClass, $targetEntityId, 'Entity\\NotRoot'); }
/** * @param BuildAfter $event */ public function onBuildAfter(BuildAfter $event) { $datagrid = $event->getDatagrid(); $datasource = $datagrid->getDatasource(); if ($datasource instanceof OrmDatasource) { $parameters = $datagrid->getParameters(); $entityClass = $this->entityRoutingHelper->decodeClassName($parameters->get('entityClass')); $entityId = $parameters->get('entityId'); $qb = $datasource->getQueryBuilder(); // apply activity filter $this->activityManager->addFilterByTargetEntity($qb, $entityClass, $entityId); // apply filter by date $start = new \DateTime('now', new \DateTimeZone($this->localeSettings->getTimeZone())); $start->setTime(0, 0, 0); $qb->andWhere('event.start >= :date OR event.end >= :date')->setParameter('date', $start); } }
/** * @param OrmDatasource $datasource * @param mixed $entityId * @param string $entityClass */ public function updateDatasource($datasource, $entityId, $entityClass = null) { // apply activity filter $this->activityManager->addFilterByTargetEntity($datasource->getQueryBuilder(), $entityClass ? $entityClass : $this->userClass, $entityId ? $entityId : -1); }