diff --git a/app/Config/bootstrap.php b/app/Config/bootstrap.php index d775d68..1d48175 100755 --- a/app/Config/bootstrap.php +++ b/app/Config/bootstrap.php @@ -128,6 +128,6 @@ } /** - * Especifica si la instalación corresponde a la versión de Graduados. + * Plataforma */ -//Configure::write('Plataforma.Graduados', false); +App::uses('Plataforma', 'Lib'); diff --git a/app/Controller/AppController.php b/app/Controller/AppController.php index df06bc9..db0ce92 100755 --- a/app/Controller/AppController.php +++ b/app/Controller/AppController.php @@ -70,6 +70,9 @@ class AppController extends Controller { * Los administradores pueden acceder a todas las acciones. */ public function isAuthorized($user) { - return (isset($user['role']) && $user['role'] == 'admin'); + if (isset($user['role'])){ + return ($user['role'] === 'admin' || $user['role'] === 'administrativo'); + } + return false; } } diff --git a/app/Controller/EncuestasController.php b/app/Controller/EncuestasController.php index 168760e..3e9d20f 100755 --- a/app/Controller/EncuestasController.php +++ b/app/Controller/EncuestasController.php @@ -7,7 +7,7 @@ public function index($id = null) { $this->Encuesta->Estudiante->id = $id; if (!$this->Encuesta->Estudiante->exists()) { - throw new NotFoundException('Estudiante inválido'); + throw new NotFoundException(sprintf('%s inválido', Plataforma::esTutorias() ? 'Estudiante' : 'Graduado')); } $estudiante = $this->Encuesta->Estudiante->read(); @@ -23,12 +23,13 @@ public function regenerate($id = null) { $this->Encuesta->Estudiante->id = $id; if (!$this->Encuesta->Estudiante->exists()) { - throw new NotFoundException('Estudiante inválido'); + throw new NotFoundException(sprintf('%s inválido', Plataforma::esTutorias() ? 'Estudiante' : 'Graduado')); } $estudiante = $this->Encuesta->Estudiante->read(); $this->Encuesta->regenerar($this->Encuesta->Estudiante->id); + $this->Flash->success('La encuesta ha sido regenerada correctamente.'); return $this->redirect(array('action' => 'index', $id)); } @@ -41,7 +42,7 @@ public function save() { $this->Encuesta->id = $this->data['encuestaId']; if (!$this->Encuesta->exists()) { - throw new NotFoundException('Estudiante inválido'); + throw new NotFoundException(sprintf('%s inválido', Plataforma::esTutorias() ? 'Estudiante' : 'Graduado')); } $this->Encuesta->set('respuesta', $this->data['respuesta']); diff --git a/app/Controller/EstudiantesController.php b/app/Controller/EstudiantesController.php index c9b3070..ee222d5 100755 --- a/app/Controller/EstudiantesController.php +++ b/app/Controller/EstudiantesController.php @@ -11,7 +11,7 @@ class EstudiantesController extends AppController { public function index() { $this->Estudiante->recursive = 0; - if ($this->Auth->user('role') == 'admin') { + if ($this->Auth->user('role') == 'admin' || $this->Auth->user('role') == 'administrativo') { $this->set('estudiantes', $this->paginate('Estudiante')); } else { $this->set('estudiantes', $this->paginate('Estudiante', array( @@ -21,10 +21,19 @@ public function index() { } public function add() { + if (Plataforma::esTutorias()) { + $this->set(array( + 'users' => $this->Estudiante->User->find('list', array( + 'conditions' => array('User.role' => 'tutor') + )) + )); + } else { + $this->set('users', array( + $this->Auth->user('id') => $this->Auth->user('username') + )); + } + $this->set(array( - 'users' => $this->Estudiante->User->find('list', array( - 'conditions' => array('User.role' => 'tutor') - )), 'carreras' => $this->Estudiante->Carrera->find('list', array( 'conditions' => array('Carrera.id <' => '128') )) @@ -35,8 +44,12 @@ public function add() { if ($this->Estudiante->save($this->request->data)) { $this->Estudiante->Encuesta->crear($this->Estudiante->id); - $this->Flash->success('El estudiante ha sido creado correctamente.'); - return $this->redirect(array('action' => 'index')); + $this->Flash->success('El '.(Plataforma::esTutorias() ? 'estudiante' : 'graduado').' ha sido creado correctamente.'); + if($this->Auth->user('role')==='administrativo') { + return $this->redirect(array('controller' => 'encuestas', 'action' => 'index', $this->Estudiante->id)); } + else { + return $this->redirect(array('action' => 'index')); } + } $this->Flash->error('No se ha podido crear el estudiante. Por favor, intente nuevamente.'); diff --git a/app/Controller/UsersController.php b/app/Controller/UsersController.php index 557b016..aeea8e7 100755 --- a/app/Controller/UsersController.php +++ b/app/Controller/UsersController.php @@ -24,6 +24,9 @@ public function index() { case 'tutor': $users[$key]['User']['role'] = 'Tutor'; break; + case 'administrativo': + $users[$key]['User']['role'] = 'Administrativo'; + break; } } diff --git a/app/Lib/Plataforma.php b/app/Lib/Plataforma.php new file mode 100644 index 0000000..0cea3b4 --- /dev/null +++ b/app/Lib/Plataforma.php @@ -0,0 +1,44 @@ + array( 'valid' => array( - 'rule' => array('inList', array('admin', 'tutor')), + 'rule' => array('inList', array('admin', 'tutor' ,'administrativo')), 'required' => 'create', 'message' => 'El rol es inválido' ) diff --git a/app/View/Encuestas/index.ctp b/app/View/Encuestas/index.ctp index 52ddd13..5a1a54b 100755 --- a/app/View/Encuestas/index.ctp +++ b/app/View/Encuestas/index.ctp @@ -19,7 +19,7 @@ $this->Html->script('encuesta', array('inline' => false)); ?> - + Html->script('estudiante.form-app', array('inline' => false));
-

