allow switching user displayed in calendar (#3314)

This commit is contained in:
Kevin Papst
2022-05-18 21:30:58 +02:00
committed by GitHub
parent 913839727c
commit 3c71640547
8 changed files with 165 additions and 69 deletions

View File

@@ -23,10 +23,9 @@ use App\Form\MultiUpdate\MultiUpdateTableDTO;
use App\Form\MultiUpdate\TimesheetMultiUpdate;
use App\Form\MultiUpdate\TimesheetMultiUpdateDTO;
use App\Form\TimesheetEditForm;
use App\Form\TimesheetPreCreateForm;
use App\Form\Toolbar\TimesheetExportToolbarForm;
use App\Form\Toolbar\TimesheetToolbarForm;
use App\Repository\ActivityRepository;
use App\Repository\ProjectRepository;
use App\Repository\Query\TimesheetQuery;
use App\Repository\TagRepository;
use App\Repository\TimesheetRepository;
@@ -147,48 +146,14 @@ abstract class TimesheetAbstractController extends AbstractController
]);
}
protected function getTags(TagRepository $tagRepository, $tagNames)
{
$tags = [];
if (!\is_array($tagNames)) {
$tagNames = explode(',', $tagNames);
}
foreach ($tagNames as $tagName) {
$tag = $tagRepository->findTagByName($tagName);
if (!$tag) {
$tag = new Tag();
$tag->setName($tagName);
}
$tags[] = $tag;
}
return $tags;
}
protected function create(Request $request, string $renderTemplate, ProjectRepository $projectRepository, ActivityRepository $activityRepository, TagRepository $tagRepository): Response
protected function create(Request $request, string $renderTemplate): Response
{
$entry = $this->service->createNewTimesheet($this->getUser());
if ($request->query->get('project')) {
$project = $projectRepository->find($request->query->get('project'));
$entry->setProject($project);
}
if ($request->query->get('activity')) {
$activity = $activityRepository->find($request->query->get('activity'));
$entry->setActivity($activity);
}
if ($request->query->get('description')) {
$description = $request->query->get('description');
$entry->setDescription($description);
}
if ($request->query->get('tags')) {
foreach ($this->getTags($tagRepository, $request->query->get('tags')) as $tag) {
$entry->addTag($tag);
}
}
$preForm = $this->createFormForGetRequest(TimesheetPreCreateForm::class, $entry, [
'include_user' => $this->includeUserInForms('create'),
]);
$preForm->submit($request->query->all(), false);
$this->service->prepareNewTimesheet($entry, $request);
$createForm = $this->getCreateForm($entry);