Skip to content

Commit

Permalink
Add option to send email when a user being subscribed - refs BT#9896 …
Browse files Browse the repository at this point in the history
…#TMI
  • Loading branch information
AngelFQC committed Aug 6, 2015
1 parent 6010ecd commit 5f23187
Show file tree
Hide file tree
Showing 5 changed files with 75 additions and 7 deletions.
41 changes: 41 additions & 0 deletions app/Migrations/Schema/V110/Version20150805161000.php
@@ -0,0 +1,41 @@
<?php

/* For licensing terms, see /license.txt */

namespace Application\Migrations\Schema\V110;

use Application\Migrations\AbstractMigrationChamilo;
use Doctrine\DBAL\Schema\Schema;

/**
* Class Version20150713132630
*
* @package Application\Migrations\Schema\V11010
*/
class Version20150805161000 extends AbstractMigrationChamilo
{

/**
* @param Schema $schema
*/
public function up(Schema $schema)
{
$sessionTable = $schema->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');
}

}
24 changes: 20 additions & 4 deletions main/inc/lib/sessionmanager.lib.php
Expand Up @@ -63,6 +63,8 @@ public static function fetch($id)
* @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
* */
Expand All @@ -82,7 +84,8 @@ public static function create_session(
$description = null,
$showDescription = 0,
$extraFields = array(),
$sessionAdminId = 0
$sessionAdminId = 0,
$sendSubscritionNotification = false
) {
global $_configuration;

Expand Down Expand Up @@ -154,7 +157,8 @@ public static function create_session(
'session_admin_id' => $sessionAdminId,
'visibility' => $visibility,
'description' => $description,
'show_description' => intval($showDescription)
'show_description' => intval($showDescription),
'send_subscription_notification' => $sendSubscritionNotification
);

if (!empty($startDate)) {
Expand Down Expand Up @@ -1312,6 +1316,8 @@ public static function generateNextSessionName($session_name)
* @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(
Expand All @@ -1330,7 +1336,8 @@ public static function edit_session(
$showDescription = 0,
$duration = null,
$extraFields = array(),
$sessionAdminId = 0
$sessionAdminId = 0,
$sendSubscritionNotification = false
) {
$name = trim(stripslashes($name));
$coachId = intval($coachId);
Expand Down Expand Up @@ -1373,7 +1380,8 @@ public static function edit_session(
'id_coach' => $coachId,
'description'=> $description,
'show_description' => intval($showDescription),
'visibility' => $visibility
'visibility' => $visibility,
'send_subscription_notification' => $sendSubscritionNotification
];

if (!empty($sessionAdminId)) {
Expand Down Expand Up @@ -6582,6 +6590,14 @@ public static function setForm(FormValidator & $form, $sessionId = 0)

$form->addElement('html', '</div>');

$form->addCheckBox(
'send_subscription_notification',
[
get_lang('SendSubscriptionNotification'),
get_lang('SendAnEmailWhenAUserBeingSubscribed')
]
);

// Extra fields
$extra_field = new ExtraField('session');
$extra = $extra_field->addElements($form, $sessionId);
Expand Down
5 changes: 4 additions & 1 deletion main/session/session_add.php
Expand Up @@ -173,6 +173,7 @@ function check_session_name($name) {
$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) {
Expand All @@ -196,7 +197,9 @@ function check_session_name($name) {
$duration,
$description,
$showDescription,
$extraFields
$extraFields,
null,
$sendSubscritionNotification
);

if ($return == strval(intval($return))) {
Expand Down
6 changes: 4 additions & 2 deletions main/session/session_edit.php
Expand Up @@ -98,7 +98,6 @@

$form->addButtonUpdate(get_lang('ModifyThisSession'));


$formDefaults = $sessionInfo;

$formDefaults['coach_username'] = $sessionInfo['id_coach'];
Expand Down Expand Up @@ -129,6 +128,7 @@
$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) {
Expand All @@ -152,7 +152,9 @@
$description,
$showDescription,
$duration,
$extraFields
$extraFields,
null,
$sendSubscritionNotification
);

if ($return == strval(intval($return))) {
Expand Down
6 changes: 6 additions & 0 deletions src/Chamilo/CoreBundle/Entity/Session.php
Expand Up @@ -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
*/
Expand Down

0 comments on commit 5f23187

Please sign in to comment.