Example #1
0
 /**
  * Filter the project activities by date and project ID.
  * @return mixed
  */
 public function filterActivities()
 {
     $query = ProjectActivity::find()->where(['>', 'date', date('Y-m-d')])->orderBy('date');
     $dataProvider = new ActiveDataProvider(['query' => $query]);
     $query->andFilterWhere(['in', 'projectID', $this->projectIDs]);
     return $dataProvider;
 }
Example #2
0
 /**
  * Gets the activities associated with this project.
  * @return array
  */
 public function getActivities()
 {
     return $this->hasMany(ProjectActivity::className(), ['projectID' => 'projectID'])->inverseOf('project');
 }
Example #3
0
/* @var $searchModel app\models\ProjectActivityIndex */
$this->title = 'Project Activities';
?>
<div class="project-activity-index">

    <div class="page-header">
        <h1><?php 
echo Html::encode($this->title);
?>
</h1>
    </div>

    <div class="col-md-3">
        <?php 
$form = ActiveForm::begin(['id' => 'activity-project-filter-form']);
$projects = ProjectActivity::find()->select(['projectID'])->distinct()->all();
$listItems = [];
foreach ($projects as $project) {
    $listItems[$project->projectID] = Html::encode($project->project->name);
}
echo $form->field($model, 'projectIDs')->checkboxList($listItems)->label('Projects');
?>
        <div class="form-group">
            <?php 
echo Html::submitButton('Filter Activities', ['class' => 'btn btn-primary']);
?>
        </div>
        <?php 
ActiveForm::end();
if (\Yii::$app->user->can('editActivities')) {
    echo Html::a('Create Activity', ['create'], ['class' => 'btn btn-success']);
 /**
  * Sends an email with a link, for verifying the given email address.
  * @param integer $id
  * @return boolean whether the email was send
  */
 public function sendActivityFollowersEmail($id)
 {
     $projectActivity = ProjectActivity::findOne($id);
     $project = $projectActivity->project;
     $userIds = explode(',', $projectActivity->followers->usersFollowing);
     foreach ($userIds as $userId) {
         $user = User::findOne($userId);
         if ($user) {
             \Yii::$app->mailer->compose('emailActivityFollower', ['user' => $user])->setFrom([\Yii::$app->params['supportEmail'] => \Yii::$app->name])->setTo($user->email)->setSubject('Activity update notification for ' . $project->name . ', acitivity ' . $projectActivity->name)->send();
         }
     }
     $projectFollowerIDs = explode(',', $project->followers->usersFollowing);
     $projectFollowerIDs = array_diff($projectFollowerIDs, $userIds);
     foreach ($projectFollowerIDs as $userId) {
         $user = User::findOne($userId);
         if ($user) {
             \Yii::$app->mailer->compose('emailProjectActivityFollower', ['user' => $user])->setFrom([\Yii::$app->params['supportEmail'] => \Yii::$app->name])->setTo($user->email)->setSubject('Project activity update notification for ' . $project->name)->send();
         }
     }
 }