Ejemplo n.º 1
0
 public function actionIndex2()
 {
     $searchModel = new GradeSearch();
     $dataProvider = $searchModel->search(Yii::$app->request->queryParams);
     if (Yii::$app->request->post('hasEditable')) {
         $gradeId = Yii::$app->request->post('editableKey');
         $grade = Grade::findOne($gradeId);
         $subject = Subject::findOne($grade->subject_subject_id);
         $out = Json::encode(['output' => '', 'message' => '']);
         $post = [];
         $posted = current($_POST['Grade']);
         $post['Grade'] = $posted;
         if ($grade->load($post)) {
             if ($grade->grade_approval_status == 'Approved') {
                 $grade->grade_approved_by = Yii::$app->user->identity->username;
             } else {
                 $grade->grade_approved_by = null;
             }
             if ($grade->takenStatus == null) {
                 $grade->takenStatus = 'Not Taken';
             }
             // $subjectTakenStatus = ArrayHelper::map(Subject::find()
             // ->where(['subject_id'=>$grade->subject_subject_id])
             // ->all(),'subject_id','subject_taken_status');
             $subject->subject_taken_status = $grade->takenStatus;
             $subject->save();
             $grade->save();
         }
         echo $out;
         return;
     }
     return $this->render('index2', ['searchModel' => $searchModel, 'dataProvider' => $dataProvider]);
 }
Ejemplo n.º 2
0
 protected function findModel($id)
 {
     if (($model = Subject::findOne($id)) !== null) {
         return $model;
     } else {
         throw new NotFoundHttpException('The requested page does not exist.');
     }
 }
Ejemplo n.º 3
0
 /**
  * Creates data provider instance with search query applied
  *
  * @param array $params
  *
  * @return ActiveDataProvider
  */
 public function search($params)
 {
     $query = Subject::find();
     $dataProvider = new ActiveDataProvider(['query' => $query]);
     $this->load($params);
     if (!$this->validate()) {
         // uncomment the following line if you do not want to return any records when validation fails
         // $query->where('0=1');
         return $dataProvider;
     }
     $query->joinWith('grades');
     $query->joinWith('scholarScholar');
     $query->andFilterWhere(['subject_id' => $this->subject_id, 'scholar_scholar_id' => $this->scholar_scholar_id, 'scholar_school_school_id' => $this->scholar_school_school_id, 'subject_term' => $this->subject_term, 'subject_units' => $this->subject_units]);
     $query->andFilterWhere(['like', 'subject_name', $this->subject_name])->andFilterWhere(['like', 'subject_taken_status', $this->subject_taken_status])->andFilterWhere(['like', 'subject_approval_status', $this->subject_approval_status])->andFilterWhere(['like', 'subject_approved_by', $this->subject_approved_by])->andFilterWhere(['like', 'grades.grade_raw_grade', $this->rawGrade])->andFilterWhere(['like', 'scholar.scholar_first_name', $this->firstName])->andFilterWhere(['like', 'scholar.scholar_middle_name', $this->middleName])->andFilterWhere(['like', 'scholar.scholar_last_name', $this->lastName]);
     return $dataProvider;
 }
Ejemplo n.º 4
0
 /**
  * Creates data provider instance with search query applied
  *
  * @param array $params
  *
  * @return ActiveDataProvider
  */
 public function search($params)
 {
     $query = Subject::find();
     // add conditions that should always apply here
     $dataProvider = new ActiveDataProvider(['query' => $query]);
     $this->load($params);
     if (!isset($this->dob)) {
         if (isset($this->dob_yyyy) && isset($this->dob_mm) && isset($this->dob_dd)) {
             $this->dob = sprintf('%s-%s-%s', $this->dob_yyyy, $this->dob_mm, $this->dob_dd);
         }
     }
     if (!$this->validate()) {
         // uncomment the following line if you do not want to return any records when validation fails
         $query->where('0=1');
         return $dataProvider;
     }
     print_r($this->dob);
     // grid filtering conditions
     $query->andFilterWhere(['id' => $this->id, 'dob' => $this->dob, 'screening_form_id' => $this->screening_form_id, 'project_id' => $this->project_id, 'gp_opt_id' => $this->gp_opt_id, 'email_opt_id' => $this->email_opt_id, 'sex_id' => $this->sex_id, 'sort_order' => $this->sort_order, 'status_id' => $this->status_id, 'created_at' => $this->created_at, 'updated_at' => $this->updated_at, 'created_by' => $this->created_by, 'updated_by' => $this->updated_by]);
     $query->Where(['=', 'first_name', $this->first_name])->andWhere(['=', 'last_name', $this->last_name])->andWhere(['=', 'dob', $this->dob]);
     return $dataProvider;
 }
 /**
  * Creates data provider instance with search query applied
  *
  * @param array $params
  *
  * @return ActiveDataProvider
  */
 public function search($params)
 {
     $query = parent::find();
     // add conditions that should always apply here
     $dataProvider = new ActiveDataProvider(['query' => $query]);
     $this->load($params);
     if (!isset($params['dob'])) {
         if (isset($this->dob_yyyy) && isset($this->dob_mm) && isset($this->dob_dd)) {
             $this->dob = sprintf('%s-%s-%s', $this->dob_yyyy, $this->dob_mm, $this->dob_dd);
         }
     }
     if (!$this->validate()) {
         // uncomment the following line if you do not want to return any records when validation fails
         $query->where('0=1');
         return $dataProvider;
     }
     if (isset($params['hash'])) {
         $query->Where(['=', 'hash', $params['hash']])->andWhere(['=', 'status_id', Types::$status['active']['id']]);
     } else {
         $query->Where(['=', 'first_name', $this->first_name])->andWhere(['=', 'last_name', $this->last_name])->andWhere(['=', 'dob', $this->dob])->andWhere(['=', 'status_id', Types::$status['active']['id']]);
     }
     return $dataProvider;
 }
