From 5f231873215312eaf430caa980f1aaeb2d6a58bb Mon Sep 17 00:00:00 2001 From: Angel Fernando Quiroz Campos Date: Wed, 5 Aug 2015 16:58:16 -0500 Subject: [PATCH] Add option to send email when a user being subscribed - refs BT#9896 #TMI --- .../Schema/V110/Version20150805161000.php | 41 +++++++++++++++++++ main/inc/lib/sessionmanager.lib.php | 24 +++++++++-- main/session/session_add.php | 5 ++- main/session/session_edit.php | 6 ++- src/Chamilo/CoreBundle/Entity/Session.php | 6 +++ 5 files changed, 75 insertions(+), 7 deletions(-) create mode 100644 app/Migrations/Schema/V110/Version20150805161000.php diff --git a/app/Migrations/Schema/V110/Version20150805161000.php b/app/Migrations/Schema/V110/Version20150805161000.php new file mode 100644 index 0000000000..840a6f427a --- /dev/null +++ b/app/Migrations/Schema/V110/Version20150805161000.php @@ -0,0 +1,41 @@ +getTable('session'); + + $sessionTable->addColumn( + 'send_subscription_notification', + \Doctrine\DBAL\Types\Type::BOOLEAN, + ['default' => false] + ); + } + + /** + * @param Schema $schema + */ + public function down(Schema $schema) + { + $sessionTable = $schema->getTable('session'); + $sessionTable->dropColumn('send_subscription_notification'); + } + +} diff --git a/main/inc/lib/sessionmanager.lib.php b/main/inc/lib/sessionmanager.lib.php index ea5e63d132..acad80ff3e 100755 --- a/main/inc/lib/sessionmanager.lib.php +++ b/main/inc/lib/sessionmanager.lib.php @@ -63,6 +63,8 @@ class SessionManager * @param int $showDescription Optional. Whether show the session description * @param array $extraFields * @param int $sessionAdminId Optional. If this sessions was created by a session admin, assign it to him + * @param boolean $sendSubscritionNotification Optional. + * Whether send a mail notification to users being subscribed * @todo use an array to replace all this parameters or use the model.lib.php ... * @return mixed Session ID on success, error message otherwise * */ @@ -82,7 +84,8 @@ class SessionManager $description = null, $showDescription = 0, $extraFields = array(), - $sessionAdminId = 0 + $sessionAdminId = 0, + $sendSubscritionNotification = false ) { global $_configuration; @@ -154,7 +157,8 @@ class SessionManager 'session_admin_id' => $sessionAdminId, 'visibility' => $visibility, 'description' => $description, - 'show_description' => intval($showDescription) + 'show_description' => intval($showDescription), + 'send_subscription_notification' => $sendSubscritionNotification ); if (!empty($startDate)) { @@ -1312,6 +1316,8 @@ class SessionManager * @param int $duration * @param array $extraFields * @param int $sessionAdminId + * @param boolean $sendSubscritionNotification Optional. + * Whether send a mail notification to users being subscribed * @return mixed */ public static function edit_session( @@ -1330,7 +1336,8 @@ class SessionManager $showDescription = 0, $duration = null, $extraFields = array(), - $sessionAdminId = 0 + $sessionAdminId = 0, + $sendSubscritionNotification = false ) { $name = trim(stripslashes($name)); $coachId = intval($coachId); @@ -1373,7 +1380,8 @@ class SessionManager 'id_coach' => $coachId, 'description'=> $description, 'show_description' => intval($showDescription), - 'visibility' => $visibility + 'visibility' => $visibility, + 'send_subscription_notification' => $sendSubscritionNotification ]; if (!empty($sessionAdminId)) { @@ -6582,6 +6590,14 @@ class SessionManager $form->addElement('html', ''); + $form->addCheckBox( + 'send_subscription_notification', + [ + get_lang('SendSubscriptionNotification'), + get_lang('SendAnEmailWhenAUserBeingSubscribed') + ] + ); + // Extra fields $extra_field = new ExtraField('session'); $extra = $extra_field->addElements($form, $sessionId); diff --git a/main/session/session_add.php b/main/session/session_add.php index 3a9694b9dd..00fc2fd8fe 100644 --- a/main/session/session_add.php +++ b/main/session/session_add.php @@ -173,6 +173,7 @@ if ($form->validate()) { $duration = isset($params['duration']) ? $params['duration'] : null; $description = $params['description']; $showDescription = isset($params['show_description']) ? 1: 0; + $sendSubscritionNotification = isset($params['send_subscription_notification']); $extraFields = array(); foreach ($params as $key => $value) { @@ -196,7 +197,9 @@ if ($form->validate()) { $duration, $description, $showDescription, - $extraFields + $extraFields, + null, + $sendSubscritionNotification ); if ($return == strval(intval($return))) { diff --git a/main/session/session_edit.php b/main/session/session_edit.php index 3cbeeb6b88..90adbd0cc6 100644 --- a/main/session/session_edit.php +++ b/main/session/session_edit.php @@ -98,7 +98,6 @@ $(function() { $form->addButtonUpdate(get_lang('ModifyThisSession')); - $formDefaults = $sessionInfo; $formDefaults['coach_username'] = $sessionInfo['id_coach']; @@ -129,6 +128,7 @@ if ($form->validate()) { $duration = isset($params['duration']) ? $params['duration'] : null; $description = $params['description']; $showDescription = isset($params['show_description']) ? 1: 0; + $sendSubscritionNotification = isset($params['send_subscription_notification']); $extraFields = array(); foreach ($params as $key => $value) { @@ -152,7 +152,9 @@ if ($form->validate()) { $description, $showDescription, $duration, - $extraFields + $extraFields, + null, + $sendSubscritionNotification ); if ($return == strval(intval($return))) { diff --git a/src/Chamilo/CoreBundle/Entity/Session.php b/src/Chamilo/CoreBundle/Entity/Session.php index 6f6a672475..fab1760de8 100644 --- a/src/Chamilo/CoreBundle/Entity/Session.php +++ b/src/Chamilo/CoreBundle/Entity/Session.php @@ -196,6 +196,12 @@ class Session **/ protected $currentCourse; + /** + * @var boolean + * @ORM\Column(name="send_subscription_notification", type="boolean", nullable=false, options={"default":false}) + */ + private $sendSubscriptionNotification; + /** * Constructor */