Agregar estudiante

+

Agregar

Html->script('estudiante.form-app', array('inline' => false));
- +
Html->script('estudiante.form-app', array('inline' => false));
- +
Form->input('user_id', array( - 'id' => 'tutor', - 'label' => false, - 'class' => 'form-control' - )); + if (Plataforma::esTutorias()): + echo $this->Form->input('user_id', array( + 'id' => 'tutor', + 'label' => false, + 'class' => 'form-control' + )); + else: + echo $this->Form->input('user_id', array( + 'id' => 'tutor', + 'label' => false, + 'value' => AuthComponent::user('id'), + 'class' => 'form-control' + )); + endif; ?>
diff --git a/app/View/Estudiantes/index.ctp b/app/View/Estudiantes/index.ctp index b281733..3629b23 100755 --- a/app/View/Estudiantes/index.ctp +++ b/app/View/Estudiantes/index.ctp @@ -6,16 +6,16 @@ $this->Html->script('estudiante.index', array('inline' => false));
-

Estudiantes

+

Plataforma->obtenerEncuestado() ?>

- +
Agregar estudiante + >Agregar Plataforma->obtenerEncuestado())?> @@ -28,7 +28,7 @@ $this->Html->script('estudiante.index', array('inline' => false)); - Paginator->sort('legajo'); ?> + Paginator->sort($this->Plataforma->obtenerID()); ?> Paginator->sort('nombre'); ?> @@ -37,7 +37,7 @@ $this->Html->script('estudiante.index', array('inline' => false)); Paginator->sort('Carrera.descripcion', 'Carrera'); ?> - Paginator->sort('User.username', 'Tutor'); ?> + Paginator->sort('User.username', $this->Plataforma->obtenerUsuario()); ?> diff --git a/app/View/Helper/PlataformaHelper.php b/app/View/Helper/PlataformaHelper.php index d6f23c3..e316c87 100644 --- a/app/View/Helper/PlataformaHelper.php +++ b/app/View/Helper/PlataformaHelper.php @@ -6,6 +6,8 @@ /** * Ayudante de la plataforma. + * + * @deprecated */ class PlataformaHelper extends AppHelper { @@ -54,6 +56,54 @@ public function obtenerTitulo($texto = null) { return h($titulo); } +/** + * Obtiene el encuestado de la plataforma + * + * @param string|null $texto Especifica una cadena adicional para el encuestado. + * + * @return string + */ + public function obtenerEncuestado($texto = null) { + $titulo = !$this->esGraduados() ? 'Estudiantes' : 'Graduados'; + if ($texto) { + $titulo .= " - $texto"; + } + + return h($titulo); + } + +/** + * Obtiene el ID de los usuarios de la plataforma + * + * @param string|null $texto Especifica una cadena adicional para el ID. + * + * @return string + */ + public function obtenerID($texto = null) { + $titulo = !$this->esGraduados() ? 'Legajo' : 'DNI'; + if ($texto) { + $titulo .= " - $texto"; + } + + return h($titulo); + } + +/** + * Obtiene el nombre de los usuarios de la plataforma + * + * @param string|null $texto Especifica una cadena adicional para el usuario. + * + * @return string + */ + public function obtenerUsuario($texto = null) { + $titulo = !$this->esGraduados() ? 'Tutor' : 'Usuario'; + if ($texto) { + $titulo .= " - $texto"; + } + + return h($titulo); + } + /** * Comprueba si la instalación corresponde a la versión de Graduados. * diff --git a/app/View/Layouts/default.ctp b/app/View/Layouts/default.ctp index 78b0dab..af3de3c 100755 --- a/app/View/Layouts/default.ctp +++ b/app/View/Layouts/default.ctp @@ -78,7 +78,7 @@ $cakeVersion = __d('cake_dev', 'CakePHP %s', Configure::version()) 'class' => 'logo' )); ?> - Tutorías + Plataforma->obtenerTitulo() ?>
@@ -89,7 +89,7 @@ $cakeVersion = __d('cake_dev', 'CakePHP %s', Configure::version())
  • request->params['controller'] == 'estudiantes') { echo 'class="active"'; } ?> > Html->link( - 'Estudiantes', + $this->Plataforma->obtenerEncuestado() , array('controller' => 'estudiantes', 'action' => 'index') ); ?> @@ -159,7 +159,13 @@ $cakeVersion = __d('cake_dev', 'CakePHP %s', Configure::version())
    - Desarrollado en el Laboratorío de Sistemas de la UTN FRD | Versión Plataforma->obtenerVersion() ?> + Html->link($version, "https://github.com/UTN-FRD/tutorias/tree/$version", array('target' => '_blank')) + ); + ?>
    diff --git a/app/View/Users/add.ctp b/app/View/Users/add.ctp index 9e81f3e..e8a141a 100755 --- a/app/View/Users/add.ctp +++ b/app/View/Users/add.ctp @@ -68,7 +68,7 @@ $this->Html->script('user.form-app', array('inline' => false)); 'id' => 'role', 'label' => false, 'class' => 'form-control', - 'options' => array('tutor' => 'Tutor', 'admin' => 'Administrador') + 'options' => array(Plataforma::esTutorias() ? 'tutor' : 'usuario' => Plataforma::esTutorias() ? 'Tutor' : 'Usuario' , 'admin' => 'Administrador' , 'administrativo' => 'Administrativo') )); ?>
  • diff --git a/app/View/Users/index.ctp b/app/View/Users/index.ctp index 92fe1cc..1371b0d 100755 --- a/app/View/Users/index.ctp +++ b/app/View/Users/index.ctp @@ -92,7 +92,7 @@ $this->Html->script('user.index', array('inline' => false));