Skip to content

Commit 3d01339

Browse files
romanetarsmarcet
authored andcommitted
feat: presentation progress_flags sorting support (#247)
Signed-off-by: romanetar <roman_ag@hotmail.com> Change-Id: I2d69592d31d5154063c679419bf138db22d60dd3
1 parent 2c4da3f commit 3d01339

2 files changed

Lines changed: 23 additions & 0 deletions

File tree

app/Http/Controllers/Apis/Protected/Summit/Strategies/events/RetrieveSummitEventsStrategy.php

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -134,6 +134,7 @@ protected function buildOrder()
134134
'selection_status',
135135
'published_date',
136136
'selection_plan',
137+
'actions'
137138
]);
138139
}
139140
return $order;

app/Repositories/Summit/DoctrineSummitEventRepository.php

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -148,8 +148,14 @@ public function getAllByPage(PagingInfo $paging_info, Filter $filter = null, Ord
148148
->leftJoin('spm.registration_request', "sprr2", Join::LEFT_JOIN);
149149
}
150150

151+
if (!is_null($order) && $order->hasOrder("actions") && !$filter->hasFilter("actions")) {
152+
$query = $query->leftJoin("p.actions", 'a', Join::LEFT_JOIN);
153+
}
154+
151155
$query = $this->applyExtraJoins($query, $filter);
152156

157+
$query = $this->applyExtraSelects($query, $filter, $order);
158+
153159
if (!is_null($filter)) {
154160
$filter->apply2Query($query, $this->getCustomFilterMappings($current_member_id, $current_track_id));
155161
if($filter->hasFilter('actions')){
@@ -215,6 +221,21 @@ public function getAllByPage(PagingInfo $paging_info, Filter $filter = null, Ord
215221
);
216222
}
217223

224+
/**
225+
* @param QueryBuilder $query
226+
* @param Filter|null $filter
227+
* @param Order|null $order
228+
* @return QueryBuilder
229+
*/
230+
protected function applyExtraSelects(QueryBuilder $query, ?Filter $filter = null, ?Order $order = null):QueryBuilder
231+
{
232+
if(!is_null($order) && $order->hasOrder('actions')) {
233+
$query = $query->addSelect("COUNT(a.is_completed) AS HIDDEN HIDDEN_COMPLETED_ACTIONS_COUNT");
234+
$query->groupBy("e");
235+
}
236+
return $query;
237+
}
238+
218239
/**
219240
* @param QueryBuilder $query
220241
* @return QueryBuilder
@@ -590,6 +611,7 @@ protected function getOrderMappings()
590611
END
591612
SQL,
592613
'selection_plan' => 'selp.name',
614+
'actions' => 'HIDDEN_COMPLETED_ACTIONS_COUNT'
593615
/*
594616
'event_type_capacity' => <<<SQL
595617
SQL,

0 commit comments

Comments
 (0)