Release 2.45 (#5721)

Co-authored-by: Henning Klein <info@henningklein.de>
This commit is contained in:
Kevin Papst
2025-12-21 16:42:34 +01:00
committed by GitHub
parent 8c1ed68817
commit afb5a0bba4
67 changed files with 905 additions and 254 deletions

View File

@@ -15,7 +15,6 @@ use App\Configuration\SystemConfiguration;
use App\Entity\Activity;
use App\Entity\ActivityRate;
use App\Entity\Project;
use App\Entity\Team;
use App\Event\ActivityDetailControllerEvent;
use App\Event\ActivityMetaDisplayEvent;
use App\Export\Spreadsheet\EntityWithMetaFieldsExporter;
@@ -32,6 +31,7 @@ use App\Repository\Query\ActivityQuery;
use App\Repository\Query\TeamQuery;
use App\Repository\Query\TimesheetQuery;
use App\Repository\TeamRepository;
use App\User\TeamService;
use App\Utils\DataTable;
use App\Utils\PageSetup;
use Exception;
@@ -40,6 +40,7 @@ use Symfony\Component\ExpressionLanguage\Expression;
use Symfony\Component\Form\FormInterface;
use Symfony\Component\HttpFoundation\Request;
use Symfony\Component\HttpFoundation\Response;
use Symfony\Component\HttpKernel\Exception\BadRequestHttpException;
use Symfony\Component\Routing\Attribute\Route;
use Symfony\Component\Security\Http\Attribute\IsGranted;
@@ -303,19 +304,24 @@ final class ActivityController extends AbstractController
#[Route(path: '/{id}/create_team', name: 'activity_team_create', methods: ['GET'])]
#[IsGranted('create_team')]
#[IsGranted('permissions', 'activity')]
public function createDefaultTeamAction(Activity $activity, TeamRepository $teamRepository): Response
public function createDefaultTeamAction(Activity $activity, TeamService $teamService): Response
{
$defaultTeam = $teamRepository->findOneBy(['name' => $activity->getName()]);
$name = $activity->getName();
if ($name === null) {
throw new BadRequestHttpException('Cannot create default team for activity with empty name: ' . $activity->getId());
}
$defaultTeam = $teamService->findTeamByName($name);
if (null === $defaultTeam) {
$defaultTeam = new Team($activity->getName());
$defaultTeam = $teamService->createNewTeam($name);
}
$defaultTeam->addTeamlead($this->getUser());
$defaultTeam->addActivity($activity);
try {
$teamRepository->saveTeam($defaultTeam);
$teamService->saveTeam($defaultTeam);
} catch (Exception $ex) {
$this->flashUpdateException($ex);
}