Skip to content

Commit e578405

Browse files
committed
reduce db queries for content templates
1 parent 3eb4e5b commit e578405

1 file changed

Lines changed: 19 additions & 3 deletions

File tree

src/Glpi/ContentTemplates/Parameters/TicketParameters.php

Lines changed: 19 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -39,14 +39,17 @@
3939
use Glpi\ContentTemplates\Parameters\ParametersTypes\ArrayParameter;
4040
use Glpi\ContentTemplates\Parameters\ParametersTypes\AttributeParameter;
4141
use Glpi\ContentTemplates\Parameters\ParametersTypes\ObjectParameter;
42+
use Item_Ola;
4243
use Item_Ticket;
4344
use KnowbaseItem;
4445
use KnowbaseItem_Item;
4546
use Location;
47+
use LogicException;
4648
use OLA;
4749
use RequestType;
4850
use Session;
4951
use SLA;
52+
use SLM;
5053
use Ticket;
5154
use TicketValidation;
5255

@@ -114,9 +117,22 @@ protected function defineValues(CommonDBTM $ticket): array
114117

115118
// Add ticket's OLA
116119
$ola_parameters = new OLAParameters();
117-
$_getOlas = fn(array $ola_datas) => OLA::getByIds(array_column($ola_datas, 'olas_id'));
118-
$values['olas_tto'] = array_map([$ola_parameters, 'getValues'], $_getOlas($ticket->getOlasTTOData()));
119-
$values['olas_ttr'] = array_map([$ola_parameters, 'getValues'], $_getOlas($ticket->getOlasTTRData()));
120+
121+
$values['olas_tto'] = [];
122+
$values['olas_ttr'] = [];
123+
124+
$ticket_olas = (new Item_Ola())->find(['itemtype' => Ticket::class, 'items_id' => $ticket->getID()]);
125+
foreach ($ticket_olas as $ticket_ola_data) {
126+
$key = match ($ticket_ola_data['ola_type']) {
127+
SLM::TTO => 'olas_tto',
128+
SLM::TTR => 'olas_ttr',
129+
default => throw new LogicException(),
130+
};
131+
132+
if ($ola = OLA::getById($ticket_ola_data['olas_id'])) {
133+
$values[$key][] = $ola_parameters->getValues($ola);
134+
}
135+
}
120136

121137
// Add ticket's request type
122138
if ($requesttype = RequestType::getById($fields['requesttypes_id'])) {

0 commit comments

Comments
 (0)