Ejemplo n.º 6
0
 /**
  * @return \yii\db\ActiveQuery
  */
 public function getSubject()
 {
     return $this->hasOne(Subject::className(), ['id' => 'subject_id']);
 }
Ejemplo n.º 7
0
 public function createScreeningPdf($hash)
 {
     $screening_entry_model = ScreeningEntry::findOne(['hash' => $hash]);
     $screening_form_model = ScreeningForm::findOne(['id' => $screening_entry_model->screening_form_id]);
     $subject_model = Subject::findOne(['id' => $screening_entry_model->subject_id]);
     $count = 1;
     //$permissions = \SetaPDF_Core_SecHandler::PERM_DIGITAL_PRINT ;
     $this->_font = 'Helvetica';
     //class_exists('TCPDF', true); // trigger Composers autoloader to load the TCPDF class
     $pdf = new \FPDI();
     $pdf->SetAutoPageBreak(true);
     // add a page
     $pdf->SetTopMargin(30);
     $pdf->AddPage();
     $pdf->setSourceFile(\yii::$app->basePath . "/../letterhead-mini-header.pdf");
     $tplIdx = $pdf->importPage(1);
     // use the imported page and place it at point 10,10 with a width of 100 mm
     $pdf->useTemplate($tplIdx, 0, 0);
     $pdf->SetFont($this->_font, '', 9);
     $pdf->SetXY(10, 6);
     $pdf->Cell(0, 3, 'Confidential - Participant screening form');
     $pdf->SetFont($this->_font, '', 12);
     $pdf->SetXY(10, 14);
     $pdf->MultiCell(150, 3, yii::$app->DateComponent->timestampToUkDate($screening_entry_model->created_at), 0, 'R');
     $pdf->MultiCell(100, 3, $screening_entry_model->screening_form_title, 0, '');
     $pdf->Ln();
     $pdf->SetFont($this->_font, '', 9);
     $pdf->Cell(100, 4, sprintf('Participant: %s %s (dob %s)', $screening_entry_model->subject->first_name, $screening_entry_model->subject->last_name, yii::$app->DateComponent->isoToUkDate($screening_entry_model->subject->dob)));
     $pdf->Cell(50, 4, sprintf('Identifier: %s', $screening_entry_model->subject->cubric_id), 0, '', 'R');
     $pdf->Ln();
     $pdf->Cell(100, 4, sprintf('Researcher: %s %s (project %s)', $screening_entry_model->researcher->first_name, $screening_entry_model->researcher->last_name, $screening_entry_model->project->code));
     $pdf->Cell(50, 4, sprintf('Resource: %s', $screening_entry_model->resource_title), 0, '', 'R');
     $pdf->SetXY(10, 38);
     $pdf->SetFont($this->_font, '', 12);
     $pdf->Cell(150, 4, sprintf('Responses'));
     $pdf->SetFont($this->_font, '', 9);
     $pdf->Ln();
     foreach (yii::$app->screeningresponse->getResponses($hash) as $response) {
         if (strlen($response['caption']) > 0) {
             $pdf->Ln();
             $pdf->MultiCell(180, 4, sprintf('%s ', $response['caption']), 0, 'U');
             $count = 1;
         }
         $pdf->MultiCell(180, 4, sprintf('%s. %s ', $count, $response['content']));
         $pdf->SetFont($this->_font, 'B', 9);
         if ($response['response'] === null) {
             $response['response'] = 'Not specified / Unknown.';
         }
         $pdf->MultiCell(180, 4, sprintf('%s ', $response['response']));
         $pdf->SetFont($this->_font, '', 9);
         $count++;
         $pdf->Ln();
     }
     $pdf->Ln();
     $pdf->SetFont($this->_font, '', 12);
     $pdf->Cell(180, 4, sprintf('Signatures'));
     $pdf->Ln();
     $pdf->Ln();
     $pdf->SetFont($this->_font, '', 9);
     $pdf->Cell(100, 4, 'Participant ');
     $pdf->Cell(100, 4, 'Researcher ');
     $pdf->Ln();
     $pdf->Ln();
     $currentX = $pdf->GetX();
     $currentY = $pdf->GetY();
     $pdf->Image(sprintf('/tmp/subject-%s.png', $hash), $currentX, $currentY);
     $currentX = $pdf->GetX();
     $pdf->Image(sprintf('/tmp/researcher-%s.png', $hash), $currentX + 100, $currentY);
     // now write some text above the imported page
     // NOW SET ScreeningEntry::progress_id = PUBLISHED so it cannot be edited again.
     // $pdfData = $pdf->Output('S');
     // create a writer
     // create a Http writer
     //$writer = new \SetaPDF_Core_Writer_Http("fpdf-sign-demo.pdf", true);
     // load document by filename
     //$document = new \SetaPDF_Core_Document::loadByString($pdfData, $writer);
     //$document = new \SetaPDF_Core_Reader_File($pdf->Output(), $writer);
     $writer = new \SetaPDF_Core_Writer_File("/Users/Spiro/tmp/myPDF.pdf");
     $document = \SetaPDF_Core_Document::loadByString($pdf->Output("S"), $writer);
     // let's prepare the temporary file writer:
     \SetaPDF_Core_Writer_TempFile::setTempDir("/tmp/");
     // create a signer instance for the document
     $signer = new \SetaPDF_Signer($document);
     // add a field with the name "Signature" to the top left of page 1
     $signer->addSignatureField(\SetaPDF_Signer_SignatureField::DEFAULT_FIELD_NAME, 1, \SetaPDF_Signer_SignatureField::POSITION_LEFT_BOTTOM, array('x' => 10, 'y' => 10), 180, 50);
     // set some signature properties
     $signer->setReason('Integrity');
     $signer->setLocation('CUBRIC');
     $signer->setContactInfo('+44 2920 703859');
     // ccreate an OpenSSL module instance
     $module = new \SetaPDF_Signer_Signature_Module_OpenSsl();
     // set the sign certificate
     $module->setCertificate(file_get_contents("/Users/spiro/Sites/projects/certs/certificate.pem"));
     // set the private key for the sign certificate
     $module->setPrivateKey(array(file_get_contents("/Users/spiro/Sites/projects/certs/key.pem"), ""));
     // create a Signature appearance
     $visibleAppearance = new \SetaPDF_Signer_Signature_Appearance_Dynamic($module);
     // choose a document to get the background from and convert the art box to an xObject
     $backgroundDocument = \SetaPDF_Core_Document::loadByFilename(Yii::getAlias('@frontend/web/img/cubric-logo.pdf'));
     $backgroundXObject = $backgroundDocument->getCatalog()->getPages()->getPage(1)->toXObject($document);
     // format the date
     $visibleAppearance->setShowFormat(\SetaPDF_Signer_Signature_Appearance_Dynamic::CONFIG_DATE, 'd-m-Y H:i:s');
     // disable the distinguished name
     $visibleAppearance->setShow(\SetaPDF_Signer_Signature_Appearance_Dynamic::CONFIG_DISTINGUISHED_NAME, false);
     // set the background with 50% opacity
     $visibleAppearance->setGraphic($backgroundXObject, 0.5);
     //$visibleAppearance->setBackgroundLogo($backgroundXObject, .5);
     // sign/certify the document
     // define the appearance
     $signer->setAppearance($visibleAppearance);
     $signer->sign($module);
     if (file_exists(sprintf('/tmp/subject-%s.png', $hash))) {
     }
     //   unlink(sprintf('/tmp/subject-%s.png' , $hash));
     if (file_exists(sprintf('/tmp/researcher-%s.png', $hash))) {
     }
     //     unlink(sprintf('/tmp/researcher-%s.png' , $hash));
     return true;
 }
