Skip to content

Commit 1ab4081

Browse files
committed
[smarcet] - #13179
* tweaks for sydney summit speakers announcement email * added per summit exclusion of tracks per presentation type ( accepted, rejected, alternate) * added per summit track exclusion for slide deck announcement email
1 parent 7eb2f10 commit 1ab4081

18 files changed

Lines changed: 363 additions & 168 deletions

summit/_config.php

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -393,11 +393,13 @@
393393
// email templates ids
394394

395395
define('PRESENTATION_SPEAKER_ACCEPTED_ONLY_EMAIL', 'presentation-speaker-accepted-only');
396-
define('PRESENTATION_SPEAKER_ACCEPTED_REJECTED_EMAIL', 'presentation-speaker-accepted-rejected');
397396
define('PRESENTATION_SPEAKER_ALTERNATE_ONLY_EMAIL', 'presentation-speaker-alternate-only');
397+
define('PRESENTATION_SPEAKER_REJECTED_EMAIL', 'presentation-speaker-rejected-only');
398+
399+
define('PRESENTATION_SPEAKER_ACCEPTED_REJECTED_EMAIL', 'presentation-speaker-accepted-rejected');
398400
define('PRESENTATION_SPEAKER_ALTERNATE_REJECTED_EMAIL', 'presentation-speaker-alternate-rejected');
399401
define('PRESENTATION_SPEAKER_ACCEPTED_ALTERNATE_EMAIL','presentation-speaker-accepted-alternate');
400-
define('PRESENTATION_SPEAKER_REJECTED_EMAIL', 'presentation-speaker-rejected-only');
402+
401403

402404
define('PRESENTATION_SPEAKER_NOTIFICATION_ACCEPTANCE_EMAIL_FROM', 'speakersupport@openstack.org');
403405
define('PRESENTATION_SPEAKER_NOTIFICATION_ACCEPTANCE_SUMMIT_SUPPORT', 'summit@openstack.org');

summit/_config/injector.yml

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -274,3 +274,6 @@ Injector:
274274
SpeakerSecondBreakoutEmailSenderTask:
275275
constructor:
276276
0: '%$SpeakerSecondBreakoutAnnouncementSenderManager'
277+
SpeakerUploadSlidesEmailSenderTask:
278+
constructor:
279+
0: '%$SpeakerEmailAnnouncementSenderManager'

summit/code/cron_tasks/SpeakerUploadSlidesEmailSenderTask.php

Lines changed: 16 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -15,14 +15,28 @@
1515
final class SpeakerUploadSlidesEmailSenderTask extends CronTask
1616
{
1717

18+
/**
19+
* @var ISpeakerEmailAnnouncementSenderManager
20+
*/
21+
private $manager;
22+
23+
/**
24+
* SpeakerUploadSlidesEmailSenderTask constructor.
25+
* @param ISpeakerEmailAnnouncementSenderManager $manager
26+
*/
27+
public function __construct(ISpeakerEmailAnnouncementSenderManager $manager)
28+
{
29+
parent::__construct();
30+
$this->manager = $manager;
31+
}
1832
/**
1933
* @return void
2034
*/
2135
public function run()
2236
{
2337
try
2438
{
25-
$batch_size = 100;
39+
$batch_size = 1000;
2640
$init_time = time();
2741
$summit = null;
2842

@@ -39,12 +53,8 @@ public function run()
3953

4054
if(is_null($summit)) throw new Exception('summit_id is not valid!');
4155

42-
$manager = Injector::inst()->get('SpeakerEmailAnnouncementSenderManager');
43-
if (!$manager instanceof ISpeakerEmailAnnouncementSenderManager) {
44-
return;
45-
}
4656

47-
$processed = $manager->sendUploadSlidesAnnouncementBySummit($summit, $batch_size);
57+
$processed = $this->manager->sendUploadSlidesAnnouncementBySummit($summit, $batch_size);
4858

4959
$finish_time = time() - $init_time;
5060
echo 'processed records (speakers) ' . $processed.' processed records (speakers) ' . $processed. ' - time elapsed : '.$finish_time. ' seconds.'.PHP_EOL;

summit/code/infrastructure/active_records/Summit.php

Lines changed: 40 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -77,15 +77,21 @@ final class Summit extends DataObject implements ISummit
7777
'SummitPackages' => 'SummitPackage',
7878
'SummitAddOns' => 'SummitAddOn',
7979
'WIFIConnections' => 'SummitWIFIConnection',
80-
'Sponsors' => 'Sponsor'
80+
'Sponsors' => 'Sponsor',
8181
];
8282

8383
/**
8484
* @var array
8585
*/
8686
private static $many_many = array
8787
(
88-
'CategoryDefaultTags' => 'Tag',
88+
'CategoryDefaultTags' => 'Tag',
89+
// summit speaker announcement emails
90+
'ExcludedCategoriesForAcceptedPresentations' => 'PresentationCategory',
91+
'ExcludedCategoriesForAlternatePresentations' => 'PresentationCategory',
92+
'ExcludedCategoriesForRejectedPresentations' => 'PresentationCategory',
93+
// summit speaker upload slide deck email
94+
'ExcludedTracksForUploadPresentationSlideDeck' => 'PresentationCategory',
8995
);
9096

9197
private static $many_many_extraFields = array(
@@ -1654,4 +1660,36 @@ public function getNiceVotingEnd($timezone_name = 'UTC'){
16541660
return sprintf("%s at %s %s", $dt->format('l, F d'), $dt->format('H:i A'), $dt->format('T'));
16551661
}
16561662

1663+
/**
1664+
* @return int[]
1665+
*/
1666+
public function getExcludedTracksForPublishedPresentations()
1667+
{
1668+
1669+
return array_values($this->ExcludedCategoriesForAcceptedPresentations()->getIDList());
1670+
}
1671+
1672+
/**
1673+
* @return int[]
1674+
*/
1675+
public function getExcludedTracksForRejectedPresentations()
1676+
{
1677+
return array_values($this->ExcludedCategoriesForRejectedPresentations()->getIDList());
1678+
}
1679+
1680+
/**
1681+
* @return int[]
1682+
*/
1683+
public function getExcludedTracksForAlternatePresentations()
1684+
{
1685+
return array_values($this->ExcludedCategoriesForAlternatePresentations()->getIDList());
1686+
}
1687+
1688+
/**
1689+
* @return int[]
1690+
*/
1691+
public function getExcludedTracksForUploadPresentationSlideDeck()
1692+
{
1693+
return array_values($this->ExcludedTracksForUploadPresentationSlideDeck()->getIDList());
1694+
}
16571695
}

0 commit comments

Comments
 (0)