Skip to content

Commit

Permalink
Merge branch 'release/v0.5.1'
Browse files Browse the repository at this point in the history
  • Loading branch information
eperezf committed Nov 4, 2019
2 parents a0861db + 56c4ece commit 9d45669
Show file tree
Hide file tree
Showing 27 changed files with 336 additions and 314 deletions.
103 changes: 48 additions & 55 deletions web/app/Http/Controllers/EmpresaController.php
Original file line number Diff line number Diff line change
Expand Up @@ -13,14 +13,12 @@
* EmpresaController es el controlador del listado de empresas.
* En este controlador están las funciones para mostrar, agregar, editar, actualizar y eliminar las empresas.
* @author Eduardo Pérez
* @version v1.1
* @return void
*/
class EmpresaController extends Controller{
/**
* Muestra un listado de empresas
* @author Eduardo Pérez
* @version v1.0
* @return \Illuminate\Http\Response
*/
public function index(){
Expand All @@ -31,7 +29,6 @@ public function index(){
/**
* Muestra el formulario de creación de empresa
* @author Eduardo Pérez
* @version v1.1
* @return \Illuminate\Http\Response
*/
public function create(){
Expand All @@ -46,7 +43,6 @@ public function create(){
/**
* Guarda la empresa en la base de datos.
* @author Eduardo Pérez
* @version v1.1
* @param \Illuminate\Http\Request $request
* @return \Illuminate\Http\Response
*/
Expand All @@ -55,32 +51,32 @@ public function store(Request $request){
if ($request->status == NULL){
$request->status = 0;
};

//Si no contiene www
if (!Str::contains($request->get('urlWeb'), 'www.')) {
//Si contiene https y no www
if (Str::contains($request->get('urlWeb'), 'https://')) {
$request->merge(['urlWeb' => 'https://www.' . Str::after($request->get('urlWeb'), 'https://')]);
}
//Si contiene http y no www
if (Str::contains($request->get('urlWeb'), 'http://')) {
$request->merge(['urlWeb' => 'http://www.' . Str::after($request->get('urlWeb'), 'http://')]);
}
//Si no contiene www
else {
$request->merge(['urlWeb' => 'www.' . $request->get('urlWeb')]);
}
}
//Si no contiene ni http ni https
if (!Str::contains($request->get('urlWeb'), 'https://') &&
!Str::contains($request->get('urlWeb'), 'http://')){
$request->merge(['urlWeb' => 'http://' . $request->get('urlWeb')]);
}

if ($request->urlWeb){
//Si no contiene www
if (!Str::contains($request->get('urlWeb'), 'www.')) {
//Si contiene https y no www
if (Str::contains($request->get('urlWeb'), 'https://')) {
$request->merge(['urlWeb' => 'https://www.' . Str::after($request->get('urlWeb'), 'https://')]);
}
//Si contiene http y no www
if (Str::contains($request->get('urlWeb'), 'http://')) {
$request->merge(['urlWeb' => 'http://www.' . Str::after($request->get('urlWeb'), 'http://')]);
}
//Si no contiene www
else {
$request->merge(['urlWeb' => 'www.' . $request->get('urlWeb')]);
}
}
//Si no contiene ni http ni https
if (!Str::contains($request->get('urlWeb'), 'https://') &&
!Str::contains($request->get('urlWeb'), 'http://')){
$request->merge(['urlWeb' => 'http://' . $request->get('urlWeb')]);
}
}
$request->validate(
['nombre'=>'required|unique:empresa'],
['rubro'=>'required'],
['urlWeb'=>'required'],
['rubro'=>'string'],
['urlWeb'=>'string'],
['correoContacto'=>'required'],
['status'=>'required']
);
Expand All @@ -103,7 +99,6 @@ public function store(Request $request){
/**
* Muestra el recurso especificado (no usado).
* @author Eduardo Pérez
* @version v1.0
* @param int $id
* @return \Illuminate\Http\Response
*/
Expand All @@ -115,7 +110,6 @@ public function show($id)
/**
* Muestra el formulario de edición de empresa.
* @author Eduardo Pérez
* @version v1.1
* @param int $id
* @return \Illuminate\Http\Response
*/
Expand All @@ -132,7 +126,6 @@ public function edit($id){
/**
* Actualiza la empresa especificada en la base de datos.
* @author Eduardo Pérez
* @version v1.2
* @param \Illuminate\Http\Request $request
* @param int $id
* @return \Illuminate\Http\Response
Expand All @@ -141,35 +134,36 @@ public function update(Request $request, $id){
if (Auth::user()->rol >=4){
$validated = $request->validate(
['nombre'=>'string|required'],
['rubro'=>'string|required'],
['urlWeb'=>'string|required'],
['rubro'=>'string'],
['urlWeb'=>'string'],
['correoContacto'=>'email|required'],
['status'=>'required']
);
if ($request->status == NULL){
$request->status = 0;
};
//Si no contiene www
if (!Str::contains($request->get('urlWeb'), 'www.')) {
//Si contiene https y no www
if (Str::contains($request->get('urlWeb'), 'https://')) {
$request->merge(['urlWeb' => 'https://www.' . Str::after($request->get('urlWeb'), 'https://')]);
}
//Si contiene http y no www
if (Str::contains($request->get('urlWeb'), 'http://')) {
$request->merge(['urlWeb' => 'http://www.' . Str::after($request->get('urlWeb'), 'http://')]);
}
//Si no contiene www
else {
$request->merge(['urlWeb' => 'www.' . $request->get('urlWeb')]);
}
}
//Si no contiene ni http ni https
if (!Str::contains($request->get('urlWeb'), 'https://') &&
!Str::contains($request->get('urlWeb'), 'http://')){
$request->merge(['urlWeb' => 'http://' . $request->get('urlWeb')]);
}

if ($request->urlWeb){
//Si no contiene www
if (!Str::contains($request->get('urlWeb'), 'www.')) {
//Si contiene https y no www
if (Str::contains($request->get('urlWeb'), 'https://')) {
$request->merge(['urlWeb' => 'https://www.' . Str::after($request->get('urlWeb'), 'https://')]);
}
//Si contiene http y no www
if (Str::contains($request->get('urlWeb'), 'http://')) {
$request->merge(['urlWeb' => 'http://www.' . Str::after($request->get('urlWeb'), 'http://')]);
}
//Si no contiene www
else {
$request->merge(['urlWeb' => 'www.' . $request->get('urlWeb')]);
}
}
//Si no contiene ni http ni https
if (!Str::contains($request->get('urlWeb'), 'https://') &&
!Str::contains($request->get('urlWeb'), 'http://')){
$request->merge(['urlWeb' => 'http://' . $request->get('urlWeb')]);
}
}
$empresa = Empresa::find($id);
$empresa->nombre = $request->get('nombre');
$empresa->rubro = $request->get('rubro');
Expand All @@ -187,7 +181,6 @@ public function update(Request $request, $id){

/**
* Elimina la empresa de la base de datos.
* @version v1.1
* @author Eduardo Pérez
* @param int $id
* @return \Illuminate\Http\Response
Expand Down
40 changes: 38 additions & 2 deletions web/app/Http/Controllers/EvalTutorController.php
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
<?php

namespace App\Http\Controllers;

use App\Jobs\QueueEmailJob;
use Illuminate\Http\Request;
use Illuminate\Support\Str;
use App\Mail\EvalTutorMail;
Expand Down Expand Up @@ -76,6 +76,42 @@ public function enviar($idAlumno){
return redirect('/profesor')->with('success', 'Correo enviado correctamente');
}

public function enviarSeleccionados(Request $request) {
//$request->selectAlumno es el ID del alumno, se obtiene el valor del ID del alumno en cada checkbox
if ($request->selectAlumno != null) {
$idAlumnos = $request->selectAlumno;
foreach ($idAlumnos as $idAlumno) {
$user = User::where('idUsuario', $idAlumno)->first();
$pasantia = Pasantia::where('idAlumno', $idAlumno)->first();
$mailSubject = 'Correo evaluación pasantía';
$mailView = 'emails.evalTutor';
if ($pasantia->nombreJefe) {
$proyecto = Proyecto::where('idPasantia', $pasantia->idPasantia)->first();
$empresa = Empresa::where('idEmpresa', $pasantia->idEmpresa)->first();
//Encuentra evaluacion del alumno
$evaluacionPendiente = EvalTutor::where('idProyecto', $proyecto->idProyecto)->where('certificadoTutor', 0)->first();
//Si ya tiene una instancia de evaluacion pendiente, re enviar
if ($evaluacionPendiente) {
$mailJob = (new QueueEmailJob($mailSubject, $mailView, $pasantia, $user, $empresa, $evaluacionPendiente));
dispatch($mailJob);
} else {
//Nueva instancia de evaluacion para el tutor
$evalTutor = new EvalTutor;
$evalTutor->tokenCorreo = $string = str_random(10);
$evalTutor->idProyecto = $proyecto->idProyecto;
$evalTutor->save();
//Envia mail
$mailJob = (new QueueEmailJob($mailSubject, $mailView, $pasantia, $user, $empresa, $evalTutor));
dispatch($mailJob);
}
}
}
return redirect('/profesor')->with('success', 'Correos enviados correctamente');
} else {
return redirect('/profesor')->with('warning', 'Porfavor seleccione alumnos que desea enviar los correos.');
}
}

public function listado($idProyecto){
$proyecto = Proyecto::where('idProyecto', $idProyecto)->first();
$evaluaciones = EvalTutor::where('idProyecto', $proyecto->idProyecto)->get();
Expand All @@ -96,6 +132,6 @@ public function ver ($idEvaluacion){
$pasantia = Pasantia::where('idPasantia', $proyecto->idPasantia)->first();
$alumno = User::where('idUsuario', $pasantia->idAlumno)->first();

return view('evalTutor.ver', compact('evaluacion'), compact('alumno'));
return view('evalTutor.ver', compact('evaluacion', 'alumno', 'proyecto'));
}
}
14 changes: 9 additions & 5 deletions web/app/Http/Controllers/ListadoInscripcionController.php
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,8 @@

namespace App\Http\Controllers;

use App\Mail\infoAlumno;
use App\Jobs\QueueEmailJob;
use App\Mail\emailSend;
use App\Exports\ExportViews;
use App\Repositories\PasantiasRepository;
use Maatwebsite\Excel\Facades\Excel;
Expand Down Expand Up @@ -38,8 +39,11 @@ public function index()
//Enviar mail a alumno
public function enviarMailNotificacion($pasantia)
{
$user = User::where('idUsuario', $pasantia->idAlumno)->first();
Mail::to($user->email)->send(new InfoAlumno($pasantia, $user));
$user = User::where('idUsuario', $pasantia->idAlumno)->first();
$mailSubject = 'Correo pasos modificados alumno';
$mailView = 'emails.infoAlumno';
$mailJob = (new QueueEmailJob($mailSubject, $mailView, $pasantia, $user));
dispatch($mailJob);
}

/*
Expand Down Expand Up @@ -84,9 +88,9 @@ public function validarProyecto($id, $accion)
if (Auth::user()->rol >= 4) {
$pasantia = Pasantia::find($id);
if ($accion == 'Validar') {
$pasantia->statusPaso4 = 3;
} elseif ($accion == 'Rechazar') {
$pasantia->statusPaso4 = 4;
} elseif ($accion == 'Rechazar') {
$pasantia->statusPaso4 = 3;
}
$pasantia->save();
return redirect('admin/listadoInscripcion')->with('success', 'Operacion realizada correctamente.');
Expand Down
2 changes: 1 addition & 1 deletion web/app/Http/Controllers/PasantiaController.php
Original file line number Diff line number Diff line change
Expand Up @@ -181,7 +181,7 @@ public function paso2Control(Request $request){
$request->validate([
'empresa' => 'numeric|nullable',
'ciudad' => 'alpha|nullable',
'pais' => 'alpha|nullable',
'pais' => 'regex:/^[a-zA-ZÑñ\s]+$/|nullable',
'fecha' => 'date|nullable',
'horas' => 'numeric|between:20,45|nullable',
'pariente' => 'boolean|nullable',
Expand Down
15 changes: 0 additions & 15 deletions web/app/Http/Controllers/PerfilController.php

This file was deleted.

2 changes: 1 addition & 1 deletion web/app/Http/Controllers/ProfesorController.php
Original file line number Diff line number Diff line change
Expand Up @@ -30,7 +30,7 @@ public function index(){
public function verProyecto($id){
$proyecto = Proyecto::find($id);
$pasantia = Pasantia::find($proyecto->idPasantia);
$alumno = User::find($pasantia->idAlumno)->first();
$alumno = User::find($pasantia->idAlumno);
return view('profesor.proyecto', compact('proyecto'), compact('alumno'));
}

Expand Down
53 changes: 53 additions & 0 deletions web/app/Jobs/QueueEmailJob.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,53 @@
<?php

namespace App\Jobs;

use App\Pasantia;
use App\User;
use App\Empresa;
use App\EvalTutor;
use App\Proyecto;
use App\Mail\emailSend;
use Mail;

use Illuminate\Bus\Queueable;
use Illuminate\Queue\SerializesModels;
use Illuminate\Queue\InteractsWithQueue;
use Illuminate\Contracts\Queue\ShouldQueue;
use Illuminate\Foundation\Bus\Dispatchable;

class QueueEmailJob implements ShouldQueue {
use Dispatchable, InteractsWithQueue, Queueable, SerializesModels;

public $mailSubject;
public $mailView;
public $pasantia;
public $user;
public $empresa;
public $evalTutor;
public $proyecto;

/**
* Create a new job instance.
*
* @return void
*/
public function __construct($mailSubject, $mailView, Pasantia $pasantia = null, User $user = null, Empresa $empresa = null, EvalTutor $evalTutor = null, Proyecto $proyecto = null) {
$this->mailSubject = $mailSubject;
$this->mailView = $mailView;
$this->user = $user;
$this->pasantia = $pasantia;
$this->empresa = $empresa;
$this->evalTutor = $evalTutor;
$this->proyecto = $proyecto;
}

/**
* Execute the job.
*
* @return void
*/
public function handle() {
Mail::to($this->user->email)->send(new emailSend($this->mailSubject, $this->mailView, $this->pasantia, $this->user, $this->empresa, $this->evalTutor, $this->proyecto));
}
}
Loading

0 comments on commit 9d45669

Please sign in to comment.