Ejemplo n.º 8
0
 /**
  * @return \yii\db\ActiveQuery
  */
 public function getSubjects0()
 {
     return $this->hasMany(Subject::className(), ['gp_opt_id' => 'id']);
 }
Ejemplo n.º 9
0
                            <button type="button" class="remove-item btn btn-danger btn-xs"><i class="glyphicon glyphicon-minus"></i></button>
                        </div>
                        <div class="clearfix"></div>
                    </div>
                    <div class="panel-body">
                        <?php 
    // necessary for update action.
    if (!$modelAddress->isNewRecord) {
        echo Html::activeHiddenInput($modelAddress, "[{$i}]grade_id");
    }
    ?>
                        <div class="row">
                            <div class="col-sm-6">

								<?php 
    echo $form->field($modelAddress, "[{$i}]subject_subject_id")->dropDownList(ArrayHelper::map(Subject::find()->where(['scholar_scholar_id' => $modelCustomer->subject_scholar_scholar_id])->all(), 'subject_id', 'subject_name', 'subject_term', 'scholar_scholar_id'));
    ?>
                            </div>
                            <div class="col-sm-4">
                                <?php 
    echo $form->field($modelAddress, "[{$i}]grade_raw_grade")->textInput(['maxlength' => true]);
    ?>
                            </div>
                        </div><!-- .row -->


                    </div>
                </div>
            <?php 
}
?>
Ejemplo n.º 10
0
 public function actionFinish($sig)
 {
     $screening_entry_model = ScreeningEntry::findOne(['hash' => $sig]);
     if ($screening_entry_model === null) {
         throw new \yii\web\HttpException(404, yii::t('app', 'Page cannot be found.'));
     }
     $subject_model = Subject::findOne(['id' => $screening_entry_model->subject_id]);
     Yii::$app->user->logout();
     return $this->render('finish', ['cubric_identifier' => $subject_model->cubric_id]);
 }
