option to use decimal format in user timesheet export (#1489)
This commit is contained in:
@@ -35,7 +35,7 @@ class TimesheetFixtures extends Fixture implements DependentFixtureInterface
|
||||
public const MIN_TIMESHEETS_PER_USER = 50;
|
||||
public const MAX_TIMESHEETS_PER_USER = 500;
|
||||
public const MAX_TIMESHEETS_TOTAL = 5000;
|
||||
public const MAX_RUNNING_TIMESHEETS_PER_USER = 2;
|
||||
public const MAX_RUNNING_TIMESHEETS_PER_USER = 1;
|
||||
public const TIMERANGE_DAYS = 1095; // 3 years
|
||||
public const TIMERANGE_RUNNING = 1047; // in minutes = 17:45 hours
|
||||
public const MIN_MINUTES_PER_ENTRY = 15;
|
||||
|
||||
@@ -158,6 +158,12 @@ class UserPreferenceSubscriber implements EventSubscriberInterface
|
||||
->setValue(false)
|
||||
->setOrder(800)
|
||||
->setType(CheckboxType::class),
|
||||
|
||||
(new UserPreference())
|
||||
->setName('timesheet.export_decimal')
|
||||
->setValue(false)
|
||||
->setOrder(900)
|
||||
->setType(CheckboxType::class),
|
||||
];
|
||||
}
|
||||
|
||||
|
||||
@@ -53,6 +53,18 @@ class HtmlRenderer
|
||||
return $event->getFields();
|
||||
}
|
||||
|
||||
protected function getOptions(TimesheetQuery $query): array
|
||||
{
|
||||
$decimal = false;
|
||||
if (null !== $query->getCurrentUser()) {
|
||||
$decimal = (bool) $query->getCurrentUser()->getPreferenceValue('timesheet.export_decimal', $decimal);
|
||||
} elseif (null !== $query->getUser()) {
|
||||
$decimal = (bool) $query->getUser()->getPreferenceValue('timesheet.export_decimal', $decimal);
|
||||
}
|
||||
|
||||
return ['decimal' => $decimal];
|
||||
}
|
||||
|
||||
/**
|
||||
* @param ExportItemInterface[] $timesheets
|
||||
* @param TimesheetQuery $query
|
||||
@@ -75,7 +87,7 @@ class HtmlRenderer
|
||||
$this->dispatcher->dispatch($event);
|
||||
$userPreferences = $event->getPreferences();
|
||||
|
||||
$content = $this->twig->render('export/renderer/default.html.twig', [
|
||||
$content = $this->twig->render('export/renderer/default.html.twig', array_merge([
|
||||
'entries' => $timesheets,
|
||||
'query' => $query,
|
||||
'summaries' => $this->calculateSummary($timesheets),
|
||||
@@ -84,7 +96,7 @@ class HtmlRenderer
|
||||
'projectMetaFields' => $projectMetaFields,
|
||||
'activityMetaFields' => $activityMetaFields,
|
||||
'userPreferences' => $userPreferences,
|
||||
]);
|
||||
], $this->getOptions($query)));
|
||||
|
||||
$response = new Response();
|
||||
$response->setContent($content);
|
||||
|
||||
@@ -46,6 +46,18 @@ class PDFRenderer
|
||||
return 'export/renderer/pdf.html.twig';
|
||||
}
|
||||
|
||||
protected function getOptions(TimesheetQuery $query): array
|
||||
{
|
||||
$decimal = false;
|
||||
if (null !== $query->getCurrentUser()) {
|
||||
$decimal = (bool) $query->getCurrentUser()->getPreferenceValue('timesheet.export_decimal', $decimal);
|
||||
} elseif (null !== $query->getUser()) {
|
||||
$decimal = (bool) $query->getUser()->getPreferenceValue('timesheet.export_decimal', $decimal);
|
||||
}
|
||||
|
||||
return ['decimal' => $decimal];
|
||||
}
|
||||
|
||||
/**
|
||||
* @param ExportItemInterface[] $timesheets
|
||||
* @param TimesheetQuery $query
|
||||
@@ -56,12 +68,13 @@ class PDFRenderer
|
||||
*/
|
||||
public function render(array $timesheets, TimesheetQuery $query): Response
|
||||
{
|
||||
$content = $this->twig->render($this->getTemplate(), [
|
||||
$content = $this->twig->render($this->getTemplate(), array_merge([
|
||||
'entries' => $timesheets,
|
||||
'query' => $query,
|
||||
'now' => $this->dateTime->createDateTime(),
|
||||
'summaries' => $this->calculateSummary($timesheets),
|
||||
]);
|
||||
'decimal' => false,
|
||||
], $this->getOptions($query)));
|
||||
|
||||
$content = $this->converter->convertToPdf($content);
|
||||
|
||||
|
||||
@@ -34,6 +34,18 @@ final class HtmlRenderer implements TimesheetExportInterface
|
||||
$this->dispatcher = $dispatcher;
|
||||
}
|
||||
|
||||
private function getOptions(TimesheetQuery $query): array
|
||||
{
|
||||
$decimal = false;
|
||||
if (null !== $query->getCurrentUser()) {
|
||||
$decimal = (bool) $query->getCurrentUser()->getPreferenceValue('timesheet.export_decimal', $decimal);
|
||||
} elseif (null !== $query->getUser()) {
|
||||
$decimal = (bool) $query->getUser()->getPreferenceValue('timesheet.export_decimal', $decimal);
|
||||
}
|
||||
|
||||
return ['decimal' => $decimal];
|
||||
}
|
||||
|
||||
/**
|
||||
* @param Timesheet[] $timesheets
|
||||
* @param TimesheetQuery $query
|
||||
@@ -53,11 +65,12 @@ final class HtmlRenderer implements TimesheetExportInterface
|
||||
$this->dispatcher->dispatch($event);
|
||||
$timesheetMetaFields = $event->getFields();
|
||||
|
||||
$content = $this->twig->render('timesheet/export.html.twig', [
|
||||
$content = $this->twig->render('timesheet/export.html.twig', array_merge([
|
||||
'entries' => $timesheets,
|
||||
'query' => $query,
|
||||
'metaColumns' => $timesheetMetaFields,
|
||||
]);
|
||||
'decimal' => false,
|
||||
], $this->getOptions($query)));
|
||||
|
||||
$response = new Response();
|
||||
$response->setContent($content);
|
||||
|
||||
Reference in New Issue
Block a user