add last user activity on profile page

This commit is contained in:
ghost 2023-10-11 23:03:45 +03:00
parent 9c9dc5b5a4
commit cc6c68957c
5 changed files with 43 additions and 5 deletions

View File

@ -15,7 +15,7 @@ use App\Service\TorrentService;
class ActivityController extends AbstractController
{
public function template(
public function event(
$activity,
ActivityService $activityService,
UserService $userService,

View File

@ -57,7 +57,7 @@ class UserController extends AbstractController
return $this->render(
'default/user/dashboard.html.twig',
[
'activities' => $activityService->findLastEvents(
'activities' => $activityService->findLastActivities(
$user->getEvents()
)
]
@ -254,8 +254,12 @@ class UserController extends AbstractController
$userTarget->getId()
)
],
'activities' => $activityService->findLastActivitiesByUserId(
$userTarget->getId(),
$userTarget->getEvents()
)
],
'events' => $activityService->getEventsTree()
'events' => $activityService->getEventsTree(),
]
);
}

View File

@ -360,7 +360,7 @@ class ActivityService
return $events;
}
public function findLastEvents(
public function findLastActivities(
array $whitelist
): array
{
@ -376,6 +376,24 @@ class ActivityService
);
}
public function findLastActivitiesByUserId(
int $userId,
array $whitelist
): array
{
return $this->entityManagerInterface
->getRepository(Activity::class)
->findBy(
[
'userId' => $userId,
'event' => $whitelist
],
[
'id' => 'DESC'
]
);
}
// User
public function addEventUserAdd(
int $userId,

View File

@ -4,7 +4,7 @@
{% for activity in activities %}
<div class="padding-16-px margin-y-8-px border-radius-3-px background-color-night">
{{ render(controller(
'App\\Controller\\ActivityController::template',
'App\\Controller\\ActivityController::event',
{ activity : activity }
)) }}
</div>

View File

@ -218,4 +218,20 @@
</tbody>
</table>
</div>
{% if user.activities %}
<div class="padding-x-24-px padding-y-8-px margin-y-16-px">
<h2>{{ 'Last activity' | trans }}</h2>
<sup>
<a href="#">RSS</a>
</sup>
</div>
{% for activity in user.activities %}
<div class="padding-x-24-px padding-y-16-px margin-y-8-px border-radius-3-px background-color-night">
{{ render(controller(
'App\\Controller\\ActivityController::event',
{ activity : activity }
)) }}
</div>
{% endfor %}
{% endif %}
{% endblock %}