Unverified Commit ec1f7916 authored by GuilhermeGz's avatar GuilhermeGz Committed by GitHub
Browse files

Merge pull request #186 from KelwinJonas/master

Reenvio de convite de avaliador; separacao de selects de internos e externos; informar instituicao no cadastro/convite de avaliador.
parents a3eff63a ebee9f0d
......@@ -28,6 +28,7 @@ use Illuminate\Support\Facades\Mail;
use App\Mail\EventoCriado;
use Illuminate\Support\Facades\Storage;
use App\Http\Controllers\Response;
use App\Mail\EmailLembrete;
use Illuminate\Pagination\Paginator;
use Illuminate\Support\Collection;
use Illuminate\Pagination\LengthAwarePaginator;
......@@ -533,7 +534,23 @@ class AdministradorController extends Controller
$trabalho = Trabalho::where('id', $request->trabalho_id)->first();
$evento = Evento::where('id', $request->evento_id)->first();
$avaliadores = Avaliador::whereIn('id', $request->avaliadores_id)->get();
if($request->avaliadores_internos_id == null){
$avaliadoresInternos = [];
}else{
$avaliadoresInternos = $request->avaliadores_internos_id;
}
if($request->avaliadores_externos_id == null){
$avaliadoresExternos = [];
}else{
$avaliadoresExternos = $request->avaliadores_externos_id;
}
$idsAvaliadores = array_merge($avaliadoresInternos, $avaliadoresExternos);
if($idsAvaliadores == null){
redirect()->back()->with(['error' => 'Selecione ao menos um avaliador.', 'trabalho' => $trabalho->id]);
}
$avaliadores = Avaliador::whereIn('id', $idsAvaliadores)->get();
$trabalho->avaliadors()->attach($avaliadores);
$evento->avaliadors()->syncWithoutDetaching($avaliadores);
$trabalho->save();
......@@ -554,6 +571,33 @@ class AdministradorController extends Controller
}
public function reenviarConviteAtribuicaoProjeto(Request $request){
$evento = Evento::where('id', $request->evento_id)->first();
$avaliador = Avaliador::where('id', $request->avaliador_id)->first();
if($avaliador->user->avaliadors->eventos->where('id', $evento->id)->first()->pivot->convite != true){
$avaliador->user->avaliadors->eventos()->updateExistingPivot($evento->id, ['convite'=> null]);
}
$notificacao = Notificacao::create([
'remetente_id' => Auth::user()->id,
'destinatario_id' => $avaliador->user_id,
'trabalho_id' => $request->trabalho_id,
'lido' => false,
'tipo' => 5,
]);
$notificacao->save();
$trabalho = Trabalho::where('id', $request->trabalho_id)->first();
$subject = "Trabalho atribuido";
$informacoes = $trabalho->titulo;
//REFAZER EMAIL
Mail::to($avaliador->user->email)
->send(new EmailLembrete($avaliador->user, $subject, $informacoes));
return redirect()->back();
}
public function enviarConvite(Request $request){
$evento = Evento::where('id', $request->evento_id)->first();
......@@ -563,6 +607,14 @@ class AdministradorController extends Controller
$area = Area::where('id', $request->area_id)->first();
$user = User::where('email', $emailAvaliador )->first();
if($request->instituicao == "ufape"){
$nomeInstituicao = "Universidade Federal do Agreste de Pernambuco";
$externoInterno = "Interno";
}else{
$nomeInstituicao = $request->outra;
$externoInterno = "Externo";
}
//existe o caso de enviar o convite de novo para um mesmo usuário
// if(isset($user->avaliadors->eventos->where('id', $evento->id)->first()->pivot->convite) ){
// return redirect()->back()->with(['mensagem' => 'Usuário já recebeu um convite e está pendente']);
......@@ -585,6 +637,7 @@ class AdministradorController extends Controller
'usuarioTemp' => false,
'name' => $nomeAvaliador,
'tipo' => 'avaliador',
'instituicao' => $nomeInstituicao,
]);
$user->markEmailAsVerified();
......@@ -592,6 +645,7 @@ class AdministradorController extends Controller
if($user->avaliadors == null){
$avaliador = new Avaliador();
$avaliador->tipo = $externoInterno;
$avaliador->save();
$avaliador->area()->associate($area);
$avaliador->user()->associate($user);
......
......@@ -389,12 +389,12 @@
<div class="form-row mt-3">
<div class="col-md-11"><h5 style="color: #234B8B; font-weight: bold">Avaliadores</h5></div>
<div class="col-md-1 text-sm-right">
<a type="button" value="{{ $trabalho->id }}" id="atribuir1" data-toggle="modal" data-target="#avaliadorModalCenter{{ $trabalho->id }}">
<a type="button" value="{{ $trabalho->id }}" id="atribuir1" data-toggle="modal" data-target="#avaliadorModalCenter">
<img class="" src="{{asset('img/icons/add.ico')}}" style="width:30px" alt="">
</a>
</div>
<!-- Modal -->
<div class="modal fade" id="avaliadorModalCenter{{ $trabalho->id }}" tabindex="-1" role="dialog" aria-labelledby="avaliadorModalCenterTitle" aria-hidden="true">
<div class="modal fade" id="avaliadorModalCenter" data-bs-backdrop="static" data-bs-keyboard="false" tabindex="-1" aria-labelledby="staticBackdropLabel" aria-hidden="true">
<div class="modal-dialog modal-dialog-centered modal-lg" role="document">
<div class="modal-content modal-submeta">
<div class="modal-header modal-header-submeta">
......@@ -404,6 +404,13 @@
</button>
</div>
<div class="modal-body">
@if (session('error'))
<div class="col-md-12">
<div class="alert alert-danger" role="alert">
<p>{{ session('error') }}</p>
</div>
</div>
@endif
<form action="{{ route('admin.atribuicao.projeto') }}" method="POST">
@csrf
......@@ -435,9 +442,24 @@
</div>
</div>
<select name="avaliadores_id[]" multiple class="form-control" id="exampleFormControlSelect2" required>
<div class="col-md-6">
<label style="font-weight: bold">Externos</label>
</div>
<select name="avaliadores_externos_id[]" multiple class="form-control" id="exampleFormControlSelect3">
@foreach ($trabalho->aval as $avaliador)
@if($avaliador->tipo == "Externo")
<option value="{{ $avaliador->id }}" > {{ $avaliador->user->name }} > {{$avaliador->user->instituicao ?? 'Instituição Indefinida'}} > {{$avaliador->area->nome ?? 'Indefinida'}} > {{$avaliador->user->email}}</option>
@endif
@endforeach
</select>
<div class="col-md-6">
<label style="font-weight: bold">Internos</label>
</div>
<select name="avaliadores_internos_id[]" multiple class="form-control" id="exampleFormControlSelect2">
@foreach ($trabalho->aval as $avaliador)
@if($avaliador->tipo == "Interno")
<option value="{{ $avaliador->id }}" > {{ $avaliador->user->name }} > {{$avaliador->user->instituicao ?? 'Instituição Indefinida'}} > {{$avaliador->area->nome ?? 'Indefinida'}} > {{$avaliador->user->email}}</option>
@endif
@endforeach
</select>
<small id="emailHelp" class="form-text text-muted">Segure SHIFT do teclado para selecionar mais de um.</small>
......@@ -480,6 +502,10 @@
<a href="{{ route('admin.removerProjAval', ['trabalho_id' => $trabalho->id, 'avaliador_id' => $avaliador->id]) }}" >
Remover
</a>--}}
<br>
<a href="{{ route('admin.reenviar.atribuicao.projeto', ['evento_id' => $evento->id, 'avaliador_id'=>$avaliador->id, 'trabalho_id' => $trabalho->id]) }}">
Reenviar convite
</a>
</div>
@endif
@endforeach
......@@ -505,6 +531,9 @@
{{-- <a href="{{ route('admin.removerProjAval', ['trabalho_id' => $trabalho->id, 'avaliador_id' => $avaliador->id]) }}" >
Remover
</a>--}}
<a href="{{ route('admin.reenviar.atribuicao.projeto', ['evento_id' => $evento->id, 'avaliador_id'=>$avaliador->id, 'trabalho_id' => $trabalho->id]) }}">
Reenviar convite
</a>
</div>
@endif
@endforeach
......@@ -896,4 +925,12 @@
}
</script>
<script>
if({!! json_encode(session('error'), JSON_HEX_TAG) !!})
{
$(document).ready(function(){
$('#avaliadorModalCenter').modal('show');
});
}
</script>
@endsection
......@@ -152,16 +152,16 @@
<input type="hidden" name="evento_id" value="{{ $evento->id }}" >
<div class="form-group">
<label for="exampleInputEmail1">Nome Completo <span style="color: red;">*</span></label>
<input type="text" class="form-control" name="nomeAvaliador" id="exampleInputNome1">
<input type="text" class="form-control" name="nomeAvaliador" id="exampleInputNome1" required>
</div>
<div class="form-group">
<label for="exampleInputEmail1">Email <span style="color: red;">*</span></label>
<input type="email" class="form-control" name="emailAvaliador" id="exampleInputEmail1">
<input type="email" class="form-control" name="emailAvaliador" id="exampleInputEmail1" required>
</div>
<div class="form-group">
<label for="grandeArea" class="col-form-label">{{ __('Grande Área') }} <span style="color: red; font-weight:bold">*</span></label>
<select class="form-control" id="grandeArea" name="grande_area_id" onchange="areas()" >
<select class="form-control" id="grandeArea" name="grande_area_id" onchange="areas()" required>
<option value="" disabled selected hidden>-- Grande Área --</option>
@foreach($grandeAreas as $grandeArea)
<option value="{{$grandeArea->id}}">{{$grandeArea->nome}}</option>
......@@ -169,7 +169,7 @@
</select>
<label for="area" class="col-form-label">{{ __('Área') }} <span style="color: red; font-weight:bold">*</span></label>
<select class="form-control @error('area') is-invalid @enderror" id="area" name="area_id" >
<select class="form-control @error('area') is-invalid @enderror" id="area" name="area_id" required>
<option value="" disabled selected hidden>-- Área --</option>
</select>
</div>
......@@ -180,6 +180,25 @@
</select>
</div>
<div class="form-group">
<label for="exampleFormControlSelect1">Instituição <span style="color: red; font-weight:bold">*</span></label>
<select class="form-control" name="instituicao" id="membro" required onchange="mostrarDiv(this)">
<option value="" disabled>-- Selecione a instituição --</option>
<option value="ufape" >Universidade Federal do Agreste de Pernambuco</option>
<option value="outra" >Outra</option>
</select>
</div>
<div class="form-group" id="div-outra" style="@if(old('instituicao') != null && old('instituicao') == "outra") display: block; @else display: none; @endif">
<label for="outra">{{ __('Digite o nome da instituição') }}<span style="color: red; font-weight: bold;"> *</span></label>
<input id="outra" class="form-control @error('outra') is-invalid @enderror" type="text" name="outra" value="{{old('outra')}}" autocomplete="outra" placeholder="Universidade Federal ...">
@error('outra')
<div id="validationServer03Feedback" class="invalid-feedback">
{{ $message }}
</div>
@enderror
</div>
<div class="form-group" style="margin-top: 40px; margin-bottom: 40px;">
<button type="submit" class="btn btn-info" style="width: 100%">Enviar</button>
</div>
......@@ -254,5 +273,15 @@
})
}
function mostrarDiv(select) {
if(select.value == "outra") {
document.getElementById('div-outra').style.display = "block";
$("#outra").prop('required',true);
}else if(select.value == "ufape"){
document.getElementById('div-outra').style.display = "none";
$("#outra").prop('required',false);
}
}
</script>
@endsection
......@@ -200,6 +200,7 @@ Route::prefix('usuarios')->name('admin.')->group(function(){
Route::post('/removerAvalEvento', 'AdministradorController@remover' )->name('remover');
Route::get('/removerProjAval', 'AdministradorController@removerProjAval' )->name('removerProjAval');
Route::post('/atribuirAvaliadorProjeto', 'AdministradorController@atribuicaoProjeto')->name('atribuicao.projeto');
Route::get('/reenviarConviteAtribuicaoProjeto', 'AdministradorController@reenviarConviteAtribuicaoProjeto')->name('reenviar.atribuicao.projeto');
Route::post('/enviarConviteAvaliador', 'AdministradorController@enviarConvite' )->name('enviarConvite');
Route::post('/reenviarConviteAvaliador', 'AdministradorController@reenviarConvite' )->name('reenviarConvite');
Route::post('/visualizarParecer', 'AdministradorController@visualizarParecer')->name('visualizarParecer');
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment