Revert "Speakers/Moderators Refactoring"

This reverts commit 5e61d68a49.

Change-Id: Ia5f56e8183679903189c4f15bc5efe0e34e4ef67
This commit is contained in:
sebastian marcet 2019-02-21 15:11:33 +00:00 committed by smarcet
parent 7913ffe703
commit da9cf53d4f
4 changed files with 65 additions and 56 deletions

View File

@ -77,7 +77,7 @@ FROM (
IFNULL(S.FirstName, M.FirstName) AS FirstName,
IFNULL(S.LastName, M.Surname) AS LastName,
IFNULL(M.Email, R.Email) AS Email
FROM PresentationSpeaker S
FROM Speaker S
LEFT JOIN Member M ON M.ID = S.MemberID
LEFT JOIN SpeakerRegistrationRequest R ON R.SpeakerID = S.ID
WHERE
@ -87,13 +87,29 @@ FROM (
INNER JOIN Presentation P ON E.ID = P.ID
INNER JOIN Presentation_Speakers PS ON PS.PresentationID = P.ID
WHERE E.SummitID = {$summit->getId()} AND PS.PresentationSpeakerID = S.ID
)
)
UNION
SELECT S.ID,
IFNULL(S.FirstName, M.FirstName) AS FirstName,
IFNULL(S.LastName, M.Surname) AS LastName,
IFNULL(M.Email, R.Email) AS Email
FROM PresentationSpeaker S
FROM Speaker S
LEFT JOIN Member M ON M.ID = S.MemberID
LEFT JOIN SpeakerRegistrationRequest R ON R.SpeakerID = S.ID
WHERE
EXISTS
(
SELECT E.ID FROM SummitEvent E
INNER JOIN Presentation P ON E.ID = P.ID
INNER JOIN Presentation_Speakers PS ON PS.PresentationID = P.ID
WHERE E.SummitID = {$summit->getId()} AND P.ModeratorID = S.ID
)
UNION
SELECT S.ID,
IFNULL(S.FirstName, M.FirstName) AS FirstName,
IFNULL(S.LastName, M.Surname) AS LastName,
IFNULL(M.Email, R.Email) AS Email
FROM Speaker S
LEFT JOIN Member M ON M.ID = S.MemberID
LEFT JOIN SpeakerRegistrationRequest R ON R.SpeakerID = S.ID
WHERE
@ -157,7 +173,7 @@ FROM (
IFNULL(S.LastName, M.Surname) AS LastName,
IFNULL(M.Email,R.Email) AS Email,
S.PhotoID
FROM PresentationSpeaker S
FROM Speaker S
LEFT JOIN Member M ON M.ID = S.MemberID
LEFT JOIN File F ON F.ID = S.PhotoID
LEFT JOIN SpeakerRegistrationRequest R ON R.SpeakerID = S.ID
@ -190,7 +206,39 @@ FROM (
IFNULL(S.LastName, M.Surname) AS LastName,
IFNULL(M.Email,R.Email) AS Email,
S.PhotoID
FROM PresentationSpeaker S
FROM Speaker S
LEFT JOIN Member M ON M.ID = S.MemberID
LEFT JOIN SpeakerRegistrationRequest R ON R.SpeakerID = S.ID
WHERE
EXISTS
(
SELECT E.ID FROM SummitEvent E
INNER JOIN Presentation P ON E.ID = P.ID
INNER JOIN Presentation_Speakers PS ON PS.PresentationID = P.ID
WHERE E.SummitID = {$summit->getId()} AND P.ModeratorID = S.ID
)
UNION
SELECT
S.ID,
S.ClassName,
S.Created,
S.LastEdited,
S.Title AS SpeakerTitle,
S.Bio,
S.IRCHandle,
S.AvailableForBureau,
S.FundedTravel,
S.Country,
S.MemberID,
S.WillingToTravel,
S.WillingToPresentVideo,
S.Notes,
S.TwitterName,
IFNULL(S.FirstName, M.FirstName) AS FirstName,
IFNULL(S.LastName, M.Surname) AS LastName,
IFNULL(M.Email,R.Email) AS Email,
S.PhotoID
FROM Speaker S
LEFT JOIN Member M ON M.ID = S.MemberID
LEFT JOIN SpeakerRegistrationRequest R ON R.SpeakerID = S.ID
WHERE
@ -314,7 +362,7 @@ FROM (
IFNULL(S.FirstName, M.FirstName) AS FirstName,
IFNULL(S.LastName, M.Surname) AS LastName,
IFNULL(M.Email,R.Email) AS Email
FROM PresentationSpeaker S
FROM Speaker S
LEFT JOIN Member M ON M.ID = S.MemberID
LEFT JOIN SpeakerRegistrationRequest R ON R.SpeakerID = S.ID
)
@ -356,7 +404,7 @@ FROM (
IFNULL(S.LastName, M.Surname) AS LastName,
IFNULL(M.Email,R.Email) AS Email,
S.PhotoID
FROM PresentationSpeaker S
FROM Speaker S
LEFT JOIN Member M ON M.ID = S.MemberID
LEFT JOIN File F ON F.ID = S.PhotoID
LEFT JOIN SpeakerRegistrationRequest R ON R.SpeakerID = S.ID

View File

@ -121,9 +121,12 @@ final class DoctrineSummitEventRepository
'speaker' => new DoctrineFilterMapping
(
"( concat(sp.first_name, ' ', sp.last_name) :operator ':value' ".
"OR concat(spm.first_name, ' ', spm.last_name) :operator ':value' ".
"OR concat(spmm.first_name, ' ', spmm.last_name) :operator ':value' ".
"OR sp.first_name :operator ':value' ".
"OR sp.last_name :operator ':value' ".
"OR spm.first_name :operator ':value' ".
"OR spm.last_name :operator ':value' ".
"OR spmm.first_name :operator ':value' ".
"OR spmm.last_name :operator ':value' )"
),
@ -133,7 +136,7 @@ final class DoctrineSummitEventRepository
),
'speaker_id' => new DoctrineFilterMapping
(
"(sp.id :operator :value)"
"(sp.id :operator :value OR spm.id :operator :value)"
),
'selection_status' => new DoctrineSwitchFilterMapping([
'selected' => new DoctrineCaseFilterMapping(
@ -209,10 +212,10 @@ final class DoctrineSummitEventRepository
if($class == \models\summit\Presentation::class) {
$query = $query->innerJoin("e.category", "cc", Join::WITH);
$query = $query->leftJoin("e.location", "loc", Join::WITH);
$query = $query->leftJoin("e.speakers", "spk", Join::WITH);
$query = $query->leftJoin("spk.speaker", "sp", Join::WITH);
$query = $query->leftJoin("e.speakers", "sp", Join::WITH);
$query = $query->leftJoin('e.selected_presentations', "ssp", Join::LEFT_JOIN);
$query = $query->leftJoin('ssp.list', "sspl", Join::LEFT_JOIN);
$query = $query->leftJoin('e.moderator', "spm", Join::LEFT_JOIN);
$query = $query->leftJoin('sp.member', "spmm", Join::LEFT_JOIN);
$query = $query->leftJoin('sp.registration_request', "sprr", Join::LEFT_JOIN);
}
@ -304,11 +307,11 @@ final class DoctrineSummitEventRepository
if($class == \models\summit\Presentation::class) {
$query = $query->innerJoin("e.category", "cc", Join::WITH);
$query = $query->leftJoin("e.speakers", "spk", Join::WITH);
$query = $query->leftJoin("sp.speaker", "sp", Join::WITH);
$query = $query->leftJoin("e.speakers", "sp", Join::WITH);
$query = $query->leftJoin('e.selected_presentations', "ssp", Join::LEFT_JOIN);
$query = $query->leftJoin('ssp.list', "sspl", Join::LEFT_JOIN);
$query = $query-> leftJoin('sp.member', "spmm", Join::LEFT_JOIN);
$query = $query->leftJoin('e.moderator', "spm", Join::LEFT_JOIN);
$query = $query->leftJoin('sp.member', "spmm", Join::LEFT_JOIN);
$query = $query->leftJoin('sp.registration_request', "sprr", Join::LEFT_JOIN);
}

View File

@ -386,7 +386,7 @@ final class OAuth2SummitApiTest extends ProtectedApiTest
$headers = array("HTTP_Authorization" => " Bearer " . $this->access_token);
$response = $this->action(
"GET",
"OAuth2SummitSpeakersApiController@getAll",
"OAuth2SummitSpeakersApiController@getAllSpeakers",
$params,
array(),
array(),

View File

@ -1335,46 +1335,4 @@ final class OAuth2SummitEventsApiTest extends ProtectedApiTest
}
public function testGetFilteredEvents($summit_id = 25)
{
$params = array
(
'id' => $summit_id ,
'expand' => 'speakers,type',
'filter' => [
'title=@kubernets',
'abstract=@kubernets',
'tags=@kubernets',
'speaker=@kubernets',
'speaker_email=@kubernets',
'id==kubernets'
]
);
$headers = array
(
"HTTP_Authorization" => " Bearer " . $this->access_token,
"CONTENT_TYPE" => "application/json"
);
$response = $this->action
(
"GET",
"OAuth2SummitEventsApiController@getEvents",
$params,
array(),
array(),
array(),
$headers
);
$content = $response->getContent();
$this->assertResponseStatus(200);
$events = json_decode($content);
$this->assertTrue(!is_null($events));
}
}