@@ -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()
590611END
591612SQL ,
592613 'selection_plan ' => 'selp.name ' ,
614+ 'actions ' => 'HIDDEN_COMPLETED_ACTIONS_COUNT '
593615 /*
594616 'event_type_capacity' => <<<SQL
595617SQL,
0 commit comments