Skip to content

Commit 1d603f5

Browse files
committed
[Evaluation] enhances parameters
1 parent ea41cc2 commit 1d603f5

142 files changed

Lines changed: 1761 additions & 1180 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

src/integration/big-blue-button/Component/Resource/BBBResource.php

Lines changed: 1 addition & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -11,27 +11,21 @@
1111

1212
namespace Claroline\BigBlueButtonBundle\Component\Resource;
1313

14-
use Claroline\AppBundle\API\Serializer\SerializerInterface;
1514
use Claroline\AppBundle\API\SerializerProvider;
1615
use Claroline\AppBundle\API\Utils\FileBag;
1716
use Claroline\BigBlueButtonBundle\Entity\BBB;
1817
use Claroline\BigBlueButtonBundle\Manager\BBBManager;
19-
use Claroline\BigBlueButtonBundle\Manager\EvaluationManager;
2018
use Claroline\CoreBundle\Component\Resource\ResourceComponent;
2119
use Claroline\CoreBundle\Entity\Resource\AbstractResource;
22-
use Claroline\CoreBundle\Entity\User;
2320
use Claroline\CoreBundle\Library\Configuration\PlatformConfigurationHandler;
2421
use Claroline\EvaluationBundle\Component\Resource\EvaluatedResourceInterface;
25-
use Symfony\Component\Security\Core\Authentication\Token\Storage\TokenStorageInterface;
2622

2723
final class BBBResource extends ResourceComponent implements EvaluatedResourceInterface
2824
{
2925
public function __construct(
30-
private readonly TokenStorageInterface $tokenStorage,
3126
private readonly PlatformConfigurationHandler $config,
3227
private readonly SerializerProvider $serializer,
33-
private readonly BBBManager $bbbManager,
34-
private readonly EvaluationManager $evaluationManager
28+
private readonly BBBManager $bbbManager
3529
) {
3630
}
3731

@@ -71,15 +65,7 @@ public function open(AbstractResource $resource, bool $embedded = false): ?array
7165
}
7266
}
7367

74-
$userEvaluation = null;
75-
if ($this->tokenStorage->getToken()?->getUser() instanceof User) {
76-
$attempt = $this->evaluationManager->update($resource->getResourceNode(), $this->tokenStorage->getToken()?->getUser());
77-
$userEvaluation = $attempt->getResourceUserEvaluation();
78-
}
79-
8068
return [
81-
'resource' => $this->serializer->serialize($resource),
82-
'userEvaluation' => $this->serializer->serialize($userEvaluation, [SerializerInterface::SERIALIZE_MINIMAL]),
8369
'servers' => $this->bbbManager->getServers(),
8470
'allowRecords' => $allowRecords,
8571
'canStart' => $canStart,
@@ -88,14 +74,6 @@ public function open(AbstractResource $resource, bool $embedded = false): ?array
8874
];
8975
}
9076

