mirror of
https://gitlab.com/Chill-Projet/chill-bundles.git
synced 2025-09-24 07:35:03 +00:00
Compare commits
8 Commits
Author | SHA1 | Date | |
---|---|---|---|
f4d258882f
|
|||
fffc4a9c33
|
|||
a344f36592 | |||
eef93b8a0d | |||
75b78d3c99 | |||
3d4c439be4 | |||
4727a57825
|
|||
5f441eb5ac
|
5
.changes/v2.14.1.md
Normal file
5
.changes/v2.14.1.md
Normal file
@@ -0,0 +1,5 @@
|
||||
## v2.14.1 - 2023-11-29
|
||||
### Fixed
|
||||
* Export: fix list person with custom fields
|
||||
* ([#100](https://gitlab.com/Chill-Projet/chill-bundles/-/issues/100)) Add a paginator to budget elements (resource and charge types) in the admin
|
||||
* Fix error in ListEvaluation when "handling agents" are alone
|
@@ -23,6 +23,6 @@ class ChargeKindController extends CRUDController
|
||||
/* @var QueryBuilder $query */
|
||||
$query->addOrderBy('e.ordering', 'ASC');
|
||||
|
||||
return $query;
|
||||
return parent::orderQuery($action, $query, $request, $paginator);
|
||||
}
|
||||
}
|
||||
|
@@ -23,6 +23,6 @@ class ResourceKindController extends CRUDController
|
||||
/* @var QueryBuilder $query */
|
||||
$query->addOrderBy('e.ordering', 'ASC');
|
||||
|
||||
return $query;
|
||||
return parent::orderQuery($action, $query, $request, $paginator);
|
||||
}
|
||||
}
|
||||
|
@@ -280,7 +280,7 @@ class CustomFieldChoice extends AbstractCustomField
|
||||
$template = '@ChillCustomFields/CustomFieldsRendering/choice.html.twig';
|
||||
|
||||
if ('csv' === $documentType) {
|
||||
$template = 'ChillCustomFieldsBundle/CustomFieldsRendering/choice.csv.twig';
|
||||
$template = '@ChillCustomFields/CustomFieldsRendering/choice.csv.twig';
|
||||
}
|
||||
|
||||
return $this->templating
|
||||
|
@@ -92,6 +92,11 @@ class UserHelper
|
||||
}
|
||||
$asStrings = [];
|
||||
|
||||
if (array_key_exists('uid', $decoded) || is_numeric($decoded)) {
|
||||
// this is a single value. We have to wrap it into an array
|
||||
$decoded = [$decoded];
|
||||
}
|
||||
|
||||
foreach ($decoded as $userId) {
|
||||
if (is_array($userId)) {
|
||||
$uid = $userId['uid'];
|
||||
|
@@ -193,6 +193,7 @@ class ListEvaluation implements ListInterface, GroupedExportInterface
|
||||
public function initiateQuery(array $requiredModifiers, array $acl, array $data = [])
|
||||
{
|
||||
$centers = array_map(static fn ($el) => $el['center'], $acl);
|
||||
$calcDate = $data['calc_date'] ?? new RollingDate(RollingDate::T_TODAY);
|
||||
|
||||
$qb = $this->entityManager->createQueryBuilder();
|
||||
|
||||
@@ -208,7 +209,7 @@ class ListEvaluation implements ListInterface, GroupedExportInterface
|
||||
->andWhere('acppart.startDate != acppart.endDate OR acppart.endDate IS NULL')
|
||||
// get participants at the given date
|
||||
->andWhere('acppart.startDate <= :calc_date AND (acppart.endDate > :calc_date OR acppart.endDate IS NULL)')
|
||||
->setParameter('calc_date', $this->rollingDateConverter->convert($data['calc_date']));
|
||||
->setParameter('calc_date', $this->rollingDateConverter->convert($calcDate));
|
||||
|
||||
if ($this->filterStatsByCenters) {
|
||||
$qb
|
||||
@@ -224,7 +225,7 @@ class ListEvaluation implements ListInterface, GroupedExportInterface
|
||||
|
||||
AccompanyingCourseExportHelper::addClosingMotiveExclusionClause($qb);
|
||||
|
||||
$this->addSelectClauses($qb, $this->rollingDateConverter->convert($data['calc_date']));
|
||||
$this->addSelectClauses($qb, $this->rollingDateConverter->convert($calcDate));
|
||||
|
||||
return $qb;
|
||||
}
|
||||
@@ -278,7 +279,7 @@ class ListEvaluation implements ListInterface, GroupedExportInterface
|
||||
// referrers => at date XXXX
|
||||
$qb
|
||||
->addSelect('(SELECT JSON_BUILD_OBJECT(\'uid\', IDENTITY(history.user), \'d\', history.startDate) FROM '.UserHistory::class.' history '.
|
||||
'WHERE history.accompanyingPeriod = acp AND history.startDate <= :calc_date AND (history.endDate IS NULL OR history.endDate > :calc_date)) AS referrers');
|
||||
'WHERE history.accompanyingPeriod = acp AND history.startDate <= :calc_date AND (history.endDate IS NULL OR history.endDate > :calc_date)) AS acpw_referrers');
|
||||
|
||||
// persons
|
||||
$qb
|
||||
|
@@ -332,13 +332,18 @@ class ListPerson implements ExportElementValidatedInterface, ListInterface, Grou
|
||||
if (null === $value) {
|
||||
return '';
|
||||
}
|
||||
$decoded = json_decode((string) $value, true, 512, JSON_THROW_ON_ERROR);
|
||||
|
||||
if ('_header' === $value) {
|
||||
$label = $cfType->getChoices($cf)[$slugChoice];
|
||||
|
||||
return $this->translatableStringHelper->localize($cf->getName())
|
||||
.' | '.$label;
|
||||
.' | '.$label;
|
||||
}
|
||||
|
||||
try {
|
||||
$decoded = json_decode((string) $value, true, 512, JSON_THROW_ON_ERROR);
|
||||
} catch (\JsonException $e) {
|
||||
throw new \RuntimeException(sprintf('unable to decode json: %s, %s', json_last_error(), json_last_error_msg()), $e->getCode(), $e);
|
||||
}
|
||||
|
||||
if ('_other' === $slugChoice && $cfType->isChecked($cf, $slugChoice, $decoded)) {
|
||||
|
Reference in New Issue
Block a user