Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 2 additions & 2 deletions app/Config/bootstrap.php
Original file line number Diff line number Diff line change
Expand Up @@ -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');
5 changes: 4 additions & 1 deletion app/Controller/AppController.php
Original file line number Diff line number Diff line change
Expand Up @@ -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;
}
}
7 changes: 4 additions & 3 deletions app/Controller/EncuestasController.php
Original file line number Diff line number Diff line change
Expand Up @@ -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();
Expand All @@ -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));
}

Expand All @@ -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']);
Expand Down
25 changes: 19 additions & 6 deletions app/Controller/EstudiantesController.php
Original file line number Diff line number Diff line change
Expand Up @@ -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(
Expand All @@ -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')
))
Expand All @@ -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.');
Expand Down
3 changes: 3 additions & 0 deletions app/Controller/UsersController.php
Original file line number Diff line number Diff line change
Expand Up @@ -24,6 +24,9 @@ public function index() {
case 'tutor':
$users[$key]['User']['role'] = 'Tutor';
break;
case 'administrativo':
$users[$key]['User']['role'] = 'Administrativo';
break;
}
}

Expand Down
44 changes: 44 additions & 0 deletions app/Lib/Plataforma.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,44 @@
<?php
/**
* Dependencias
*/
App::uses('Configure', 'Core');