Ejemplo n.º 11
0
                            <button type="button" class="remove-item btn btn-danger btn-xs"><i class="glyphicon glyphicon-minus"></i></button>
                        </div>
                        <div class="clearfix"></div>
                    </div>
                    <div class="panel-body">
                        <?php 
    // necessary for update action.
    if (!$modelAddress->isNewRecord) {
        echo Html::activeHiddenInput($modelAddress, "[{$i}]id");
    }
    ?>
                        <div class="row">
                            <div class="col-sm-6">

								<?php 
    echo $form->field($modelAddress, "[{$i}]subject_subject_id")->dropDownList(ArrayHelper::map(Subject::find()->all(), 'subject_id', 'subject_name', 'scholar_scholar_id'));
    ?>
                            </div>
                            <div class="col-sm-4">
                                <?php 
    echo $form->field($modelAddress, "[{$i}]grade_raw_grade")->textInput(['maxlength' => true]);
    ?>
                            </div>
                        </div><!-- .row -->


                    </div>
                </div>
            <?php 
}
?>
Ejemplo n.º 12
0
 /**
  * @return \yii\db\ActiveQuery
  */
 public function getSubjects0()
 {
     return $this->hasMany(Subject::className(), ['scholar_school_school_id' => 'school_school_id']);
 }
Ejemplo n.º 13
0
use common\models\Subject;
use yii\helpers\ArrayHelper;
use common\models\Scholar;
/* @var $this yii\web\View */
/* @var $model common\models\Grade */
/* @var $form yii\widgets\ActiveForm */
?>

<div class="grade-form">

    <?php 
$form = ActiveForm::begin();
?>
	
	<?php 
echo $form->field($model, 'subject_subject_id')->widget(Select2::classname(), ['data' => ArrayHelper::map(Subject::find()->all(), 'subject_id', 'subject_name'), 'language' => 'en', 'options' => ['placeholder' => 'Select Scholar ID'], 'pluginOptions' => ['allowClear' => true]]);
?>

	<?php 
echo $form->field($model, 'subject_scholar_scholar_id')->widget(Select2::classname(), ['data' => ArrayHelper::map(Scholar::find()->all(), 'scholar_id', 'scholar_last_name', 'scholar_id'), 'language' => 'en', 'options' => ['placeholder' => 'Select Scholar ID'], 'pluginOptions' => ['allowClear' => true]]);
?>

    <?php 
echo $form->field($model, 'grade_school_year_start')->textInput();
?>

    <?php 
echo $form->field($model, 'grade_school_year_end')->textInput();
?>

    <?php 
Ejemplo n.º 14
0
 public function getSubjectName()
 {
     return $this->hasOne(Subject::className(), ['id' => 'subject_id'])->one()->title;
 }
