Skip to content

Commit ddc2e70

Browse files
committed
[smarcet] - #13179
* tweaks on individual speaker announcement email task
1 parent 1b86918 commit ddc2e70

3 files changed

Lines changed: 34 additions & 10 deletions

File tree

summit/code/cron_tasks/IndividualSpeakerSelectionAnnouncementEmailSenderTask.php

Lines changed: 16 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -39,25 +39,31 @@ public function run()
3939
$init_time = time();
4040
$summit = null;
4141
$speaker = null;
42-
$role = IPresentationSpeaker::RoleSpeaker;
43-
if (isset($_GET['member_id']))
42+
43+
if (isset($_GET['email']))
4444
{
45-
$speaker = PresentationSpeaker::get()->filter("MemberID", $_GET['member_id'])->first();
45+
$email = $_GET['email'];
46+
$speaker = PresentationSpeaker::get()
47+
->innerJoin("Member", "Member.ID = PresentationSpeaker.MemberID" )
48+
->where("Member.Email = '{$email}' ")
49+
->first();
50+
if(is_null($speaker)){
51+
$speaker = PresentationSpeaker::get()
52+
->innerJoin("SpeakerRegistrationRequest", "SpeakerRegistrationRequest.ID = PresentationSpeaker.RegistrationRequestID" )
53+
->where("SpeakerRegistrationRequest.Email = '{$email}' ")
54+
->first();
55+
}
4656
}
4757

4858
if (isset($_GET['summit_id']))
4959
{
5060
$summit = Summit::get()->byID(intval($_GET['summit_id']));
5161
}
5262

53-
if (isset($_GET['role']))
54-
{
55-
if($_GET['role'] == 2)
56-
$role = IPresentationSpeaker::RoleModerator;
57-
}
58-
5963
if(is_null($summit)) throw new Exception('summit_id is not valid!');
60-
if(is_null($speaker)) throw new Exception('member_id is not valid!');
64+
if(is_null($speaker)) throw new Exception('speaker is not valid!');
65+
66+
$role = $speaker->isModeratorFor($summit) ? IPresentationSpeaker::RoleModerator : IPresentationSpeaker::RoleSpeaker;
6167

6268
echo sprintf("sending individual mail for %s speaker as role %s", $speaker->getEmail(), $role).PHP_EOL;
6369

summit/code/infrastructure/active_records/events/presentations/PresentationSpeaker.php

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -916,6 +916,18 @@ public function AlternatePresentations
916916
return $alternatePresentations;
917917
}
918918

919+
/**
920+
* @param ISummit $summit
921+
* @return bool
922+
*/
923+
public function isModeratorFor(ISummit $summit){
924+
$filters = [
925+
'SummitEvent.SummitID' => $summit->ID,
926+
'ModeratorID' => $this->ID
927+
];
928+
return Presentation::get()->filter($filters)->count() > 0;
929+
}
930+
919931
/**
920932
* @param int $summit_id
921933
* @return string

summit/code/models/IPresentationSpeaker.php

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -480,4 +480,10 @@ public function hasRejectedPresentations
480480
array $excluded_tracks = []
481481
);
482482

483+
/**
484+
* @param ISummit $summit
485+
* @return bool
486+
*/
487+
public function isModeratorFor(ISummit $summit);
488+
483489
}

0 commit comments

Comments
 (0)