/**
  * Returns the data model based on the primary key given in the GET variable.
  * If the data model is not found, an HTTP exception will be raised.
  * @param integer the ID of the model to be loaded
  */
 public function loadModel($id)
 {
     $model = CompetitionUser::model()->findByPk($id);
     if ($model === null) {
         throw new CHttpException(404, Yii::t('app', 'The requested page does not exist.'));
     }
     return $model;
 }
 public function actionIndex()
 {
     $redirect = false;
     $competition_user_id = isset(Yii::app()->session['competition_user_id']) ? Yii::app()->session['competition_user_id'] : 0;
     if ($competition_user_id == 0) {
         $redirect = true;
         header('Location: /index.php/StartCompetition');
         die;
     }
     $competitionUser = CompetitionUser::model()->findByPk($competition_user_id);
     if ($competitionUser != null) {
         if ($competitionUser == null) {
             $competitionUser = new CompetitionUser();
         }
         if ($competitionUser->start_time != null) {
             $duration = $competitionUser->competition->duration * 60;
             $starttime = strtotime($competitionUser->start_time);
             $endtime = $starttime + $duration;
             if ($competitionUser->finished == 1 || $competitionUser->finish_time != null) {
                 if ($competitionUser->finished == 1 && $competitionUser->finish_time == null) {
                     $competitionUser->finish_time = $endtime;
                     $competitionUser->save(true, array('finish_time'));
                 } else {
                     $competitionUser->finished = 1;
                     $competitionUser->save(true, array('finished'));
                 }
                 $redirect = true;
             } else {
                 if ($endtime < time()) {
                     $competitionUser->finished = 1;
                     $competitionUser->finish_time = $endtime;
                     $competitionUser->save(true, array('finished', 'finish_time'));
                     $redirect = true;
                 }
             }
         }
     } else {
         $redirect = true;
     }
     if ($redirect) {
         header('Location: /index.php/StartCompetition');
         die;
     }
     $this->render('index');
 }
Exemplo n.º 3
0
 public function calculateCompetitionAdvancingToNextLevel($competition_id, $competition_category_id, $number_of_points_needed_for_advancing_to_next_level = 0)
 {
     if ($number_of_points_needed_for_advancing_to_next_level == 0) {
         return false;
     }
     // reset advancing_to_next_level to null to all competitiors
     CompetitionUser::model()->updateAll(array('advancing_to_next_level' => 0), 'competition_id=:competition_id and competition_category_id=:competition_category_id', array(':competition_id' => $competition_id, ':competition_category_id' => $competition_category_id));
     $cus = CompetitionUser::model()->findAll('competition_id=:competition_id and competition_category_id=:competition_category_id and disqualified=:disqualified', array(':competition_id' => $competition_id, ':competition_category_id' => $competition_category_id, ':disqualified' => 0));
     foreach ($cus as $cu) {
         if ($cu == null) {
             $cu = new CompetitionUser();
         }
         $result = $cu->getCompetitionNumericResult(true);
         if ((int) $result['result'] >= $number_of_points_needed_for_advancing_to_next_level) {
             $cu->advancing_to_next_level = 1;
             $cu->save(true, array('advancing_to_next_level'));
         }
     }
     return true;
 }
 public function actionFinishCompetition()
 {
     $competition_user_id = isset(Yii::app()->session['competition_user_id']) ? Yii::app()->session['competition_user_id'] : 0;
     // demo
     if ($competition_user_id == 0) {
         self::reponseJSON(array('success' => false, 'error' => Yii::t('app', 'User is not authenticated.')));
     }
     $competitionUser = CompetitionUser::model()->findByPk($competition_user_id);
     if ($competitionUser != null) {
         if ($competitionUser == null) {
             $competitionUser = new CompetitionUser();
         }
         if ($competitionUser->start_time == null) {
             self::reponseJSON(array('success' => false, 'error' => Yii::t('app', 'You cannot finish competition that was never started.')));
         } else {
             if ($competitionUser->finished == 0) {
                 $competitionUser->finished = 1;
                 $duration = $competitionUser->competition->duration * 60;
                 $starttime = strtotime($competitionUser->start_time);
                 $endtime = $starttime + $duration;
                 if ($endtime < time()) {
                     $competitionUser->finish_time = date('Y-m-d H:i:s', $endtime);
                 } else {
                     $competitionUser->finish_time = date('Y-m-d H:i:s');
                 }
                 $competitionUser->ip_stop = isset($_SERVER) && isset($_SERVER['REMOTE_ADDR']) ? $_SERVER['REMOTE_ADDR'] : '/';
                 if ($competitionUser->save(true, array('finished', 'finish_time', 'ip_stop'))) {
                     unset(Yii::app()->session['competition_user_id']);
                     self::reponseJSON(array('success' => true));
                 } else {
                     self::reponseJSON(array('success' => false, 'error' => Yii::t('app', 'Error saving competition finished state!')));
                 }
             } else {
                 unset(Yii::app()->session['competition_user_id']);
                 self::reponseJSON(array('success' => false, 'error' => Yii::t('app', 'You have already clicked Finish Competition!')));
             }
         }
     } else {
         unset(Yii::app()->session['competition_user_id']);
         self::reponseJSON(array('success' => false, 'error' => Yii::t('app', 'User is not authenticated.')));
     }
 }
