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 ...@@ -21,7 +21,7 @@ class Avaliador extends Model
return $this->belongsToMany('App\Trabalho')->withPivot('status', 'AnexoParecer', 'parecer', 'recomendacao', 'created_at'); return $this->belongsToMany('App\Trabalho')->withPivot('status', 'AnexoParecer', 'parecer', 'recomendacao', 'created_at');
} }
public function eventos(){ public function eventos(){
return $this->belongsToMany('App\Evento'); return $this->belongsToMany('App\Evento')->withPivot('convite', 'created_at');
} }
public function area(){ public function area(){
return $this->belongsTo('App\Area'); return $this->belongsTo('App\Area');
......
...@@ -41,7 +41,7 @@ class Evento extends Model ...@@ -41,7 +41,7 @@ class Evento extends Model
return $this->hasMany('App\Trabalho'); return $this->hasMany('App\Trabalho');
} }
public function avaliadors(){ 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 ...@@ -415,17 +415,33 @@ class AdministradorController extends Controller
$nomeAvaliador = $request->nomeAvaliador; $nomeAvaliador = $request->nomeAvaliador;
$emailAvaliador = $request->emailAvaliador; $emailAvaliador = $request->emailAvaliador;
$tipo = $request->tipo; $tipo = $request->tipo;
$user = User::where('email', $emailAvaliador )->first();
$passwordTemporario = Str::random(8); //existe o caso de enviar o convite de novo para um mesmo usuário
Mail::to($emailAvaliador) // if(isset($user->avaliadors->eventos->where('id', $evento->id)->first()->pivot->convite) ){
->send(new EmailParaUsuarioNaoCadastrado($nomeAvaliador, ' ', 'Avaliador', $evento->nome, $passwordTemporario)); // return redirect()->back()->with(['mensagem' => 'Usuário já recebeu um convite e está pendente']);
$user = User::create([ // }
'email' => $emailAvaliador,
'password' => bcrypt($passwordTemporario), if(isset($user)){
'usuarioTemp' => true, $passwordTemporario = Str::random(8);
'name' => $nomeAvaliador, $subject = "Convite para avaliar projetos da UFAPE";
'tipo' => 'avaliador', 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 = new Avaliador();
$avaliador->save(); $avaliador->save();
......
...@@ -83,4 +83,12 @@ class AvaliadorController extends Controller ...@@ -83,4 +83,12 @@ class AvaliadorController extends Controller
return view('avaliador.listarTrabalhos', ['trabalhos'=>$trabalhos, 'evento'=>$evento ]); 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 ...@@ -206,8 +206,9 @@ class TrabalhoController extends Controller
$participante = new Participante(); $participante = new Participante();
if($userParticipante == null){ if($userParticipante == null){
$passwordTemporario = Str::random(8); $passwordTemporario = Str::random(8);
Mail::to($value)->send(new EmailParaUsuarioNaoCadastrado(Auth()->user()->name, ' ', 'Participante', $evento->nome, $passwordTemporario)); $subject = "Participante de Projeto";
Mail::to($value)->send(new EmailParaUsuarioNaoCadastrado(Auth()->user()->name, $request->nomeProjeto, 'Participante', $evento->nome, $passwordTemporario, $subject));
$usuario = User::create([ $usuario = User::create([
'email' => $value, 'email' => $value,
'password' => bcrypt($passwordTemporario), 'password' => bcrypt($passwordTemporario),
......
...@@ -15,19 +15,21 @@ class EmailParaUsuarioNaoCadastrado extends Mailable ...@@ -15,19 +15,21 @@ class EmailParaUsuarioNaoCadastrado extends Mailable
public $nomeFuncao; public $nomeFuncao;
public $nomeEvento; public $nomeEvento;
public $senhaTemporaria; public $senhaTemporaria;
public $subject;
/** /**
* Create a new message instance. * Create a new message instance.
* *
* @return void * @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->nomeUsuarioPai = $nomeUsuarioPai;
$this->nomeTrabalho = $nomeTrabalho; $this->nomeTrabalho = $nomeTrabalho;
$this->nomeFuncao = $nomeFuncao; $this->nomeFuncao = $nomeFuncao;
$this->nomeEvento = $nomeEvento; $this->nomeEvento = $nomeEvento;
$this->senhaTemporaria = $senhaTemporaria; $this->senhaTemporaria = $senhaTemporaria;
$this->subject = $subject;
} }
/** /**
...@@ -37,6 +39,17 @@ class EmailParaUsuarioNaoCadastrado extends Mailable ...@@ -37,6 +39,17 @@ class EmailParaUsuarioNaoCadastrado extends Mailable
*/ */
public function build() 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 ...@@ -19,7 +19,7 @@ class CreateAvaliadorsTrabalhosTable extends Migration
$table->text('parecer')->nullable(); $table->text('parecer')->nullable();
$table->string('AnexoParecer')->nullable(); $table->string('AnexoParecer')->nullable();
$table->boolean('status')->nullable(); $table->boolean('status')->nullable();
$table->string('recomendacao')->nullable(); $table->string('recomendacao')->nullable();
$table->softDeletes(); $table->softDeletes();
......
...@@ -17,6 +17,8 @@ class CreateAvaliadorsEventosTable extends Migration ...@@ -17,6 +17,8 @@ class CreateAvaliadorsEventosTable extends Migration
$table->bigIncrements('id'); $table->bigIncrements('id');
$table->timestamps(); $table->timestamps();
$table->boolean('convite')->nullable();
$table->unsignedBigInteger('avaliador_id'); $table->unsignedBigInteger('avaliador_id');
$table->unsignedBigInteger('evento_id'); $table->unsignedBigInteger('evento_id');
......
...@@ -62,39 +62,40 @@ ...@@ -62,39 +62,40 @@
@endif @endif
</td> </td>
</tr> </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 @endforeach
</tbody> </tbody>
</table> </table>
</div> </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 @endsection
......
...@@ -41,7 +41,14 @@ ...@@ -41,7 +41,14 @@
<tr> <tr>
<td>{{ $avaliador->user->name }}</td> <td>{{ $avaliador->user->name }}</td>
<td>{{ $avaliador->user->email }}</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"> <td style="text-align:center">
<form action="{{ route('admin.adicionar') }}" method="POST"> <form action="{{ route('admin.adicionar') }}" method="POST">
@csrf @csrf
...@@ -77,7 +84,15 @@ ...@@ -77,7 +84,15 @@
<tr> <tr>
<td>{{ $avaliador->user->name }}</td> <td>{{ $avaliador->user->name }}</td>
<td>{{ $avaliador->user->email }}</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"> <td style="text-align:center">
<form action="{{ route('admin.remover') }}" method="POST"> <form action="{{ route('admin.remover') }}" method="POST">
......
...@@ -63,7 +63,7 @@ ...@@ -63,7 +63,7 @@
<label for="exampleFormControlSelect2">Example multiple select</label> <label for="exampleFormControlSelect2">Example multiple select</label>
<select name="avaliadores_id[]" multiple class="form-control" id="exampleFormControlSelect2"> <select name="avaliadores_id[]" multiple class="form-control" id="exampleFormControlSelect2">
@foreach ($trabalho->aval as $avaliador) @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 @endforeach
</select> </select>
<small id="emailHelp" class="form-text text-muted">Segure SHIFT do teclado para selecionar mais de um.</small> <small id="emailHelp" class="form-text text-muted">Segure SHIFT do teclado para selecionar mais de um.</small>
......
...@@ -35,10 +35,28 @@ ...@@ -35,10 +35,28 @@
<img src="{{asset('img/icons/ellipsis-v-solid.svg')}}" style="width:8px"> <img src="{{asset('img/icons/ellipsis-v-solid.svg')}}" style="width:8px">
</a> </a>
<div class="dropdown-menu"> <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"> <a href="{{ route('avaliador.visualizarTrabalho', ['evento_id' => $evento->id]) }}" class="dropdown-item">
<img src="{{asset('img/icons/eye-regular.svg')}}" class="icon-card" alt=""> <img src="{{asset('img/icons/eye-regular.svg')}}" class="icon-card" alt="">
Projetos para avaliar Projetos para avaliar
</a> </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> </div>
......
<div> <!DOCTYPE html>
senha: {{$senhaTemporaria}} <html>
</div> <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(){ ...@@ -27,6 +27,7 @@ Route::prefix('avaliador')->name('avaliador.')->group(function(){
Route::post('/parecer', 'AvaliadorController@parecer' )->name('parecer')->middleware('auth'); Route::post('/parecer', 'AvaliadorController@parecer' )->name('parecer')->middleware('auth');
Route::get('/editais', 'AvaliadorController@editais' )->name('editais')->middleware('auth'); Route::get('/editais', 'AvaliadorController@editais' )->name('editais')->middleware('auth');
Route::post('/Enviarparecer', 'AvaliadorController@enviarParecer' )->name('enviarParecer')->middleware('auth'); Route::post('/Enviarparecer', 'AvaliadorController@enviarParecer' )->name('enviarParecer')->middleware('auth');
Route::get('/Resposta', 'AvaliadorController@conviteResposta' )->name('conviteResposta')->middleware('auth');
}); });
//######### Proponente ######################################## //######### 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