- 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:
David Arranz 2012-03-07 18:00:07 +00:00
parent cf8101f8c8
commit c8d5d28417
22 changed files with 717 additions and 636 deletions

View File

@ -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; }
/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *

View File

@ -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;
}
}

View File

@ -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',
));
}

View File

@ -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',
));
}

View File

@ -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',
));
}

View File

@ -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',
));
}

View File

@ -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,
));
}

View File

@ -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'),
);
}

View File

@ -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',
);
}

View File

@ -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,

View File

@ -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,

View File

@ -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,

View File

@ -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,

View 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',
),
);
?>

View File

@ -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'),
);
?>

View File

@ -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'),
);
?>

View File

@ -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'),
);
?>

View File

@ -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'),
);
?>

View 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);
}
}
?>

View File

@ -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')
),
),

View File

@ -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')
),
),

View File

@ -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"',
),