Ejemplo n.º 15
0
 /**
  * @return \yii\db\ActiveQuery
  */
 public function getFaqSubjects0()
 {
     return $this->hasMany(Subject::className(), ['id' => 'faq_subject_id'])->viaTable('faq_subject', ['faq_id' => 'id']);
 }
Ejemplo n.º 16
0
<?php

use yii\helpers\Html;
use kartik\grid\GridView;
use kartik\export\ExportMenu;
use yii\helpers\ArrayHelper;
use common\models\Scholar;
use common\models\School;
use common\models\Subject;
$exportedValues = [['class' => 'kartik\\grid\\SerialColumn'], ['attribute' => 'subject_scholar_scholar_id'], ['class' => 'kartik\\grid\\EditableColumn', 'attribute' => 'subject_subject_id', 'editableOptions' => ['inputType' => '\\kartik\\select2\\Select2', 'options' => ['data' => ArrayHelper::map(Subject::find()->all(), 'subject_id', 'subject_name')]], 'value' => 'subjectSubject.subject_name'], ['class' => 'kartik\\grid\\EditableColumn', 'attribute' => 'takenStatus', 'editableOptions' => ['inputType' => 'dropDownList', 'pluginOptions' => ['allowClear' => true], 'data' => ["Not Taken" => "Not Taken", "Taken" => "Taken", "Failed" => "Failed"], 'widgetClass' => 'kartik\\select2\\Select2'], 'value' => 'subjectSubject.subject_taken_status'], ['attribute' => 'firstName', 'value' => 'scholarScholar.scholar_first_name'], ['attribute' => 'middleName', 'value' => 'scholarScholar.scholar_middle_name'], ['attribute' => 'lastName', 'value' => 'scholarScholar.scholar_last_name'], ['attribute' => 'subject_scholar_school_school_id', 'value' => 'schoolSchool.school_name'], ['class' => 'kartik\\grid\\EditableColumn', 'attribute' => 'grade_school_year_start'], ['class' => 'kartik\\grid\\EditableColumn', 'attribute' => 'grade_school_year_end'], ['class' => 'kartik\\grid\\EditableColumn', 'attribute' => 'grade_raw_grade'], ['class' => 'kartik\\grid\\EditableColumn', 'attribute' => 'grade_approval_status', 'editableOptions' => ['inputType' => 'dropDownList', 'pluginOptions' => ['allowClear' => true], 'data' => ["Not Approved" => "Not Approved", "Approved" => "Approved"], 'widgetClass' => 'kartik\\select2\\Select2']], ['attribute' => 'grade_approved_by'], ['class' => 'kartik\\grid\\ActionColumn']];
$export = ExportMenu::widget(['dataProvider' => $dataProvider, 'columns' => $exportedValues, 'exportConfig' => ['Excel5' => false, 'Excel2007' => false], 'noExportColumns' => [13], 'target' => '_blank', 'columnSelectorOptions' => ['label' => 'Columns', 'class' => 'btn btn-danger'], 'fontAwesome' => true, 'dropdownOptions' => ['label' => 'Export All', 'class' => 'btn btn-success']]);
/* @var $this yii\web\View */
/* @var $searchModel common\models\SchoolSearch */
/* @var $dataProvider yii\data\ActiveDataProvider */
$this->title = 'Grades';
$this->params['breadcrumbs'][] = $this->title;
?>
<h1><?php 
echo Html::encode($this->title);
?>
</h1>
<?php 
echo Html::a('Group By School', ['index'], ['class' => 'btn btn-success']);
echo Html::a('Show Only Grade Records', ['index2'], ['class' => 'btn btn-success']);
?>
<div class="school-index">
    <?php 
echo GridView::widget(['dataProvider' => $dataProvider, 'filterModel' => $searchModel, 'pjax' => true, 'pjaxSettings' => ['neverTimeout' => true], 'columns' => $exportedValues, 'toolbar' => [['content' => Html::a('Create Grade', ['groupcreate'], ['class' => 'btn btn-success'])], '{toggleData}', $export], 'export' => ['fontAwesome' => true, 'label' => 'Export All', 'target' => '_blank'], 'panel' => ['type' => GridView::TYPE_PRIMARY, 'heading' => 'Grade List']]);
?>
</div>
<br>
Ejemplo n.º 17
0
 public function actionFaq()
 {
     return $this->render('faq', ['list' => Faq::find()->where(['active' => 1])->orderBy('id asc')->all(), 'subjects' => Subject::find()->all()]);
 }