Se añaden las tecnologías a las capacidades profesionales de un candidato.

git-svn-id: https://192.168.0.254/svn/Proyectos.Incam_IntranetNueva/trunk@38 77cfc57b-8ef4-1849-9df6-4a38aa5da120
This commit is contained in:
David Arranz 2012-03-27 18:53:49 +00:00
parent d796d04dda
commit f079e779c2
7 changed files with 128 additions and 17 deletions

View File

@ -55,6 +55,9 @@ class CandidatoCapacidadController extends Controller
{
$model=new CandidatoCapacidad;
$model->candidato_id = $cid;
$tecnologia = new CandidatoCapacidadTecnologia();
$tecnologiasValidas = array();
$candidato = Candidato::model()->findByPk($cid);
@ -73,6 +76,8 @@ class CandidatoCapacidadController extends Controller
$this->render('create',array(
'model'=>$model,
'candidato'=>$candidato,
'tecnologia'=>$tecnologia,
'tecnologiasValidas'=>$tecnologiasValidas,
));
}
@ -83,24 +88,53 @@ class CandidatoCapacidadController extends Controller
*/
public function actionUpdate($id)
{
Yii::import('ext.multimodelform.MultiModelForm');
$model=$this->loadModel($id);
$candidato = Candidato::model()->findByPk($model->candidato_id);
$tecnologia = new CandidatoCapacidadTecnologia();
$tecnologiasValidas = array();
// Uncomment the following line if AJAX validation is needed
// $this->performAjaxValidation($model);
if(isset($_POST['CandidatoCapacidad']))
{
$model->attributes=$_POST['CandidatoCapacidad'];
if($model->save()) {
Yii::app()->user->setFlash('success', Yii::t('intranet', 'Capacidad actualizada correctamente.'));
$this->redirect(array('index', 'cid'=>$candidato->id));
$foundInvalidChild = false;
if ($model->validate()) {
if (!MultiModelForm::validate($tecnologia, $tecnologiasValidas, $tecnologiasBorradas)) {
Yii::app()->user->setFlash('error', Yii::t('intranet', 'Alguna tecnología no es válida.'));
$foundInvalidChild = true;
}
} else {
Yii::app()->user->setFlash('error', Yii::t('intranet', 'Algún dato de la capacidad profesional no es válida.'));
}
if (!$foundInvalidChild && $model->save() ) {
$masterValues = array ('capacidad_id'=>$model->id);
if (!MultiModelForm::save($tecnologia, $tecnologiasValidas, $tecnologiasBorradas, $masterValues)) {
Yii::app()->user->setFlash('error', Yii::t('intranet', 'Se ha producido un error al guardar los datos de las tecnologías.'));
$foundInvalidChild = true;
}
if (!$foundInvalidChild) {
Yii::app()->user->setFlash('success', Yii::t('intranet', 'Capacidad actualizada correctamente.'));
$this->redirect(array('index', 'cid'=>$candidato->id));
}
} else {
//Yii::app()->user->setFlash('error', Yii::t('intranet', 'Se ha producido un error al guardar la capacidad.'));
}
}
$this->render('update',array(
'model'=>$model,
'candidato'=>$candidato,
'tecnologia'=>$tecnologia,
'tecnologiasValidas'=>$tecnologiasValidas,
));
}

View File

@ -41,11 +41,13 @@ class CandidatoCapacidadTecnologia extends CActiveRecord
// NOTE: you should only define rules for those attributes that
// will receive user inputs.
return array(
array('capacidad_id, tecnologia_id', 'required'),
array('capacidad_id, tecnologia_id, meses_tecnologia', 'numerical', 'integerOnly'=>true),
// The following rule is used by search().
// Please remove those attributes that should not be searched.
array('id, capacidad_id, tecnologia_id, meses_tecnologia', 'safe', 'on'=>'search'),
array('tecnologia_id', 'required'),
array('capacidad_id, tecnologia_id, meses_tecnologia', 'numerical', 'integerOnly'=>true),
//array('id, capacidad_id, tecnologia_id, meses_tecnologia', 'safe'),
// The following rule is used by search().
// Please remove those attributes that should not be searched.
array('id, capacidad_id, tecnologia_id, meses_tecnologia', 'safe', 'on'=>'search'),
);
}