/**
* Plataforma
*/
class Plataforma {

/**
* Almacena la versión de la plataforma.
*
* @var string
*/
private static $__version = 'master';

/**
* Obtiene la versión de la plataforma.
*
* @return string
*/
public function obtenerVersion() {
$archivo = APP . 'Config' . DS . 'VERSION.txt';
if (file_exists($archivo)) {
$hash = file_get_contents($archivo);
if (!empty($hash)) {
self::$__version = substr($hash, 0, 7);
}
}

return self::$__version;
}

/**
* Comprueba si la instalación corresponde a la versión de Tutorías.
*
* @return bool
*/
public static function esTutorias() {
return stripos(__FILE__, 'tutorias') !== false;
}
}
2 changes: 1 addition & 1 deletion app/Model/User.php
Original file line number Diff line number Diff line change
Expand Up @@ -41,7 +41,7 @@ class User extends AppModel {
),
'role' => array(
'valid' => array(
'rule' => array('inList', array('admin', 'tutor')),
'rule' => array('inList', array('admin', 'tutor' ,'administrativo')),
'required' => 'create',
'message' => 'El rol es inválido'
)
Expand Down
2 changes: 1 addition & 1 deletion app/View/Encuestas/index.ctp
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,7 @@ $this->Html->script('encuesta', array('inline' => false));
?>
</h2>

<?php if (AuthComponent::user('role') == 'admin') { ?>
<?php if (AuthComponent::user('role') == 'admin' || AuthComponent::user('role') == 'administrativo') { ?>
<a
class="btn btn-default"
data-toggle= 'modal',
Expand Down
25 changes: 17 additions & 8 deletions app/View/Estudiantes/add.ctp
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@ $this->Html->script('estudiante.form-app', array('inline' => false));

<div class="row form-app">
<div class="col-md-12 page-title">
<h3>Agregar estudiante</h3>
<h3>Agregar <?php echo Plataforma::esTutorias() ? 'estudiante' : 'graduado' ?></h3>
</div>

<?php
Expand All @@ -17,7 +17,7 @@ $this->Html->script('estudiante.form-app', array('inline' => false));

<fieldset class="col-md-12">
<div class="form-group">
<label for="legajo" class="control-label">Legajo</label>
<label for="legajo" class="control-label"><?php echo Plataforma::esTutorias() ? 'Legajo' : 'D.N.I' ?></label>
<div class="control-input">
<input
name="data[Estudiante][legajo]"
Expand Down Expand Up @@ -58,14 +58,23 @@ $this->Html->script('estudiante.form-app', array('inline' => false));
</div>

<div class="form-group">
<label for="tutor" class="control-label">Tutor</label>
<label for="tutor" class="control-label"><?php echo Plataforma::esTutorias() ? 'Tutor' : 'Usuario' ?></label>
<div class="control-input">
<?php
echo $this->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;
?>
</div>
</div>
Expand Down
10 changes: 5 additions & 5 deletions app/View/Estudiantes/index.ctp
Original file line number Diff line number Diff line change
Expand Up @@ -6,16 +6,16 @@ $this->Html->script('estudiante.index', array('inline' => false));

<div class="row index">
<div class="col-md-12 page-title">
<h2>Estudiantes</h2>
<h2><?php echo $this->Plataforma->obtenerEncuestado() ?></h2>

<?php if (AuthComponent::user('role') == 'admin') { ?>
<?php if (AuthComponent::user('role') == 'admin' || AuthComponent::user('role') == 'administrativo') { ?>
<a
class="btn btn-default"
href="<?php echo Router::url(array('action' => 'add')); ?>"
>
<span
class="visible-md-inline visible-lg-inline"
>Agregar estudiante</span>
>Agregar <?php echo strtolower($this->Plataforma->obtenerEncuestado())?></span>
<span
class="glyphicon glyphicon-plus visible-xs-inline visible-sm-inline"
></span>
Expand All @@ -28,7 +28,7 @@ $this->Html->script('estudiante.index', array('inline' => false));
<thead>
<tr>
<th>
<?php echo $this->Paginator->sort('legajo'); ?>
<?php echo $this->Paginator->sort($this->Plataforma->obtenerID()); ?>
</th>
<th>
<?php echo $this->Paginator->sort('nombre'); ?>
Expand All @@ -37,7 +37,7 @@ $this->Html->script('estudiante.index', array('inline' => false));
<?php echo $this->Paginator->sort('Carrera.descripcion', 'Carrera'); ?>
</th>
<th data-breakpoints="xs" data-type="html">
<?php echo $this->Paginator->sort('User.username', 'Tutor'); ?>
<?php echo $this->Paginator->sort('User.username', $this->Plataforma->obtenerUsuario()); ?>
</th>
<th data-breakpoints="xs sm" data-type="html" class="tx-actions"></th>
</tr>
Expand Down
50 changes: 50 additions & 0 deletions app/View/Helper/PlataformaHelper.php
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,8 @@

/**
* Ayudante de la plataforma.
*
* @deprecated
*/
class PlataformaHelper extends AppHelper {

Expand Down Expand Up @@ -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.
*
Expand Down
12 changes: 9 additions & 3 deletions app/View/Layouts/default.ctp
Original file line number Diff line number Diff line change
Expand Up @@ -78,7 +78,7 @@ $cakeVersion = __d('cake_dev', 'CakePHP %s', Configure::version())
'class' => 'logo'
));
?>
<span>Tutorías</span>
<span> <?php echo $this->Plataforma->obtenerTitulo() ?></span>
</a>
</div>

Expand All @@ -89,7 +89,7 @@ $cakeVersion = __d('cake_dev', 'CakePHP %s', Configure::version())
<li <?php if ($this->request->params['controller'] == 'estudiantes') { echo 'class="active"'; } ?> >
<?php
echo $this->Html->link(
'Estudiantes',
$this->Plataforma->obtenerEncuestado() ,
array('controller' => 'estudiantes', 'action' => 'index')
);
?>
Expand Down Expand Up @@ -159,7 +159,13 @@ $cakeVersion = __d('cake_dev', 'CakePHP %s', Configure::version())

<footer>
<div class="row">
Desarrollado en el Laboratorío de Sistemas de la UTN FRD | Versión <?php echo $this->Plataforma->obtenerVersion() ?>
<?php
$version = Plataforma::obtenerVersion();
printf(
'Desarrollado en el Laboratorío de Sistemas de la UTN FRD | Versión %s',
$this->Html->link($version, "https://github.com/UTN-FRD/tutorias/tree/$version", array('target' => '_blank'))
);
?>
</div>
</footer>
</body>
Expand Down
2 changes: 1 addition & 1 deletion app/View/Users/add.ctp
Original file line number Diff line number Diff line change
Expand Up @@ -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')
));
?>
</div>
Expand Down
2 changes: 1 addition & 1 deletion app/View/Users/index.ctp
Original file line number Diff line number Diff line change
Expand Up @@ -92,7 +92,7 @@ $this->Html->script('user.index', array('inline' => false));
<div class="modal-content">
<div class="modal-header">
<button type="button" class="close" data-dismiss="modal" aria-label="Close"><span aria-hidden="true">&times;</span></button>
<h4 class="modal-title" id="myModalLabel">Eliminar estudiante</h4>
<h4 class="modal-title" id="myModalLabel">Eliminar <?php echo strtolower($this->Plataforma->obtenerTitulo()) ?></h4>
</div>
<div class="modal-body"></div>
<div class="modal-footer">
Expand Down
4 changes: 2 additions & 2 deletions app/View/Users/login.ctp
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
<?php
$this->assign('title', 'Tutorías - UTN FRD');
$this->assign('title', $this->Plataforma->obtenerTitulo('UTN FRD'));
$this->Html->css('user', array('inline' => false));
?>

Expand All @@ -13,7 +13,7 @@ $this->Html->css('user', array('inline' => false));
Por favor, ingrese su nombre de usuario y contraseña.
</p>
<p>
Si olvidó sus credenciales de acceso, por favor, comuníquese con el administrador de tutorías o diríjase a la oficina de SAE.
Si olvidó sus credenciales de acceso, por favor, comuníquese con el administrador de <?php echo strtolower($this->Plataforma->obtenerTitulo()) ?> o diríjase a la oficina de SAE.
</p>
</div>

Expand Down
Loading