pre-populate tags for new timesheet records via request params (#930)

This commit is contained in:
Toby Batch
2019-07-09 15:32:40 +01:00
committed by Kevin Papst
parent 6de1a55d73
commit b833e1ce27
5 changed files with 26 additions and 7 deletions

View File

@@ -165,7 +165,7 @@ abstract class TimesheetAbstractController extends AbstractController
* @param ActivityRepository $activityRepository
* @return \Symfony\Component\HttpFoundation\RedirectResponse|\Symfony\Component\HttpFoundation\Response
*/
protected function create(Request $request, string $renderTemplate, ProjectRepository $projectRepository, ActivityRepository $activityRepository)
protected function create(Request $request, string $renderTemplate, ProjectRepository $projectRepository, ActivityRepository $activityRepository, TagRepository $tagRepository)
{
$entry = new Timesheet();
$entry->setUser($this->getUser());
@@ -181,6 +181,18 @@ abstract class TimesheetAbstractController extends AbstractController
$entry->setActivity($activity);
}
if ($request->query->get('tags')) {
$tagNames = explode(',', $request->query->get('tags'));
foreach ($tagNames as $tagName) {
$tag = $tagRepository->findOneByName($tagName);
if (!$tag) {
$tag = new Tag();
$tag->setName($tagName);
}
$entry->addTag($tag);
}
}
$event = new TimesheetMetaDefinitionEvent($entry);
$this->dispatcher->dispatch(TimesheetMetaDefinitionEvent::class, $event);