WIP: Implement application process

This commit is contained in:
Björn Fromme committed 2023-10-09 14:42:37 +02:00
1 parent 8e3499581a
commit abced8c924
26 files changed
+802 -138

No files matched your search

@@ -2,10 +2,9 @@
namespace App\Controller\Teamer\Profile\Availability;
use App\Entity\Availability;
use App\Entity\User;
use App\Repository\AvailabilityRepository;
use Carbon\Carbon;
use App\Service\Teamer\AvailabilityProcessor;
use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
use Symfony\Component\HttpFoundation\Response;
use Symfony\Component\Routing\Annotation\Route;
@@ -24,39 +23,17 @@ class IndexController extends AbstractController
$user = $this->getUser();
$teamer = $user->getTeamer();
$processor = new AvailabilityProcessor();
$availabilities = $teamer->getAvailabilities()->toArray();
$selectedAvailabilities = $this->groupRecords($availabilities);
$selectedAvailabilities = $processor->groupRecords($availabilities);
$availabilities = $this->availabilityRepository->getSelectableForTeamer($teamer);
$selectableAvailabilities = $this->groupRecords($availabilities);
$selectableAvailabilities = $processor->groupRecords($availabilities);
return $this->render('teamer/profile/availability/index.html.twig', [
'selectedAvailabilities' => $selectedAvailabilities,
'selectableAvailabilities' => $selectableAvailabilities,
]);
}
private function groupRecords(array $records): array
{
$selectableAvailabilities = [];
foreach ($records as $record) {
/** @var Availability $record */
$dateFrom = $record->getDateFrom();
$year = $dateFrom->format('Y');
$month = (new Carbon($dateFrom))->locale('de_DE')->monthName;
if (false === isset($selectableAvailabilities[$year])) {
$selectableAvailabilities[$year] = [];
}
if (false === isset($selectableAvailabilities[$year][$month])) {
$selectableAvailabilities[$year][$month] = [];
}
$selectableAvailabilities[$year][$month][] = $record;
}
return $selectableAvailabilities;
}
}