From c53815d4f9587c476851b8f278922a798cc65f1b Mon Sep 17 00:00:00 2001 From: david Date: Thu, 8 Mar 2012 19:02:29 +0000 Subject: [PATCH] =?UTF-8?q?-=20Comienzo=20de=20vistas=20para=20capacidades?= =?UTF-8?q?=20-=20A=C3=B1adir=20nuevos=20campos=20al=20candidato=20(sin=20?= =?UTF-8?q?terminar)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit git-svn-id: https://192.168.0.254/svn/Proyectos.Incam_IntranetNueva/trunk@29 77cfc57b-8ef4-1849-9df6-4a38aa5da120 --- www/protected/config/console.php | 10 +- www/protected/config/main.php | 4 +- www/protected/config/mode_stage.php | 8 +- .../m120308_164418_tbl_candidatos.php | 48 +++++++++ www/protected/models/Candidato.php | 56 ++++++++--- www/protected/models/CandidatoCapacidad.php | 2 +- .../models/CandidatoCapacidadFuncional.php | 98 +++++++++++++++++++ .../models/CandidatoCapacidadTecnologia.php | 98 +++++++++++++++++++ .../views/candidato/_capacidades.php | 63 ++++++++++++ www/protected/views/candidato/_form.php | 14 ++- www/protected/views/candidato/index.php | 5 +- www/protected/views/candidato/update.php | 2 + 12 files changed, 387 insertions(+), 21 deletions(-) create mode 100644 www/protected/migrations/m120308_164418_tbl_candidatos.php create mode 100644 www/protected/models/CandidatoCapacidadFuncional.php create mode 100644 www/protected/models/CandidatoCapacidadTecnologia.php create mode 100644 www/protected/views/candidato/_capacidades.php diff --git a/www/protected/config/console.php b/www/protected/config/console.php index 4f63988..b2c1689 100644 --- a/www/protected/config/console.php +++ b/www/protected/config/console.php @@ -25,13 +25,21 @@ return array( 'charset' => 'utf8', ), 'testdb'=>array( - 'class' => 'CDbConnection', + 'class' => 'CDbConnection', 'connectionString' => 'mysql:host=localhost;dbname=intranet_test', 'emulatePrepare' => true, 'username' => 'root', 'password' => '', 'charset' => 'utf8', ), + 'stagedb'=>array( + 'class' => 'CDbConnection', + 'connectionString' => 'mysql:host=maquetaweb.ws;dbname=maqueta_intranet_stage', + 'emulatePrepare' => true, + 'username' => 'maqueta_intranet', + 'password' => 'intranet', + 'charset' => 'utf8', + ), 'fixture'=>array( 'class'=>'system.test.CDbFixtureManager', diff --git a/www/protected/config/main.php b/www/protected/config/main.php index 16eec31..d00d299 100644 --- a/www/protected/config/main.php +++ b/www/protected/config/main.php @@ -33,14 +33,14 @@ $config = array( 'allowAutoLogin'=>true, ), // uncomment the following to enable URLs in path-format - 'urlManager'=>array( + /*'urlManager'=>array( 'urlFormat'=>'path', 'rules'=>array( '/'=>'/view', '//'=>'/', '/'=>'/', ), - ), + ),*/ 'errorHandler'=>array( // use 'site/error' action to display errors 'errorAction'=>'site/error', diff --git a/www/protected/config/mode_stage.php b/www/protected/config/mode_stage.php index 36bfd44..ac5a571 100644 --- a/www/protected/config/mode_stage.php +++ b/www/protected/config/mode_stage.php @@ -10,7 +10,7 @@ // Set yiiPath (add extra ../../) -//$yiiPath = dirname(__FILE__) . '/../../../yii/framework/yii.php'; +$yiiPath = '/home/maqueta/framework/yii.php'; // Set YII_DEBUG and YII_TRACE_LEVEL flags $debug = true; @@ -25,9 +25,9 @@ $configSpecific = array( // Database 'db' => array( - 'connectionString' => 'mysql:host=STAGING_HOST;dbname=STAGING_DBNAME', - 'username' => 'USERNAME', - 'password' => 'PASSWORD', + 'connectionString' => 'mysql:host=maquetaweb.ws;dbname=maqueta_intranet_stage', + 'username' => 'maqueta_intranet', + 'password' => 'intranet', ), // Application Log diff --git a/www/protected/migrations/m120308_164418_tbl_candidatos.php b/www/protected/migrations/m120308_164418_tbl_candidatos.php new file mode 100644 index 0000000..142bfe2 --- /dev/null +++ b/www/protected/migrations/m120308_164418_tbl_candidatos.php @@ -0,0 +1,48 @@ +addColumn('tbl_candidatos', 'carnet_conducir', 'string'); + $this->addColumn('tbl_candidatos', 'vehiculo_propio', 'boolean'); + + // Observaciones + $this->addColumn('tbl_candidatos', 'observaciones', 'text'); + + // Rango de salarios + $this->addColumn('tbl_candidatos', 'salario_minimo', 'integer'); + $this->addColumn('tbl_candidatos', 'salario_maximo', 'integer'); + + // Procedencia del candidato + $this->addColumn('tbl_candidatos', 'procedencia', 'string'); + + // Disponibilidades + $this->addColumn('tbl_candidatos', 'disponibilidad_incorporacion', 'string'); + $this->addColumn('tbl_candidatos', 'disponibilidad_entrevistas', 'string'); + $this->addColumn('tbl_candidatos', 'disponibilidad_guardias', 'string'); + $this->addColumn('tbl_candidatos', 'disponibilidad_viajar', 'string'); + $this->addColumn('tbl_candidatos', 'disponibilidad_proyectos_internacionales', 'string'); + } + + public function down() + { + $this->dropColumn('tbl_candidatos', 'disponibilidad_proyectos_internacionales'); + $this->dropColumn('tbl_candidatos', 'disponibilidad_viajar'); + $this->dropColumn('tbl_candidatos', 'disponibilidad_guardias'); + $this->dropColumn('tbl_candidatos', 'disponibilidad_entrevistas'); + $this->dropColumn('tbl_candidatos', 'disponibilidad_incorporacion'); + + $this->dropColumn('tbl_candidatos', 'procedencia'); + + $this->dropColumn('tbl_candidatos', 'salario_maximo'); + $this->dropColumn('tbl_candidatos', 'salario_minimo'); + + $this->dropColumn('tbl_candidatos', 'observaciones'); + + $this->dropColumn('tbl_candidatos', 'vehiculo_propio'); + $this->dropColumn('tbl_candidatos', 'carnet_conducir'); + } + +} \ No newline at end of file diff --git a/www/protected/models/Candidato.php b/www/protected/models/Candidato.php index 2fd4a3a..b467f7b 100644 --- a/www/protected/models/Candidato.php +++ b/www/protected/models/Candidato.php @@ -19,6 +19,17 @@ * @property datetime $fecha_modificacion * @property integer $usuario_alta * @property integer $usuario_modificacion + * @property string $carnet_conducir + * @property string $vehiculo_propio + * @property text $observaciones + * @property integer $salario_minimo + * @property integer $salario_maximo + * @property string $procedencia + * @property string $disponibilidad_incorporacion + * @property string $disponibilidad_entrevistas + * @property string $disponibilidad_guardias + * @property string $disponibilidad_viajar + * @property string $disponibilidad_proyectos_internacionales * * The followings are the available model relations: * @property CandidatoCapacidad[] $capacidades @@ -32,6 +43,9 @@ class Candidato extends CActiveRecord private $_nombreCompleto; public $foto; + + public $capacidad_tecnica_search; + public $capacidad_funcional_search; /** * Devuelve el nombre completo de un candidato. @@ -120,14 +134,23 @@ class Candidato extends CActiveRecord '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('salario_minimo, salario_maximo', 'numerical', + 'allowEmpty'=>'true'), + array('dni, estado, nombre, apellidos, email, + telefono_fijo, telefono_movil, sexo, lugar_nacimiento, + localidad, carnet_conducir, vehiculo_propio, procedencia, + disponibilidad_incorporacion, disponibilidad_entrevistas, + disponibilidad_guardias, disponibilidad_viajar, + disponibilidad_proyectos_internacionales', + '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'), + telefono_movil, nombreCompleto, + capacidad_tecnica_search, capacidad_funcional_search', + 'safe', 'on'=>'search'), ); } @@ -169,7 +192,19 @@ class Candidato extends CActiveRecord 'lugar_nacimiento' => 'Lugar de nacimiento', 'localidad' => 'Localidad', 'fecha_modificacion' => 'Último cambio', - + + 'carnet_conducir' => 'Carnet de conducir', + 'vehiculo_propio' => 'Vehículo propio', + 'observaciones' => 'Observaciones', + 'salario_minimo' => 'Salario mínimo', + 'salario_maximo' => 'Salario máximo', + 'procedencia' => 'Procedencia', + 'disponibilidad_incorporacion' => 'Disponibilidad de incorportación', + 'disponibilidad_entrevistas' => 'Disponibilidad para entrevistas', + 'disponibilidad_guardias' => 'Disponibilidad para guardias', + 'disponibilidad_viajar' => 'Disponibilidad para viajar', + 'disponibilidad_proyectos_internacionales' => 'Disponibilidad para proyectos internacionales', + 'nombreCompleto' => 'Candidato', ); } @@ -185,10 +220,10 @@ class Candidato extends CActiveRecord $criteria=new CDbCriteria; - $criteria->with = array('capacidades'); + $criteria->with = array('capacidades');//, 'capacidades.capacidadesFuncionales'); $criteria->together = true; - $criteria->compare('id',$this->id); + $criteria->compare('t.id',$this->id); $criteria->compare('estado',$this->estado,true); $criteria->compare('dni',$this->dni,true); $criteria->compare('nombre',$this->nombre,true); @@ -196,12 +231,11 @@ class Candidato extends CActiveRecord $criteria->compare('email',$this->email,true); $criteria->compare('telefono_fijo',$this->telefono_fijo,true); $criteria->compare('telefono_movil',$this->telefono_movil,true); - $criteria->compare('sexo',$this->sexo,true); - $criteria->compare('fecha_nacimiento',$this->fecha_nacimiento,true); - $criteria->compare('lugar_nacimiento',$this->lugar_nacimiento,true); $criteria->addSearchCondition('concat(nombre, " ", apellidos)', $this->nombreCompleto); - + + $criteria->compare( 'capacidades.perfil_tecnico_id', $this->capacidad_tecnica_search, true ); + //$criteria->compare( 'capacidades.capacidadesFuncionales.perfil_funcional_id', $this->capacidad_funcional_search, true ); $sort = new CSort; $sort->defaultOrder = 'nombre, apellidos ASC'; diff --git a/www/protected/models/CandidatoCapacidad.php b/www/protected/models/CandidatoCapacidad.php index ff7e9cd..2fbc9e7 100644 --- a/www/protected/models/CandidatoCapacidad.php +++ b/www/protected/models/CandidatoCapacidad.php @@ -11,7 +11,7 @@ * @property string $observaciones * * The followings are the available model relations: - * @property PerfilesTecnicos $perfilTecnico + * @property PerfilTecnico $perfilTecnico * @property Candidatos $candidato * @property CandidatoCapacidadFuncional[] $capacidadesFuncionales * @property CandidatoCapacidadTecnologia[] $tecnologias diff --git a/www/protected/models/CandidatoCapacidadFuncional.php b/www/protected/models/CandidatoCapacidadFuncional.php new file mode 100644 index 0000000..a9ad863 --- /dev/null +++ b/www/protected/models/CandidatoCapacidadFuncional.php @@ -0,0 +1,98 @@ +true), + // The following rule is used by search(). + // Please remove those attributes that should not be searched. + array('id, capacidad_id, funcional_id, meses_funcional', 'safe', 'on'=>'search'), + ); + } + + /** + * @return array relational rules. + */ + public function relations() + { + // NOTE: you may need to adjust the relation name and the related + // class name for the relations automatically generated below. + return array( + 'capacidad' => array(self::BELONGS_TO, 'CandidatoCapacidad', 'capacidad_id'), + 'perfilFuncional' => array(self::BELONGS_TO, 'PerfilFuncional', 'funcional_id'), + ); + } + + /** + * @return array customized attribute labels (name=>label) + */ + public function attributeLabels() + { + return array( + 'id' => 'ID', + 'capacidad_id' => 'Capacidad', + 'funcional_id' => 'Perfil funcional', + 'meses_funcional' => 'Meses', + ); + } + + /** + * Retrieves a list of models based on the current search/filter conditions. + * @return CActiveDataProvider the data provider that can return the models based on the search/filter conditions. + */ + public function search() + { + // Warning: Please modify the following code to remove attributes that + // should not be searched. + + $criteria=new CDbCriteria; + + $criteria->compare('id',$this->id); + $criteria->compare('capacidad_id',$this->capacidad_id); + $criteria->compare('funcional_id',$this->funcional_id); + $criteria->compare('meses_funcional',$this->meses_funcional); + + return new CActiveDataProvider($this, array( + 'criteria'=>$criteria, + )); + } +} \ No newline at end of file diff --git a/www/protected/models/CandidatoCapacidadTecnologia.php b/www/protected/models/CandidatoCapacidadTecnologia.php new file mode 100644 index 0000000..aa7386c --- /dev/null +++ b/www/protected/models/CandidatoCapacidadTecnologia.php @@ -0,0 +1,98 @@ +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'), + ); + } + + /** + * @return array relational rules. + */ + public function relations() + { + // NOTE: you may need to adjust the relation name and the related + // class name for the relations automatically generated below. + return array( + 'capacidad' => array(self::BELONGS_TO, 'CandidatoCapacidad', 'capacidad_id'), + 'tecnologia' => array(self::BELONGS_TO, 'Tecnologia', 'tecnologia_id'), + ); + } + + /** + * @return array customized attribute labels (name=>label) + */ + public function attributeLabels() + { + return array( + 'id' => 'ID', + 'capacidad_id' => 'Capacidad', + 'tecnologia_id' => 'Tecnologia', + 'meses_tecnologia' => 'Meses', + ); + } + + /** + * Retrieves a list of models based on the current search/filter conditions. + * @return CActiveDataProvider the data provider that can return the models based on the search/filter conditions. + */ + public function search() + { + // Warning: Please modify the following code to remove attributes that + // should not be searched. + + $criteria=new CDbCriteria; + + $criteria->compare('id',$this->id); + $criteria->compare('capacidad_id',$this->capacidad_id); + $criteria->compare('tecnologia_id',$this->tecnologia_id); + $criteria->compare('meses_tecnologia',$this->meses_tecnologia); + + return new CActiveDataProvider($this, array( + 'criteria'=>$criteria, + )); + } +} \ No newline at end of file diff --git a/www/protected/views/candidato/_capacidades.php b/www/protected/views/candidato/_capacidades.php new file mode 100644 index 0000000..a688c1c --- /dev/null +++ b/www/protected/views/candidato/_capacidades.php @@ -0,0 +1,63 @@ +clientScript->registerScriptFile(Yii::app()->baseUrl . '/js/plugins/jquery-ui-1.8.16.custom.min.js'); + +$capacidadFormConfig = array( + 'elements'=>array( + 'perfil_tecnico_id'=>array( + 'type'=>'dropdownlist', + 'layout'=>'{input}', + 'class'=>'fullwidth', + 'items'=>array_merge( + array(''=>'-'), + CHtml::listData(PerfilTecnico::model()->findAll(), 'id', 'descripcion') + ), + + ), + ), + ); +?> + +
+
+ + +
+ widget('ext.multimodelform.MultiModelForm',array( + 'id' => 'id_capacidad', //the unique widget id + 'addItemText' => '', // no quiero mostrar el enlace de añadir + 'removeText' => 'Eliminar', + 'removeConfirm' => '¿Desea eliminar esta capacidad?', + 'tableHtmlOptions' => array( + 'class' => 'sTable2 lf', + ), + 'tableView' => true, + 'formConfig' => $capacidadFormConfig, //the form configuration array + 'model' => $capacidad, //instance of the form model + + //if submitted not empty from the controller, + //the form will be rendered with validation errors + 'validatedItems' => $capacidadesValidas, + + //array of member instances loaded from db + 'data' => $capacidad->findAll('candidato_id=:candidato_id', array(':candidato_id'=>$model->id)), + + 'removeHtmlOptions' => array( + 'class' => 'button plain', + ), + )); + ?> +
+ +
+
+
+
\ No newline at end of file diff --git a/www/protected/views/candidato/_form.php b/www/protected/views/candidato/_form.php index c07b913..138e3f3 100644 --- a/www/protected/views/candidato/_form.php +++ b/www/protected/views/candidato/_form.php @@ -173,7 +173,19 @@ Yii::app()->clientScript->registerScriptFile(Yii::app()->baseUrl . '/js/custom/e
- +
+

+ + + +

+ renderPartial('_capacidades', array( + 'model'=>$model, + 'capacidad'=>$capacidad, + 'capacidadesValidas'=>$capacidadesValidas, + ));*/ ?> +
+
diff --git a/www/protected/views/candidato/index.php b/www/protected/views/candidato/index.php index 5d79187..d6f9bc8 100644 --- a/www/protected/views/candidato/index.php +++ b/www/protected/views/candidato/index.php @@ -82,15 +82,18 @@ $('.search-form form').submit(function(){ ), array( 'type' => 'html', + 'name' => 'capacidad_tecnica_search', 'value'=>array($this, 'gridDataColumnCapacidadTecnica'), 'header' => 'Capacidad técnica', - 'filter' => CHtml::listData(PerfilFuncional::model()->findAll(), 'id', 'descripcion'), + 'filter' => CHtml::listData(PerfilTecnico::model()->findAll(), 'id', 'descripcion'), 'cssClassExpression' => '"con0"', ), array( 'type' => 'raw', + //'name' => 'capacidad_funcional_search', 'value'=>array($this, 'gridDataColumnCapacidadFuncional'), 'header' => 'Capacidad funcional', + 'filter' => CHtml::listData(PerfilFuncional::model()->findAll(), 'id', 'descripcion'), 'cssClassExpression' => '"con1"', ), array( diff --git a/www/protected/views/candidato/update.php b/www/protected/views/candidato/update.php index 01ff6d4..6902b85 100644 --- a/www/protected/views/candidato/update.php +++ b/www/protected/views/candidato/update.php @@ -18,7 +18,9 @@ $this->pageTitle='Modificar candidato "' . $model->nombre . ' ' . $model->apelli 'model'=>$model, 'idioma'=>$idioma, 'titulacion'=>$titulacion, + //'capacidad'=>$capacidad, 'idiomasValidos'=>$idiomasValidos, 'titulacionesValidas'=>$titulacionesValidas, + //'capacidadesValidas'=>$capacidadesValidas, )); ?> \ No newline at end of file