- Mostrar las capacidades en el grid de candidatos
- Arreglos menores y visuales. git-svn-id: https://192.168.0.254/svn/Proyectos.Incam_IntranetNueva/trunk@28 77cfc57b-8ef4-1849-9df6-4a38aa5da120
This commit is contained in:
parent
cf8101f8c8
commit
c8d5d28417
@ -237,7 +237,7 @@ tr.odd {
|
||||
}
|
||||
|
||||
tr.even {
|
||||
background-color: #eee;
|
||||
background-color: #EEE;
|
||||
}
|
||||
|
||||
tr.even.selected td {
|
||||
@ -249,15 +249,24 @@ tr.odd.selected td {
|
||||
}
|
||||
|
||||
tr:hover {
|
||||
background-color: #DDDDDD;
|
||||
background-color: #DDD;
|
||||
}
|
||||
|
||||
/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
|
||||
* DataTables cells classes
|
||||
*/
|
||||
|
||||
td.con1 { background-color: #eee; }
|
||||
td.con0 { background-color: #f7f7f7; }
|
||||
td.con0 { background-color: #F7F7F7; }
|
||||
td.con1 { background-color: #EEE; }
|
||||
|
||||
tr.selected td.con0 { background-color: #FFFCCC; }
|
||||
tr.selected td.con1 { background-color: #FFFBBB; }
|
||||
|
||||
tr:hover td.con0 { background-color: #EAEAEA; }
|
||||
tr:hover td.con1 { background-color: #E0E0E0; }
|
||||
|
||||
tr.selected:hover td.con0 { background-color: #FFFAAA; }
|
||||
tr.selected:hover td.con1 { background-color: #FFF999; }
|
||||
|
||||
|
||||
/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
|
||||
|
||||
@ -2,360 +2,394 @@
|
||||
|
||||
class CandidatoController extends Controller
|
||||
{
|
||||
/**
|
||||
* @var string the default layout for the views. Defaults to '//layouts/column2', meaning
|
||||
* using two-column layout. See 'protected/views/layouts/column2.php'.
|
||||
*/
|
||||
public $layout='//layouts/default';
|
||||
/**
|
||||
* @var string the default layout for the views. Defaults to '//layouts/column2', meaning
|
||||
* using two-column layout. See 'protected/views/layouts/column2.php'.
|
||||
*/
|
||||
public $layout='//layouts/default';
|
||||
|
||||
/**
|
||||
* @return array action filters
|
||||
*/
|
||||
public function filters()
|
||||
{
|
||||
return array(
|
||||
'accessControl', // perform access control for CRUD operations
|
||||
);
|
||||
}
|
||||
|
||||
/**
|
||||
* Specifies the access control rules.
|
||||
* This method is used by the 'accessControl' filter.
|
||||
* @return array access control rules
|
||||
*/
|
||||
public function accessRules()
|
||||
{
|
||||
/**
|
||||
* @return array action filters
|
||||
*/
|
||||
public function filters()
|
||||
{
|
||||
return array(
|
||||
array('allow', // allow authenticated user to perform 'create' and 'update' actions
|
||||
'actions'=>array('index','view','create','update','delete','admin'),
|
||||
'users'=>array('@'),
|
||||
),
|
||||
array('deny', // deny all users
|
||||
'users'=>array('*'),
|
||||
),
|
||||
'accessControl', // perform access control for CRUD operations
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Displays a particular model.
|
||||
* @param integer $id the ID of the model to be displayed
|
||||
*/
|
||||
public function actionView($id)
|
||||
{
|
||||
$this->render('view',array(
|
||||
'model'=>$this->loadModel($id),
|
||||
));
|
||||
}
|
||||
/**
|
||||
* Specifies the access control rules.
|
||||
* This method is used by the 'accessControl' filter.
|
||||
* @return array access control rules
|
||||
*/
|
||||
public function accessRules()
|
||||
{
|
||||
return array(
|
||||
array('allow', // allow authenticated user to perform 'create' and 'update' actions
|
||||
'actions'=>array('index','view','create','update','delete','admin'),
|
||||
'users'=>array('@'),
|
||||
),
|
||||
array('deny', // deny all users
|
||||
'users'=>array('*'),
|
||||
),
|
||||
);
|
||||
}
|
||||
|
||||
/**
|
||||
* Creates a new model.
|
||||
* If creation is successful, the browser will be redirected to the 'view' page.
|
||||
*/
|
||||
public function actionCreate()
|
||||
{
|
||||
Yii::import('ext.multimodelform.MultiModelForm');
|
||||
|
||||
$model = new Candidato;
|
||||
$idioma = new CandidatoIdioma();
|
||||
$titulacion = new CandidatoTitulacion();
|
||||
|
||||
$idiomasValidos = array();
|
||||
$titulacionesValidas = array();
|
||||
|
||||
// Uncomment the following line if AJAX validation is needed
|
||||
//$this->performAjaxValidation($model);
|
||||
|
||||
/*if(isset($_POST['Candidato']))
|
||||
{
|
||||
$model->attributes=$_POST['Candidato'];
|
||||
$foto=CUploadedFile::getInstance($model,'foto');
|
||||
|
||||
if ($model->validate())
|
||||
{
|
||||
$foundInvalidChild = false;
|
||||
$arrayIdiomas = array();
|
||||
if(isset($_POST['CandidatoIdioma']))
|
||||
{
|
||||
foreach ($_POST['CandidatoIdioma'] as $idioma)
|
||||
{
|
||||
$CandidatoIdioma = new CandidatoIdioma;
|
||||
$CandidatoIdioma->attributes = $idioma;
|
||||
|
||||
if ($model->id)
|
||||
$CandidatoIdioma->candidato_id = $model->id;
|
||||
|
||||
if (!$CandidatoIdioma->validate())
|
||||
$foundInvalidChild = true;
|
||||
|
||||
$arrayIdiomas[] = $CandidatoIdioma;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if (!$foundInvalidChild && $model->save()) {
|
||||
$this->guardarFoto($model->id, $foto);
|
||||
|
||||
// Guardar los idiomas
|
||||
foreach($arrayIdiomas as $CandidatoIdioma)
|
||||
{
|
||||
$CandidatoIdioma->candidato_id = $model->id;
|
||||
$CandidatoIdioma->save();
|
||||
}
|
||||
|
||||
Yii::app()->user->setFlash('success', "Candidato dado de alta correctamente.");
|
||||
$this->redirect(array('index'));
|
||||
}
|
||||
}*/
|
||||
|
||||
if (isset($_POST['Candidato'])) {
|
||||
$model->attributes=$_POST['Candidato'];
|
||||
$foto=CUploadedFile::getInstance($model,'foto');
|
||||
|
||||
$foundInvalidChild = false;
|
||||
if ($model->validate()) {
|
||||
if (!MultiModelForm::validate($model, $idiomasValidos, $idiomasBorrados))
|
||||
$foundInvalidChild = true;
|
||||
|
||||
if (!MultiModelForm::validate($model, $titulacionesValidas, $titulacionesBorradas))
|
||||
$foundInvalidChild = true;
|
||||
}
|
||||
|
||||
if (!$foundInvalidChild && $model->save() ) {
|
||||
$masterValues = array ('candidato_id'=>$model->id);
|
||||
|
||||
if (MultiModelForm::save($model, $idiomasValidos, $idiomasBorrados, $masterValues) &&
|
||||
MultiModelForm::save($model, $titulacionesValidas, $titulacionesBorradas, $masterValues))
|
||||
{
|
||||
$this->guardarFoto($model->id, $foto);
|
||||
Yii::app()->user->setFlash('success', "Candidato dado de alta correctamente.");
|
||||
$url=$this->createUrl('index', array('id' => $model->id));
|
||||
//$this->redirect(array('index'));
|
||||
$this->redirect($url);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
$this->render('create',array(
|
||||
'model'=>$model,
|
||||
'idioma'=>$idioma,
|
||||
'titulacion'=>$titulacion,
|
||||
'idiomasValidos'=>$idiomasValidos,
|
||||
'titulacionesValidas'=>$titulacionesValidas,
|
||||
/**
|
||||
* Displays a particular model.
|
||||
* @param integer $id the ID of the model to be displayed
|
||||
*/
|
||||
public function actionView($id)
|
||||
{
|
||||
$this->render('view',array(
|
||||
'model'=>$this->loadModel($id),
|
||||
));
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Updates a particular model.
|
||||
* If update is successful, the browser will be redirected to the 'view' page.
|
||||
* @param integer $id the ID of the model to be updated
|
||||
*/
|
||||
public function actionUpdate($id)
|
||||
{
|
||||
Yii::import('ext.multimodelform.MultiModelForm');
|
||||
|
||||
$model=$this->loadModel($id);
|
||||
$idioma=new CandidatoIdioma();
|
||||
$titulacion = new CandidatoTitulacion();
|
||||
|
||||
$idiomasValidos = array();
|
||||
$titulacionesValidas = array();
|
||||
/**
|
||||
* Creates a new model.
|
||||
* If creation is successful, the browser will be redirected to the 'view' page.
|
||||
*/
|
||||
public function actionCreate()
|
||||
{
|
||||
Yii::import('ext.multimodelform.MultiModelForm');
|
||||
|
||||
// Uncomment the following line if AJAX validation is needed
|
||||
//$this->performAjaxValidation($model);
|
||||
$model = new Candidato;
|
||||
$idioma = new CandidatoIdioma();
|
||||
$titulacion = new CandidatoTitulacion();
|
||||
|
||||
/*if(isset($_POST['Candidato']))
|
||||
{
|
||||
$foto=CUploadedFile::getInstance($model,'foto');
|
||||
$model->attributes=$_POST['Candidato'];
|
||||
$idiomasValidos = array();
|
||||
$titulacionesValidas = array();
|
||||
|
||||
if ($model->validate())
|
||||
{
|
||||
$foundInvalidChild = false;
|
||||
$arrayIdiomas = array();
|
||||
if(isset($_POST['CandidatoIdioma']))
|
||||
{
|
||||
foreach ($_POST['CandidatoIdioma'] as $idioma)
|
||||
{
|
||||
//$CandidatoIdioma = CandidatoIdioma::model()->findB;
|
||||
//CandidatoIdioma::model()->deleteAllByAttributes($arrayIdiomas)
|
||||
// Uncomment the following line if AJAX validation is needed
|
||||
//$this->performAjaxValidation($model);
|
||||
|
||||
$CandidatoIdioma->attributes = $idioma;
|
||||
|
||||
|
||||
if ($model->id)
|
||||
$CandidatoIdioma->candidato_id = $model->id;
|
||||
|
||||
if (!$CandidatoIdioma->validate())
|
||||
$foundInvalidChild = true;
|
||||
|
||||
$arrayIdiomas[] = $CandidatoIdioma;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if (!$foundInvalidChild && $model->save()) {
|
||||
$this->guardarFoto($model->id, $foto);
|
||||
|
||||
// Guardar los idiomas
|
||||
foreach($arrayIdiomas as $CandidatoIdioma)
|
||||
{
|
||||
$CandidatoIdioma->candidato_id = $model->id;
|
||||
$CandidatoIdioma->save();
|
||||
}
|
||||
|
||||
Yii::app()->user->setFlash('success', "Candidato actualizado correctamente.");
|
||||
//$this->redirect(array('view','id'=>$model->id));
|
||||
}
|
||||
}*/
|
||||
|
||||
if (isset($_POST['Candidato'])) {
|
||||
$model->attributes=$_POST['Candidato'];
|
||||
$foto=CUploadedFile::getInstance($model,'foto');
|
||||
/*if(isset($_POST['Candidato']))
|
||||
{
|
||||
$model->attributes=$_POST['Candidato'];
|
||||
$foto=CUploadedFile::getInstance($model,'foto');
|
||||
|
||||
if ($model->validate())
|
||||
{
|
||||
$foundInvalidChild = false;
|
||||
if ($model->validate()) {
|
||||
if (!MultiModelForm::validate($model, $idiomasValidos, $idiomasBorrados))
|
||||
$foundInvalidChild = true;
|
||||
|
||||
if (!MultiModelForm::validate($model, $titulacionesValidas, $titulacionesBorradas))
|
||||
$foundInvalidChild = true;
|
||||
}
|
||||
|
||||
if (!$foundInvalidChild && $model->save() ) {
|
||||
$masterValues = array ('candidato_id'=>$model->id);
|
||||
|
||||
if (MultiModelForm::save($model, $idiomasValidos, $idiomasBorrados, $masterValues) &&
|
||||
MultiModelForm::save($model, $titulacionesValidas, $titulacionesBorradas, $masterValues))
|
||||
$arrayIdiomas = array();
|
||||
if(isset($_POST['CandidatoIdioma']))
|
||||
{
|
||||
foreach ($_POST['CandidatoIdioma'] as $idioma)
|
||||
{
|
||||
$this->guardarFoto($model->id, $foto);
|
||||
Yii::app()->user->setFlash('success', "Candidato actualizado correctamente.");
|
||||
$this->redirect(array('index'));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/*if(isset($_POST['Candidato'])) {
|
||||
$CandidatoIdioma = new CandidatoIdioma;
|
||||
$CandidatoIdioma->attributes = $idioma;
|
||||
|
||||
//the value for the foreign key 'candidato_id'
|
||||
if ($model->id)
|
||||
$CandidatoIdioma->candidato_id = $model->id;
|
||||
|
||||
if (!$CandidatoIdioma->validate())
|
||||
$foundInvalidChild = true;
|
||||
|
||||
$arrayIdiomas[] = $CandidatoIdioma;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if (!$foundInvalidChild && $model->save()) {
|
||||
$this->guardarFoto($model->id, $foto);
|
||||
|
||||
// Guardar los idiomas
|
||||
foreach($arrayIdiomas as $CandidatoIdioma)
|
||||
{
|
||||
$CandidatoIdioma->candidato_id = $model->id;
|
||||
$CandidatoIdioma->save();
|
||||
}
|
||||
|
||||
Yii::app()->user->setFlash('success', "Candidato dado de alta correctamente.");
|
||||
$this->redirect(array('index'));
|
||||
}
|
||||
}*/
|
||||
|
||||
if (isset($_POST['Candidato'])) {
|
||||
$model->attributes=$_POST['Candidato'];
|
||||
$foto=CUploadedFile::getInstance($model,'foto');
|
||||
|
||||
$foundInvalidChild = false;
|
||||
if ($model->validate()) {
|
||||
if (!MultiModelForm::validate($model, $idiomasValidos, $idiomasBorrados))
|
||||
$foundInvalidChild = true;
|
||||
|
||||
if (!MultiModelForm::validate($model, $titulacionesValidas, $titulacionesBorradas))
|
||||
$foundInvalidChild = true;
|
||||
}
|
||||
|
||||
if (!$foundInvalidChild && $model->save() ) {
|
||||
$masterValues = array ('candidato_id'=>$model->id);
|
||||
|
||||
//Save the master model after saving valid members
|
||||
if (MultiModelForm::save($idioma, $validatedIdiomas, $deleteIdiomas, $masterValues) && $model->save() ) {
|
||||
if (MultiModelForm::save($model, $idiomasValidos, $idiomasBorrados, $masterValues) &&
|
||||
MultiModelForm::save($model, $titulacionesValidas, $titulacionesBorradas, $masterValues))
|
||||
{
|
||||
$this->guardarFoto($model->id, $foto);
|
||||
Yii::app()->user->setFlash('success', "Candidato actualizado correctamente.");
|
||||
//$this->redirect(array('view','id'=>$model->id));
|
||||
Yii::app()->user->setFlash('success', "Candidato dado de alta correctamente.");
|
||||
$url=$this->createUrl('index', array('id' => $model->id));
|
||||
//$this->redirect(array('index'));
|
||||
$this->redirect($url);
|
||||
}
|
||||
}*/
|
||||
|
||||
$this->render('update',array(
|
||||
'model'=>$model,
|
||||
'idioma'=>$idioma,
|
||||
'titulacion'=>$titulacion,
|
||||
'idiomasValidos'=>$idiomasValidos,
|
||||
'titulacionesValidas'=>$titulacionesValidas,
|
||||
));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Deletes a particular model.
|
||||
* If deletion is successful, the browser will be redirected to the 'admin' page.
|
||||
* @param integer $id the ID of the model to be deleted
|
||||
*/
|
||||
public function actionDelete($id)
|
||||
{
|
||||
if(Yii::app()->request->isPostRequest)
|
||||
{
|
||||
// we only allow deletion via POST request
|
||||
$this->loadModel($id)->delete();
|
||||
$this->borrarFoto($id);
|
||||
$this->render('create',array(
|
||||
'model'=>$model,
|
||||
'idioma'=>$idioma,
|
||||
'titulacion'=>$titulacion,
|
||||
'idiomasValidos'=>$idiomasValidos,
|
||||
'titulacionesValidas'=>$titulacionesValidas,
|
||||
));
|
||||
}
|
||||
|
||||
// if AJAX request (triggered by deletion via admin grid view), we should not redirect the browser
|
||||
if(!isset($_GET['ajax']))
|
||||
$this->redirect(isset($_POST['returnUrl']) ? $_POST['returnUrl'] : array('index'));
|
||||
}
|
||||
else
|
||||
throw new CHttpException(400,'Invalid request. Please do not repeat this request again.');
|
||||
}
|
||||
/**
|
||||
* Updates a particular model.
|
||||
* If update is successful, the browser will be redirected to the 'view' page.
|
||||
* @param integer $id the ID of the model to be updated
|
||||
*/
|
||||
public function actionUpdate($id)
|
||||
{
|
||||
Yii::import('ext.multimodelform.MultiModelForm');
|
||||
|
||||
/**
|
||||
* Lists all models.
|
||||
*
|
||||
*/
|
||||
public function actionIndex()
|
||||
{
|
||||
$model=$this->loadModel($id);
|
||||
$idioma=new CandidatoIdioma();
|
||||
$titulacion = new CandidatoTitulacion();
|
||||
|
||||
$idiomasValidos = array();
|
||||
$titulacionesValidas = array();
|
||||
|
||||
// Uncomment the following line if AJAX validation is needed
|
||||
//$this->performAjaxValidation($model);
|
||||
|
||||
/*if(isset($_POST['Candidato']))
|
||||
{
|
||||
$foto=CUploadedFile::getInstance($model,'foto');
|
||||
$model->attributes=$_POST['Candidato'];
|
||||
|
||||
if ($model->validate())
|
||||
{
|
||||
$foundInvalidChild = false;
|
||||
$arrayIdiomas = array();
|
||||
if(isset($_POST['CandidatoIdioma']))
|
||||
{
|
||||
foreach ($_POST['CandidatoIdioma'] as $idioma)
|
||||
{
|
||||
//$CandidatoIdioma = CandidatoIdioma::model()->findB;
|
||||
//CandidatoIdioma::model()->deleteAllByAttributes($arrayIdiomas)
|
||||
|
||||
$CandidatoIdioma->attributes = $idioma;
|
||||
|
||||
|
||||
if ($model->id)
|
||||
$CandidatoIdioma->candidato_id = $model->id;
|
||||
|
||||
if (!$CandidatoIdioma->validate())
|
||||
$foundInvalidChild = true;
|
||||
|
||||
$arrayIdiomas[] = $CandidatoIdioma;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if (!$foundInvalidChild && $model->save()) {
|
||||
$this->guardarFoto($model->id, $foto);
|
||||
|
||||
// Guardar los idiomas
|
||||
foreach($arrayIdiomas as $CandidatoIdioma)
|
||||
{
|
||||
$CandidatoIdioma->candidato_id = $model->id;
|
||||
$CandidatoIdioma->save();
|
||||
}
|
||||
|
||||
Yii::app()->user->setFlash('success', "Candidato actualizado correctamente.");
|
||||
//$this->redirect(array('view','id'=>$model->id));
|
||||
}
|
||||
}*/
|
||||
|
||||
if (isset($_POST['Candidato'])) {
|
||||
$model->attributes=$_POST['Candidato'];
|
||||
$foto=CUploadedFile::getInstance($model,'foto');
|
||||
|
||||
$foundInvalidChild = false;
|
||||
if ($model->validate()) {
|
||||
if (!MultiModelForm::validate($model, $idiomasValidos, $idiomasBorrados))
|
||||
$foundInvalidChild = true;
|
||||
|
||||
if (!MultiModelForm::validate($model, $titulacionesValidas, $titulacionesBorradas))
|
||||
$foundInvalidChild = true;
|
||||
}
|
||||
|
||||
if (!$foundInvalidChild && $model->save() ) {
|
||||
$masterValues = array ('candidato_id'=>$model->id);
|
||||
|
||||
if (MultiModelForm::save($model, $idiomasValidos, $idiomasBorrados, $masterValues) &&
|
||||
MultiModelForm::save($model, $titulacionesValidas, $titulacionesBorradas, $masterValues))
|
||||
{
|
||||
$this->guardarFoto($model->id, $foto);
|
||||
Yii::app()->user->setFlash('success', "Candidato actualizado correctamente.");
|
||||
$this->redirect(array('index'));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/*if(isset($_POST['Candidato'])) {
|
||||
|
||||
//the value for the foreign key 'candidato_id'
|
||||
$masterValues = array ('candidato_id'=>$model->id);
|
||||
|
||||
//Save the master model after saving valid members
|
||||
if (MultiModelForm::save($idioma, $validatedIdiomas, $deleteIdiomas, $masterValues) && $model->save() ) {
|
||||
$this->guardarFoto($model->id, $foto);
|
||||
Yii::app()->user->setFlash('success', "Candidato actualizado correctamente.");
|
||||
//$this->redirect(array('view','id'=>$model->id));
|
||||
}
|
||||
}*/
|
||||
|
||||
$this->render('update',array(
|
||||
'model'=>$model,
|
||||
'idioma'=>$idioma,
|
||||
'titulacion'=>$titulacion,
|
||||
'idiomasValidos'=>$idiomasValidos,
|
||||
'titulacionesValidas'=>$titulacionesValidas,
|
||||
));
|
||||
}
|
||||
|
||||
/**
|
||||
* Deletes a particular model.
|
||||
* If deletion is successful, the browser will be redirected to the 'admin' page.
|
||||
* @param integer $id the ID of the model to be deleted
|
||||
*/
|
||||
public function actionDelete($id)
|
||||
{
|
||||
if(Yii::app()->request->isPostRequest)
|
||||
{
|
||||
// we only allow deletion via POST request
|
||||
$this->loadModel($id)->delete();
|
||||
$this->borrarFoto($id);
|
||||
|
||||
// if AJAX request (triggered by deletion via admin grid view), we should not redirect the browser
|
||||
if(!isset($_GET['ajax']))
|
||||
$this->redirect(isset($_POST['returnUrl']) ? $_POST['returnUrl'] : array('index'));
|
||||
}
|
||||
else
|
||||
throw new CHttpException(400,'Invalid request. Please do not repeat this request again.');
|
||||
}
|
||||
|
||||
/**
|
||||
* Lists all models.
|
||||
*
|
||||
*/
|
||||
public function actionIndex()
|
||||
{
|
||||
$model=new Candidato('search');
|
||||
$model->unsetAttributes(); // clear any default values
|
||||
|
||||
if(isset($_GET['Candidato']))
|
||||
$model->attributes=$_GET['Candidato'];
|
||||
|
||||
$this->render('index',array(
|
||||
'model'=>$model));
|
||||
}
|
||||
|
||||
/**
|
||||
* Manages all models.
|
||||
*/
|
||||
public function actionAdmin()
|
||||
{
|
||||
$model=new Candidato('search');
|
||||
$model->unsetAttributes(); // clear any default values
|
||||
|
||||
if(isset($_GET['Candidato']))
|
||||
$model->attributes=$_GET['Candidato'];
|
||||
|
||||
$this->render('index',array(
|
||||
'model'=>$model));
|
||||
}
|
||||
$this->render('admin',array(
|
||||
'model'=>$model,
|
||||
));
|
||||
}
|
||||
|
||||
/**
|
||||
* Manages all models.
|
||||
*/
|
||||
public function actionAdmin()
|
||||
{
|
||||
$model=new Candidato('search');
|
||||
$model->unsetAttributes(); // clear any default values
|
||||
if(isset($_GET['Candidato']))
|
||||
$model->attributes=$_GET['Candidato'];
|
||||
/**
|
||||
* 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=Candidato::model()->findByPk($id);
|
||||
if($model===null)
|
||||
throw new CHttpException(404,'The requested page does not exist.');
|
||||
|
||||
$this->render('admin',array(
|
||||
'model'=>$model,
|
||||
));
|
||||
}
|
||||
$model->foto = $this->buscarFoto($id);
|
||||
return $model;
|
||||
}
|
||||
|
||||
/**
|
||||
* 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=Candidato::model()->findByPk($id);
|
||||
if($model===null)
|
||||
throw new CHttpException(404,'The requested page does not exist.');
|
||||
|
||||
$model->foto = $this->buscarFoto($id);
|
||||
return $model;
|
||||
}
|
||||
|
||||
/**
|
||||
* Performs the AJAX validation.
|
||||
* @param CModel the model to be validated
|
||||
*/
|
||||
protected function performAjaxValidation($model)
|
||||
{
|
||||
if(isset($_POST['ajax']) && $_POST['ajax']==='candidato-form')
|
||||
{
|
||||
echo CActiveForm::validate($model);
|
||||
Yii::app()->end();
|
||||
}
|
||||
}
|
||||
|
||||
private function guardarFoto($id, $foto) {
|
||||
if (!is_null($foto)) {
|
||||
$path = Yii::app()->basePath.'/../fotos/';
|
||||
$fichero = $id.'.jpg';
|
||||
$foto->saveAs($path.$fichero);
|
||||
/**
|
||||
* Performs the AJAX validation.
|
||||
* @param CModel the model to be validated
|
||||
*/
|
||||
protected function performAjaxValidation($model)
|
||||
{
|
||||
if(isset($_POST['ajax']) && $_POST['ajax']==='candidato-form')
|
||||
{
|
||||
echo CActiveForm::validate($model);
|
||||
Yii::app()->end();
|
||||
}
|
||||
}
|
||||
|
||||
private function borrarFoto($id) {
|
||||
}
|
||||
|
||||
private function guardarFoto($id, $foto) {
|
||||
if (!is_null($foto)) {
|
||||
$path = Yii::app()->basePath.'/../fotos/';
|
||||
$fichero = $id.'.jpg';
|
||||
if (file_exists($path.$fichero))
|
||||
unlink($path.$fichero);
|
||||
$foto->saveAs($path.$fichero);
|
||||
}
|
||||
|
||||
private function buscarFoto($id) {
|
||||
$path = Yii::app()->basePath.'/../fotos/';
|
||||
$fichero = $id.'.jpg';
|
||||
$url = Yii::app()->request->baseUrl.'/fotos/';
|
||||
return file_exists($path.$fichero) ? $url.$fichero : $url.'no_avatar.png';
|
||||
}
|
||||
|
||||
private function borrarFoto($id) {
|
||||
$path = Yii::app()->basePath.'/../fotos/';
|
||||
$fichero = $id.'.jpg';
|
||||
if (file_exists($path.$fichero))
|
||||
unlink($path.$fichero);
|
||||
}
|
||||
|
||||
private function buscarFoto($id) {
|
||||
$path = Yii::app()->basePath.'/../fotos/';
|
||||
$fichero = $id.'.jpg';
|
||||
$url = Yii::app()->request->baseUrl.'/fotos/';
|
||||
return file_exists($path.$fichero) ? $url.$fichero : $url.'no_avatar.png';
|
||||
}
|
||||
|
||||
/**
|
||||
* Calcula el valor para la columna 'Capacidad técnica' del grid
|
||||
* @param $data datos de la fila actual
|
||||
* @param $row índice de la fila actual
|
||||
*/
|
||||
protected function gridDataColumnCapacidadTecnica($data, $row)
|
||||
{
|
||||
$lista = array();
|
||||
foreach ($data->capacidades as $capacidad) {
|
||||
$perfil = $capacidad->perfilTecnico->descripcion;
|
||||
$meses = '(' . $capacidad->meses_perfil_tecnico . ' ' . Yii::t('intranet', 'meses') . ')';
|
||||
$lista[] = $perfil . (($meses != '()') ? $meses : '');
|
||||
}
|
||||
$value = implode('<br/>', $lista);
|
||||
return ($value == NULL) ? CHtml::tag("span", array("class"=>"nodata"), Yii::t('intranet', 'Sin capacidades')) : $value;
|
||||
}
|
||||
|
||||
/**
|
||||
* Calcula el valor para la columna 'Capacidad funcional' del grid
|
||||
* @param $data datos de la fila actual
|
||||
* @param $row índice de la fila actual
|
||||
*/
|
||||
protected function gridDataColumnCapacidadFuncional($data, $row)
|
||||
{
|
||||
$lista = array();
|
||||
/*foreach ($data->capacidades as $capacidad) {
|
||||
$perfil = $capacidad->capacidadesFuncionales->perfil;
|
||||
$lista[] = $perfil;
|
||||
}*/
|
||||
$value = implode('<br/>', $lista);
|
||||
return ($value == NULL) ? CHtml::tag("span", array("class"=>"nodata"), Yii::t('intranet', 'Sin capacidades')) : $value;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@ -6,12 +6,12 @@ class m120130_120027_tbl_perfiles extends CDbMigration
|
||||
{
|
||||
$this->createTable('tbl_perfiles_tecnicos', array(
|
||||
'id' => 'pk',
|
||||
'perfil' => 'string NOT NULL',
|
||||
'descripcion' => 'string NOT NULL',
|
||||
));
|
||||
|
||||
$this->createTable('tbl_perfiles_funcionales', array(
|
||||
'id' => 'pk',
|
||||
'perfil' => 'string NOT NULL',
|
||||
'descripcion' => 'string NOT NULL',
|
||||
));
|
||||
|
||||
}
|
||||
|
||||
@ -6,7 +6,7 @@ class m120130_120742_tbl_tecnologias extends CDbMigration
|
||||
{
|
||||
$this->createTable('tbl_tecnologias', array(
|
||||
'id' => 'pk',
|
||||
'tecnologia' => 'string NOT NULL',
|
||||
'descripcion' => 'string NOT NULL',
|
||||
));
|
||||
}
|
||||
|
||||
|
||||
@ -6,7 +6,7 @@ class m120130_120838_tbl_idiomas extends CDbMigration
|
||||
{
|
||||
$this->createTable('tbl_idiomas', array(
|
||||
'id' => 'pk',
|
||||
'idioma' => 'string NOT NULL',
|
||||
'descripcion' => 'string NOT NULL',
|
||||
));
|
||||
}
|
||||
|
||||
|
||||
@ -6,7 +6,7 @@ class m120221_104416_tbl_titulaciones extends CDbMigration
|
||||
{
|
||||
$this->createTable('tbl_titulaciones', array(
|
||||
'id' => 'pk',
|
||||
'titulacion' => 'string NOT NULL',
|
||||
'descripcion' => 'string NOT NULL',
|
||||
));
|
||||
}
|
||||
|
||||
|
||||
@ -30,13 +30,27 @@ class Candidato extends CActiveRecord
|
||||
const GENERO_HOMBRE=0;
|
||||
const GENERO_MUJER=1;
|
||||
|
||||
private $_nombreCompleto;
|
||||
public $foto;
|
||||
|
||||
|
||||
public function getNombreApellidos() {
|
||||
return $this->nombre . ' ' . $this->apellidos;
|
||||
|
||||
/**
|
||||
* Devuelve el nombre completo de un candidato.
|
||||
* @return string $nombreCompleto
|
||||
*/
|
||||
public function getNombreCompleto()
|
||||
{
|
||||
if(isset($this->_nombreCompleto)) {
|
||||
return $this->_nombreCompleto;
|
||||
}
|
||||
|
||||
$this->_nombreCompleto = $this->nombre . ' ' . $this->apellidos;
|
||||
return $this->_nombreCompleto;
|
||||
}
|
||||
|
||||
public function setNombreCompleto($value)
|
||||
{
|
||||
$this->_nombreCompleto = $value;
|
||||
}
|
||||
|
||||
/**
|
||||
* Devuelve la lista de géneros de un candidato.
|
||||
@ -84,7 +98,7 @@ class Candidato extends CActiveRecord
|
||||
*/
|
||||
public function tableName()
|
||||
{
|
||||
return 'tbl_candidatos';
|
||||
return 'tbl_candidatos';
|
||||
}
|
||||
|
||||
/**
|
||||
@ -92,26 +106,29 @@ class Candidato extends CActiveRecord
|
||||
*/
|
||||
public function rules()
|
||||
{
|
||||
// NOTE: you should only define rules for those attributes that
|
||||
// will receive user inputs.
|
||||
return array(
|
||||
array('nombre, apellidos', 'required'),
|
||||
array('email', 'unique'),
|
||||
array('email', 'email'),
|
||||
array('foto', 'file',
|
||||
'types'=>'jpg',
|
||||
'maxSize'=>1024 * 1024 * 1, // 1MB como máximo
|
||||
'tooLarge'=>'The file was larger than 1MB. Please upload a smaller file.',
|
||||
'wrongType'=>'Please upload only images in the format JPG.',
|
||||
'tooMany'=>'You can upload only 1 user photo.',
|
||||
'allowEmpty'=>'true',
|
||||
),
|
||||
array('dni, estado, nombre, apellidos, email, telefono_fijo, telefono_movil, sexo, lugar_nacimiento, localidad', 'length', 'max'=>255),
|
||||
array('fecha_nacimiento', 'safe'),
|
||||
// The following rule is used by search().
|
||||
// Please remove those attributes that should not be searched.
|
||||
array('id, estado, dni, nombreApellidos, nombre, apellidos, email, telefono_fijo, telefono_movil, sexo, fecha_nacimiento, lugar_nacimiento, localidad', 'safe', 'on'=>'search'),
|
||||
);
|
||||
// NOTE: you should only define rules for those attributes that
|
||||
// will receive user inputs.
|
||||
return array(
|
||||
array('nombre, apellidos', 'required'),
|
||||
array('email', 'unique'),
|
||||
array('email', 'email'),
|
||||
array('foto', 'file',
|
||||
'types'=>'jpg',
|
||||
'maxSize'=>1024 * 1024 * 1, // 1MB como máximo
|
||||
'tooLarge'=>'The file was larger than 1MB. Please upload a smaller file.',
|
||||
'wrongType'=>'Please upload only images in the format JPG.',
|
||||
'tooMany'=>'You can upload only 1 user photo.',
|
||||
'allowEmpty'=>'true',
|
||||
),
|
||||
array('dni, estado, nombre, apellidos, email, telefono_fijo, telefono_movil, sexo, lugar_nacimiento, localidad', 'length', 'max'=>255),
|
||||
array('fecha_nacimiento', 'safe'),
|
||||
// The following rule is used by search().
|
||||
// Please remove those attributes that should not be searched.
|
||||
array('id, estado, dni, nombre, apellidos, email, telefono_fijo,
|
||||
telefono_movil, sexo, fecha_nacimiento, lugar_nacimiento, localidad,
|
||||
nombreCompleto, capacidades.',
|
||||
'safe', 'on'=>'search'),
|
||||
);
|
||||
}
|
||||
|
||||
/**
|
||||
@ -122,11 +139,12 @@ class Candidato extends CActiveRecord
|
||||
// NOTE: you may need to adjust the relation name and the related
|
||||
// class name for the relations automatically generated below.
|
||||
return array(
|
||||
'capacidades' => array(self::HAS_MANY, 'CandidatoCapacidad', 'candidato_id'),
|
||||
'idiomas' => array(self::HAS_MANY, 'CandidatoIdioma', 'candidato_id'),
|
||||
'idiomasCount' => array(self::STAT, 'CandidatoIdioma', 'candidato_id'),
|
||||
'titulaciones' => array(self::HAS_MANY, 'CandidatoTitulacion', 'candidato_id'),
|
||||
'titulacionesCount' => array(self::STAT, 'CandidatoTitulacion', 'candidato_id'),
|
||||
'capacidades' => array(self::HAS_MANY, 'CandidatoCapacidad', 'candidato_id'),
|
||||
'capacidadesCount' => array(self::STAT, 'CandidatoCapacidad', 'candidato_id'),
|
||||
'idiomas' => array(self::HAS_MANY, 'CandidatoIdioma', 'candidato_id'),
|
||||
'idiomasCount' => array(self::STAT, 'CandidatoIdioma', 'candidato_id'),
|
||||
'titulaciones' => array(self::HAS_MANY, 'CandidatoTitulacion', 'candidato_id'),
|
||||
'titulacionesCount' => array(self::STAT, 'CandidatoTitulacion', 'candidato_id'),
|
||||
);
|
||||
}
|
||||
|
||||
@ -151,6 +169,8 @@ class Candidato extends CActiveRecord
|
||||
'lugar_nacimiento' => 'Lugar de nacimiento',
|
||||
'localidad' => 'Localidad',
|
||||
'fecha_modificacion' => 'Último cambio',
|
||||
|
||||
'nombreCompleto' => 'Candidato',
|
||||
);
|
||||
}
|
||||
|
||||
@ -164,6 +184,9 @@ class Candidato extends CActiveRecord
|
||||
// should not be searched.
|
||||
|
||||
$criteria=new CDbCriteria;
|
||||
|
||||
$criteria->with = array('capacidades');
|
||||
$criteria->together = true;
|
||||
|
||||
$criteria->compare('id',$this->id);
|
||||
$criteria->compare('estado',$this->estado,true);
|
||||
@ -177,14 +200,14 @@ class Candidato extends CActiveRecord
|
||||
$criteria->compare('fecha_nacimiento',$this->fecha_nacimiento,true);
|
||||
$criteria->compare('lugar_nacimiento',$this->lugar_nacimiento,true);
|
||||
|
||||
//$criteria->compare('nombreApellidos',$this->nombreApellidos,true);
|
||||
$criteria->addSearchCondition('concat(nombre, " ", apellidos)', $this->nombreCompleto);
|
||||
|
||||
$sort = new CSort;
|
||||
$sort->defaultOrder = 'nombre, apellidos ASC';
|
||||
|
||||
return new CActiveDataProvider($this, array(
|
||||
'criteria' => $criteria,
|
||||
'sort' => $sort,
|
||||
'criteria' => $criteria,
|
||||
'sort' => $sort,
|
||||
));
|
||||
|
||||
}
|
||||
|
||||
@ -13,8 +13,8 @@
|
||||
* The followings are the available model relations:
|
||||
* @property PerfilesTecnicos $perfilTecnico
|
||||
* @property Candidatos $candidato
|
||||
* @property CandidatosCapacidadesFuncionales[] $capacidadesFuncionales
|
||||
* @property CandidatosCapacidadesTecnologias[] $tecnologias
|
||||
* @property CandidatoCapacidadFuncional[] $capacidadesFuncionales
|
||||
* @property CandidatoCapacidadTecnologia[] $tecnologias
|
||||
*/
|
||||
class CandidatoCapacidad extends CActiveRecord
|
||||
{
|
||||
@ -61,10 +61,10 @@ class CandidatoCapacidad extends CActiveRecord
|
||||
// NOTE: you may need to adjust the relation name and the related
|
||||
// class name for the relations automatically generated below.
|
||||
return array(
|
||||
'perfilTecnico' => array(self::BELONGS_TO, 'PerfilesTecnicos', 'perfil_tecnico_id'),
|
||||
'candidato' => array(self::BELONGS_TO, 'Candidatos', 'candidato_id'),
|
||||
'capacidadesFuncionales' => array(self::HAS_MANY, 'CandidatosCapacidadesFuncionales', 'capacidad_id'),
|
||||
'tecnologias' => array(self::HAS_MANY, 'CandidatosCapacidadesTecnologias', 'capacidad_id'),
|
||||
'perfilTecnico' => array(self::BELONGS_TO, 'PerfilTecnico', 'perfil_tecnico_id'),
|
||||
'candidato' => array(self::BELONGS_TO, 'Candidato', 'candidato_id'),
|
||||
'capacidadesFuncionales' => array(self::HAS_MANY, 'CandidatoCapacidadFuncional', 'capacidad_id'),
|
||||
'tecnologias' => array(self::HAS_MANY, 'CandidatoCapacidadTecnologia', 'capacidad_id'),
|
||||
);
|
||||
}
|
||||
|
||||
|
||||
@ -66,8 +66,8 @@ class Idioma extends CActiveRecord
|
||||
return array(
|
||||
'id' => 'ID',
|
||||
'idioma' => 'Idioma',
|
||||
'conversacion' => 'Conversacion',
|
||||
'lectura_traduccion' => 'Lectura Traduccion',
|
||||
'conversacion' => 'Conversación',
|
||||
'lectura_traduccion' => 'Lectura / Traducción',
|
||||
);
|
||||
}
|
||||
|
||||
|
||||
@ -5,7 +5,8 @@
|
||||
*
|
||||
* The followings are the available columns in table 'tbl_perfiles_funcionales':
|
||||
* @property integer $id
|
||||
* @property string $perfil
|
||||
* @property string $descripcion
|
||||
*
|
||||
*/
|
||||
class PerfilFuncional extends CActiveRecord
|
||||
{
|
||||
@ -35,11 +36,11 @@ class PerfilFuncional extends CActiveRecord
|
||||
// NOTE: you should only define rules for those attributes that
|
||||
// will receive user inputs.
|
||||
return array(
|
||||
array('perfil', 'required'),
|
||||
array('perfil', 'length', 'max'=>255),
|
||||
array('descripcion', 'required'),
|
||||
array('descripcion', 'length', 'max'=>255),
|
||||
// The following rule is used by search().
|
||||
// Please remove those attributes that should not be searched.
|
||||
array('id, perfil', 'safe', 'on'=>'search'),
|
||||
array('id, descripcion', 'safe', 'on'=>'search'),
|
||||
);
|
||||
}
|
||||
|
||||
@ -51,6 +52,7 @@ class PerfilFuncional extends CActiveRecord
|
||||
// NOTE: you may need to adjust the relation name and the related
|
||||
// class name for the relations automatically generated below.
|
||||
return array(
|
||||
//'candidatosCapacidadesFuncionales' => array(self::HAS_MANY, 'CandidatosCapacidadesFuncionales', 'funcional_id'),
|
||||
);
|
||||
}
|
||||
|
||||
@ -61,7 +63,7 @@ class PerfilFuncional extends CActiveRecord
|
||||
{
|
||||
return array(
|
||||
'id' => 'ID',
|
||||
'perfil' => 'Perfil',
|
||||
'descripcion' => 'Perfil funcional',
|
||||
);
|
||||
}
|
||||
|
||||
@ -77,7 +79,7 @@ class PerfilFuncional extends CActiveRecord
|
||||
$criteria=new CDbCriteria;
|
||||
|
||||
$criteria->compare('id',$this->id);
|
||||
$criteria->compare('perfil',$this->perfil,true);
|
||||
$criteria->compare('descripcion',$this->descripcion,true);
|
||||
|
||||
return new CActiveDataProvider($this, array(
|
||||
'criteria'=>$criteria,
|
||||
|
||||
@ -5,7 +5,8 @@
|
||||
*
|
||||
* The followings are the available columns in table 'tbl_perfiles_tecnicos':
|
||||
* @property integer $id
|
||||
* @property string $perfil
|
||||
* @property string $descripcion
|
||||
*
|
||||
*/
|
||||
class PerfilTecnico extends CActiveRecord
|
||||
{
|
||||
@ -35,11 +36,11 @@ class PerfilTecnico extends CActiveRecord
|
||||
// NOTE: you should only define rules for those attributes that
|
||||
// will receive user inputs.
|
||||
return array(
|
||||
array('perfil', 'required'),
|
||||
array('perfil', 'length', 'max'=>255),
|
||||
array('descripcion', 'required'),
|
||||
array('descripcion', 'length', 'max'=>255),
|
||||
// The following rule is used by search().
|
||||
// Please remove those attributes that should not be searched.
|
||||
array('id, perfil', 'safe', 'on'=>'search'),
|
||||
array('id, descripcion', 'safe', 'on'=>'search'),
|
||||
);
|
||||
}
|
||||
|
||||
@ -51,6 +52,7 @@ class PerfilTecnico extends CActiveRecord
|
||||
// NOTE: you may need to adjust the relation name and the related
|
||||
// class name for the relations automatically generated below.
|
||||
return array(
|
||||
//'candidatosCapacidades' => array(self::HAS_MANY, 'CandidatosCapacidades', 'perfil_tecnico_id'),
|
||||
);
|
||||
}
|
||||
|
||||
@ -61,7 +63,7 @@ class PerfilTecnico extends CActiveRecord
|
||||
{
|
||||
return array(
|
||||
'id' => 'ID',
|
||||
'perfil' => 'Perfil',
|
||||
'descripcion' => 'Perfil técnico',
|
||||
);
|
||||
}
|
||||
|
||||
@ -77,7 +79,7 @@ class PerfilTecnico extends CActiveRecord
|
||||
$criteria=new CDbCriteria;
|
||||
|
||||
$criteria->compare('id',$this->id);
|
||||
$criteria->compare('perfil',$this->perfil,true);
|
||||
$criteria->compare('descripcion',$this->descripcion,true);
|
||||
|
||||
return new CActiveDataProvider($this, array(
|
||||
'criteria'=>$criteria,
|
||||
|
||||
@ -5,7 +5,7 @@
|
||||
*
|
||||
* The followings are the available columns in table 'tbl_tecnologias':
|
||||
* @property integer $id
|
||||
* @property string $tecnologia
|
||||
* @property string $descripcion
|
||||
*
|
||||
* The followings are the available model relations:
|
||||
* @property CandidatosCapacidadesTecnologias[] $candidatosCapacidadesTecnologiases
|
||||
@ -38,11 +38,11 @@ class Tecnologia extends CActiveRecord
|
||||
// NOTE: you should only define rules for those attributes that
|
||||
// will receive user inputs.
|
||||
return array(
|
||||
array('tecnologia', 'required'),
|
||||
array('tecnologia', 'length', 'max'=>255),
|
||||
array('descripcion', 'required'),
|
||||
array('descripcion', 'length', 'max'=>255),
|
||||
// The following rule is used by search().
|
||||
// Please remove those attributes that should not be searched.
|
||||
array('id, tecnologia', 'safe', 'on'=>'search'),
|
||||
array('id, descripcion', 'safe', 'on'=>'search'),
|
||||
);
|
||||
}
|
||||
|
||||
@ -54,7 +54,7 @@ class Tecnologia extends CActiveRecord
|
||||
// NOTE: you may need to adjust the relation name and the related
|
||||
// class name for the relations automatically generated below.
|
||||
return array(
|
||||
'candidatosCapacidadesTecnologiases' => array(self::HAS_MANY, 'CandidatosCapacidadesTecnologias', 'id_tecnologia'),
|
||||
//'candidatosCapacidadesTecnologiases' => array(self::HAS_MANY, 'CandidatoCapacidadTecnologia', 'id_tecnologia'),
|
||||
);
|
||||
}
|
||||
|
||||
@ -65,7 +65,7 @@ class Tecnologia extends CActiveRecord
|
||||
{
|
||||
return array(
|
||||
'id' => 'ID',
|
||||
'tecnologia' => 'Tecnologia',
|
||||
'descripcion' => 'Tecnologia',
|
||||
);
|
||||
}
|
||||
|
||||
@ -81,7 +81,7 @@ class Tecnologia extends CActiveRecord
|
||||
$criteria=new CDbCriteria;
|
||||
|
||||
$criteria->compare('id',$this->id);
|
||||
$criteria->compare('tecnologia',$this->tecnologia,true);
|
||||
$criteria->compare('descripcion',$this->descripcion,true);
|
||||
|
||||
return new CActiveDataProvider($this, array(
|
||||
'criteria'=>$criteria,
|
||||
|
||||
@ -5,7 +5,7 @@
|
||||
*
|
||||
* The followings are the available columns in table 'tbl_titulaciones':
|
||||
* @property integer $id
|
||||
* @property string $titulacion
|
||||
* @property string $descripcion
|
||||
*/
|
||||
class Titulacion extends CActiveRecord
|
||||
{
|
||||
@ -35,11 +35,11 @@ class Titulacion extends CActiveRecord
|
||||
// NOTE: you should only define rules for those attributes that
|
||||
// will receive user inputs.
|
||||
return array(
|
||||
array('titulacion', 'required'),
|
||||
array('titulacion', 'length', 'max'=>255),
|
||||
array('descripcion', 'required'),
|
||||
array('descripcion', 'length', 'max'=>255),
|
||||
// The following rule is used by search().
|
||||
// Please remove those attributes that should not be searched.
|
||||
array('id, titulacion', 'safe', 'on'=>'search'),
|
||||
array('id, descripcion', 'safe', 'on'=>'search'),
|
||||
);
|
||||
}
|
||||
|
||||
@ -61,7 +61,7 @@ class Titulacion extends CActiveRecord
|
||||
{
|
||||
return array(
|
||||
'id' => 'ID',
|
||||
'titulacion' => 'Titulacion',
|
||||
'descripcion' => 'Titulacion',
|
||||
);
|
||||
}
|
||||
|
||||
@ -77,7 +77,7 @@ class Titulacion extends CActiveRecord
|
||||
$criteria=new CDbCriteria;
|
||||
|
||||
$criteria->compare('id',$this->id);
|
||||
$criteria->compare('titulacion',$this->titulacion,true);
|
||||
$criteria->compare('descripcion',$this->descripcion,true);
|
||||
|
||||
return new CActiveDataProvider($this, array(
|
||||
'criteria'=>$criteria,
|
||||
|
||||
17
www/protected/tests/fixtures/tbl_candidatos_capacidades.php
vendored
Normal file
17
www/protected/tests/fixtures/tbl_candidatos_capacidades.php
vendored
Normal file
@ -0,0 +1,17 @@
|
||||
<?php
|
||||
|
||||
return array(
|
||||
'capacidad1' => array(
|
||||
'candidato_id'=>'1',
|
||||
'perfil_tecnico_id'=>'1',
|
||||
'meses_perfil_tecnico'=>'6',
|
||||
'observaciones'=>'Línea de observaciones',
|
||||
),
|
||||
'capacidad2' => array(
|
||||
'candidato_id'=>'1',
|
||||
'perfil_tecnico_id'=>'2',
|
||||
'meses_perfil_tecnico'=>'12',
|
||||
'observaciones'=>'Línea de observaciones',
|
||||
),
|
||||
);
|
||||
?>
|
||||
17
www/protected/tests/fixtures/tbl_idiomas.php
vendored
17
www/protected/tests/fixtures/tbl_idiomas.php
vendored
@ -1,17 +1,12 @@
|
||||
<?php
|
||||
|
||||
return array(
|
||||
'idioma1' => array('idioma'=>'Alemán Conversación'),
|
||||
'idioma2' => array('idioma'=>'Francés Leer/Traducción'),
|
||||
'idioma3' => array('idioma'=>'Inglés Conversación'),
|
||||
'idioma4' => array('idioma'=>'Italiano Conversación'),
|
||||
'idioma5' => array('idioma'=>'Portugués Conversación'),
|
||||
'idioma6' => array('idioma'=>'--'),
|
||||
'idioma7' => array('idioma'=>'Francés Conversación'),
|
||||
'idioma8' => array('idioma'=>'Alemán Leer/Tradución'),
|
||||
'idioma9' => array('idioma'=>'Inglés Leer/Traducción'),
|
||||
'idioma10' => array('idioma'=>'Italiano Leer/Traducción'),
|
||||
'idioma11' => array('idioma'=>'Portugués Leer/Traducción')
|
||||
'idioma1' => array('descripcion'=>'Alemán'),
|
||||
'idioma2' => array('descripcion'=>'Francés'),
|
||||
'idioma3' => array('descripcion'=>'Japonés'),
|
||||
'idioma4' => array('descripcion'=>'Inglés'),
|
||||
'idioma5' => array('descripcion'=>'Italiano'),
|
||||
'idioma6' => array('descripcion'=>'Portugués'),
|
||||
);
|
||||
|
||||
?>
|
||||
|
||||
@ -1,113 +1,113 @@
|
||||
<?php
|
||||
|
||||
return array (
|
||||
'funcional4' => array('perfil'=>'ALHAMBRA-AGENTS '),
|
||||
'funcional5' => array('perfil'=>'ALHAMBRA-ALHAMBRA '),
|
||||
'funcional6' => array('perfil'=>'ALHAMBRA-BRANCHES '),
|
||||
'funcional7' => array('perfil'=>'ALHAMBRA-CHANNELS '),
|
||||
'funcional8' => array('perfil'=>'ALHAMBRA-CONTACT CENTER'),
|
||||
'funcional9' => array('perfil'=>'ALHAMBRA-INTERMEDIARIOS'),
|
||||
'funcional10' => array('perfil'=>'ALHAMBRA-INTERNET'),
|
||||
'funcional11' => array('perfil'=>'ALHAMBRA-PORTALS'),
|
||||
'funcional12' => array('perfil'=>'ALHAMBRA-SELF SERVICES'),
|
||||
'funcional13' => array('perfil'=>'ASSET MANAGEMENT'),
|
||||
'funcional14' => array('perfil'=>'ASSET MANAGEMENT-GEST.DISCR.CAR'),
|
||||
'funcional15' => array('perfil'=>'BANCA PRIVADA '),
|
||||
'funcional16' => array('perfil'=>'BANCA PRIVADA-COMUNIC.CLIENT'),
|
||||
'funcional17' => array('perfil'=>'BANCA PRIVADA-CRIS(SIST.COME'),
|
||||
'funcional18' => array('perfil'=>'BANCA PRIVADA-DWH/MIS'),
|
||||
'funcional19' => array('perfil'=>'BANCA PRIVADA-GEST.CARTERAS'),
|
||||
'funcional20' => array('perfil'=>'CANALES-BROKER CANALS'),
|
||||
'funcional21' => array('perfil'=>'CANALES-CONTACT CENTER'),
|
||||
'funcional22' => array('perfil'=>'CANALES-CROSS CANALS'),
|
||||
'funcional23' => array('perfil'=>'CANALES-INTERNET'),
|
||||
'funcional24' => array('perfil'=>'CANALES-MOVILIDAD'),
|
||||
'funcional25' => array('perfil'=>'CANALES-CIRCUIT.CONTR.'),
|
||||
'funcional26' => array('perfil'=>'CANALES-OFICINA'),
|
||||
'funcional27' => array('perfil'=>'COMP-GLOB.PAGOS -COMP. DE PAGOS'),
|
||||
'funcional28' => array('perfil'=>'COMP-GLOB.PAGOS-COMP. GENERALES '),
|
||||
'funcional29' => array('perfil'=>'COMP-GLOB.PAGOS-COMP. DE INVERS '),
|
||||
'funcional30' => array('perfil'=>'CONSUMER FINANCE '),
|
||||
'funcional31' => array('perfil'=>'CONTROL DE CALIDAD-CALIDAD TECNICA '),
|
||||
'funcional32' => array('perfil'=>'CONTROL DE CALIDAD-CALIDAD FUNCIONAL'),
|
||||
'funcional33' => array('perfil'=>'CRM-AGENDAS'),
|
||||
'funcional34' => array('perfil'=>'CRM-CAMPAÑAS'),
|
||||
'funcional35' => array('perfil'=>'CRM-CRM'),
|
||||
'funcional36' => array('perfil'=>'CRM-GEST.INF.COMERCI'),
|
||||
'funcional37' => array('perfil'=>'CRM-INTEL.COMERCIAL'),
|
||||
'funcional41' => array('perfil'=>'CUENTAS PERSONALES-CAJA '),
|
||||
'funcional42' => array('perfil'=>'CUENTAS PERSONALES-CTAS PERSONALES '),
|
||||
'funcional43' => array('perfil'=>'CUENTAS PERSONALES-LIQ.PASIVO '),
|
||||
'funcional44' => array('perfil'=>'CUENTAS PERSONALES-SGO '),
|
||||
'funcional45' => array('perfil'=>'CUENTAS PERSONALES-PLANES '),
|
||||
'funcional46' => array('perfil'=>'CUENTAS PERSONALES-CASH POOLINGES-'),
|
||||
'funcional47' => array('perfil'=>'CUENTAS PERSONALES-FONDOS'),
|
||||
'funcional48' => array('perfil'=>'CUENTAS PERSONALES-DESCUB Y CREDITO '),
|
||||
'funcional49' => array('perfil'=>'CUENTAS PERSONALES-DEP.PL.FIJO Y LI '),
|
||||
'funcional50' => array('perfil'=>'CUENTAS PERSONALES-CAJA ALQUILER'),
|
||||
'funcional51' => array('perfil'=>'MIS(SIST.INF.GESTIÓN)-AUDITORIA'),
|
||||
'funcional52' => array('perfil'=>'MIS(SIST.INF.GESTIÓN-CUMPLIMIENTO) '),
|
||||
'funcional53' => array('perfil'=>'MIS(SIST.INF.GESTIÓN)-SATAMARTS '),
|
||||
'funcional54' => array('perfil'=>'MIS(SIST.INF.GESTIÓN-GEST ACT Y PAS) '),
|
||||
'funcional55' => array('perfil'=>'MIS(SIST.INF.GESTIÓN)-INTERVENCION '),
|
||||
'funcional56' => array('perfil'=>'MIS(SIST.INF.GESTIÓN-POS RIEGO CLIENTE) '),
|
||||
'funcional57' => array('perfil'=>'NEGOCIOS GLOBALES-BANCA Y MERC GLOBAL '),
|
||||
'funcional58' => array('perfil'=>'NEGOCIOS GLOBALES-GEST ACTIVOS '),
|
||||
'funcional59' => array('perfil'=>'NEGOCIOS GLOBALES-SEGUROS '),
|
||||
'funcional60' => array('perfil'=>'OTRAS FINANCIACIONES-TITULIZACIONES '),
|
||||
'funcional61' => array('perfil'=>'OTRAS FINANCIACIONES-LEASING RENTING '),
|
||||
'funcional62' => array('perfil'=>'OTRAS FINANCIACIONES-GEST. TITULIZACIONES '),
|
||||
'funcional63' => array('perfil'=>'OTRAS FINANCIACIONES-FACTORING'),
|
||||
'funcional64' => array('perfil'=>'OTRAS FINANCIACIONES-CREDITOS EURIBOR '),
|
||||
'funcional65' => array('perfil'=>'OTRAS FINANCIACIONES-CONFIRMING '),
|
||||
'funcional66' => array('perfil'=>'OTRAS FINANCIACION-AVALES '),
|
||||
'funcional67' => array('perfil'=>'OTRAS FINANCIACIONES '),
|
||||
'funcional69' => array('perfil'=>'PAGOS TRADICIONALES-TRASF NACIONALES '),
|
||||
'funcional70' => array('perfil'=>'PAGOS TRADICIONALES-CARTERA '),
|
||||
'funcional71' => array('perfil'=>'PAGOS TRADICIONALES-DOMICILIACIONES '),
|
||||
'funcional72' => array('perfil'=>'PAGOS TRADICIONALES-TRASF. INTERNACIONALES '),
|
||||
'funcional73' => array('perfil'=>'PAGOS Y COBROS ELECTRONICOS-EBA '),
|
||||
'funcional74' => array('perfil'=>'PAGOS Y COBROS ELECTRONICOS-SEG. CAMBIO '),
|
||||
'funcional75' => array('perfil'=>'PAGOS Y COBROS ELECTRONICOS '),
|
||||
'funcional76' => array('perfil'=>'PRESTAMOS'),
|
||||
'funcional77' => array('perfil'=>'PROCESOS'),
|
||||
'funcional78' => array('perfil'=>'PROCESOS-PROC.PRESTAMOS'),
|
||||
'funcional79' => array('perfil'=>'PROCESOS-PROC.EXTRANJERO '),
|
||||
'funcional80' => array('perfil'=>'PROCESOS-PROC.BANCA Y AHO '),
|
||||
'funcional81' => array('perfil'=>'PROCESOS-PROC.FAC.LEA'),
|
||||
'funcional82' => array('perfil'=>'PROCESOS-PROC. VENTAS '),
|
||||
'funcional83' => array('perfil'=>'RIESGOS-ADMISION'),
|
||||
'funcional84' => array('perfil'=>'RIESGOS-GEST. COBRO'),
|
||||
'funcional85' => array('perfil'=>'RIESGOS-SEGUIMIENTO '),
|
||||
'funcional86' => array('perfil'=>'RIESGOS IRREGULARES-CIRBE '),
|
||||
'funcional87' => array('perfil'=>'RIESGOS IRREGULARES'),
|
||||
'funcional88' => array('perfil'=>'SEGUROS'),
|
||||
'funcional89' => array('perfil'=>'SIST. ESTRUCTURALES-ARQ. GESTION '),
|
||||
'funcional90' => array('perfil'=>'SIST. ESTRUCTURALES-CATAL. PRODUCTOS '),
|
||||
'funcional91' => array('perfil'=>'SIST. ESTRUCTURALES-RIESGO DE CAMBIO '),
|
||||
'funcional92' => array('perfil'=>'SIST. ESTRUCTURALES-TABLAS GENERALES '),
|
||||
'funcional93' => array('perfil'=>'SIST. ESTRUCTURALES-SIST. COM CLIENTE '),
|
||||
'funcional94' => array('perfil'=>'SIST. ESTRUCTURALES-BIENES Y GARANTIAS'),
|
||||
'funcional95' => array('perfil'=>'SIST. ESTRUCTURALES-CONTROL OPERATIVO '),
|
||||
'funcional96' => array('perfil'=>'SIST. ESTRUCTURALES-CONTABILIDAD'),
|
||||
'funcional97' => array('perfil'=>'SIST. ESTRUCTURALES-COMP. GENERALES '),
|
||||
'funcional98' => array('perfil'=>'SIST. ESTRUCTURALES-BD PERDONAS'),
|
||||
'funcional99' => array('perfil'=>'SIST. INTERNOS-ACTIVOS'),
|
||||
'funcional100' => array('perfil'=>'SIST. INTERNOS-REC HUMANOS '),
|
||||
'funcional101' => array('perfil'=>'SIST. INTERNOS'),
|
||||
'funcional102' => array('perfil'=>'SIST. INTERNOS-REMUNERACIONES'),
|
||||
'funcional103' => array('perfil'=>'TARJETAS-ACQUIRANCE '),
|
||||
'funcional104' => array('perfil'=>'TARJETAS-SIST. ADMON '),
|
||||
'funcional105' => array('perfil'=>'TARJETAS-WITCHER PCAS '),
|
||||
'funcional106' => array('perfil'=>'TARJETAS'),
|
||||
'funcional107' => array('perfil'=>'MEDIOS DE PAGO-CENTRO AUTORIZADOR '),
|
||||
'funcional108' => array('perfil'=>'MEDIOS DE PAGO-TARJETAS '),
|
||||
'funcional109' => array('perfil'=>'MEDIOS DE PAGO'),
|
||||
'funcional110' => array('perfil'=>'PAGOS Y COBROS DOCUMENTARIOS-AUTORIZACION'),
|
||||
'funcional111' => array('perfil'=>'VALORES Y ACT FINANCIEROS-BROKER'),
|
||||
'funcional112' => array('perfil'=>'VALORES Y ACT FINANCIEROS-ACT. FINANCIEROS '),
|
||||
'funcional113' => array('perfil'=>'VALORES Y ACT FINANCIEROS-VALORES'),
|
||||
'funcional114' => array('perfil'=>'SWIFT'),
|
||||
'funcional115' => array('perfil'=>'0.- sin especialidad funcional'),
|
||||
'funcional4' => array('descripcion'=>'ALHAMBRA-AGENTS '),
|
||||
'funcional5' => array('descripcion'=>'ALHAMBRA-ALHAMBRA '),
|
||||
'funcional6' => array('descripcion'=>'ALHAMBRA-BRANCHES '),
|
||||
'funcional7' => array('descripcion'=>'ALHAMBRA-CHANNELS '),
|
||||
'funcional8' => array('descripcion'=>'ALHAMBRA-CONTACT CENTER'),
|
||||
'funcional9' => array('descripcion'=>'ALHAMBRA-INTERMEDIARIOS'),
|
||||
'funcional10' => array('descripcion'=>'ALHAMBRA-INTERNET'),
|
||||
'funcional11' => array('descripcion'=>'ALHAMBRA-PORTALS'),
|
||||
'funcional12' => array('descripcion'=>'ALHAMBRA-SELF SERVICES'),
|
||||
'funcional13' => array('descripcion'=>'ASSET MANAGEMENT'),
|
||||
'funcional14' => array('descripcion'=>'ASSET MANAGEMENT-GEST.DISCR.CAR'),
|
||||
'funcional15' => array('descripcion'=>'BANCA PRIVADA '),
|
||||
'funcional16' => array('descripcion'=>'BANCA PRIVADA-COMUNIC.CLIENT'),
|
||||
'funcional17' => array('descripcion'=>'BANCA PRIVADA-CRIS(SIST.COME'),
|
||||
'funcional18' => array('descripcion'=>'BANCA PRIVADA-DWH/MIS'),
|
||||
'funcional19' => array('descripcion'=>'BANCA PRIVADA-GEST.CARTERAS'),
|
||||
'funcional20' => array('descripcion'=>'CANALES-BROKER CANALS'),
|
||||
'funcional21' => array('descripcion'=>'CANALES-CONTACT CENTER'),
|
||||
'funcional22' => array('descripcion'=>'CANALES-CROSS CANALS'),
|
||||
'funcional23' => array('descripcion'=>'CANALES-INTERNET'),
|
||||
'funcional24' => array('descripcion'=>'CANALES-MOVILIDAD'),
|
||||
'funcional25' => array('descripcion'=>'CANALES-CIRCUIT.CONTR.'),
|
||||
'funcional26' => array('descripcion'=>'CANALES-OFICINA'),
|
||||
'funcional27' => array('descripcion'=>'COMP-GLOB.PAGOS -COMP. DE PAGOS'),
|
||||
'funcional28' => array('descripcion'=>'COMP-GLOB.PAGOS-COMP. GENERALES '),
|
||||
'funcional29' => array('descripcion'=>'COMP-GLOB.PAGOS-COMP. DE INVERS '),
|
||||
'funcional30' => array('descripcion'=>'CONSUMER FINANCE '),
|
||||
'funcional31' => array('descripcion'=>'CONTROL DE CALIDAD-CALIDAD TECNICA '),
|
||||
'funcional32' => array('descripcion'=>'CONTROL DE CALIDAD-CALIDAD FUNCIONAL'),
|
||||
'funcional33' => array('descripcion'=>'CRM-AGENDAS'),
|
||||
'funcional34' => array('descripcion'=>'CRM-CAMPAÑAS'),
|
||||
'funcional35' => array('descripcion'=>'CRM-CRM'),
|
||||
'funcional36' => array('descripcion'=>'CRM-GEST.INF.COMERCI'),
|
||||
'funcional37' => array('descripcion'=>'CRM-INTEL.COMERCIAL'),
|
||||
'funcional41' => array('descripcion'=>'CUENTAS PERSONALES-CAJA '),
|
||||
'funcional42' => array('descripcion'=>'CUENTAS PERSONALES-CTAS PERSONALES '),
|
||||
'funcional43' => array('descripcion'=>'CUENTAS PERSONALES-LIQ.PASIVO '),
|
||||
'funcional44' => array('descripcion'=>'CUENTAS PERSONALES-SGO '),
|
||||
'funcional45' => array('descripcion'=>'CUENTAS PERSONALES-PLANES '),
|
||||
'funcional46' => array('descripcion'=>'CUENTAS PERSONALES-CASH POOLINGES-'),
|
||||
'funcional47' => array('descripcion'=>'CUENTAS PERSONALES-FONDOS'),
|
||||
'funcional48' => array('descripcion'=>'CUENTAS PERSONALES-DESCUB Y CREDITO '),
|
||||
'funcional49' => array('descripcion'=>'CUENTAS PERSONALES-DEP.PL.FIJO Y LI '),
|
||||
'funcional50' => array('descripcion'=>'CUENTAS PERSONALES-CAJA ALQUILER'),
|
||||
'funcional51' => array('descripcion'=>'MIS(SIST.INF.GESTIÓN)-AUDITORIA'),
|
||||
'funcional52' => array('descripcion'=>'MIS(SIST.INF.GESTIÓN-CUMPLIMIENTO) '),
|
||||
'funcional53' => array('descripcion'=>'MIS(SIST.INF.GESTIÓN)-SATAMARTS '),
|
||||
'funcional54' => array('descripcion'=>'MIS(SIST.INF.GESTIÓN-GEST ACT Y PAS) '),
|
||||
'funcional55' => array('descripcion'=>'MIS(SIST.INF.GESTIÓN)-INTERVENCION '),
|
||||
'funcional56' => array('descripcion'=>'MIS(SIST.INF.GESTIÓN-POS RIEGO CLIENTE) '),
|
||||
'funcional57' => array('descripcion'=>'NEGOCIOS GLOBALES-BANCA Y MERC GLOBAL '),
|
||||
'funcional58' => array('descripcion'=>'NEGOCIOS GLOBALES-GEST ACTIVOS '),
|
||||
'funcional59' => array('descripcion'=>'NEGOCIOS GLOBALES-SEGUROS '),
|
||||
'funcional60' => array('descripcion'=>'OTRAS FINANCIACIONES-TITULIZACIONES '),
|
||||
'funcional61' => array('descripcion'=>'OTRAS FINANCIACIONES-LEASING RENTING '),
|
||||
'funcional62' => array('descripcion'=>'OTRAS FINANCIACIONES-GEST. TITULIZACIONES '),
|
||||
'funcional63' => array('descripcion'=>'OTRAS FINANCIACIONES-FACTORING'),
|
||||
'funcional64' => array('descripcion'=>'OTRAS FINANCIACIONES-CREDITOS EURIBOR '),
|
||||
'funcional65' => array('descripcion'=>'OTRAS FINANCIACIONES-CONFIRMING '),
|
||||
'funcional66' => array('descripcion'=>'OTRAS FINANCIACION-AVALES '),
|
||||
'funcional67' => array('descripcion'=>'OTRAS FINANCIACIONES '),
|
||||
'funcional69' => array('descripcion'=>'PAGOS TRADICIONALES-TRASF NACIONALES '),
|
||||
'funcional70' => array('descripcion'=>'PAGOS TRADICIONALES-CARTERA '),
|
||||
'funcional71' => array('descripcion'=>'PAGOS TRADICIONALES-DOMICILIACIONES '),
|
||||
'funcional72' => array('descripcion'=>'PAGOS TRADICIONALES-TRASF. INTERNACIONALES '),
|
||||
'funcional73' => array('descripcion'=>'PAGOS Y COBROS ELECTRONICOS-EBA '),
|
||||
'funcional74' => array('descripcion'=>'PAGOS Y COBROS ELECTRONICOS-SEG. CAMBIO '),
|
||||
'funcional75' => array('descripcion'=>'PAGOS Y COBROS ELECTRONICOS '),
|
||||
'funcional76' => array('descripcion'=>'PRESTAMOS'),
|
||||
'funcional77' => array('descripcion'=>'PROCESOS'),
|
||||
'funcional78' => array('descripcion'=>'PROCESOS-PROC.PRESTAMOS'),
|
||||
'funcional79' => array('descripcion'=>'PROCESOS-PROC.EXTRANJERO '),
|
||||
'funcional80' => array('descripcion'=>'PROCESOS-PROC.BANCA Y AHO '),
|
||||
'funcional81' => array('descripcion'=>'PROCESOS-PROC.FAC.LEA'),
|
||||
'funcional82' => array('descripcion'=>'PROCESOS-PROC. VENTAS '),
|
||||
'funcional83' => array('descripcion'=>'RIESGOS-ADMISION'),
|
||||
'funcional84' => array('descripcion'=>'RIESGOS-GEST. COBRO'),
|
||||
'funcional85' => array('descripcion'=>'RIESGOS-SEGUIMIENTO '),
|
||||
'funcional86' => array('descripcion'=>'RIESGOS IRREGULARES-CIRBE '),
|
||||
'funcional87' => array('descripcion'=>'RIESGOS IRREGULARES'),
|
||||
'funcional88' => array('descripcion'=>'SEGUROS'),
|
||||
'funcional89' => array('descripcion'=>'SIST. ESTRUCTURALES-ARQ. GESTION '),
|
||||
'funcional90' => array('descripcion'=>'SIST. ESTRUCTURALES-CATAL. PRODUCTOS '),
|
||||
'funcional91' => array('descripcion'=>'SIST. ESTRUCTURALES-RIESGO DE CAMBIO '),
|
||||
'funcional92' => array('descripcion'=>'SIST. ESTRUCTURALES-TABLAS GENERALES '),
|
||||
'funcional93' => array('descripcion'=>'SIST. ESTRUCTURALES-SIST. COM CLIENTE '),
|
||||
'funcional94' => array('descripcion'=>'SIST. ESTRUCTURALES-BIENES Y GARANTIAS'),
|
||||
'funcional95' => array('descripcion'=>'SIST. ESTRUCTURALES-CONTROL OPERATIVO '),
|
||||
'funcional96' => array('descripcion'=>'SIST. ESTRUCTURALES-CONTABILIDAD'),
|
||||
'funcional97' => array('descripcion'=>'SIST. ESTRUCTURALES-COMP. GENERALES '),
|
||||
'funcional98' => array('descripcion'=>'SIST. ESTRUCTURALES-BD PERDONAS'),
|
||||
'funcional99' => array('descripcion'=>'SIST. INTERNOS-ACTIVOS'),
|
||||
'funcional100' => array('descripcion'=>'SIST. INTERNOS-REC HUMANOS '),
|
||||
'funcional101' => array('descripcion'=>'SIST. INTERNOS'),
|
||||
'funcional102' => array('descripcion'=>'SIST. INTERNOS-REMUNERACIONES'),
|
||||
'funcional103' => array('descripcion'=>'TARJETAS-ACQUIRANCE '),
|
||||
'funcional104' => array('descripcion'=>'TARJETAS-SIST. ADMON '),
|
||||
'funcional105' => array('descripcion'=>'TARJETAS-WITCHER PCAS '),
|
||||
'funcional106' => array('descripcion'=>'TARJETAS'),
|
||||
'funcional107' => array('descripcion'=>'MEDIOS DE PAGO-CENTRO AUTORIZADOR '),
|
||||
'funcional108' => array('descripcion'=>'MEDIOS DE PAGO-TARJETAS '),
|
||||
'funcional109' => array('descripcion'=>'MEDIOS DE PAGO'),
|
||||
'funcional110' => array('descripcion'=>'PAGOS Y COBROS DOCUMENTARIOS-AUTORIZACION'),
|
||||
'funcional111' => array('descripcion'=>'VALORES Y ACT FINANCIEROS-BROKER'),
|
||||
'funcional112' => array('descripcion'=>'VALORES Y ACT FINANCIEROS-ACT. FINANCIEROS '),
|
||||
'funcional113' => array('descripcion'=>'VALORES Y ACT FINANCIEROS-VALORES'),
|
||||
'funcional114' => array('descripcion'=>'SWIFT'),
|
||||
'funcional115' => array('descripcion'=>'0.- sin especialidad funcional'),
|
||||
);
|
||||
?>
|
||||
|
||||
@ -3,64 +3,64 @@
|
||||
/**/
|
||||
|
||||
return array (
|
||||
'tecnico1' => array('perfil'=>'T.-Administrador de Sistemas Host '),
|
||||
'tecnico2' => array('perfil'=>'D.-AF Plat WEB '),
|
||||
'tecnico3' => array('perfil'=>'D.-AP Plat Host '),
|
||||
'tecnico4' => array('perfil'=>'T.-Administrador de Base de Datos '),
|
||||
'tecnico5' => array('perfil'=>'D.-JP Plat Host'),
|
||||
'tecnico6' => array('perfil'=>'E.-Jefe de Sala '),
|
||||
'tecnico7' => array('perfil'=>'E.-Operador '),
|
||||
'tecnico9' => array('perfil'=>'D.-PGJR Plat Host '),
|
||||
'tecnico10' => array('perfil'=>'P.-Diseño Técnico de Pruebas '),
|
||||
'tecnico12' => array('perfil'=>'T.-Técnico de Redes '),
|
||||
'tecnico14' => array('perfil'=>'C.-Consultor Calidad y Metodología '),
|
||||
'tecnico17' => array('perfil'=>'T.-Técnico de Soporte '),
|
||||
'tecnico18' => array('perfil'=>'C.-Consultor Sectorial Mercado (Banca) '),
|
||||
'tecnico19' => array('perfil'=>'C.-Consultor'),
|
||||
'tecnico20' => array('perfil'=>'C.-Consultor Sectorial Mercado Telecom '),
|
||||
'tecnico21' => array('perfil'=>'S.-Soporte a Desarrollo Plat Host Tradicional'),
|
||||
'tecnico22' => array('perfil'=>'D.-AO Plat Host '),
|
||||
'tecnico23' => array('perfil'=>'P.-Ejecución de Pruebas'),
|
||||
'tecnico24' => array('perfil'=>'D.-AF Plat Host '),
|
||||
'tecnico25' => array('perfil'=>'D.-AO Plat WEB '),
|
||||
'tecnico26' => array('perfil'=>'D.-AP Plat WEB '),
|
||||
'tecnico27' => array('perfil'=>'D.-JP Plat WEB '),
|
||||
'tecnico28' => array('perfil'=>'S.-Soporte a Desarrollo Plat WEB '),
|
||||
'tecnico31' => array('perfil'=>'D.-AP Plat Unix '),
|
||||
'tecnico33' => array('perfil'=>'D.-PG Plat Host Tradicional'),
|
||||
'tecnico34' => array('perfil'=>'D.-PG Plat WEB '),
|
||||
'tecnico59' => array('perfil'=>'D.-PGSR Plat Host '),
|
||||
'tecnico61' => array('perfil'=>'E.- Inst. y Mantº Micro'),
|
||||
'tecnico62' => array('perfil'=>'E.- Help-Desk'),
|
||||
'tecnico63' => array('perfil'=>'T.-Técnico Seguridad'),
|
||||
'tecnico64' => array('perfil'=>'T.- Integrador'),
|
||||
'tecnico65' => array('perfil'=>'C.-Consultor Tecnología'),
|
||||
'tecnico66' => array('perfil'=>'C.-Consultor Producto'),
|
||||
'tecnico67' => array('perfil'=>'C.-Consultor Soporte a Desarrollo'),
|
||||
'tecnico68' => array('perfil'=>'C.-Consultor Seguridad'),
|
||||
'tecnico69' => array('perfil'=>'S.- Gestión Configuración'),
|
||||
'tecnico70' => array('perfil'=>'D.-JP Plat Host Unix '),
|
||||
'tecnico72' => array('perfil'=>'D.-AF Plat Unix '),
|
||||
'tecnico73' => array('perfil'=>'D.-AO Plat Unix '),
|
||||
'tecnico75' => array('perfil'=>'D.-PG Plat Unix '),
|
||||
'tecnico76' => array('perfil'=>'D.-PGSR Plat Unix '),
|
||||
'tecnico78' => array('perfil'=>'D.-PGSR Plat WEB '),
|
||||
'tecnico79' => array('perfil'=>'D.-PGJR Plat UNIX '),
|
||||
'tecnico81' => array('perfil'=>'D.-PGJR Plat WEB'),
|
||||
'tecnico83' => array('perfil'=>'E.- Planificador'),
|
||||
'tecnico84' => array('perfil'=>'P.-Analista Pruebas Host '),
|
||||
'tecnico85' => array('perfil'=>'s.-Soporte a Desarrollo Plat. Unix'),
|
||||
'tecnico87' => array('perfil'=>'P.-Analista de Pruebas Host Solaris'),
|
||||
'tecnico89' => array('perfil'=>'P.-Analista de Pruebas Web'),
|
||||
'tecnico92' => array('perfil'=>'P.-Diseño Técnico de Pruebas Host'),
|
||||
'tecnico95' => array('perfil'=>'P.-Diseño Técnico de Pruebas WEB'),
|
||||
'tecnico101' => array('perfil'=>'P.-Ejecución de Pruebas Web'),
|
||||
'tecnico104' => array('perfil'=>'A.- Sin experiencia'),
|
||||
'tecnico105' => array('perfil'=>'B.- Becario '),
|
||||
'tecnico106' => array('perfil'=>'T.-Técnico Sistemas Windows'),
|
||||
'tecnico107' => array('perfil'=>'JP - JEFE DE PROYECTO '),
|
||||
'tecnico108' => array('perfil'=>'D.-Maquetador WEB'),
|
||||
'tecnico109' => array('perfil'=>'A.- Arquitecto'),
|
||||
'tecnico1' => array('descripcion'=>'T.-Administrador de Sistemas Host '),
|
||||
'tecnico2' => array('descripcion'=>'D.-AF Plat WEB '),
|
||||
'tecnico3' => array('descripcion'=>'D.-AP Plat Host '),
|
||||
'tecnico4' => array('descripcion'=>'T.-Administrador de Base de Datos '),
|
||||
'tecnico5' => array('descripcion'=>'D.-JP Plat Host'),
|
||||
'tecnico6' => array('descripcion'=>'E.-Jefe de Sala '),
|
||||
'tecnico7' => array('descripcion'=>'E.-Operador '),
|
||||
'tecnico9' => array('descripcion'=>'D.-PGJR Plat Host '),
|
||||
'tecnico10' => array('descripcion'=>'P.-Diseño Técnico de Pruebas '),
|
||||
'tecnico12' => array('descripcion'=>'T.-Técnico de Redes '),
|
||||
'tecnico14' => array('descripcion'=>'C.-Consultor Calidad y Metodología '),
|
||||
'tecnico17' => array('descripcion'=>'T.-Técnico de Soporte '),
|
||||
'tecnico18' => array('descripcion'=>'C.-Consultor Sectorial Mercado (Banca) '),
|
||||
'tecnico19' => array('descripcion'=>'C.-Consultor'),
|
||||
'tecnico20' => array('descripcion'=>'C.-Consultor Sectorial Mercado Telecom '),
|
||||
'tecnico21' => array('descripcion'=>'S.-Soporte a Desarrollo Plat Host Tradicional'),
|
||||
'tecnico22' => array('descripcion'=>'D.-AO Plat Host '),
|
||||
'tecnico23' => array('descripcion'=>'P.-Ejecución de Pruebas'),
|
||||
'tecnico24' => array('descripcion'=>'D.-AF Plat Host '),
|
||||
'tecnico25' => array('descripcion'=>'D.-AO Plat WEB '),
|
||||
'tecnico26' => array('descripcion'=>'D.-AP Plat WEB '),
|
||||
'tecnico27' => array('descripcion'=>'D.-JP Plat WEB '),
|
||||
'tecnico28' => array('descripcion'=>'S.-Soporte a Desarrollo Plat WEB '),
|
||||
'tecnico31' => array('descripcion'=>'D.-AP Plat Unix '),
|
||||
'tecnico33' => array('descripcion'=>'D.-PG Plat Host Tradicional'),
|
||||
'tecnico34' => array('descripcion'=>'D.-PG Plat WEB '),
|
||||
'tecnico59' => array('descripcion'=>'D.-PGSR Plat Host '),
|
||||
'tecnico61' => array('descripcion'=>'E.- Inst. y Mantº Micro'),
|
||||
'tecnico62' => array('descripcion'=>'E.- Help-Desk'),
|
||||
'tecnico63' => array('descripcion'=>'T.-Técnico Seguridad'),
|
||||
'tecnico64' => array('descripcion'=>'T.- Integrador'),
|
||||
'tecnico65' => array('descripcion'=>'C.-Consultor Tecnología'),
|
||||
'tecnico66' => array('descripcion'=>'C.-Consultor Producto'),
|
||||
'tecnico67' => array('descripcion'=>'C.-Consultor Soporte a Desarrollo'),
|
||||
'tecnico68' => array('descripcion'=>'C.-Consultor Seguridad'),
|
||||
'tecnico69' => array('descripcion'=>'S.- Gestión Configuración'),
|
||||
'tecnico70' => array('descripcion'=>'D.-JP Plat Host Unix '),
|
||||
'tecnico72' => array('descripcion'=>'D.-AF Plat Unix '),
|
||||
'tecnico73' => array('descripcion'=>'D.-AO Plat Unix '),
|
||||
'tecnico75' => array('descripcion'=>'D.-PG Plat Unix '),
|
||||
'tecnico76' => array('descripcion'=>'D.-PGSR Plat Unix '),
|
||||
'tecnico78' => array('descripcion'=>'D.-PGSR Plat WEB '),
|
||||
'tecnico79' => array('descripcion'=>'D.-PGJR Plat UNIX '),
|
||||
'tecnico81' => array('descripcion'=>'D.-PGJR Plat WEB'),
|
||||
'tecnico83' => array('descripcion'=>'E.- Planificador'),
|
||||
'tecnico84' => array('descripcion'=>'P.-Analista Pruebas Host '),
|
||||
'tecnico85' => array('descripcion'=>'s.-Soporte a Desarrollo Plat. Unix'),
|
||||
'tecnico87' => array('descripcion'=>'P.-Analista de Pruebas Host Solaris'),
|
||||
'tecnico89' => array('descripcion'=>'P.-Analista de Pruebas Web'),
|
||||
'tecnico92' => array('descripcion'=>'P.-Diseño Técnico de Pruebas Host'),
|
||||
'tecnico95' => array('descripcion'=>'P.-Diseño Técnico de Pruebas WEB'),
|
||||
'tecnico101' => array('descripcion'=>'P.-Ejecución de Pruebas Web'),
|
||||
'tecnico104' => array('descripcion'=>'A.- Sin experiencia'),
|
||||
'tecnico105' => array('descripcion'=>'B.- Becario '),
|
||||
'tecnico106' => array('descripcion'=>'T.-Técnico Sistemas Windows'),
|
||||
'tecnico107' => array('descripcion'=>'JP - JEFE DE PROYECTO '),
|
||||
'tecnico108' => array('descripcion'=>'D.-Maquetador WEB'),
|
||||
'tecnico109' => array('descripcion'=>'A.- Arquitecto'),
|
||||
);
|
||||
|
||||
?>
|
||||
|
||||
@ -1,31 +1,31 @@
|
||||
<?php
|
||||
|
||||
return array(
|
||||
'titulacion1' => array('titulacion'=>'Ciclo G.Sup. Administración Sistemas Informático'),
|
||||
'titulacion2' => array('titulacion'=>'Diplomado en Estadística'),
|
||||
'titulacion4' => array('titulacion'=>'FPII Téc. Especialista Administrativo Comercial'),
|
||||
'titulacion5' => array('titulacion'=>'FPIII Administración de Empresas'),
|
||||
'titulacion6' => array('titulacion'=>'Informática Gestión y Sistemas (No homologado)'),
|
||||
'titulacion9' => array('titulacion'=>'Ingeniería Superior en Electrónica'),
|
||||
'titulacion10' => array('titulacion'=>'Ingeniería Superior Informática'),
|
||||
'titulacion12' => array('titulacion'=>'Ingeniería Técnica Informática Sistemas'),
|
||||
'titulacion13' => array('titulacion'=>'Ingeniería Técnica Telecomunicaciones'),
|
||||
'titulacion14' => array('titulacion'=>'Ingenieria Superior Telecomunicaciones'),
|
||||
'titulacion15' => array('titulacion'=>'Ingenieria Técnica Informática Gestión'),
|
||||
'titulacion16' => array('titulacion'=>'Licenciado en Físicas'),
|
||||
'titulacion17' => array('titulacion'=>'Licenciado en Informática'),
|
||||
'titulacion18' => array('titulacion'=>'Licenciatura C. Químicas'),
|
||||
'titulacion19' => array('titulacion'=>'Ciclo G.Sup. Desarrollo Aplicaciones'),
|
||||
'titulacion20' => array('titulacion'=>'Licenciatura Publicidad y RRPP'),
|
||||
'titulacion21' => array('titulacion'=>'Diseño Grafico (No homologado)'),
|
||||
'titulacion22' => array('titulacion'=>'FPII Informática'),
|
||||
'titulacion23' => array('titulacion'=>'ESO'),
|
||||
'titulacion24' => array('titulacion'=>'Licenciatura en Matemáticas'),
|
||||
'titulacion25' => array('titulacion'=>'Ingeniería Superior Industriales'),
|
||||
'titulacion26' => array('titulacion'=>'FPII Electrónica'),
|
||||
'titulacion27' => array('titulacion'=>'FPIII Informática y/o Electrónica'),
|
||||
'titulacion28' => array('titulacion'=>'BUP'),
|
||||
'titulacion29' => array('titulacion'=>'Licenciatura Otros'),
|
||||
'titulacion30' => array('titulacion'=>'Licenciatura en Economía'),
|
||||
'titulacion1' => array('descripcion'=>'Ciclo G.Sup. Administración Sistemas Informático'),
|
||||
'titulacion2' => array('descripcion'=>'Diplomado en Estadística'),
|
||||
'titulacion4' => array('descripcion'=>'FPII Téc. Especialista Administrativo Comercial'),
|
||||
'titulacion5' => array('descripcion'=>'FPIII Administración de Empresas'),
|
||||
'titulacion6' => array('descripcion'=>'Informática Gestión y Sistemas (No homologado)'),
|
||||
'titulacion9' => array('descripcion'=>'Ingeniería Superior en Electrónica'),
|
||||
'titulacion10' => array('descripcion'=>'Ingeniería Superior Informática'),
|
||||
'titulacion12' => array('descripcion'=>'Ingeniería Técnica Informática Sistemas'),
|
||||
'titulacion13' => array('descripcion'=>'Ingeniería Técnica Telecomunicaciones'),
|
||||
'titulacion14' => array('descripcion'=>'Ingenieria Superior Telecomunicaciones'),
|
||||
'titulacion15' => array('descripcion'=>'Ingenieria Técnica Informática Gestión'),
|
||||
'titulacion16' => array('descripcion'=>'Licenciado en Físicas'),
|
||||
'titulacion17' => array('descripcion'=>'Licenciado en Informática'),
|
||||
'titulacion18' => array('descripcion'=>'Licenciatura C. Químicas'),
|
||||
'titulacion19' => array('descripcion'=>'Ciclo G.Sup. Desarrollo Aplicaciones'),
|
||||
'titulacion20' => array('descripcion'=>'Licenciatura Publicidad y RRPP'),
|
||||
'titulacion21' => array('descripcion'=>'Diseño Grafico (No homologado)'),
|
||||
'titulacion22' => array('descripcion'=>'FPII Informática'),
|
||||
'titulacion23' => array('descripcion'=>'ESO'),
|
||||
'titulacion24' => array('descripcion'=>'Licenciatura en Matemáticas'),
|
||||
'titulacion25' => array('descripcion'=>'Ingeniería Superior Industriales'),
|
||||
'titulacion26' => array('descripcion'=>'FPII Electrónica'),
|
||||
'titulacion27' => array('descripcion'=>'FPIII Informática y/o Electrónica'),
|
||||
'titulacion28' => array('descripcion'=>'BUP'),
|
||||
'titulacion29' => array('descripcion'=>'Licenciatura Otros'),
|
||||
'titulacion30' => array('descripcion'=>'Licenciatura en Economía'),
|
||||
);
|
||||
?>
|
||||
|
||||
21
www/protected/tests/unit/CandidatoCapacidadTest.php
Normal file
21
www/protected/tests/unit/CandidatoCapacidadTest.php
Normal file
@ -0,0 +1,21 @@
|
||||
<?php
|
||||
|
||||
class CandidatoCapacidadTest extends CDbTestCase {
|
||||
|
||||
public $fixtures = array(
|
||||
'datos_candidatos' => 'Candidato',
|
||||
'datos_capacidades' => 'CandidatoCapacidad',
|
||||
);
|
||||
|
||||
public function testRead() {
|
||||
$id = $this->datos_candidatos['candidato1']['id'];
|
||||
$candidato = Candidato::model()->findByPk($id);
|
||||
$this->assertTrue($candidato instanceof Candidato);
|
||||
|
||||
$capacidades = $candidato->capacidades;
|
||||
$this->assertEquals(2, $candidato->capacidadesCount);
|
||||
$capacidad = $capacidades[0];
|
||||
$this->assertTrue($capacidad instanceof CandidatoCapacidad);
|
||||
}
|
||||
}
|
||||
?>
|
||||
@ -9,7 +9,7 @@ $idiomaFormConfig = array(
|
||||
'class'=>'fullwidth',
|
||||
'items'=>array_merge(
|
||||
array(''=>'-'),
|
||||
CHtml::listData(Idioma::model()->findAll(), 'idioma', 'idioma')
|
||||
CHtml::listData(Idioma::model()->findAll(), 'descripcion', 'descripcion')
|
||||
),
|
||||
|
||||
),
|
||||
|
||||
@ -9,7 +9,7 @@ $titulacionFormConfig = array(
|
||||
'class'=>'fullwidth',
|
||||
'items'=>array_merge(
|
||||
array(''=>'-'),
|
||||
CHtml::listData(Titulacion::model()->findAll(), 'titulacion', 'titulacion')
|
||||
CHtml::listData(Titulacion::model()->findAll(), 'descripcion', 'descripcion')
|
||||
),
|
||||
|
||||
),
|
||||
|
||||
@ -69,56 +69,36 @@ $('.search-form form').submit(function(){
|
||||
'class' => 'head1',
|
||||
),
|
||||
'template'=>'{update}{delete}',
|
||||
'cssClassExpression' => '"con1"',
|
||||
'cssClassExpression' => '"con0"',
|
||||
),
|
||||
/*array(
|
||||
'type' => 'html',
|
||||
'name' => 'nombreApellidos',
|
||||
'value' => 'CHtml::link(CHtml::encode($data->nombreApellidos), array("update", "id"=>$data->id));',
|
||||
'headerHtmlOptions'=>array(
|
||||
'class' => 'head0 sorting',
|
||||
),
|
||||
),*/
|
||||
array(
|
||||
'name' => 'id',
|
||||
'type' => 'html',
|
||||
'name' => 'nombreCompleto',
|
||||
'value' => 'CHtml::link(CHtml::encode($data->nombreCompleto), array("update", "id"=>$data->id));',
|
||||
'headerHtmlOptions'=>array(
|
||||
'style' => 'width:35px;',
|
||||
'class' => 'head0 sorting',
|
||||
/*'colspan' => '1',
|
||||
'rowspan' => '1',*/
|
||||
),
|
||||
'cssClassExpression' => '"con0"',
|
||||
'cssClassExpression' => '"con1"',
|
||||
),
|
||||
array(
|
||||
'type' => 'html',
|
||||
'name' => 'nombre',
|
||||
'value' => 'CHtml::link(CHtml::encode($data->nombre), array("update", "id"=>$data->id));',
|
||||
'headerHtmlOptions'=>array(
|
||||
'class' => 'head1 sorting',
|
||||
/*'colspan' => '1',
|
||||
'rowspan' => '2',*/
|
||||
),
|
||||
'value'=>array($this, 'gridDataColumnCapacidadTecnica'),
|
||||
'header' => 'Capacidad técnica',
|
||||
'filter' => CHtml::listData(PerfilFuncional::model()->findAll(), 'id', 'descripcion'),
|
||||
'cssClassExpression' => '"con0"',
|
||||
),
|
||||
),
|
||||
array(
|
||||
'type' => 'html',
|
||||
'name' => 'apellidos',
|
||||
'value' => 'CHtml::link(CHtml::encode($data->apellidos), array("update", "id"=>$data->id));',
|
||||
'headerHtmlOptions'=>array(
|
||||
'class' => 'head0 sorting',
|
||||
/*'colspan' => '1',
|
||||
'rowspan' => '2',*/
|
||||
),
|
||||
'type' => 'raw',
|
||||
'value'=>array($this, 'gridDataColumnCapacidadFuncional'),
|
||||
'header' => 'Capacidad funcional',
|
||||
'cssClassExpression' => '"con1"',
|
||||
),
|
||||
),
|
||||
array(
|
||||
'type' => 'html',
|
||||
'name' => 'estado',
|
||||
'value' => 'CHtml::link(CHtml::encode($data->estado), "#", array("class" => $data->cssClassEstado));',
|
||||
'headerHtmlOptions'=>array(
|
||||
'class' => 'head1 sorting',
|
||||
/*'colspan' => '1',
|
||||
'rowspan' => '2',*/
|
||||
),
|
||||
'cssClassExpression' => '"con0"',
|
||||
),
|
||||
@ -128,8 +108,6 @@ $('.search-form form').submit(function(){
|
||||
'value' => '($data->fecha_modificacion === NULL) ? CHtml::tag("span", array("class"=>"nodata"), "Nunca") : Time::timeAgoInWords($data->fecha_modificacion);',
|
||||
'headerHtmlOptions'=>array(
|
||||
'class' => 'head0 sorting',
|
||||
/*'colspan' => '1',
|
||||
'rowspan' => '2',*/
|
||||
),
|
||||
'cssClassExpression' => '"con1"',
|
||||
),
|
||||
|
||||
Loading…
Reference in New Issue
Block a user