Skip to content

Commit 354a314

Browse files
committed
fix: submitters query for media upload condition
1 parent fb78327 commit 354a314

2 files changed

Lines changed: 47 additions & 7 deletions

File tree

app/Models/Foundation/Main/Member.php

Lines changed: 42 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -2701,11 +2701,23 @@ public function getAcceptedPresentations
27012701
}
27022702
if($filter->hasFilter("has_media_upload_with_type"))
27032703
{
2704-
$extraWhere .= " AND mut.id IN (:media_upload_type_id)";
2704+
$extraWhere .= " AND EXISTS (
2705+
SELECT pmu_12.id
2706+
FROM models\summit\PresentationMediaUpload pmu_12
2707+
JOIN pmu_12.media_upload_type mut_12
2708+
JOIN pmu_12.presentation p__12
2709+
WHERE p.id = p__12.id AND mut_12.id IN (:media_upload_type_id)
2710+
)";
27052711
}
27062712
if($filter->hasFilter("has_not_media_upload_with_type"))
27072713
{
2708-
$extraWhere .= " AND mut.id NOT IN (:media_upload_type_id)";
2714+
$extraWhere .= " AND NOT EXISTS (
2715+
SELECT pmu_12.id
2716+
FROM models\summit\PresentationMediaUpload pmu_12
2717+
JOIN pmu_12.media_upload_type mut_12
2718+
JOIN pmu_12.presentation p__12
2719+
WHERE p.id = p__12.id AND mut_12.id IN (:media_upload_type_id)
2720+
)";
27092721
}
27102722
if($filter->hasFilter("is_speaker")){
27112723
$value = to_boolean($filter->getValue("is_speaker")[0]);
@@ -2924,11 +2936,23 @@ public function getAlternatePresentations
29242936
}
29252937
if($filter->hasFilter("has_media_upload_with_type"))
29262938
{
2927-
$extraWhere .= " AND mut.id IN (:media_upload_type_id)";
2939+
$extraWhere .= " AND EXISTS (
2940+
SELECT pmu_12.id
2941+
FROM models\summit\PresentationMediaUpload pmu_12
2942+
JOIN pmu_12.media_upload_type mut_12
2943+
JOIN pmu_12.presentation p__12
2944+
WHERE p.id = p__12.id AND mut_12.id IN (:media_upload_type_id)
2945+
)";
29282946
}
29292947
if($filter->hasFilter("has_not_media_upload_with_type"))
29302948
{
2931-
$extraWhere .= " AND mut.id NOT IN (:media_upload_type_id)";
2949+
$extraWhere .= " AND NOT EXISTS (
2950+
SELECT pmu_12.id
2951+
FROM models\summit\PresentationMediaUpload pmu_12
2952+
JOIN pmu_12.media_upload_type mut_12
2953+
JOIN pmu_12.presentation p__12
2954+
WHERE p.id = p__12.id AND mut_12.id IN (:media_upload_type_id)
2955+
)";
29322956
}
29332957
if($filter->hasFilter("is_speaker")){
29342958
$value = to_boolean($filter->getValue("is_speaker")[0]);
@@ -3081,11 +3105,23 @@ public function getRejectedPresentations
30813105
}
30823106
if($filter->hasFilter("has_media_upload_with_type"))
30833107
{
3084-
$extraWhere .= " AND mut.id IN (:media_upload_type_id)";
3108+
$extraWhere .= " AND EXISTS (
3109+
SELECT pmu_12.id
3110+
FROM models\summit\PresentationMediaUpload pmu_12
3111+
JOIN pmu_12.media_upload_type mut_12
3112+
JOIN pmu_12.presentation p__12
3113+
WHERE p.id = p__12.id AND mut_12.id IN (:media_upload_type_id)
3114+
)";
30853115
}
30863116
if($filter->hasFilter("has_not_media_upload_with_type"))
30873117
{
3088-
$extraWhere .= " AND mut.id NOT IN (:media_upload_type_id)";
3118+
$extraWhere .= " AND NOT EXISTS (
3119+
SELECT pmu_12.id
3120+
FROM models\summit\PresentationMediaUpload pmu_12
3121+
JOIN pmu_12.media_upload_type mut_12
3122+
JOIN pmu_12.presentation p__12
3123+
WHERE p.id = p__12.id AND mut_12.id IN (:media_upload_type_id)
3124+
)";
30893125
}
30903126
if($filter->hasFilter("is_speaker")){
30913127
$value = to_boolean($filter->getValue("is_speaker")[0]);

app/Repositories/Summit/DoctrineMemberRepository.php

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -102,7 +102,11 @@ protected function getFilterMappings()
102102
}
103103
if($filter->hasFilter("has_not_media_upload_with_type")){
104104
$v = $filter->getValue("has_not_media_upload_with_type");
105-
$extraSelectionStatusFilter .= ' AND __mut%1$s.id NOT IN ('.implode(',', $v).')';
105+
$extraSelectionStatusFilter .= ' AND NOT EXISTS (
106+
SELECT __pm%1$s_%1$s.id FROM models\summit\PresentationMediaUpload __pm%1$s_%1$s
107+
LEFT JOIN __pm%1$s_%1$s.media_upload_type __mut%1$s_%1$s
108+
WHERE __pm%1$s_%1$s.presentation = __p%1$s AND __mut%1$s_%1$s.id IN ('.implode(',', $v).')
109+
) ';
106110
}
107111
}
108112

0 commit comments

Comments
 (0)