View File

@ -14,10 +14,10 @@ $this->pageTitle=Yii::t('intranet', 'Nuevo candidato');
?>
<?php echo $this->renderPartial('_form', array(
'model'=>$model,
'idioma'=>$idioma,
'titulacion'=>$titulacion,
'idiomasValidos'=>$idiomasValidos,
'titulacionesValidas'=>$titulacionesValidas,
'model'=>$model,
'idioma'=>$idioma,
'titulacion'=>$titulacion,
'idiomasValidos'=>$idiomasValidos,
'titulacionesValidas'=>$titulacionesValidas,
));
?>

View File

@ -42,7 +42,7 @@ Yii::app()->clientScript->registerScript('wysiwyg', $script, CClientScript::POS_
<div class="widgetbox two_third last form_default">
<h3>
<span>
<legend>Datos de contacto</legend>
<legend>Capacidad profesional</legend>
</span>
</h3>
<div class="content nopadding">
@ -87,7 +87,15 @@ Yii::app()->clientScript->registerScript('wysiwyg', $script, CClientScript::POS_
<?php echo $form->error($model,'meses_perfil_tecnico', array('class'=>'errortext')); ?>
</div>
</div>
</div>
</div>
<div class="content nopadding ohidden">
<?php $this->renderPartial('_tecnologias', array(
'model'=>$model,
'tecnologia'=>$tecnologia,
'tecnologiasValidas'=>$tecnologiasValidas,
)); ?>
</div>
</div>
<br clear="all" />

View File

@ -0,0 +1,63 @@
<?php
Yii::app()->clientScript->registerScriptFile(Yii::app()->baseUrl . '/js/plugins/jquery-ui-1.8.16.custom.min.js');
?>
<?php
$tecnologiaFormConfig = array(
'elements'=>array(
'tecnologia_id'=>array(
'type'=>'dropdownlist',
'layout'=>'{input}',
'class'=>'ff',
'items'=>array(0 => '-') + CHtml::listData(Tecnologia::model()->findAll(), 'id', 'descripcion'),
),
'meses_tecnologia'=>array(
'class'=>'sf',
),
),
);
?>
<div class="padding1020 borderbottom">
<label><?php echo Yii::t('intranet', 'Tecnologías'); ?></label>
<div class="marginleft150">
<?php $this->widget('ext.multimodelform.MultiModelForm',array(
'id' => 'id_tecnologia', //the unique widget id
'addItemText' => '', // no quiero mostrar el enlace de añadir
'removeText' => 'Eliminar',
'removeConfirm' => '¿Desea eliminar esta tecnología?',
'tableHtmlOptions' => array(
'class' => 'sTable2',
'width' => '99%',
),
'tableView' => true,
'formConfig' => $tecnologiaFormConfig, //the form configuration array
'model' => $tecnologia, //instance of the form model
//if submitted not empty from the controller,
//the form will be rendered with validation errors
'validatedItems' => $tecnologiasValidas,
//array of member instances loaded from db
'data' => $tecnologia->findAll('capacidad_id=:capacidad_id', array(':capacidad_id'=>$model->id)),
'removeHtmlOptions' => array(
'class' => 'button plain',
),
));
?>
<br clear="all" />
<div class="mmf_addlink">
<?php
echo CHtml::link('Añadir tecnología', '#', array(
'class' => 'button plain',
'rel' => '.id_tecnologia_copy',
'id' => 'id_tecnologia',
));
?>
</div>
<br clear="all" />
</div>
</div>

View File

@ -10,6 +10,8 @@ $this->pageTitle=Yii::t('intranet', 'Nueva capacidad profesional');
?>
<?php echo $this->renderPartial('_form', array(
'model'=>$model,
'model'=>$model,
'tecnologia'=>$tecnologia,
'tecnologiasValidas'=>$tecnologiasValidas,
));
?>

View File

@ -10,6 +10,8 @@ $this->pageTitle=Yii::t('intranet', 'Modificar capacidad profesional');
?>
<?php echo $this->renderPartial('_form', array(
'model'=>$model,
'model'=>$model,
'tecnologia'=>$tecnologia,
'tecnologiasValidas'=>$tecnologiasValidas,
));
?>