Release 2.10 (#4549)

This commit is contained in:
Kevin Papst
2024-01-19 12:05:07 +01:00
committed by GitHub
parent afd60a67f6
commit 46739795ff
52 changed files with 348 additions and 292 deletions

View File

@@ -95,7 +95,12 @@ final class ProfileController extends AbstractController
$this->flashSuccess('action.update.success');
return $this->redirectToRoute('user_profile_edit', ['username' => $profile->getUserIdentifier()]);
$locale = $request->getLocale();
if ($this->getUser()->getId() === $profile->getId()) {
$locale = $profile->getPreferenceValue('language', $locale, false);
}
return $this->redirectToRoute('user_profile_edit', ['username' => $profile->getUserIdentifier(), '_locale' => $locale]);
}
return $this->render('user/profile.html.twig', [

View File

@@ -10,7 +10,6 @@
namespace App\Controller;
use App\Configuration\SystemConfiguration;
use App\Entity\Timesheet;
use App\Form\QuickEntryForm;
use App\Model\QuickEntryWeek;
use App\Repository\Query\TimesheetQuery;
@@ -71,7 +70,6 @@ final class QuickEntryController extends AbstractController
$result = $this->repository->getTimesheetResult($query);
$rows = [];
/** @var Timesheet $timesheet */
foreach ($result->getResults(true) as $timesheet) {
$i = 0;
$id = $timesheet->getProject()->getId() . '_' . $timesheet->getActivity()->getId();
@@ -124,7 +122,6 @@ final class QuickEntryController extends AbstractController
$defaultBegin = $factory->createDateTime($this->configuration->getTimesheetDefaultBeginTime());
$defaultHour = (int) $defaultBegin->format('H');
$defaultMinute = (int) $defaultBegin->format('i');
$defaultBegin->setTime($defaultHour, $defaultMinute, 0, 0);
$formModel = new QuickEntryWeek($startWeek);
@@ -136,8 +133,9 @@ final class QuickEntryController extends AbstractController
$tmp = $this->timesheetService->createNewTimesheet($user);
$tmp->setProject($row['project']);
$tmp->setActivity($row['activity']);
$tmp->setBegin(clone $day['day']);
$tmp->getBegin()->setTime($defaultHour, $defaultMinute, 0, 0);
$newTime = \DateTime::createFromInterface($day['day']);
$newTime = $newTime->setTime($defaultHour, $defaultMinute);
$tmp->setBegin($newTime);
$this->timesheetService->prepareNewTimesheet($tmp);
$model->addTimesheet($tmp);
} else {
@@ -151,8 +149,9 @@ final class QuickEntryController extends AbstractController
$empty->markAsPrototype();
foreach ($week as $dayId => $day) {
$tmp = $this->timesheetService->createNewTimesheet($user);
$tmp->setBegin(clone $day['day']);
$tmp->getBegin()->setTime($defaultHour, $defaultMinute, 0, 0);
$newTime = \DateTime::createFromInterface($day['day']);
$newTime = $newTime->setTime($defaultHour, $defaultMinute, 0, 0);
$tmp->setBegin($newTime);
$this->timesheetService->prepareNewTimesheet($tmp);
$empty->addTimesheet($tmp);
}
@@ -165,8 +164,9 @@ final class QuickEntryController extends AbstractController
$model = $formModel->addRow($user);
foreach ($week as $dayId => $day) {
$tmp = $this->timesheetService->createNewTimesheet($user);
$tmp->setBegin(clone $day['day']);
$tmp->getBegin()->setTime($defaultHour, $defaultMinute, 0, 0);
$newTime = \DateTime::createFromInterface($day['day']);
$newTime = $newTime->setTime($defaultHour, $defaultMinute, 0, 0);
$tmp->setBegin($newTime);
$this->timesheetService->prepareNewTimesheet($tmp);
$model->addTimesheet($tmp);
}
@@ -193,7 +193,7 @@ final class QuickEntryController extends AbstractController
foreach ($tmpModel->getTimesheets() as $timesheet) {
if ($timesheet->getId() !== null) {
$duration = $timesheet->getDuration(false);
if ($duration === null || $timesheet->getEnd() === null) {
if ($duration === null || $timesheet->isRunning()) {
$deleteTimesheets[] = $timesheet;
} else {
$saveTimesheets[] = $timesheet;

View File

@@ -19,7 +19,6 @@ use App\Export\Spreadsheet\Writer\XlsxWriter;
use App\Form\Toolbar\UserToolbarForm;
use App\Form\Type\UserType;
use App\Form\UserCreateType;
use App\Repository\Query\UserFormTypeQuery;
use App\Repository\Query\UserQuery;
use App\Repository\TimesheetRepository;
use App\Repository\UserRepository;
@@ -79,6 +78,7 @@ final class UserController extends AbstractController
$table->addColumn('email', ['class' => 'd-none', 'orderBy' => false]);
$table->addColumn('lastLogin', ['class' => 'd-none', 'orderBy' => false]);
$table->addColumn('roles', ['class' => 'd-none', 'orderBy' => false]);
$table->addColumn('system_account', ['class' => 'd-none', 'orderBy' => 'systemAccount']);
foreach ($event->getPreferences() as $userPreference) {
$table->addColumn('mf_' . $userPreference->getName(), ['title' => $userPreference->getLabel(), 'class' => 'd-none', 'orderBy' => false, 'translation_domain' => 'messages', 'data' => $userPreference]);
@@ -163,13 +163,7 @@ final class UserController extends AbstractController
]
])
->add('user', UserType::class, [
'query_builder' => function (UserRepository $repo) use ($userToDelete) {
$query = new UserFormTypeQuery();
$query->addUserToIgnore($userToDelete);
$query->setUser($this->getUser());
return $repo->getQueryBuilderForFormType($query);
},
'ignore_users' => [$userToDelete],
'required' => false,
])
->setAction($this->generateUrl('admin_user_delete', ['id' => $userToDelete->getId()]))