mirror of
https://gitlab.com/Chill-Projet/chill-bundles.git
synced 2025-06-12 13:24:25 +00:00
fix cs
This commit is contained in:
parent
6b571e87b4
commit
1e81256404
@ -97,7 +97,6 @@ class CalendarType extends AbstractType
|
|||||||
return $res;
|
return $res;
|
||||||
},
|
},
|
||||||
static function (?string $dateAsString): DateTimeImmutable {
|
static function (?string $dateAsString): DateTimeImmutable {
|
||||||
|
|
||||||
return new DateTimeImmutable($dateAsString);
|
return new DateTimeImmutable($dateAsString);
|
||||||
}
|
}
|
||||||
));
|
));
|
||||||
|
@ -235,7 +235,9 @@ class NotificationController extends AbstractController
|
|||||||
'id' => $notification->getId(),
|
'id' => $notification->getId(),
|
||||||
'_fragment' => 'comment-' . $commentId,
|
'_fragment' => 'comment-' . $commentId,
|
||||||
]);
|
]);
|
||||||
} elseif ($editedCommentForm->isSubmitted() && !$editedCommentForm->isValid()) {
|
}
|
||||||
|
|
||||||
|
if ($editedCommentForm->isSubmitted() && !$editedCommentForm->isValid()) {
|
||||||
$this->addFlash('error', $this->translator->trans('This form contains errors'));
|
$this->addFlash('error', $this->translator->trans('This form contains errors'));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -258,7 +260,9 @@ class NotificationController extends AbstractController
|
|||||||
return $this->redirectToRoute('chill_main_notification_show', [
|
return $this->redirectToRoute('chill_main_notification_show', [
|
||||||
'id' => $notification->getId(),
|
'id' => $notification->getId(),
|
||||||
]);
|
]);
|
||||||
} elseif ($appendCommentForm->isSubmitted() && !$appendCommentForm->isValid()) {
|
}
|
||||||
|
|
||||||
|
if ($appendCommentForm->isSubmitted() && !$appendCommentForm->isValid()) {
|
||||||
$this->addFlash('error', $this->translator->trans('This form contains errors'));
|
$this->addFlash('error', $this->translator->trans('This form contains errors'));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -16,16 +16,16 @@ use Chill\MainBundle\Entity\Workflow\EntityWorkflow;
|
|||||||
use Chill\MainBundle\Repository\Workflow\EntityWorkflowStepRepository;
|
use Chill\MainBundle\Repository\Workflow\EntityWorkflowStepRepository;
|
||||||
use Chill\MainBundle\Templating\UI\NotificationCounterInterface;
|
use Chill\MainBundle\Templating\UI\NotificationCounterInterface;
|
||||||
use Psr\Cache\CacheItemPoolInterface;
|
use Psr\Cache\CacheItemPoolInterface;
|
||||||
|
use Symfony\Component\EventDispatcher\EventSubscriberInterface;
|
||||||
use Symfony\Component\Security\Core\User\UserInterface;
|
use Symfony\Component\Security\Core\User\UserInterface;
|
||||||
use Symfony\Component\Workflow\Event\Event;
|
use Symfony\Component\Workflow\Event\Event;
|
||||||
use Symfony\Component\EventDispatcher\EventSubscriberInterface;
|
|
||||||
|
|
||||||
final class WorkflowByUserCounter implements NotificationCounterInterface, EventSubscriberInterface
|
final class WorkflowByUserCounter implements NotificationCounterInterface, EventSubscriberInterface
|
||||||
{
|
{
|
||||||
private EntityWorkflowStepRepository $workflowStepRepository;
|
|
||||||
|
|
||||||
private CacheItemPoolInterface $cacheItemPool;
|
private CacheItemPoolInterface $cacheItemPool;
|
||||||
|
|
||||||
|
private EntityWorkflowStepRepository $workflowStepRepository;
|
||||||
|
|
||||||
public function __construct(EntityWorkflowStepRepository $workflowStepRepository, CacheItemPoolInterface $cacheItemPool)
|
public function __construct(EntityWorkflowStepRepository $workflowStepRepository, CacheItemPoolInterface $cacheItemPool)
|
||||||
{
|
{
|
||||||
$this->workflowStepRepository = $workflowStepRepository;
|
$this->workflowStepRepository = $workflowStepRepository;
|
||||||
@ -54,14 +54,21 @@ final class WorkflowByUserCounter implements NotificationCounterInterface, Event
|
|||||||
return $nb;
|
return $nb;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public static function generateCacheKeyWorkflowByUser(User $user): string
|
||||||
|
{
|
||||||
|
return 'chill_main_workflow_by_u_' . $user->getId();
|
||||||
|
}
|
||||||
|
|
||||||
public function getCountUnreadByUser(User $user): int
|
public function getCountUnreadByUser(User $user): int
|
||||||
{
|
{
|
||||||
return $this->workflowStepRepository->countUnreadByUser($user);
|
return $this->workflowStepRepository->countUnreadByUser($user);
|
||||||
}
|
}
|
||||||
|
|
||||||
public static function generateCacheKeyWorkflowByUser(User $user): string
|
public static function getSubscribedEvents()
|
||||||
{
|
{
|
||||||
return 'chill_main_workflow_by_u_'.$user->getId();
|
return [
|
||||||
|
'workflow.leave' => 'resetWorkflowCache',
|
||||||
|
];
|
||||||
}
|
}
|
||||||
|
|
||||||
public function resetWorkflowCache(Event $event): void
|
public function resetWorkflowCache(Event $event): void
|
||||||
@ -74,11 +81,12 @@ final class WorkflowByUserCounter implements NotificationCounterInterface, Event
|
|||||||
$entityWorkflow = $event->getSubject();
|
$entityWorkflow = $event->getSubject();
|
||||||
$step = $entityWorkflow->getCurrentStep();
|
$step = $entityWorkflow->getCurrentStep();
|
||||||
|
|
||||||
if ($step === null) {
|
if (null === $step) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
$keys = [];
|
$keys = [];
|
||||||
|
|
||||||
foreach ($step->getDestUser() as $user) {
|
foreach ($step->getDestUser() as $user) {
|
||||||
$keys[] = self::generateCacheKeyWorkflowByUser($user);
|
$keys[] = self::generateCacheKeyWorkflowByUser($user);
|
||||||
}
|
}
|
||||||
@ -86,15 +94,5 @@ final class WorkflowByUserCounter implements NotificationCounterInterface, Event
|
|||||||
if ([] !== $keys) {
|
if ([] !== $keys) {
|
||||||
$this->cacheItemPool->deleteItems($keys);
|
$this->cacheItemPool->deleteItems($keys);
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public static function getSubscribedEvents()
|
|
||||||
{
|
|
||||||
return [
|
|
||||||
'workflow.leave' => 'resetWorkflowCache',
|
|
||||||
];
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -44,8 +44,8 @@ class AccompanyingPeriodWork implements AccompanyingPeriodLinkedWithSocialIssues
|
|||||||
{
|
{
|
||||||
/**
|
/**
|
||||||
* @ORM\ManyToOne(targetEntity=AccompanyingPeriod::class)
|
* @ORM\ManyToOne(targetEntity=AccompanyingPeriod::class)
|
||||||
* @Serializer\Groups({"read","read:accompanyingPeriodWork:light"})
|
* @Serializer\Groups({"read", "read:accompanyingPeriodWork:light"})
|
||||||
* @Serializer\Context(normalizationContext={"groups"={"read"}}, groups={"read:accompanyingPeriodWork:light"})
|
* @Serializer\Context(normalizationContext={"groups": {"read"}}, groups={"read:accompanyingPeriodWork:light"})
|
||||||
*/
|
*/
|
||||||
private ?AccompanyingPeriod $accompanyingPeriod = null;
|
private ?AccompanyingPeriod $accompanyingPeriod = null;
|
||||||
|
|
||||||
|
@ -75,7 +75,6 @@ class AccompanyingCourseMenuBuilder implements LocalMenuBuilderInterface
|
|||||||
], ])
|
], ])
|
||||||
->setExtras(['order' => 30]);
|
->setExtras(['order' => 30]);
|
||||||
|
|
||||||
|
|
||||||
$menu->addChild($this->translator->trans('Accompanying Course Comment'), [
|
$menu->addChild($this->translator->trans('Accompanying Course Comment'), [
|
||||||
'route' => 'chill_person_accompanying_period_comment_list',
|
'route' => 'chill_person_accompanying_period_comment_list',
|
||||||
'routeParameters' => [
|
'routeParameters' => [
|
||||||
@ -93,7 +92,6 @@ class AccompanyingCourseMenuBuilder implements LocalMenuBuilderInterface
|
|||||||
->setExtras(['order' => 40]);
|
->setExtras(['order' => 40]);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
$workflow = $this->registry->get($period, 'accompanying_period_lifecycle');
|
$workflow = $this->registry->get($period, 'accompanying_period_lifecycle');
|
||||||
|
|
||||||
if (null !== $period->getClosingDate()) {
|
if (null !== $period->getClosingDate()) {
|
||||||
|
@ -25,10 +25,10 @@ use Doctrine\Persistence\ObjectRepository;
|
|||||||
|
|
||||||
final class AccompanyingPeriodWorkRepository implements ObjectRepository
|
final class AccompanyingPeriodWorkRepository implements ObjectRepository
|
||||||
{
|
{
|
||||||
private EntityRepository $repository;
|
|
||||||
|
|
||||||
private EntityManagerInterface $em;
|
private EntityManagerInterface $em;
|
||||||
|
|
||||||
|
private EntityRepository $repository;
|
||||||
|
|
||||||
public function __construct(EntityManagerInterface $entityManager)
|
public function __construct(EntityManagerInterface $entityManager)
|
||||||
{
|
{
|
||||||
$this->em = $entityManager;
|
$this->em = $entityManager;
|
||||||
@ -84,7 +84,7 @@ final class AccompanyingPeriodWorkRepository implements ObjectRepository
|
|||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Return a list of accompanying period with a defined order:
|
* Return a list of accompanying period with a defined order:.
|
||||||
*
|
*
|
||||||
* * first, opened works
|
* * first, opened works
|
||||||
* * then, closed works
|
* * then, closed works
|
||||||
@ -96,7 +96,7 @@ final class AccompanyingPeriodWorkRepository implements ObjectRepository
|
|||||||
$rsm = new ResultSetMappingBuilder($this->em);
|
$rsm = new ResultSetMappingBuilder($this->em);
|
||||||
$rsm->addRootEntityFromClassMetadata(AccompanyingPeriodWork::class, 'w');
|
$rsm->addRootEntityFromClassMetadata(AccompanyingPeriodWork::class, 'w');
|
||||||
|
|
||||||
$sql = "SELECT ${rsm} FROM chill_person_accompanying_period_work w
|
$sql = "SELECT {$rsm} FROM chill_person_accompanying_period_work w
|
||||||
WHERE accompanyingPeriod_id = :periodId
|
WHERE accompanyingPeriod_id = :periodId
|
||||||
ORDER BY
|
ORDER BY
|
||||||
CASE WHEN enddate IS NULL THEN '-infinity'::timestamp ELSE 'infinity'::timestamp END ASC,
|
CASE WHEN enddate IS NULL THEN '-infinity'::timestamp ELSE 'infinity'::timestamp END ASC,
|
||||||
@ -108,8 +108,7 @@ final class AccompanyingPeriodWorkRepository implements ObjectRepository
|
|||||||
$nq = $this->em->createNativeQuery($sql, $rsm)
|
$nq = $this->em->createNativeQuery($sql, $rsm)
|
||||||
->setParameter('periodId', $period->getId(), Types::INTEGER)
|
->setParameter('periodId', $period->getId(), Types::INTEGER)
|
||||||
->setParameter('limit', $limit, Types::INTEGER)
|
->setParameter('limit', $limit, Types::INTEGER)
|
||||||
->setParameter('offset', $offset, Types::INTEGER)
|
->setParameter('offset', $offset, Types::INTEGER);
|
||||||
;
|
|
||||||
|
|
||||||
return $nq->getResult();
|
return $nq->getResult();
|
||||||
}
|
}
|
||||||
|
@ -17,12 +17,15 @@ use Symfony\Component\Security\Core\Authentication\Token\TokenInterface;
|
|||||||
use Symfony\Component\Security\Core\Authorization\Voter\Voter;
|
use Symfony\Component\Security\Core\Authorization\Voter\Voter;
|
||||||
use Symfony\Component\Security\Core\Security;
|
use Symfony\Component\Security\Core\Security;
|
||||||
use UnexpectedValueException;
|
use UnexpectedValueException;
|
||||||
|
use function get_class;
|
||||||
use function in_array;
|
use function in_array;
|
||||||
|
|
||||||
class AccompanyingPeriodWorkVoter extends Voter
|
class AccompanyingPeriodWorkVoter extends Voter
|
||||||
{
|
{
|
||||||
public const CREATE = 'CHILL_MAIN_ACCOMPANYING_PERIOD_WORK_CREATE';
|
public const CREATE = 'CHILL_MAIN_ACCOMPANYING_PERIOD_WORK_CREATE';
|
||||||
|
|
||||||
public const SEE = 'CHILL_MAIN_ACCOMPANYING_PERIOD_WORK_SEE';
|
public const SEE = 'CHILL_MAIN_ACCOMPANYING_PERIOD_WORK_SEE';
|
||||||
|
|
||||||
public const UPDATE = 'CHILL_MAIN_ACCOMPANYING_PERIOD_WORK_UPDATE';
|
public const UPDATE = 'CHILL_MAIN_ACCOMPANYING_PERIOD_WORK_UPDATE';
|
||||||
|
|
||||||
private Security $security;
|
private Security $security;
|
||||||
@ -40,7 +43,7 @@ class AccompanyingPeriodWorkVoter extends Voter
|
|||||||
&& in_array($attribute, $this->getRoles(), true)
|
&& in_array($attribute, $this->getRoles(), true)
|
||||||
) || (
|
) || (
|
||||||
$subject instanceof AccompanyingPeriod
|
$subject instanceof AccompanyingPeriod
|
||||||
&& in_array($attribute, [self::SEE, self::CREATE])
|
&& in_array($attribute, [self::SEE, self::CREATE], true)
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -64,8 +67,10 @@ class AccompanyingPeriodWorkVoter extends Voter
|
|||||||
return $this->security->isGranted(AccompanyingPeriodVoter::SEE_DETAILS, $subject);
|
return $this->security->isGranted(AccompanyingPeriodVoter::SEE_DETAILS, $subject);
|
||||||
|
|
||||||
default:
|
default:
|
||||||
throw new UnexpectedValueException(sprintf("attribute {$attribute} is not supported on instance %s",
|
throw new UnexpectedValueException(sprintf(
|
||||||
AccompanyingPeriod::class));
|
"attribute {$attribute} is not supported on instance %s",
|
||||||
|
AccompanyingPeriod::class
|
||||||
|
));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -17,8 +17,8 @@ use DateTimeImmutable;
|
|||||||
use Doctrine\Common\Collections\ArrayCollection;
|
use Doctrine\Common\Collections\ArrayCollection;
|
||||||
use Doctrine\Common\Collections\Collection;
|
use Doctrine\Common\Collections\Collection;
|
||||||
use Doctrine\ORM\Mapping as ORM;
|
use Doctrine\ORM\Mapping as ORM;
|
||||||
use Symfony\Component\Validator\Constraints as Assert;
|
|
||||||
use Symfony\Component\Serializer\Annotation as Serializer;
|
use Symfony\Component\Serializer\Annotation as Serializer;
|
||||||
|
use Symfony\Component\Validator\Constraints as Assert;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* SingleTask.
|
* SingleTask.
|
||||||
|
Loading…
x
Reference in New Issue
Block a user