91-
/** @param BBB $resource */
92-
public function update(AbstractResource $resource, array $data, array $previousData): ?array
93-
{
94-
return [
95-
'resource' => $this->serializer->serialize($resource),
96-
];
97-
}
98-
9977
/** @param BBB $resource */
10078
public function delete(AbstractResource $resource, FileBag $fileBag, bool $softDelete = true): bool
10179
{

src/integration/big-blue-button/Controller/BBBController.php

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,8 @@
1919
use Claroline\BigBlueButtonBundle\Entity\BBB;
2020
use Claroline\BigBlueButtonBundle\Entity\Recording;
2121
use Claroline\BigBlueButtonBundle\Manager\BBBManager;
22+
use Claroline\BigBlueButtonBundle\Manager\EvaluationManager;
23+
use Claroline\CoreBundle\Entity\User;
2224
use Claroline\CoreBundle\Library\RoutingHelper;
2325
use Claroline\CoreBundle\Security\PermissionCheckerTrait;
2426
use Symfony\Bridge\Doctrine\Attribute\MapEntity;
@@ -29,6 +31,7 @@
2931
use Symfony\Component\HttpKernel\Attribute\MapQueryString;
3032
use Symfony\Component\Routing\Attribute\Route;
3133
use Symfony\Component\Routing\Generator\UrlGeneratorInterface;
34+
use Symfony\Component\Security\Core\Authentication\Token\Storage\TokenStorageInterface;
3235
use Symfony\Component\Security\Core\Authorization\AuthorizationCheckerInterface;
3336

3437
#[Route(path: '/bbb/{id}')]
@@ -39,9 +42,11 @@ class BBBController
3942

4043
public function __construct(
4144
AuthorizationCheckerInterface $authorization,
45+
private readonly TokenStorageInterface $tokenStorage,
4246
private readonly ObjectManager $om,
4347
private readonly Crud $crud,
4448
private readonly BBBManager $bbbManager,
49+
private readonly EvaluationManager $evaluationManager,
4550
private readonly UrlGeneratorInterface $router,
4651
private readonly RoutingHelper $routingHelper
4752
) {
@@ -74,6 +79,11 @@ public function joinMeetingAction(#[MapEntity(mapping: ['id' => 'uuid'])] BBB $b
7479
if (empty($errors)) {
7580
$url = $this->bbbManager->getMeetingUrl($bbb, $moderator, $username);
7681
if ($url) {
82+
$user = $this->tokenStorage->getToken()?->getUser();
83+
if ($user instanceof User) {
84+
$this->evaluationManager->update($bbb->getResourceNode(), $user);
85+
}
86+
7787
return new RedirectResponse($url);
7888
}
7989
}

src/integration/big-blue-button/Manager/EvaluationManager.php

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@
66
use Claroline\CoreBundle\Entity\Resource\ResourceNode;
77
use Claroline\CoreBundle\Entity\User;
88
use Claroline\EvaluationBundle\Entity\UserEvaluation\ResourceAttempt;
9+
use Claroline\EvaluationBundle\Entity\UserEvaluation\ResourceEvaluation;
910
use Claroline\EvaluationBundle\Library\EvaluationStatus;
1011
use Claroline\EvaluationBundle\Manager\ResourceEvaluationManager;
1112
use Claroline\EvaluationBundle\Repository\UserEvaluation\ResourceAttemptRepository;
@@ -21,6 +22,11 @@ public function __construct(
2122
$this->attemptRepository = $om->getRepository(ResourceAttempt::class);
2223
}
2324

25+
public function getResourceUserEvaluation(ResourceNode $node, User $user): ?ResourceEvaluation
26+
{
27+
return $this->resourceEvalManager->getUserEvaluation($node, $user);
28+
}
29+
2430
/**
2531
* Marks the BBB evaluation as participated.
2632
* Called when a user opens a BBB.

src/integration/big-blue-button/Resources/config/components/resource.yml

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,8 +2,6 @@ services:
22
Claroline\BigBlueButtonBundle\Component\Resource\BBBResource:
33
tags: ['claroline.component.resource', 'kernel.event_subscriber']
44
arguments:
5-
- '@security.token_storage'
65
- '@Claroline\CoreBundle\Library\Configuration\PlatformConfigurationHandler'
76
- '@Claroline\AppBundle\API\SerializerProvider'
87
- '@Claroline\BigBlueButtonBundle\Manager\BBBManager'
9-
- '@Claroline\BigBlueButtonBundle\Manager\EvaluationManager'

src/integration/big-blue-button/Resources/config/services/controller.yml

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -14,8 +14,10 @@ services:
1414
Claroline\BigBlueButtonBundle\Controller\BBBController:
1515
arguments:
1616
- '@security.authorization_checker'
17+
- '@security.token_storage'
1718
- '@Claroline\AppBundle\Persistence\ObjectManager'
1819
- '@Claroline\AppBundle\API\Crud'
1920
- '@Claroline\BigBlueButtonBundle\Manager\BBBManager'
21+
- '@Claroline\BigBlueButtonBundle\Manager\EvaluationManager'
2022
- '@router'
2123
- '@Claroline\CoreBundle\Library\RoutingHelper'

src/integration/peertube/Component/Resource/VideoResource.php

Lines changed: 1 addition & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -2,27 +2,19 @@
22

33
namespace Claroline\PeerTubeBundle\Component\Resource;
44

5-
use Claroline\AppBundle\API\Serializer\SerializerInterface;
6-
use Claroline\AppBundle\API\SerializerProvider;
75
use Claroline\CoreBundle\Component\Resource\ResourceComponent;
86
use Claroline\CoreBundle\Component\Resource\UrlAdapterInterface;
97
use Claroline\CoreBundle\Entity\Resource\AbstractResource;
10-
use Claroline\CoreBundle\Entity\User;
118
use Claroline\CoreBundle\Event\Resource\EmbedResourceEvent;
129
use Claroline\EvaluationBundle\Component\Resource\EvaluatedResourceInterface;
1310
use Claroline\PeerTubeBundle\Entity\Video;
14-
use Claroline\PeerTubeBundle\Manager\EvaluationManager;
1511
use Claroline\PeerTubeBundle\Manager\PeerTubeManager;
16-
use Symfony\Component\Security\Core\Authentication\Token\Storage\TokenStorageInterface;
1712
use Twig\Environment;
1813

1914
final class VideoResource extends ResourceComponent implements UrlAdapterInterface, EvaluatedResourceInterface
2015
{
2116
public function __construct(
22-
private readonly TokenStorageInterface $tokenStorage,
2317
private readonly Environment $templating,
24-
private readonly SerializerProvider $serializer,
25-
private readonly EvaluationManager $evaluationManager,
2618
private readonly PeerTubeManager $peerTubeManager
2719
) {
2820
}
@@ -49,20 +41,6 @@ public static function getSubscribedEvents(): array
4941
]);
5042
}
5143

52-
/** @param Video $resource */
53-
public function open(AbstractResource $resource, bool $embedded = false): ?array
54-
{
55-
$user = $this->tokenStorage->getToken()?->getUser();
56-
57-
return [
58-
'resource' => $this->serializer->serialize($resource),
59-
'userEvaluation' => $user instanceof User ? $this->serializer->serialize(
60-
$this->evaluationManager->getResourceUserEvaluation($resource->getResourceNode(), $user),
61-
[SerializerInterface::SERIALIZE_MINIMAL]
62-
) : null,
63-
];
64-
}
65-
6644
/** @param Video $resource */
6745
public function create(AbstractResource $resource, array $data): void
6846
{
@@ -74,9 +52,7 @@ public function update(AbstractResource $resource, array $data, array $previousD
7452
{
7553
$this->peerTubeManager->handleThumbnailForVideo($resource);
7654

77-
return [
78-
'resource' => $this->serializer->serialize($resource),
79-
];
55+
return [];
8056
}
8157

8258
public function onEmbed(EmbedResourceEvent $event): void

src/integration/peertube/Manager/EvaluationManager.php

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -3,10 +3,10 @@
33
namespace Claroline\PeerTubeBundle\Manager;
44

55
use Claroline\AppBundle\Persistence\ObjectManager;
6-
use Claroline\EvaluationBundle\Entity\UserEvaluation\ResourceAttempt;
76
use Claroline\CoreBundle\Entity\Resource\ResourceNode;
8-
use Claroline\EvaluationBundle\Entity\UserEvaluation\ResourceEvaluation;
97
use Claroline\CoreBundle\Entity\User;
8+
use Claroline\EvaluationBundle\Entity\UserEvaluation\ResourceAttempt;
9+
use Claroline\EvaluationBundle\Entity\UserEvaluation\ResourceEvaluation;
1010
use Claroline\EvaluationBundle\Library\EvaluationStatus;
1111
use Claroline\EvaluationBundle\Manager\ResourceEvaluationManager;
1212
use Claroline\EvaluationBundle\Repository\UserEvaluation\ResourceAttemptRepository;
@@ -27,7 +27,7 @@ public function __construct(
2727
/**
2828
* Fetch or create resource user evaluation.
2929
*/
30-
public function getResourceUserEvaluation(ResourceNode $node, User $user): ResourceEvaluation
30+
public function getResourceUserEvaluation(ResourceNode $node, User $user): ?ResourceEvaluation
3131
{
3232
return $this->resourceEvalManager->getUserEvaluation($node, $user);
3333
}

src/integration/peertube/Resources/config/components/resource.yml

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -2,8 +2,5 @@ services:
22
Claroline\PeerTubeBundle\Component\Resource\VideoResource:
33
tags: ['claroline.component.resource', 'kernel.event_subscriber']
44
arguments:
5-
- '@security.token_storage'
65
- '@twig'
7-
- '@Claroline\AppBundle\API\SerializerProvider'
8-
- '@Claroline\PeerTubeBundle\Manager\EvaluationManager'
96
- '@Claroline\PeerTubeBundle\Manager\PeerTubeManager'

src/integration/youtube/Component/Resource/VideoResource.php

Lines changed: 1 addition & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -2,24 +2,16 @@
22

33
namespace Claroline\YouTubeBundle\Component\Resource;
44

5-
use Claroline\AppBundle\API\Serializer\SerializerInterface;
6-
use Claroline\AppBundle\API\SerializerProvider;
75
use Claroline\CoreBundle\Component\Resource\ResourceComponent;
86
use Claroline\CoreBundle\Component\Resource\UrlAdapterInterface;
97
use Claroline\CoreBundle\Entity\Resource\AbstractResource;
10-
use Claroline\CoreBundle\Entity\User;
118
use Claroline\EvaluationBundle\Component\Resource\EvaluatedResourceInterface;
129
use Claroline\YouTubeBundle\Entity\Video;
13-
use Claroline\YouTubeBundle\Manager\EvaluationManager;
1410
use Claroline\YouTubeBundle\Manager\YouTubeManager;
15-
use Symfony\Component\Security\Core\Authentication\Token\Storage\TokenStorageInterface;
1611

1712
final class VideoResource extends ResourceComponent implements EvaluatedResourceInterface, UrlAdapterInterface
1813
{
1914
public function __construct(
20-
private readonly TokenStorageInterface $tokenStorage,
21-
private readonly SerializerProvider $serializer,
22-
private readonly EvaluationManager $evaluationManager,
2315
private readonly YouTubeManager $youtubeManager
2416
) {
2517
}
@@ -60,20 +52,6 @@ public function fromUrl(string $url): ?array
6052
];
6153
}
6254

63-
/** @param Video $resource */
64-
public function open(AbstractResource $resource, bool $embedded = false): ?array
65-
{
66-
$user = $this->tokenStorage->getToken()?->getUser();
67-
68-
return [
69-
'resource' => $this->serializer->serialize($resource),
70-
'userEvaluation' => $user instanceof User ? $this->serializer->serialize(
71-
$this->evaluationManager->getResourceUserEvaluation($resource->getResourceNode(), $user),
72-
[SerializerInterface::SERIALIZE_MINIMAL]
73-
) : null,
74-
];
75-
}
76-
7755
/** @param Video $resource */
7856
public function create(AbstractResource $resource, array $data): void
7957
{
@@ -85,9 +63,7 @@ public function update(AbstractResource $resource, array $data, array $previousD
8563
{
8664
$this->youtubeManager->handleThumbnailForVideo($resource);
8765

88-
return [
89-
'resource' => $this->serializer->serialize($resource),
90-
];
66+
return [];
9167
}
9268

9369
public function requireAdapter(): bool

src/integration/youtube/Manager/EvaluationManager.php

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -3,10 +3,10 @@
33
namespace Claroline\YouTubeBundle\Manager;
44

55
use Claroline\AppBundle\Persistence\ObjectManager;
6-
use Claroline\EvaluationBundle\Entity\UserEvaluation\ResourceAttempt;
76
use Claroline\CoreBundle\Entity\Resource\ResourceNode;
8-
use Claroline\EvaluationBundle\Entity\UserEvaluation\ResourceEvaluation;
97
use Claroline\CoreBundle\Entity\User;
8+
use Claroline\EvaluationBundle\Entity\UserEvaluation\ResourceAttempt;
9+
use Claroline\EvaluationBundle\Entity\UserEvaluation\ResourceEvaluation;
1010
use Claroline\EvaluationBundle\Library\EvaluationStatus;
1111
use Claroline\EvaluationBundle\Manager\ResourceEvaluationManager;
1212
use Claroline\EvaluationBundle\Repository\UserEvaluation\ResourceAttemptRepository;
@@ -25,7 +25,7 @@ public function __construct(
2525
$this->resourceEvalRepo = $om->getRepository(ResourceAttempt::class);
2626
}
2727

28-
public function getResourceUserEvaluation(ResourceNode $node, User $user): ResourceEvaluation
28+
public function getResourceUserEvaluation(ResourceNode $node, User $user): ?ResourceEvaluation
2929
{
3030
return $this->resourceEvalManager->getUserEvaluation($node, $user);
3131
}

0 commit comments

Comments
 (0)