Exemplo n.º 5
0
            <?php 
    echo $form->labelEx($model, 'award');
    ?>
            <?php 
    echo CHtml::activeDropDownList($model, 'award', $model->GetAwardOptions(), array('disabled' => $edit_all ? '' : 'disabled', 'empty' => Yii::t('app', 'choose')));
    ?>
            <?php 
    echo $form->error($model, 'award');
    ?>
        </div>
        <?php 
}
?>

    <?php 
if (CompetitionUser::canShowAdvancingToNextLevel($model->competition_id)) {
    ?>
        <div class="row">
            <?php 
    echo $form->labelEx($model, 'advancing_to_next_level');
    ?>
            <?php 
    echo CustomCHtml::radioButtonSwitch('CompetitionUser[advancing_to_next_level]', $model->advancing_to_next_level, array(0 => Yii::t('app', 'no'), 1 => Yii::t('app', 'yes')), array('disabled' => $edit_all ? '' : 'disabled'));
    ?>
            <?php 
    echo $form->error($model, 'advancing_to_next_level');
    ?>
        </div>
        <?php 
}
?>
Exemplo n.º 6
0
<?php

/* @var $this CompetitionUserController */
/* @var $model CompetitionUser */
$this->breadcrumbs = array(Yii::t('app', 'Competition Users') => array('index'), $model->id);
$user = User::model()->find('id=:id', array(':id' => Yii::app()->user->id));
$superuser = $user != null ? $user->superuser : 0;
$create_competition_user = false;
$delete_competition_user = false;
if ($superuser == 1) {
    $create_competition_user = true;
    $delete_competition_user = true;
}
$this->menu = array(array('label' => Yii::t('app', 'Create Competition User'), 'url' => array('create'), 'visible' => $create_competition_user), array('label' => Yii::t('app', 'Update Competition User'), 'url' => array('update', 'id' => $model->id)), array('label' => Yii::t('app', 'Delete Competition User'), 'url' => '#', 'visible' => $delete_competition_user, 'linkOptions' => array('submit' => array('delete', 'id' => $model->id), 'confirm' => Yii::t('app', 'are_you_sure_you_want_to_delete_this_item'))), array('label' => Yii::t('app', 'Manage Competition Users'), 'url' => array('admin')));
?>

<h1><?php 
echo Yii::t('app', 'Competition User');
?>
 "<?php 
echo $model->id;
?>
"</h1>

<?php 
$this->widget('zii.widgets.CDetailView', array('data' => $model, 'attributes' => array('id', array('name' => 'competition_id', 'value' => $model->competition->name), array('name' => 'competition_category_id', 'value' => $model->competitionCategory->name), array('name' => 'competition_category_school_mentor_id', 'value' => $model->competitionCategorySchoolMentor->user->profile->last_name . ' ' . $model->competitionCategorySchoolMentor->user->profile->first_name), 'last_name', 'first_name', array('name' => 'gender', 'value' => $model->gender == 0 ? Yii::t('app', 'Male') : Yii::t('app', 'Female')), 'class', array('name' => 'school_id', 'value' => $model->school->name), array('name' => 'disqualified_request', 'value' => $model->disqualified_request == 1 ? Yii::t('app', 'yes') : Yii::t('app', 'no')), 'disqualified_reason', array('name' => 'disqualified_request_by', 'value' => $model->disqualified_request_by != null ? $model->disqualifiedRequestBy->profile->last_name . ' ' . $model->disqualifiedRequestBy->profile->first_name : '/'), array('name' => 'disqualified', 'value' => $model->disqualified == 1 ? Yii::t('app', 'yes') : Yii::t('app', 'no')), array('name' => 'disqualified_by', 'value' => $model->disqualified_by != null ? $model->disqualifiedBy->profile->last_name . ' ' . $model->disqualifiedBy->profile->first_name : '/'), array('name' => 'start_time', 'value' => date('j. n. Y H:i:s', strtotime($model->start_time))), array('name' => 'finish_time', 'value' => date('j. n. Y H:i:s', strtotime($model->finish_time))), array('name' => 'finished', 'value' => $model->finished == 1 ? Yii::t('app', 'yes') : Yii::t('app', 'no')), array('name' => 'competition_results', 'value' => $model->getCompetitionResults(), 'visible' => CompetitionUser::canShowCompetitionResults($model->competition_id)), array('name' => 'award', 'value' => $model->GetAwardName($model->award), 'visible' => CompetitionUser::canShowAwardField($model->competition_id)), array('name' => 'advancing_to_next_level', 'value' => $model->advancing_to_next_level == 1 ? Yii::t('app', 'yes') : Yii::t('app', 'no'), 'visible' => CompetitionUser::canShowAdvancingToNextLevel($model->competition_id)))));