- Validación AJAX quitada

- Organización de candidato (pestaña Resumen y Capacidades Profesionales)

git-svn-id: https://192.168.0.254/svn/Proyectos.Incam_IntranetNueva/trunk@34 77cfc57b-8ef4-1849-9df6-4a38aa5da120
This commit is contained in:
David Arranz 2012-03-27 14:43:43 +00:00
parent 0b8c8f8e3f
commit ebb10d87b0
27 changed files with 572 additions and 341 deletions

9
www/.htaccess Normal file
View File

@ -0,0 +1,9 @@
RewriteEngine on
RewriteBase /intranet/
# if a directory or a file exists, use it directly
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
# otherwise forward it to index.php
RewriteRule . index.php

View File

@ -64,4 +64,13 @@ span.timestamp {
.disabled { .disabled {
color: #999; color: #999;
} }
/**RESUMEN**/
.resumen { padding: 25px; position: relative; overflow: hidden; }
.resumen .title { color: #006699; }
.resumen_table { border-collape: collapse; }
.resumen_table thead td { border-bottom: 1px solid #ccc; padding: 5px 0; font-weight: bold; }
.resumen_table .subtotal td { font-weight: bold; }
.resumen_table tr td.line { border-bottom: 1px solid #ccc; }

19
www/css/gridview3.css Normal file
View File

@ -0,0 +1,19 @@
.sTable3 {
width: 100%;
border-collapse: collapse;
border-top: 1px solid #ccc;
}
.sTable3 thead th {
padding: 5px 10px;
background: #eee url(../images/thead.png) repeat-x top left;
border-bottom: 1px solid #ccc;
}
.sTable3 tbody tr td {
padding: 10px;
background: #fff;
border-top: 1px solid #eee;
border-left: 1px solid #eee;
}
.sTable3 tbody tr.even td {
background: #fcfcfc;
}

View File

@ -28,14 +28,14 @@
.ui-tabs-hide { display: none; } .ui-tabs-hide { display: none; }
.ui-tabs-panel { padding: 15px; } .ui-tabs-panel { padding: 15px; }
/*
.tabs2 { border: 0; } .tabs2 { border: 0; }
.tabs2 .ui-tabs-nav { padding: 5px 0 0 5px; border: 1px solid #6082AD; background: #688AB5 url(../../images/titlebg.png) repeat-x top left; } .tabs2 .ui-tabs-nav { padding: 5px 0 0 5px; border: 1px solid #6082AD; background: #688AB5 url(../../images/titlebg.png) repeat-x top left; }
.tabs2 .ui-tabs-nav li:last-child a { -moz-border-radius: 0 3px 0 0; -webkit-border-radius: 0 3px 0 0; border-radius: 0 3px 0 0; } .tabs2 .ui-tabs-nav li:last-child a { -moz-border-radius: 0 3px 0 0; -webkit-border-radius: 0 3px 0 0; border-radius: 0 3px 0 0; }
.tabs2 .ui-tabs-panel { border: 1px solid #ccc; border-top: 0; } .tabs2 .ui-tabs-panel { border: 1px solid #ccc; border-top: 0; }
.tabs2 .ui-tabs-nav li a { background: #a8c0df; border: 0; color: #fff; margin-right: 1px; } .tabs2 .ui-tabs-nav li a { background: #a8c0df; border: 0; color: #fff; margin-right: 1px; }
.tabs2 .ui-tabs-nav li.ui-state-active a { background: #fcfcfc; color: #688AB5; border-bottom: 1px solid #fcfcfc; } .tabs2 .ui-tabs-nav li.ui-state-active a { background: #fcfcfc; color: #688AB5; border-bottom: 1px solid #fcfcfc; }
*/
/** ACCORDION **/ /** ACCORDION **/
.accordion { border: 1px solid #ccc; background: #fcfcfc; overflow: hidden; -moz-border-radius: 3px; -webkit-border-radius: 3px; border-radius: 3px; } .accordion { border: 1px solid #ccc; background: #fcfcfc; overflow: hidden; -moz-border-radius: 3px; -webkit-border-radius: 3px; border-radius: 3px; }

View File

@ -11,6 +11,7 @@
@import url('plugins/jquery.alerts.css'); @import url('plugins/jquery.alerts.css');
@import url('plugins/fullcalendar.css'); @import url('plugins/fullcalendar.css');
@import url('tabs.css');
@import url('custom.css'); @import url('custom.css');
html, body, div, span, applet, object, iframe, html, body, div, span, applet, object, iframe,
@ -521,15 +522,6 @@ input[type=radio], input[type=checkbox] { margin: 0; padding: 0; vertical-align:
.iconlink2:hover { background-position: 0 -37px; text-decoration: none; } .iconlink2:hover { background-position: 0 -37px; text-decoration: none; }
.iconlink2 img { vertical-align: middle; display: inline-block; } .iconlink2 img { vertical-align: middle; display: inline-block; }
/**INVOICE**/
.invoice { border: 1px solid #ccc; background: #f7f7f7; -moz-box-shadow: 1px 1px 3px #ddd; -webkit-box-shadow: 1px 1px 3px #ddd; box-shadow: 1px 1px 3px #ddd; }
.invoice_inner { padding: 20px; position: relative; overflow: hidden; }
.invoice .title { font-size: 18px; float: right; }
.invoicetable { border-collape: collapse; }
.invoicetable thead td { border-bottom: 1px solid #ccc; padding: 5px 0; font-weight: bold; }
.invoicetable .subtotal td { font-weight: bold; }
.invoicetable tr td.line { border-bottom: 1px solid #ccc; }
/** FOOTER**/ /** FOOTER**/
.footer { background: #333; padding: 10px 0; } .footer { background: #333; padding: 10px 0; }
.footerinner { padding: 0 20px; text-align: right; font-size: 11px; color: #ccc; } .footerinner { padding: 0 20px; text-align: right; font-size: 11px; color: #ccc; }

11
www/css/tabs.css Normal file
View File

@ -0,0 +1,11 @@
.tabs { border: 1px solid #ccc; background: #fcfcfc; -moz-border-radius: 3px; -webkit-border-radius: 3px; border-radius: 3px; }
.tabs { -moz-box-shadow: 1px 1px 2px #ddd; -webkit-box-shadow: 1px 1px 2px #ddd; box-shadow: 1px 1px 2px #ddd; }
.tabs-nav { list-style: none; background: #eee url(../images/thead.png) repeat-x top left; border-bottom: 1px solid #ccc; }
.tabs-nav { position: relative; height: 41px; -moz-border-radius: 3px 3px 0 0; -webkit-border-radius: 3px 3px 0 0; border-radius: 3px 3px 0 0; }
.tabs-nav li { display: inline-block; float: left; }
.tabs-nav li:first-child a { -moz-border-radius: 3px 0 0 0; -webkit-border-radius: 3px 0 0 0; border-radius: 3px 0 0 0; }
.tabs-nav li a { display: block; padding: 10px 20px; background: #eee; color: #333; border-right: 1px solid #ccc; border-bottom: 1px solid #ccc; }
.tabs-nav li a:hover { text-decoration: none; background: #e7e7e7; }
.tabs-nav li.current a { background: #fcfcfc; color: #069; border-bottom: 1px solid #fcfcfc; }
.tabs-hide { display: none; }
.tabs-panel { padding: 15px; }

View File

@ -33,12 +33,7 @@ jQuery(document).ready(function(){
} }
}); });
/**
* Tab
**/
jQuery( "#tabs" ).tabs();
/** /**
* Accordion * Accordion
**/ **/

View File

@ -1 +0,0 @@
deny from all

View File

@ -33,14 +33,15 @@ $config = array(
'allowAutoLogin'=>true, 'allowAutoLogin'=>true,
), ),
// uncomment the following to enable URLs in path-format // uncomment the following to enable URLs in path-format
/*'urlManager'=>array( /*'urlManager' => array(
'urlFormat'=>'path', 'urlFormat' => 'path',
'rules'=>array( // Ocultar 'index.php' de las URL's.
'<controller:\w+>/<id:\d+>'=>'<controller>/view', // Hay que poner un fichero .htaccess con la redirección.
'<controller:\w+>/<action:\w+>/<id:\d+>'=>'<controller>/<action>', 'showScriptName' => false,
'<controller:\w+>/<action:\w+>'=>'<controller>/<action>', 'urlSuffix' => '.html',
), 'rules' => require(dirname(__FILE__) . '/url_rules.php'),
),*/ ),*/
'errorHandler'=>array( 'errorHandler'=>array(
// use 'site/error' action to display errors // use 'site/error' action to display errors
'errorAction'=>'site/error', 'errorAction'=>'site/error',

View File

@ -0,0 +1,43 @@
<?php
return array(
// REST patterns
/*array('api/list', 'pattern' => 'api/<model:\w+>', 'verb' => 'GET'),
array('api/view', 'pattern' => 'api/<model:\w+>/<id:\d+>', 'verb' => 'GET'),
array('api/update', 'pattern' => 'api/<model:\w+>/<id:\d+>', 'verb' => 'PUT'),
array('api/execute', 'pattern' => 'api/execute', 'verb' => 'POST'),
array('api/delete', 'pattern' => 'api/<model:\w+>/<id:\d+>', 'verb' => 'DELETE'),
array('api/create', 'pattern' => 'api/<model:\w+>', 'verb' => 'POST'),*/
'/usuarios/' => 'usuario/index',
'/candidatos/' => 'candidato/index',
'/candidato/<_a:(create)>' => 'candidato/<_a>', // <- ???????????????
'/candidatos/<id:\d+>' => 'candidato/view',
'/candidatos/<id:\d+>/capacidades' => 'candidatoCapacidad/index',
/*
'/projects/' => 'project/index',
'/project/<_a:(create)>' => 'project/<_a>',
'/projects/<identifier>' => 'project/view',
'/projects/<identifier>/issues' => 'issue/index',
'/projects/<identifier>/changesets' => 'changeset/index',
'/projects/<identifier>/issue/<_a:(create)>' => 'issue/<_a>',
'/projects/<identifier>/member/<_a:(create)>' => 'member/<_a>',
'/projects/<identifier>/milestone/<_a:(create)>' => 'milestone/<_a>',
'/projects/<identifier>/repository/<_a:(create)>' => 'repository/<_a>',
'/projects/<identifier>/issueCategory/<_a:(create)>' => 'issueCategory/<_a>',
'/projects/<identifier>/issue/<action:\w+>/<id:\d+>' => 'issue/<action>',
'/projects/<identifier>/issues/<action:\w+>/<id:\d+>' => 'issue/<action>',
'/projects/<identifier>/member/<action:\w+>/<id:\d+>' => 'member/<action>',
'/projects/<identifier>/milestone/<action:\w+>/<id:\d+>' => 'milestone/<action>',
'/projects/<identifier>/repository/<action:\w+>/<id:\d+>' => 'repository/<action>',
'/projects/<identifier>/issueCategory/<action:\w+>/<id:\d+>' => 'issueCategory/<action>',
'/projects/<identifier>/changeset/<action:\w+>/<id:\d+>' => 'changeset/<action>',
'/projects/<identifier>/<_a:(activity|roadmap|code|settings)>' => 'project/<_a>',
*/
'<controller:\w+>/<id:\d+>'=>'<controller>/view',
'<controller:\w+>/<action:\w+>/<id:\d+>'=>'<controller>/<action>',
'<controller:\w+>/<action:\w+>'=>'<controller>/<action>',
//'candidatos/<identifier>/feed' => array('project/feed', 'urlSuffix' => '.xml', 'caseSensitive' => false),
//'/issues/' => 'issue/index',
);

View File

@ -48,29 +48,34 @@ class CandidatoCapacidadController extends Controller
} }
/** /**
* Creates a new model. * Crea una nueva capacidad asociado al candidato indicado.
* If creation is successful, the browser will be redirected to the 'view' page. * @param integer $cid el ID del candidato
*/ */
public function actionCreate() public function actionCreate($cid)
{ {
$model=new CandidatoCapacidad; $model=new CandidatoCapacidad;
$model->candidato_id = $cid;
// Uncomment the following line if AJAX validation is needed $candidato = Candidato::model()->findByPk($cid);
$this->performAjaxValidation($model);
if(isset($_POST['CandidatoCapacidad'])) // Uncomment the following line if AJAX validation is needed
{ // $this->performAjaxValidation($model);
print_r($_POST);
$model->attributes=$_POST['CandidatoCapacidad']; if(isset($_POST['CandidatoCapacidad']))
if($model->save()) {
$this->redirect(array('view','id'=>$model->id)); $model->attributes=$_POST['CandidatoCapacidad'];
if($model->save()) {
Yii::app()->user->setFlash('success', Yii::t('intranet', 'Capacidad creada correctamente.'));
$this->redirect(array('index', 'cid'=>$cid));
} }
}
$this->render('create',array( $this->render('create',array(
'model'=>$model, 'model'=>$model,
)); 'candidato'=>$candidato,
));
} }
/** /**
* Updates a particular model. * Updates a particular model.
* If update is successful, the browser will be redirected to the 'view' page. * If update is successful, the browser will be redirected to the 'view' page.
@ -78,21 +83,25 @@ class CandidatoCapacidadController extends Controller
*/ */
public function actionUpdate($id) public function actionUpdate($id)
{ {
$model=$this->loadModel($id); $model=$this->loadModel($id);
$candidato = Candidato::model()->findByPk($model->candidato_id);
// Uncomment the following line if AJAX validation is needed // Uncomment the following line if AJAX validation is needed
$this->performAjaxValidation($model); // $this->performAjaxValidation($model);
if(isset($_POST['CandidatoCapacidad'])) if(isset($_POST['CandidatoCapacidad']))
{ {
$model->attributes=$_POST['CandidatoCapacidad']; $model->attributes=$_POST['CandidatoCapacidad'];
if($model->save()) if($model->save()) {
$this->redirect(array('view','id'=>$model->id)); Yii::app()->user->setFlash('success', Yii::t('intranet', 'Capacidad actualizada correctamente.'));
$this->redirect(array('index', 'cid'=>$candidato->id));
} }
}
$this->render('update',array( $this->render('update',array(
'model'=>$model, 'model'=>$model,
)); 'candidato'=>$candidato,
));
} }
/** /**
@ -102,28 +111,39 @@ class CandidatoCapacidadController extends Controller
*/ */
public function actionDelete($id) public function actionDelete($id)
{ {
if(Yii::app()->request->isPostRequest) if(Yii::app()->request->isPostRequest)
{ {
// we only allow deletion via POST request // we only allow deletion via POST request
$this->loadModel($id)->delete(); $this->loadModel($id)->delete();
Yii::app()->user->setFlash('success', Yii::t('intranet', 'Capacidad eliminada correctamente.'));
// if AJAX request (triggered by deletion via admin grid view), we should not redirect the browser // if AJAX request (triggered by deletion via admin grid view), we should not redirect the browser
if(!isset($_GET['ajax'])) if(!isset($_GET['ajax']))
$this->redirect(isset($_POST['returnUrl']) ? $_POST['returnUrl'] : array('admin')); $this->redirect(isset($_POST['returnUrl']) ? $_POST['returnUrl'] : array('admin'));
} }
else else
throw new CHttpException(400,'Invalid request. Please do not repeat this request again.'); throw new CHttpException(400,'Invalid request. Please do not repeat this request again.');
} }
/** /**
* Lists all models. * Lists all models.
*/ */
public function actionIndex() public function actionIndex($cid)
{ {
$dataProvider=new CActiveDataProvider('CandidatoCapacidad'); $this->layout = '//layouts/candidato';
$this->render('index',array( $candidato = Candidato::model()->findByPk($cid);
'dataProvider'=>$dataProvider,
)); $dataProvider = new CActiveDataProvider('CandidatoCapacidad', array(
'criteria'=>array(
'condition' => 'candidato_id='.$cid,
),
));
$this->render('index',array(
'dataProvider'=>$dataProvider,
'candidato'=>$candidato,
));
} }
/** /**

View File

@ -7,14 +7,14 @@ class CandidatoController extends Controller
* using two-column layout. See 'protected/views/layouts/column2.php'. * using two-column layout. See 'protected/views/layouts/column2.php'.
*/ */
public $layout='//layouts/default'; public $layout='//layouts/default';
/** /**
* @return array action filters * @return array action filters
*/ */
public function filters() public function filters()
{ {
return array( return array(
'accessControl', // perform access control for CRUD operations 'accessControl', // perform access control for CRUD operations
); );
} }
@ -26,6 +26,12 @@ class CandidatoController extends Controller
public function accessRules() public function accessRules()
{ {
return array( return array(
array('allow',
'actions' => array('index','view','create','update','delete','admin'),
'users' => array('*'),
),
);
/*return array(
array('allow', // allow authenticated user to perform 'create' and 'update' actions array('allow', // allow authenticated user to perform 'create' and 'update' actions
'actions'=>array('index','view','create','update','delete','admin'), 'actions'=>array('index','view','create','update','delete','admin'),
'users'=>array('@'), 'users'=>array('@'),
@ -33,7 +39,7 @@ class CandidatoController extends Controller
array('deny', // deny all users array('deny', // deny all users
'users'=>array('*'), 'users'=>array('*'),
), ),
); );*/
} }
/** /**
@ -42,9 +48,10 @@ class CandidatoController extends Controller
*/ */
public function actionView($id) public function actionView($id)
{ {
$this->render('view',array( $this->layout='//layouts/candidato';
'model'=>$this->loadModel($id), $this->render('view',array(
)); 'model'=>$this->loadModel($id),
));
} }
/** /**
@ -63,49 +70,7 @@ class CandidatoController extends Controller
$titulacionesValidas = array(); $titulacionesValidas = array();
// Uncomment the following line if AJAX validation is needed // Uncomment the following line if AJAX validation is needed
$this->performAjaxValidation($model); // $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'])) { if (isset($_POST['Candidato'])) {
$model->attributes=$_POST['Candidato']; $model->attributes=$_POST['Candidato'];
@ -113,25 +78,40 @@ class CandidatoController extends Controller
$foundInvalidChild = false; $foundInvalidChild = false;
if ($model->validate()) { if ($model->validate()) {
if (!MultiModelForm::validate($idioma, $idiomasValidos, $idiomasBorrados)) if (!MultiModelForm::validate($idioma, $idiomasValidos, $idiomasBorrados)) {
$foundInvalidChild = true; Yii::app()->user->setFlash('error', Yii::t('intranet', 'Algún idioma del candidato no es válido.'));
$foundInvalidChild = true;
}
if (!MultiModelForm::validate($titulacion, $titulacionesValidas, $titulacionesBorradas)) if (!MultiModelForm::validate($titulacion, $titulacionesValidas, $titulacionesBorradas)) {
$foundInvalidChild = true; Yii::app()->user->setFlash('error', Yii::t('intranet', 'Alguna titulación del candidato no es válida.'));
$foundInvalidChild = true;
}
} else {
Yii::app()->user->setFlash('error', Yii::t('intranet', 'Algún dato del candidato no es válido.'));
} }
if (!$foundInvalidChild && $model->save() ) { if (!$foundInvalidChild && $model->save() ) {
$masterValues = array ('candidato_id'=>$model->id); $masterValues = array ('candidato_id'=>$model->id);
if (MultiModelForm::save($idioma, $idiomasValidos, $idiomasBorrados, $masterValues) && if (!MultiModelForm::save($idioma, $idiomasValidos, $idiomasBorrados, $masterValues)) {
MultiModelForm::save($titulacion, $titulacionesValidas, $titulacionesBorradas, $masterValues)) Yii::app()->user->setFlash('error', Yii::t('intranet', 'Se ha producido un error al guardar los idiomas del candidato.'));
{ $foundInvalidChild = true;
}
if (!MultiModelForm::save($titulacion, $titulacionesValidas, $titulacionesBorradas, $masterValues)) {
Yii::app()->user->setFlash('error', Yii::t('intranet', 'Se ha producido un error al guardar las titulaciones del candidato.'));
$foundInvalidChild = true;
}
if (!$foundInvalidChild) {
$this->guardarFoto($model->id, $foto); $this->guardarFoto($model->id, $foto);
Yii::app()->user->setFlash('success', "Candidato dado de alta correctamente."); Yii::app()->user->setFlash('success', Yii::t('intranet', 'Candidato dado de alta correctamente.'));
$url=$this->createUrl('index', array('id' => $model->id)); $url=$this->createUrl('view', array('id' => $model->id));
$this->redirect($url); $this->redirect($url);
} }
} } else {
Yii::app()->user->setFlash('error', Yii::t('intranet', 'Se ha producido un error al guardar el candidato.'));
}
} }
$this->render('create',array( $this->render('create',array(
@ -160,92 +140,49 @@ class CandidatoController extends Controller
$titulacionesValidas = array(); $titulacionesValidas = array();
// Uncomment the following line if AJAX validation is needed // Uncomment the following line if AJAX validation is needed
$this->performAjaxValidation($model); // $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'])) { if (isset($_POST['Candidato'])) {
$model->attributes=$_POST['Candidato']; $model->attributes=$_POST['Candidato'];
$foto=CUploadedFile::getInstance($model,'foto'); $foto=CUploadedFile::getInstance($model,'foto');
$foundInvalidChild = false; $foundInvalidChild = false;
if ($model->validate()) { if ($model->validate()) {
if (!MultiModelForm::validate($idioma, $idiomasValidos, $idiomasBorrados)) if (!MultiModelForm::validate($idioma, $idiomasValidos, $idiomasBorrados)) {
$foundInvalidChild = true; Yii::app()->user->setFlash('error', Yii::t('intranet', 'Algún idioma del candidato no es válido.'));
$foundInvalidChild = true;
}
if (!MultiModelForm::validate($titulacion, $titulacionesValidas, $titulacionesBorradas)) if (!MultiModelForm::validate($titulacion, $titulacionesValidas, $titulacionesBorradas)) {
$foundInvalidChild = true; Yii::app()->user->setFlash('error', Yii::t('intranet', 'Alguna titulación del candidato no es válida.'));
$foundInvalidChild = true;
}
} else {
Yii::app()->user->setFlash('error', Yii::t('intranet', 'Algún dato del candidato no es válido.'));
} }
if (!$foundInvalidChild && $model->save() ) { if (!$foundInvalidChild && $model->save() ) {
$masterValues = array ('candidato_id'=>$model->id); $masterValues = array ('candidato_id'=>$model->id);
if (MultiModelForm::save($idioma, $idiomasValidos, $idiomasBorrados, $masterValues) && if (!MultiModelForm::save($idioma, $idiomasValidos, $idiomasBorrados, $masterValues)) {
MultiModelForm::save($titulacion, $titulacionesValidas, $titulacionesBorradas, $masterValues)) Yii::app()->user->setFlash('error', Yii::t('intranet', 'Se ha producido un error al guardar los idiomas del candidato.'));
{ $foundInvalidChild = true;
$this->guardarFoto($model->id, $foto);
Yii::app()->user->setFlash('success', "Candidato actualizado correctamente.");
$this->redirect(array('index'));
} }
} if (!MultiModelForm::save($titulacion, $titulacionesValidas, $titulacionesBorradas, $masterValues)) {
} Yii::app()->user->setFlash('error', Yii::t('intranet', 'Se ha producido un error al guardar las titulaciones del candidato.'));
$foundInvalidChild = true;
}
/*if(isset($_POST['Candidato'])) {
if (!$foundInvalidChild) {
//the value for the foreign key 'candidato_id' $this->guardarFoto($model->id, $foto);
$masterValues = array ('candidato_id'=>$model->id); Yii::app()->user->setFlash('success', Yii::t('intranet', 'Candidato modificado correctamente.'));
$url=$this->createUrl('view', array('id' => $model->id));
//Save the master model after saving valid members $this->redirect($url);
if (MultiModelForm::save($idioma, $validatedIdiomas, $deleteIdiomas, $masterValues) && $model->save() ) { }
$this->guardarFoto($model->id, $foto); } else {
Yii::app()->user->setFlash('success', "Candidato actualizado correctamente."); Yii::app()->user->setFlash('error', Yii::t('intranet', 'Se ha producido un error al guardar el candidato.'));
//$this->redirect(array('view','id'=>$model->id));
} }
}*/ }
$this->render('update',array( $this->render('update',array(
'model'=>$model, 'model'=>$model,
@ -268,7 +205,7 @@ class CandidatoController extends Controller
// we only allow deletion via POST request // we only allow deletion via POST request
$this->loadModel($id)->delete(); $this->loadModel($id)->delete();
$this->borrarFoto($id); $this->borrarFoto($id);
Yii::app()->user->setFlash('success', "Candidato eliminardo correctamente.");
// if AJAX request (triggered by deletion via admin grid view), we should not redirect the browser // if AJAX request (triggered by deletion via admin grid view), we should not redirect the browser
if(!isset($_GET['ajax'])) if(!isset($_GET['ajax']))
$this->redirect(isset($_POST['returnUrl']) ? $_POST['returnUrl'] : array('index')); $this->redirect(isset($_POST['returnUrl']) ? $_POST['returnUrl'] : array('index'));
@ -389,6 +326,24 @@ class CandidatoController extends Controller
}*/ }*/
$value = implode('<br/>', $lista); $value = implode('<br/>', $lista);
return ($value == NULL) ? CHtml::tag("span", array("class"=>"nodata"), Yii::t('intranet', 'Sin capacidades')) : $value; return ($value == NULL) ? CHtml::tag("span", array("class"=>"nodata"), Yii::t('intranet', 'Sin capacidades')) : $value;
} }
public function darListaTitulaciones($model)
{
$lista = array();
foreach ($model->titulaciones as $titulacion) {
$lista[] = $titulacion->titulacion;
}
return $lista;
}
public function darListaIdiomas($model)
{
$lista = array();
foreach ($model->idiomas as $idioma) {
$lista[] = $idioma->idioma;
}
return $lista;
}
} }

View File

@ -66,6 +66,15 @@ class Candidato extends CActiveRecord
$this->_nombreCompleto = $value; $this->_nombreCompleto = $value;
} }
public function getRangoSalarial() {
return Yii::app()->numberFormatter->formatCurrency($this->salario_minimo,'EUR') . ' - ' .
Yii::app()->numberFormatter->formatCurrency($this->salario_maximo,'EUR');
}
public function getTieneVehiculoPropio() {
return Yii::app()->format->boolean($this->vehiculo_propio);
}
/** /**
* Devuelve la lista de géneros de un candidato. * Devuelve la lista de géneros de un candidato.
* @return array lista de géneros permitidos * @return array lista de géneros permitidos
@ -144,7 +153,8 @@ class Candidato extends CActiveRecord
disponibilidad_proyectos_internacionales', disponibilidad_proyectos_internacionales',
'length', 'max'=>255), 'length', 'max'=>255),
array('fecha_nacimiento', 'safe'), array('fecha_nacimiento, observaciones', 'safe'),
array('estado', 'unsafe'),
// The following rule is used by search(). // The following rule is used by search().
// Please remove those attributes that should not be searched. // Please remove those attributes that should not be searched.
array('id, estado, dni, nombre, apellidos, email, telefono_fijo, array('id, estado, dni, nombre, apellidos, email, telefono_fijo,

View File

@ -86,7 +86,7 @@ class CandidatoIdioma extends CActiveRecord
'candidato_id' => 'Id Candidato', 'candidato_id' => 'Id Candidato',
'idioma' => 'Idioma', 'idioma' => 'Idioma',
'conversacion' => 'Conversación', 'conversacion' => 'Conversación',
'lectura_traduccion' => 'Lectura/traduccion', 'lectura_traduccion' => 'Lectura/traducción',
); );
} }

View File

@ -9,7 +9,7 @@
* @property string $titulacion * @property string $titulacion
* *
* The followings are the available model relations: * The followings are the available model relations:
* @property Candidatos $candidato * @property Candidato $candidato
*/ */
class CandidatoTitulacion extends CActiveRecord class CandidatoTitulacion extends CActiveRecord
{ {
@ -39,12 +39,10 @@ class CandidatoTitulacion extends CActiveRecord
// NOTE: you should only define rules for those attributes that // NOTE: you should only define rules for those attributes that
// will receive user inputs. // will receive user inputs.
return array( return array(
array('candidato_id, titulacion', 'required'),
array('candidato_id', 'numerical', 'integerOnly'=>true),
array('titulacion', 'length', 'max'=>255), array('titulacion', 'length', 'max'=>255),
// The following rule is used by search(). // The following rule is used by search().
// Please remove those attributes that should not be searched. // Please remove those attributes that should not be searched.
array('id, candidato_id, titulacion', 'safe', 'on'=>'search'), array('titulacion', 'safe', 'on'=>'search'),
); );
} }
@ -56,7 +54,7 @@ class CandidatoTitulacion extends CActiveRecord
// NOTE: you may need to adjust the relation name and the related // NOTE: you may need to adjust the relation name and the related
// class name for the relations automatically generated below. // class name for the relations automatically generated below.
return array( return array(
'candidato' => array(self::BELONGS_TO, 'Candidatos', 'candidato_id'), 'candidato' => array(self::BELONGS_TO, 'Candidato', 'candidato_id'),
); );
} }
@ -67,7 +65,7 @@ class CandidatoTitulacion extends CActiveRecord
{ {
return array( return array(
'id' => 'ID', 'id' => 'ID',
'candidato_id' => 'Candidato', 'candidato_id' => 'ID Candidato',
'titulacion' => 'Titulación', 'titulacion' => 'Titulación',
); );
} }

View File

@ -1,10 +1,29 @@
<?php <?php
Yii::app()->clientScript->registerScriptFile(Yii::app()->baseUrl . '/js/custom/elements.js'); Yii::app()->clientScript->registerScriptFile(Yii::app()->baseUrl . '/js/custom/elements.js');
Yii::app()->clientScript->registerScriptFile(Yii::app()->baseUrl . '/js/plugins/wysiwyg/jquery.wysiwyg.js');
Yii::app()->clientScript->registerScriptFile(Yii::app()->baseUrl . 'js/plugins/wysiwyg/wysiwyg.image.js');
Yii::app()->clientScript->registerScriptFile(Yii::app()->baseUrl . 'js/plugins/wysiwyg/wysiwyg.link.js');
Yii::app()->clientScript->registerScriptFile(Yii::app()->baseUrl . 'js/plugins/wysiwyg/wysiwyg.table.js');
$script=<<<HTML
jQuery(document).ready(function() {
jQuery('#wysiwyg').wysiwyg({
initialContent: "",
controls: {
cut: { visible: true },
copy: { visible: true },
paste: { visible: true }
}
});
});
HTML;
Yii::app()->clientScript->registerScript('wysiwyg', $script, CClientScript::POS_END);
?> ?>
<?php $form=$this->beginWidget('CActiveForm', array( <?php $form=$this->beginWidget('CActiveForm', array(
'id'=>'candidato-form', 'id'=>'candidato-form',
'enableAjaxValidation'=>true, //'enableAjaxValidation'=>true,
'htmlOptions'=>array('enctype' => 'multipart/form-data'), 'htmlOptions'=>array('enctype' => 'multipart/form-data'),
)); ?> )); ?>
@ -176,14 +195,13 @@ Yii::app()->clientScript->registerScriptFile(Yii::app()->baseUrl . '/js/custom/e
<div class="widgetbox two_third last form_default"> <div class="widgetbox two_third last form_default">
<h3> <h3>
<span> <span>
<legend><?php echo Yii::t('intranet', 'Datos académicos'); ?></legend> <legend><?php echo Yii::t('intranet', 'Observaciones'); ?></legend>
</span> </span>
</h3> </h3>
<?php /*$this->renderPartial('_capacidades', array( <div class="content nopadding">
'model'=>$model, <?php echo $form->textArea($model, 'observaciones', array('id'=>'wysiwyg', 'class'=>'ff')); ?>
'capacidad'=>$capacidad, <?php echo $form->error($model,'observaciones', array('class'=>'errortext')); ?>
'capacidadesValidas'=>$capacidadesValidas, </div>
));*/ ?>
</div> </div>
<br clear="all" /> <br clear="all" />
<div class="form_default"> <div class="form_default">

View File

@ -1,66 +1,94 @@
<div class="view"> <?php
//Yii::app()->clientScript->registerScriptFile(Yii::app()->baseUrl . '/js/custom/elements.js');
?>
<b><?php echo CHtml::encode($data->getAttributeLabel('id')); ?>:</b> <div class="resumen">
<?php echo CHtml::link(CHtml::encode($data->id), array('view', 'id'=>$data->id)); ?> <div class="one_half">
<br /> <div class="one_half alignright">
<?php
echo CHtml::image($data->foto, $data->nombre,
array("title" => $data->nombre, "width"=>"120", "height"=>"120")
); ?>
</div>
<div class="one_half last">
<h2><?php echo CHtml::encode($data->nombreCompleto); ?></h2>
<?php echo CHtml::link(CHtml::encode($data->estado), "#", array("class" => $data->cssClassEstado)); ?><br/>
<strong><?php echo CHtml::encode($data->getAttributeLabel('sexo')); ?>:</strong>&nbsp;<?php echo CHtml::encode($data->sexo); ?><br/>
<strong><?php echo CHtml::encode($data->getAttributeLabel('fecha_nacimiento')); ?>:</strong>&nbsp;<?php echo CHtml::encode($data->fecha_nacimiento); ?><br/>
<strong><?php echo CHtml::encode($data->getAttributeLabel('lugar_nacimiento')); ?>:</strong>&nbsp;<?php echo CHtml::encode($data->lugar_nacimiento); ?><br/>
</div>
</div>
<div class="one_half last">
<div class="one_third alignright">
<strong><?php echo CHtml::encode($data->getAttributeLabel('dni')); ?>:</strong><br/>
<strong><?php echo CHtml::encode($data->getAttributeLabel('localidad')); ?>:</strong><br/>
<strong><?php echo CHtml::encode($data->getAttributeLabel('email')); ?>:</strong><br/>
<strong><?php echo CHtml::encode($data->getAttributeLabel('telefono_fijo')); ?>:</strong><br/>
<strong><?php echo CHtml::encode($data->getAttributeLabel('telefono_movil')); ?>:</strong><br/>
<b><?php echo CHtml::encode($data->getAttributeLabel('foto')); ?>:</b> </div>
<?php echo CHtml::encode($data->foto); ?> <div class="two_third last">
<br /> <?php echo CHtml::encode($data->dni); ?><br/>
<?php echo CHtml::encode($data->localidad); ?><br/>
<b><?php echo CHtml::encode($data->getAttributeLabel('dni')); ?>:</b> <?php echo CHtml::mailto($data->email); ?><br/>
<?php echo CHtml::encode($data->dni); ?> <?php echo CHtml::encode($data->telefono_fijo); ?><br/>
<br /> <?php echo CHtml::encode($data->telefono_movil); ?><br/>
</div>
<b><?php echo CHtml::encode($data->getAttributeLabel('nombre')); ?>:</b> </div>
<?php echo CHtml::encode($data->nombre); ?> <br clear="all"/>
<br /> <br clear="all"/>
<b><?php echo CHtml::encode($data->getAttributeLabel('apellidos')); ?>:</b> <div class="one_half ">
<?php echo CHtml::encode($data->apellidos); ?> <div class="one_half alignright">
<br /> <h3 class="title">Disponibilidad</h3>
<strong><?php echo Yii::t('intranet', 'Incorporación'); ?>:</strong><br/>
<b><?php echo CHtml::encode($data->getAttributeLabel('email')); ?>:</b> <strong><?php echo Yii::t('intranet', 'Entrevistas'); ?>:</strong><br/>
<?php echo CHtml::encode($data->email); ?> <strong><?php echo Yii::t('intranet', 'Para guardias'); ?>:</strong><br/>
<br /> <strong><?php echo Yii::t('intranet', 'Para viajar'); ?>:</strong><br/>
<strong><?php echo Yii::t('intranet', 'Proyectos internacionales'); ?>:</strong><br/>
<b><?php echo CHtml::encode($data->getAttributeLabel('telefono_fijo')); ?>:</b> </div>
<?php echo CHtml::encode($data->telefono_fijo); ?> <div class="one_half last">
<br /> <br/>
<?php echo CHtml::encode($data->disponibilidad_incorporacion); ?><br/>
<?php /* <?php echo CHtml::encode($data->disponibilidad_entrevistas); ?><br/>
<b><?php echo CHtml::encode($data->getAttributeLabel('telefono_movil')); ?>:</b> <?php echo CHtml::encode($data->disponibilidad_guardias); ?><br/>
<?php echo CHtml::encode($data->telefono_movil); ?> <?php echo CHtml::encode($data->disponibilidad_viajar); ?><br/>
<br /> <?php echo CHtml::encode($data->disponibilidad_proyectos_internacionales); ?><br/>
</div>
<b><?php echo CHtml::encode($data->getAttributeLabel('sexo')); ?>:</b> </div>
<?php echo CHtml::encode($data->sexo); ?> <div class="one_half last">
<br /> <div class="one_third alignright">
<strong><?php echo CHtml::encode($data->getAttributeLabel('carnet_conducir')); ?>:</strong><br/>
<b><?php echo CHtml::encode($data->getAttributeLabel('fecha_nacimiento')); ?>:</b> <strong><?php echo CHtml::encode($data->getAttributeLabel('vehiculo_propio')); ?>:</strong><br/>
<?php echo CHtml::encode($data->fecha_nacimiento); ?> <strong><?php echo Yii::t('intranet', 'Rango salarial'); ?>:</strong><br/>
<br /> <strong><?php echo CHtml::encode($data->getAttributeLabel('telefono_movil')); ?>:</strong><br/>
<strong><?php echo CHtml::encode($data->getAttributeLabel('idiomas')); ?>:</strong><br/>
<b><?php echo CHtml::encode($data->getAttributeLabel('lugar_nacimiento')); ?>:</b> <strong><?php echo CHtml::encode($data->getAttributeLabel('titulacciones')); ?>:</strong><br/>
<?php echo CHtml::encode($data->lugar_nacimiento); ?>
<br /> </div>
<div class="two_third last">
<b><?php echo CHtml::encode($data->getAttributeLabel('fecha_alta')); ?>:</b> <?php echo CHtml::encode($data->carnet_conducir); ?><br/>
<?php echo CHtml::encode($data->fecha_alta); ?> <?php echo CHtml::encode($data->tieneVehiculoPropio); ?><br/>
<br /> <?php echo CHtml::encode($data->rangoSalarial); ?><br/>
<?php echo CHtml::encode($data->telefono_movil); ?><br/>
<b><?php echo CHtml::encode($data->getAttributeLabel('usuario_alta')); ?>:</b> <?php echo implode(', <br/>', ($this->darListaIdiomas($data))); ?>
<?php echo CHtml::encode($data->usuario_alta); ?> <?php echo implode(', <br/>', ($this->darListaTitulaciones($data))); ?>
<br /> </div>
</div>
<b><?php echo CHtml::encode($data->getAttributeLabel('fecha_modificacion')); ?>:</b> <br clear="all"/>
<?php echo CHtml::encode($data->fecha_modificacion); ?> <br clear="all"/>
<br /> <div class="one_half ">
<div class="one_half alignright">
<b><?php echo CHtml::encode($data->getAttributeLabel('usuario_modificacion')); ?>:</b> <strong><?php echo CHtml::encode($data->getAttributeLabel('observaciones')); ?>:</strong>
<?php echo CHtml::encode($data->usuario_modificacion); ?> </div>
<br /> <div class="one_half last">
<?php echo CHtml::encode($data->observaciones); ?>
*/ ?> </div>
</div>
</div> <div class="one_half last">
<div class="one_half alignright">
</div>
<div class="one_half last">
</div>
</div>
</div>

View File

@ -1,7 +1,7 @@
<?php <?php
$this->breadcrumbs=array( $this->breadcrumbs=array(
'Candidatos'=>array('index'), Yii::t('intranet', 'Candidatos') => array('candidato/index'),
'Nuevo candidato', Yii::t('intranet', 'Nuevo candidato') => array('candidato/index'),
); );
$this->menu=array( $this->menu=array(
array( array(
@ -10,7 +10,7 @@ $this->menu=array(
'linkOptions'=>array('class'=>'iconlink'), 'linkOptions'=>array('class'=>'iconlink'),
), ),
); );
$this->pageTitle='Nuevo candidato'; $this->pageTitle=Yii::t('intranet', 'Nuevo candidato');
?> ?>
<?php echo $this->renderPartial('_form', array( <?php echo $this->renderPartial('_form', array(

View File

@ -4,6 +4,7 @@ $this->breadcrumbs=array(
); );
$this->menu=array( $this->menu=array(
'principal' => array(
array( array(
'label'=>'<img class="mgright5" alt="Nuevo candidato" src="' . Yii::app()->baseUrl . '/images/icons/small/white/user.png"/>Nuevo candidato', 'label'=>'<img class="mgright5" alt="Nuevo candidato" src="' . Yii::app()->baseUrl . '/images/icons/small/white/user.png"/>Nuevo candidato',
'url'=>array('create'), 'url'=>array('create'),
@ -14,6 +15,7 @@ $this->menu=array(
'url'=>array('#'), 'url'=>array('#'),
'linkOptions'=>array('class'=>'iconlink search-button'), 'linkOptions'=>array('class'=>'iconlink search-button'),
), ),
),
); );
$this->pageTitle=Yii::t('intranet', 'Gestión de candidatos'); $this->pageTitle=Yii::t('intranet', 'Gestión de candidatos');
@ -31,7 +33,6 @@ $('.search-form form').submit(function(){
}); });
"); ");
?> ?>
<div class="search-form" style="display:none"> <div class="search-form" style="display:none">
@ -74,7 +75,7 @@ $('.search-form form').submit(function(){
array( array(
'type' => 'html', 'type' => 'html',
'name' => 'nombreCompleto', 'name' => 'nombreCompleto',
'value' => 'CHtml::link(CHtml::encode($data->nombreCompleto), array("update", "id"=>$data->id));', 'value' => 'CHtml::link(CHtml::encode($data->nombreCompleto), array("view", "id"=>$data->id));',
'headerHtmlOptions'=>array( 'headerHtmlOptions'=>array(
'class' => 'head0 sorting', 'class' => 'head0 sorting',
), ),
@ -83,7 +84,7 @@ $('.search-form form').submit(function(){
array( array(
'type' => 'html', 'type' => 'html',
'name' => 'capacidad_tecnica_search', 'name' => 'capacidad_tecnica_search',
'value'=>array($this, 'gridDataColumnCapacidadTecnica'), 'value'=> array($this, 'gridDataColumnCapacidadTecnica'),
'header' => 'Capacidad técnica', 'header' => 'Capacidad técnica',
'filter' => CHtml::listData(PerfilTecnico::model()->findAll(), 'id', 'descripcion'), 'filter' => CHtml::listData(PerfilTecnico::model()->findAll(), 'id', 'descripcion'),
'cssClassExpression' => '"con0"', 'cssClassExpression' => '"con0"',

View File

@ -1,6 +1,6 @@
<?php <?php
$this->breadcrumbs=array( $this->breadcrumbs=array(
'Candidatos'=>array('index'), Yii::t('intranet', 'Candidatos') => array('candidato/index'),
$model->nombre . ' ' . $model->apellidos=>array('view','id'=>$model->id), $model->nombre . ' ' . $model->apellidos=>array('view','id'=>$model->id),
Yii::t('intranet', 'Modificación'), Yii::t('intranet', 'Modificación'),
); );
@ -22,4 +22,5 @@ $this->pageTitle=Yii::t('intranet', 'Modificar candidato') . ' "' . $model->nomb
'idiomasValidos'=>$idiomasValidos, 'idiomasValidos'=>$idiomasValidos,
'titulacionesValidas'=>$titulacionesValidas, 'titulacionesValidas'=>$titulacionesValidas,
)); ));
?> ?>

View File

@ -1,37 +1,13 @@
<?php <?php
$this->breadcrumbs=array( $this->breadcrumbs=array(
'Candidatos'=>array('index'), 'Candidatos'=>array('index'),
$model->id, $model->nombre . ' ' . $model->apellidos=>array('view','id'=>$model->id),
); );
$this->menu=array( $this->pageTitle=Yii::t('intranet', 'Candidato') . ' "' . $model->nombre . ' ' . $model->apellidos . '"';
array('label'=>'List Candidato', 'url'=>array('index')),
array('label'=>'Create Candidato', 'url'=>array('create')),
array('label'=>'Update Candidato', 'url'=>array('update', 'id'=>$model->id)),
array('label'=>'Delete Candidato', 'url'=>'#', 'linkOptions'=>array('submit'=>array('delete','id'=>$model->id),'confirm'=>'Are you sure you want to delete this item?')),
array('label'=>'Manage Candidato', 'url'=>array('admin')),
);
?> ?>
<h1>View Candidato #<?php echo $model->id; ?></h1> <?php echo $this->renderPartial('_view', array(
'data'=>$model,
<?php $this->widget('zii.widgets.CDetailView', array( ));
'data'=>$model, ?>
'attributes'=>array(
'id',
'foto',
'dni',
'nombre',
'apellidos',
'email',
'telefono_fijo',
'telefono_movil',
'sexo',
'fecha_nacimiento',
'lugar_nacimiento',
'fecha_alta',
'usuario_alta',
'fecha_modificacion',
'usuario_modificacion',
),
)); ?>

View File

@ -23,7 +23,7 @@ Yii::app()->clientScript->registerScript('wysiwyg', $script, CClientScript::POS_
<?php $form=$this->beginWidget('CActiveForm', array( <?php $form=$this->beginWidget('CActiveForm', array(
'id'=>'candidato-capacidad-form', 'id'=>'candidato-capacidad-form',
'enableAjaxValidation'=>true, //'enableAjaxValidation'=>true,
'clientOptions'=>array('validateOnSubmit'=>true, 'validateOnChange'=>true), 'clientOptions'=>array('validateOnSubmit'=>true, 'validateOnChange'=>true),
)); ?> )); ?>

View File

@ -1,6 +1,8 @@
<?php <?php
$this->breadcrumbs=array( $this->breadcrumbs=array(
'Capacidades profesionales'=>array('index'), Yii::t('intranet', 'Candidatos') => array('candidato/index'),
$candidato->nombre . ' ' . $candidato->apellidos => array('candidato/view','id'=>$candidato->id),
Yii::t('intranet', 'Capacidades profesionales') => array('candidatoCapacidad/index'),
Yii::t('intranet', 'Nueva capacidad profesional'), Yii::t('intranet', 'Nueva capacidad profesional'),
); );

View File

@ -1,17 +1,75 @@
<?php <?php
$this->breadcrumbs=array( $this->breadcrumbs=array(
'Candidato Capacidads', Yii::t('intranet', 'Candidatos') => array('candidato/index'),
$candidato->nombre . ' ' . $candidato->apellidos => array('candidato/view','id'=>$candidato->id),
Yii::t('intranet', 'Capacidades profesionales'),
); );
$this->menu=array( $this->pageTitle=Yii::t('intranet', 'Gestión de capacidades profesionales');
array('label'=>'Create CandidatoCapacidad', 'url'=>array('create')), $candidatoId = $this->actionParams['cid'];
array('label'=>'Manage CandidatoCapacidad', 'url'=>array('admin')),
);
?> ?>
<h1>Candidato Capacidads</h1> <?php
echo CHtml::link(
Yii::t('intranet', 'Nueva capacidad'),
$this->createUrl('candidatoCapacidad/create', array('cid'=>$candidatoId))
);
?>
<?php $this->widget('zii.widgets.CListView', array( <div class="widgetbox">
'dataProvider'=>$dataProvider, <div class="content nopadding ohidden">
'itemView'=>'_view', <?php
)); ?> $columns = array(
array(
'header'=>Yii::t('intranet', 'Acciones'),
'class'=>'CButtonColumn',
'headerHtmlOptions'=>array(
'style' => 'width:55px;',
'class' => 'head1',
),
'template'=>'{update}{delete}',
'cssClassExpression' => '"con0"',
),
array(
'type' => 'html',
'name' => 'perfilTecnico.descripcion',
'value' => 'CHtml::link(CHtml::encode($data->perfilTecnico->descripcion), array("update", "id"=>$data->id));',
'headerHtmlOptions'=>array(
'class' => 'head0 sorting',
),
'cssClassExpression' => '"con1"',
),
array(
'type' => 'html',
'name' => 'meses_perfil_tecnico',
//'value'=> array($this, 'gridDataColumnCapacidadTecnica'),
//'header' => 'Capacidad técnica',
//'filter' => CHtml::listData(PerfilTecnico::model()->findAll(), 'id', 'descripcion'),
'headerHtmlOptions'=>array(
'class' => 'head1 sorting',
),
'cssClassExpression' => '"con0"',
'htmlOptions'=>array(
'align' => 'right',
'width' => '50px',
)
),
);
$pageSize = Yii::app()->user->getState('pageSize', Yii::app()->params['defaultPageSize']);
$dataProvider->getPagination()->setPageSize($pageSize);
$this->widget('application.extensions.SelGridView', array(
'id'=>'capacidades-grid',
'dataProvider'=>$dataProvider,
'columns'=>$columns,
'cssFile' => Yii::app()->baseUrl . '/css/gridview3.css',
'itemsCssClass' => 'sTable3',
'pagerCssClass' => 'dataTables_paginate',
'template' => '{items}{pager}',
'emptyText' => Yii::t('intranet', 'Este candidato no tiene capacidades'),
'selectableRows' => 1,
));
?>
</div>
</div>

View File

@ -1,8 +1,9 @@
<?php <?php
$this->breadcrumbs=array( $this->breadcrumbs=array(
'Capacidades profesionales'=>array('index'), Yii::t('intranet', 'Candidatos') => array('candidato/index'),
$model->id=>array('view','id'=>$model->id), $candidato->nombre . ' ' . $candidato->apellidos => array('candidato/view','id'=>$candidato->id),
Yii::t('intranet', 'Modificación'), Yii::t('intranet', 'Capacidades profesionales') => array('candidatoCapacidad/index'),
$model->perfilTecnico->descripcion,
); );
$this->pageTitle=Yii::t('intranet', 'Modificar capacidad profesional'); $this->pageTitle=Yii::t('intranet', 'Modificar capacidad profesional');

View File

@ -0,0 +1,85 @@
<?php $this->beginContent('//layouts/default'); ?>
<?php
$candidatoId = (isset($this->actionParams['cid'])) ? $this->actionParams['cid'] : $this->actionParams['id'];
$editImg = CHtml::image(
Yii::app()->baseUrl . '/images/icons/small/white/edit.png',
Yii::t('intranet', 'Modificar'),
array('class' => 'mgright5'));
$deleteImg = CHtml::image(
Yii::app()->baseUrl . '/images/icons/small/white/close.png',
Yii::t('intranet', 'Eliminar'),
array('class' => 'mgright5'));
$botonesPrincipales = array(
array(
'label' => $editImg . Yii::t('intranet', 'Modificar'),
'url' => $this->createUrl('candidato/update', array('id'=>$candidatoId)),
'linkOptions' => array('class'=>'iconlink'),
),
array(
'label' => $deleteImg . Yii::t('intranet', 'Eliminar'),
'url' => '#',
'linkOptions' => array(
'class' => 'iconlink',
'submit' => $this->createUrl('candidato/delete', array('id'=>$candidatoId)),
'confirm' => Yii::t('intranet', '¿Desea eliminar este candidato?')
),
),
);
$pestañas = array(
array(
'label' => Yii::t('intranet', 'Resumen'),
'url' => $this->createUrl('candidato/view',array('id' => $candidatoId)),
'linkOptions' => array('class'=>'candidatos'),
'active' => ($this->getId() == 'candidato'),
),
array(
'label' => Yii::t('intranet', 'Capacidades profesionales'),
'url' => $this->createUrl('candidatoCapacidad/index', array('cid'=>$candidatoId)),
'active' => ($this->getId() == 'candidatoCapacidad'),
),
array(
'label' => Yii::t('intranet', 'Currículums'),
'url' => array('/usuario'),
'linkOptions' => array('class'=>'curriculum'),
'active' => ($this->getId() == 'curriculum')
),
array(
'label' => Yii::t('intranet', 'Historial'),
'url' => array('/site/index'),
'active' => ($this->getId() == 'solicitud'),
),
);
$this->menu=array(
'principal' => $botonesPrincipales,
'pestañas' => $pestañas,
);
?>
<div class="clear"></div>
<div class="two_third last">
<div id="tabs" class="tabs">
<?php if (isset($this->menu['pestañas'])) : ?>
<?php $this->widget('zii.widgets.CMenu',array(
'htmlOptions'=>array(
'class' => 'tabs-nav',
),
'activeCssClass'=>'current',
'linkLabelWrapper' => 'span',
'items' => $this->menu['pestañas'],
));
?>
<?php endif ?>
<div class="tabs-panel">
<?php echo $content; ?>
</div>
</div>
</div><!-- two_third last -->
<?php $this->endContent(); ?>

View File

@ -72,7 +72,7 @@
), ),
array( array(
'label'=>Yii::t('intranet', 'Candidatos'), 'label'=>Yii::t('intranet', 'Candidatos'),
'url'=>array('/candidato'), 'url'=>array('/candidato/index'),
'linkOptions'=>array('class'=>'candidatos'), 'linkOptions'=>array('class'=>'candidatos'),
'active' => ($this->getId() == 'candidato'), 'active' => ($this->getId() == 'candidato'),
), ),
@ -90,7 +90,7 @@
), ),
array( array(
'label'=>Yii::t('intranet', 'Sistema'), 'label'=>Yii::t('intranet', 'Sistema'),
'url'=>array('/usuario'), 'url'=>array('/usuario/index'),
'linkOptions'=>array('class'=>'sistema'), 'linkOptions'=>array('class'=>'sistema'),
'active' => ($this->getId() == 'usuario') 'active' => ($this->getId() == 'usuario')
), ),
@ -129,9 +129,9 @@
<?php endif; ?> <?php endif; ?>
<?php $flashMessages = Yii::app()->user->getFlashes(); ?> <?php $flashMessages = Yii::app()->user->getFlashes(); ?>
<?php if ($flashMessages): ?> <?php if (count($flashMessages) > 0) : ?>
<div class="two_third last"> <div class="two_third last">
<?php <?php
foreach($flashMessages as $key => $message) { foreach($flashMessages as $key => $message) {
switch($key) { switch($key) {
case 'error': $class = 'msgerror'; break; case 'error': $class = 'msgerror'; break;
@ -155,7 +155,7 @@
<div class="operations"> <div class="operations">
<?php <?php
$this->widget('zii.widgets.CMenu', array( $this->widget('zii.widgets.CMenu', array(
'items'=>$this->menu, 'items'=> (isset($this->menu['principal'])) ? $this->menu['principal'] : $this->menu,
'encodeLabel' => false, 'encodeLabel' => false,
)); ));
?> ?>