Commit 46c21d0a authored by Gabriel-31415's avatar Gabriel-31415
Browse files

ajustes em email e avaliador

parent 9314ccab
......@@ -21,7 +21,7 @@ class Avaliador extends Model
return $this->belongsToMany('App\Trabalho')->withPivot('status', 'AnexoParecer', 'parecer', 'recomendacao', 'created_at');
}
public function eventos(){
return $this->belongsToMany('App\Evento');
return $this->belongsToMany('App\Evento')->withPivot('convite', 'created_at');
}
public function area(){
return $this->belongsTo('App\Area');
......
......@@ -41,7 +41,7 @@ class Evento extends Model
return $this->hasMany('App\Trabalho');
}
public function avaliadors(){
return $this->belongsToMany('App\Avaliador');
return $this->belongsToMany('App\Avaliador')->withPivot('convite', 'created_at');
}
......
......@@ -415,17 +415,33 @@ class AdministradorController extends Controller
$nomeAvaliador = $request->nomeAvaliador;
$emailAvaliador = $request->emailAvaliador;
$tipo = $request->tipo;
$user = User::where('email', $emailAvaliador )->first();
$passwordTemporario = Str::random(8);
Mail::to($emailAvaliador)
->send(new EmailParaUsuarioNaoCadastrado($nomeAvaliador, ' ', 'Avaliador', $evento->nome, $passwordTemporario));
$user = User::create([
'email' => $emailAvaliador,
'password' => bcrypt($passwordTemporario),
'usuarioTemp' => true,
'name' => $nomeAvaliador,
'tipo' => 'avaliador',
]);
//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']);
// }
if(isset($user)){
$passwordTemporario = Str::random(8);
$subject = "Convite para avaliar projetos da UFAPE";
Mail::to($emailAvaliador)
->send(new EmailParaUsuarioNaoCadastrado($nomeAvaliador, ' ', 'Avaliador-Cadastrado', $evento->nome, $passwordTemporario, $subject));
}else{
$passwordTemporario = Str::random(8);
$subject = "Convite para avaliar projetos da UFAPE";
Mail::to($emailAvaliador)
->send(new EmailParaUsuarioNaoCadastrado($nomeAvaliador, ' ', 'Avaliador', $evento->nome, $passwordTemporario, $subject));
$user = User::create([
'email' => $emailAvaliador,
'password' => bcrypt($passwordTemporario),
'usuarioTemp' => true,
'name' => $nomeAvaliador,
'tipo' => 'avaliador',
]);
}
$avaliador = new Avaliador();
$avaliador->save();
......
......@@ -83,4 +83,12 @@ class AvaliadorController extends Controller
return view('avaliador.listarTrabalhos', ['trabalhos'=>$trabalhos, 'evento'=>$evento ]);
}
public function conviteResposta(Request $request){
//dd($request->all());
$user = User::find(Auth::user()->id);
$evento = Evento::find($request->evento_id);
$user->avaliadors->eventos()->updateExistingPivot($evento->id, ['convite'=> $request->resposta]);
//dd( $user->avaliadors->eventos->where('id', $evento->id)->first()->pivot);
return redirect()->back();
}
}
......@@ -206,8 +206,9 @@ class TrabalhoController extends Controller
$participante = new Participante();
if($userParticipante == null){
$passwordTemporario = Str::random(8);
Mail::to($value)->send(new EmailParaUsuarioNaoCadastrado(Auth()->user()->name, ' ', 'Participante', $evento->nome, $passwordTemporario));
$passwordTemporario = Str::random(8);
$subject = "Participante de Projeto";
Mail::to($value)->send(new EmailParaUsuarioNaoCadastrado(Auth()->user()->name, $request->nomeProjeto, 'Participante', $evento->nome, $passwordTemporario, $subject));
$usuario = User::create([
'email' => $value,
'password' => bcrypt($passwordTemporario),
......
......@@ -15,19 +15,21 @@ class EmailParaUsuarioNaoCadastrado extends Mailable
public $nomeFuncao;
public $nomeEvento;
public $senhaTemporaria;
public $subject;
/**
* Create a new message instance.
*
* @return void
*/
public function __construct(String $nomeUsuarioPai, String $nomeTrabalho, String $nomeFuncao, String $nomeEvento, String $senhaTemporaria)
public function __construct(String $nomeUsuarioPai, String $nomeTrabalho, String $nomeFuncao, String $nomeEvento, String $senhaTemporaria, String $subject)
{
$this->nomeUsuarioPai = $nomeUsuarioPai;
$this->nomeTrabalho = $nomeTrabalho;
$this->nomeFuncao = $nomeFuncao;
$this->nomeEvento = $nomeEvento;
$this->senhaTemporaria = $senhaTemporaria;
$this->subject = $subject;
}
/**
......@@ -37,6 +39,17 @@ class EmailParaUsuarioNaoCadastrado extends Mailable
*/
public function build()
{
return $this->view('emails.usuarioNaoCadastrado');
return $this->from('lmtsteste@gmail.com', 'Submeta - LMTS')
->subject($this->subject)
->view('emails.usuarioNaoCadastrado')
->with([
'nomeUsuarioPai' => $this->nomeUsuarioPai,
'nomeTrabalho' => $this->nomeTrabalho,
'nomeFuncao' => $this->nomeFuncao,
'nomeEvento' => $this->nomeEvento,
'senhaTemporaria' => $this->senhaTemporaria
]);
}
}
......@@ -19,7 +19,7 @@ class CreateAvaliadorsTrabalhosTable extends Migration
$table->text('parecer')->nullable();
$table->string('AnexoParecer')->nullable();
$table->boolean('status')->nullable();
$table->boolean('status')->nullable();
$table->string('recomendacao')->nullable();
$table->softDeletes();
......
......@@ -17,6 +17,8 @@ class CreateAvaliadorsEventosTable extends Migration
$table->bigIncrements('id');
$table->timestamps();
$table->boolean('convite')->nullable();
$table->unsignedBigInteger('avaliador_id');
$table->unsignedBigInteger('evento_id');
......
......@@ -62,39 +62,40 @@
@endif
</td>
</tr>
<!-- Modal -->
<div class="modal fade" id="exampleModal" tabindex="-1" role="dialog" aria-labelledby="exampleModalLabel" aria-hidden="true">
<div class="modal-dialog">
<div class="modal-content">
<div class="modal-header">
<h5 class="modal-title" id="exampleModalLabel">Deletar edital</h5>
<button type="button" class="close" data-dismiss="modal" aria-label="Close">
<span aria-hidden="true">&times;</span>
</button>
</div>
<div class="modal-body">
<p>Você tem certeza que deseja deletar o edital:{{ $evento->nome }}?</p>
</div>
<div class="modal-footer">
<button type="button" class="btn btn-secondary" data-dismiss="modal">Cancelar</button>
<form method="POST" action="{{route('evento.deletar',$evento->id)}}" class="text-center">
{{ csrf_field() }}
{{ method_field('DELETE') }}
<button type="submit" class="btn btn-primary">
Deletar
</button>
</form>
</div>
</div>
</div>
</div>
@endforeach
</tbody>
</table>
</div>
<!-- Modal -->
<div class="modal fade" id="exampleModal" tabindex="-1" role="dialog" aria-labelledby="exampleModalLabel" aria-hidden="true">
<div class="modal-dialog">
<div class="modal-content">
<div class="modal-header">
<h5 class="modal-title" id="exampleModalLabel">Deletar edital</h5>
<button type="button" class="close" data-dismiss="modal" aria-label="Close">
<span aria-hidden="true">&times;</span>
</button>
</div>
<div class="modal-body">
<p>Você tem certeza que deseja deletar o edital:{{ $evento->nome }}?</p>
</div>
<div class="modal-footer">
<button type="button" class="btn btn-secondary" data-dismiss="modal">Cancelar</button>
<form method="POST" action="{{route('evento.deletar',$evento->id)}}" class="text-center">
{{ csrf_field() }}
{{ method_field('DELETE') }}
<button type="submit" class="btn btn-primary">
Deletar
</button>
</form>
</div>
</div>
</div>
</div>
@endsection
......
......@@ -41,7 +41,14 @@
<tr>
<td>{{ $avaliador->user->name }}</td>
<td>{{ $avaliador->user->email }}</td>
<td>{{ $avaliador->area->nome }}</td>
<td>
@if(is_null($avaliador->area))
Indefinida
@else
{{ $avaliador->area->nome }}
@endif
</td>
<td style="text-align:center">
<form action="{{ route('admin.adicionar') }}" method="POST">
@csrf
......@@ -77,7 +84,15 @@
<tr>
<td>{{ $avaliador->user->name }}</td>
<td>{{ $avaliador->user->email }}</td>
<td>Status-Aceito ou Rejeitado</td>
<td>
@if($avaliador->eventos->where('id', $evento->id)->first()->pivot->convite == true)
Aceito
@elseif(is_null($avaliador->eventos->where('id', $evento->id)->first()->pivot->convite))
Pendente
@else
Recusado
@endif
</td>
<td style="text-align:center">
<form action="{{ route('admin.remover') }}" method="POST">
......
......@@ -63,7 +63,7 @@
<label for="exampleFormControlSelect2">Example multiple select</label>
<select name="avaliadores_id[]" multiple class="form-control" id="exampleFormControlSelect2">
@foreach ($trabalho->aval as $avaliador)
<option value="{{ $avaliador->id }}" > {{ $avaliador->user->name }} ({{ $avaliador->area->nome }}) </option>
<option value="{{ $avaliador->id }}" > {{ $avaliador->user->name }} (@if(is_null($avaliador->area))Indefinida)@else ({{ $avaliador->area->nome }}) @endif </option>
@endforeach
</select>
<small id="emailHelp" class="form-text text-muted">Segure SHIFT do teclado para selecionar mais de um.</small>
......
......@@ -35,10 +35,28 @@
<img src="{{asset('img/icons/ellipsis-v-solid.svg')}}" style="width:8px">
</a>
<div class="dropdown-menu">
@if(!is_null(Auth::user()->avaliadors->eventos->where('id', 1)->first()->pivot->convite) && Auth::user()->avaliadors->eventos->where('id', $evento->id)->first()->pivot->convite == true )
<a href="{{ route('avaliador.visualizarTrabalho', ['evento_id' => $evento->id]) }}" class="dropdown-item">
<img src="{{asset('img/icons/eye-regular.svg')}}" class="icon-card" alt="">
Projetos para avaliar
</a>
@elseif(!is_null(Auth::user()->avaliadors->eventos->where('id', 1)->first()->pivot->convite) && Auth::user()->avaliadors->eventos->where('id', $evento->id)->first()->pivot->convite == false)
<button disabled="disabled" class="dropdown-item">
Convite recusado
</button>
@elseif(is_null(Auth::user()->avaliadors->eventos->where('id', $evento->id)->first()->pivot->convite) )
<a href="{{ route('avaliador.conviteResposta', ['evento_id' => $evento->id, 'resposta'=>true]) }}" class="dropdown-item">
<img src="{{asset('img/icons/eye-regular.svg')}}" class="icon-card" alt="">
Aceitar Convite
</a>
<a href="{{ route('avaliador.conviteResposta', ['evento_id' => $evento->id, 'resposta'=>false]) }}" class="dropdown-item">
<img src="{{asset('img/icons/eye-regular.svg')}}" class="icon-card" alt="">
Recusar Convite
</a>
@endif
</div>
</div>
......
<div>
senha: {{$senhaTemporaria}}
</div>
<!DOCTYPE html>
<html>
<head>
</head>
<body>
@if($nomeFuncao == "Avaliador")
<h3>Prezado(a) Pesquisador(a)</h3>
<p>
A Universidade Federal do Agreste de Pernambuco (UFAPE) convida Vossa Senhoria para participar como Avaliador de projetos do Edital {{ $nomeEvento }}.
Caso concorde em participar, segue a senha para se cadastrar no Sistema de Submissão de Projetos (Submeta). senha: {{$senhaTemporaria}} e o link: <a href="{{ url('http://sistemas.ufape.edu.br/submeta/') }}">Submeta</a>
<br>Desde já, a UFAPE agradece toda a atenção dispensada por Vossa Senhoria.
</p>
@endif
@if($nomeFuncao == "Participante")
<h3>Prezado(a)</h3>
<p>
{{ $nomeUsuarioPai }} convida Vossa Senhoria para integrar como Participante do projeto {{ $nomeTrabalho }} do Edital {{ $nomeEvento }}.
Caso concorde em participar, segue a senha para se cadastrar no Sistema de Submissão de Projetos (Submeta). senha: {{$senhaTemporaria}} e o link: <a href="{{ url('http://sistemas.ufape.edu.br/submeta/') }}">Submeta</a>.
<br>Desde já, a UFAPE agradece toda a atenção dispensada por Vossa Senhoria.
</p>
@endif
@if($nomeFuncao == "Avaliador-Cadastrado")
<h3>Prezado(a)</h3>
<p>
{{ $nomeUsuarioPai }} convida Vossa Senhoria para participar como Avaliador de projetos do Edital {{ $nomeEvento }}.
Caso concorde em participar, segue o link: <a href="{{ url('http://sistemas.ufape.edu.br/submeta/') }}">Submeta</a> para confirmar o convite.
<br>Desde já, a UFAPE agradece toda a atenção dispensada por Vossa Senhoria.
</p>
@endif
</body>
</html>
......@@ -27,6 +27,7 @@ Route::prefix('avaliador')->name('avaliador.')->group(function(){
Route::post('/parecer', 'AvaliadorController@parecer' )->name('parecer')->middleware('auth');
Route::get('/editais', 'AvaliadorController@editais' )->name('editais')->middleware('auth');
Route::post('/Enviarparecer', 'AvaliadorController@enviarParecer' )->name('enviarParecer')->middleware('auth');
Route::get('/Resposta', 'AvaliadorController@conviteResposta' )->name('conviteResposta')->middleware('auth');
});
//######### Proponente ########################################
......
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