Commit 0d366783 authored by Gabriel-31415's avatar Gabriel-31415
Browse files

add da opção atribuir avaliadores

parent 7387b6c8
......@@ -6,10 +6,19 @@ use Illuminate\Database\Eloquent\Model;
class Avaliador extends Model
{
protected $fillable = [
'status',
'parecer',
'AnexoParecer',
'pivot',
];
public function user(){
return $this->belongsTo('App\User');
}
public function trabalhos(){
return $this->belongsToMany('App\Trabalho');
return $this->belongsToMany('App\Trabalho')->withPivot('status', 'AnexoParecer', 'parecer');
}
public function eventos(){
return $this->belongsToMany('App\Evento');
}
}
......@@ -40,6 +40,9 @@ class Evento extends Model
public function trabalhos(){
return $this->hasMany('App\Trabalho');
}
public function avaliadors(){
return $this->belongsToMany('App\Avaliador');
}
}
......@@ -238,4 +238,39 @@ class AdministradorController extends Controller
$user->delete();
return redirect( route('admin.usuarios') )->with(['mensagem' => 'Usuário deletado com sucesso']);
}
public function atribuir(Request $request){
$evento = Evento::where('id', $request->evento_id)->first();
//dd($request->all());
return view('administrador.atribuirAvaliadores', ['evento'=> $evento]);
}
public function selecionar(Request $request){
$evento = Evento::where('id', $request->evento_id)->first();
$avaliadores = Avaliador::all();
$avalSelecionados = $evento->avaliadors;
return view('administrador.selecionarAvaliadores', [
'evento'=> $evento,
'avaliadores'=>$avaliadores,
'avalSelecionados'=>$avalSelecionados
]);
}
public function projetos(Request $request){
$evento = Evento::where('id', $request->evento_id)->first();
$trabalhos = $evento->trabalhos;
$avaliadores = $evento->avaliadors;
//dd($avaliadores);
return view('administrador.selecionarProjetos', [
'evento'=> $evento,
'trabalhos'=>$trabalhos,
'avaliadores'=>$avaliadores,
]);
}
}
......@@ -10,6 +10,6 @@ class Proponente extends Model
return $this->belongsTo('App\User');
}
public function trabalhos(){
return $this->belongsToMany('App\Trabalho', 'trabalho_proponente');
return $this->hasMany('App\Trabalho');
}
}
......@@ -32,6 +32,8 @@ class Trabalho extends Model
'evento_id',
'proponente_id',
'coordenador_id',
'proponente_id',
'pivot',
];
public function recurso(){
......@@ -75,13 +77,13 @@ class Trabalho extends Model
public function participantes(){
return $this->belongsToMany('App\Participante', 'trabalho_participante');
}
public function proponentes(){
return $this->belongsToMany('App\Proponente', 'trabalho_proponente');
public function proponente(){
return $this->belongsTo('App\Proponente');
}
public function coordenador(){
return $this->belongsTo('App\CoordenadorComissao');
}
public function avaliadors(){
return $this->belongsToMany('App\Avaliador');
return $this->belongsToMany('App\Avaliador')->withPivot('status', 'AnexoParecer', 'parecer');
}
}
......@@ -33,6 +33,7 @@ class CreateTrabalhosTable extends Migration
$table->unsignedBigInteger('sub_area_id');
$table->unsignedBigInteger('evento_id');
$table->unsignedBigInteger('coordenador_id');
$table->unsignedBigInteger('proponente_id');
$table->timestamps();
});
......
......@@ -14,6 +14,13 @@ class CreateAvaliadorsTrabalhosTable extends Migration
public function up()
{
Schema::create('avaliador_trabalho', function (Blueprint $table) {
$table->bigIncrements('id');
$table->timestamps();
$table->text('parecer')->nullable();
$table->string('AnexoParecer')->nullable();
$table->boolean('status')->nullable();
$table->unsignedBigInteger('trabalho_id');
$table->unsignedBigInteger('avaliador_id');
......
......@@ -4,7 +4,7 @@ use Illuminate\Database\Migrations\Migration;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Support\Facades\Schema;
class CreateTrabalhosProponentesTable extends Migration
class CreateAvaliadorsEventosTable extends Migration
{
/**
* Run the migrations.
......@@ -13,12 +13,15 @@ class CreateTrabalhosProponentesTable extends Migration
*/
public function up()
{
Schema::create('trabalho_proponente', function (Blueprint $table) {
$table->unsignedBigInteger('trabalho_id');
$table->unsignedBigInteger('proponente_id');
Schema::create('avaliador_evento', function (Blueprint $table) {
$table->bigIncrements('id');
$table->timestamps();
$table->foreign('trabalho_id')->references('id')->on('trabalhos');
$table->foreign('proponente_id')->references('id')->on('proponentes');
$table->unsignedBigInteger('avaliador_id');
$table->unsignedBigInteger('evento_id');
$table->foreign('avaliador_id')->references('id')->on('avaliadors');
$table->foreign('evento_id')->references('id')->on('eventos');
});
}
......@@ -29,6 +32,6 @@ class CreateTrabalhosProponentesTable extends Migration
*/
public function down()
{
Schema::dropIfExists('trabalho_proponente');
Schema::dropIfExists('avaliador_evento');
}
}
<?php
use Illuminate\Database\Seeder;
class AvaliadorSeeder extends Seeder
{
/**
* Run the database seeds.
*
* @return void
*/
public function run()
{
$user_id = DB::table('users')->where('name','Avaliador1')->pluck('id');
DB::table('avaliadors')->insert([
'user_id' => $user_id[0],
]);
$aval = App\Avaliador::find(1);
$evento = App\Evento::find(1);
$trabalho = App\Trabalho::find(1);
$trabalho2 = App\Trabalho::find(2);
$aval->eventos()->attach($evento);
$aval->trabalhos()->attach($trabalho);
$aval->trabalhos()->attach($trabalho2);
$aval->trabalhos->first()->pivot->status = 1;
$aval->save();
$user_id = DB::table('users')->where('name','Avaliador2')->pluck('id');
DB::table('avaliadors')->insert([
'user_id' => $user_id[0],
]);
$aval = App\Avaliador::find(2);
$evento = App\Evento::find(1);
$aval->eventos()->attach($evento);
$aval->save();
}
}
......@@ -136,5 +136,6 @@ class DatabaseSeeder extends Seeder
$this->call(TrabalhoSeeder::class);
$this->call(AvaliadorSeeder::class);
}
}
......@@ -45,7 +45,27 @@ class TrabalhoSeeder extends Seeder
'sub_area_id' =>1,
'evento_id' =>1,
'coordenador_id' =>1,
'proponente_id' =>1,
]);
DB::table('trabalhos')->insert([
'titulo' =>'Projeto 2',
'linkGrupoPesquisa' =>'link',
'linkLattesEstudante' =>'link',
'pontuacaoPlanilha' =>'link',
'data' =>'2020-01-01',
'anexoProjeto' =>'Álgebra',
'anexoDecisaoCONSU' =>'Álgebra',
'anexoPlanilhaPontuacao' =>'Álgebra',
'anexoAutorizacaoComiteEtica' =>'Álgebra',
'anexoLattesCoordenador' =>'Álgebra',
'grande_area_id' =>1,
'area_id' =>1,
'sub_area_id' =>1,
'evento_id' =>1,
'coordenador_id' =>1,
'proponente_id' =>1,
]);
}
}
......@@ -84,5 +84,23 @@ class UsuarioSeeder extends Seeder
'email_verified_at'=>'2020-01-01'
]);
DB::table('users')->insert([
'name'=>'Avaliador1',
'email'=>'aval1@ufrpe.br',
'password'=>Hash::make('12345678'),
'tipo'=>'avaliador',
'email_verified_at'=>'2020-01-01'
]);
DB::table('users')->insert([
'name'=>'Avaliador2',
'email'=>'aval2@ufrpe.br',
'password'=>Hash::make('12345678'),
'tipo'=>'avaliador',
'email_verified_at'=>'2020-01-01'
]);
}
}
@extends('layouts.app')
@section('content')
<div class="container">
<h2 style="margin-top: 100px; ">{{ Auth()->user()->name }}</h2>
<div class="container" >
<div class="row justify-content-center d-flex align-items-center" >
<h5>Edital Selecionado: {{ $evento->nome }} </h3>
</div>
</div>
<div class="row justify-content-center d-flex align-items-center">
<div class="col-sm-3 d-flex justify-content-center ">
<a href="{{route('admin.selecionar', ['evento_id' => $evento->id])}}" style="text-decoration:none; color: inherit;">
<div class="card text-center " style="border-radius: 30px; width: 13rem;height: 15rem;">
<div class="card-body d-flex justify-content-center">
<h2 style="padding-top:15px">Selecionar Avaliadores</h2>
</div>
</div>
</a>
</div>
<div class="col-sm-3 d-flex justify-content-center">
<a href="{{ route('admin.projetos', ['evento_id' => $evento->id]) }}" style="text-decoration:none; color: inherit;">
<div class="card text-center " style="border-radius: 30px; width: 13rem;height: 15rem;">
<div class="card-body d-flex justify-content-center">
<h2 style="padding-top:15px">Selecionar Projetos</h2>
</div>
</div>
</a>
</div>
<div class="col-sm-3 d-flex justify-content-center">
<a href="#" style="text-decoration:none; color: inherit;">
<div class="card text-center " style="border-radius: 30px; width: 13rem;height: 15rem;">
<div class="card-body d-flex justify-content-center">
<h2 style="padding-top:15px">Mensagens</h2>
</div>
</div>
</a>
</div>
</div>
</div>
@endsection
......@@ -42,7 +42,7 @@
<img src="{{asset('img/icons/eye-regular.svg')}}" class="icon-card" alt="">
Editar Edital
</a>
<a href="{{route('evento.editar',$evento->id)}}" class="dropdown-item">
<a href="{{route('admin.atribuir', ['evento_id' => $evento->id])}}" class="dropdown-item">
<img src="{{asset('img/icons/edit-regular.svg')}}" class="icon-card" alt="">
Atribuir Avaliadores
</a>
......
@extends('layouts.app')
@section('content')
<div class="container" style="margin-top: 100px;">
<div class="container" >
<div class="row justify-content-center d-flex align-items-center" >
<div class="col-md-10">
<h5>Avaliadores </h3>
</div>
<div class="col-md-2">
<!-- Button trigger modal -->
<button type="button" class="btn btn-primary" data-toggle="modal" data-target="#exampleModalCenter">
Enviar Convite
</button>
</div>
</div>
</div>
<hr>
<table class="table table-bordered">
<thead>
<tr>
<th scope="col">Nome do Usuário</th>
<th scope="col">Email</th>
<th scope="col" style="text-align:center">Ação</th>
</tr>
</thead>
<tbody>
@foreach ($avaliadores as $avaliador)
<tr>
<td>{{ $avaliador->user->name }}</td>
<td>{{ $avaliador->user->email }}</td>
<td style="text-align:center"><button class="btn btn-primary" >Adicionar</button></td>
</tr>
@endforeach
</tbody>
</table>
<div class="container" >
<div class="row justify-content-center d-flex align-items-center" >
<h5>Avaliadores Selecionados para o Edital: {{ $evento->nome }} </h3>
</div>
</div>
<hr>
<table class="table table-bordered">
<thead>
<tr>
<th scope="col">Nome do Usuário</th>
<th scope="col">Email</th>
<th scope="col">Status</th>
<th scope="col" style="text-align:center">Ação</th>
</tr>
</thead>
<tbody>
@foreach ($avalSelecionados as $avaliador)
<tr>
<td>{{ $avaliador->user->name }}</td>
<td>{{ $avaliador->user->email }}</td>
<td>Status-Aceito ou Rejeitado</td>
<td style="text-align:center"> <button class="btn btn-primary" >Remover</button> </td>
</tr>
@endforeach
</tbody>
</table>
</div>
<!-- Modal -->
<div class="modal fade" id="exampleModalCenter" tabindex="-1" role="dialog" aria-labelledby="exampleModalCenterTitle" aria-hidden="true">
<div class="modal-dialog modal-dialog-centered" role="document">
<div class="modal-content">
<div class="modal-header">
<h5 class="modal-title" id="exampleModalLongTitle">Enviar Convite</h5>
<button type="button" class="close" data-dismiss="modal" aria-label="Close">
<span aria-hidden="true">&times;</span>
</button>
</div>
<div class="modal-body">
<form action="#" method="">
@csrf
<div class="form-group">
<label for="exampleInputEmail1">Nome Completo</label>
<input type="text" class="form-control" name="nome" id="exampleInputNome1">
</div>
<div class="form-group">
<label for="exampleInputEmail1">Email</label>
<input type="email" class="form-control" name="email" id="exampleInputEmail1">
</div>
<div class="form-group">
<label for="exampleFormControlSelect1">Tipo</label>
<select class="form-control" name="tipo" id="exampleFormControlSelect1">
<option value="" >Avaliador</option>
</select>
</div>
<div class="mx-auto" >
<button type="submit" class="btn btn-success mx-auto">Enviar</button>
</div>
</form>
</div>
</div>
</div>
</div>
@endsection
@section('javascript')
<script>
$('#myModal').on('shown.bs.modal', function () {
$('#myInput').trigger('focus')
})
</script>
@endsection
@extends('layouts.app')
@section('content')
<div class="container" style="margin-top: 100px;">
<div class="container" >
<div class="row justify-content-center d-flex align-items-center" >
{{-- <div class="col-md-12"> --}}
<h3>Lista de Projetos do Edital: {{ $evento->nome }} </h3>
{{-- </div> --}}
</div>
<div class="row justify-content-center d-flex align-items-center" >
{{-- <div class="col-md-12"> --}}
<h5>Total: </h5>
{{-- </div> --}}
</div>
</div>
<hr>
<table class="table table-bordered">
<thead>
<tr>
<th scope="col">Nome do Projeto</th>
<th scope="col">Proponente</th>
<th scope="col" style="text-align:center">Ação</th>
</tr>
</thead>
<tbody>
@foreach ($trabalhos as $trabalho)
<tr>
<td>{{ $trabalho->titulo}}</td>
<td>{{ $trabalho->proponente->user->name }}</td>
<td style="text-align:center">
<button type="button" class="btn btn-primary" data-toggle="modal" data-target="#exampleModalCenter">
Atribuir
</button>
</td>
</tr>
@endforeach
</tbody>
</table>
<div class="container" >
<div class="row justify-content-center d-flex align-items-center" >
<h3>Status dos Projetos em Avaliação: {{ $evento->nome }} </h3>
</div>
</div>
<hr>
<table class="table table-bordered">
<thead>
<tr>
<th scope="col">Nome do Usuário</th>
<th scope="col">Status</th>
<th scope="col">Total</th>
<th scope="col" style="text-align:center">Ação</th>
</tr>
</thead>
<tbody>
@foreach ($avaliadores as $avaliador)
<tr>
<td>{{ $avaliador->user->name }}</td>
<td>{{ $avaliador->trabalhos->count() }} / {{ $avaliador->trabalhos->count() }}</td>
<td>{{ $avaliador->trabalhos->count() }}</td>
<td style="text-align:center"> ...</td>
</tr>
@endforeach
</tbody>
</table>
</div>
<!-- Button trigger modal -->
<!-- Modal -->
<div class="modal fade" id="exampleModalCenter" tabindex="-1" role="dialog" aria-labelledby="exampleModalCenterTitle" aria-hidden="true">
<div class="modal-dialog modal-dialog-centered" role="document">
<div class="modal-content">
<div class="modal-header">
<h5 class="modal-title" id="exampleModalLongTitle">Selecione o avaliador(es)</h5>
<button type="button" class="close" data-dismiss="modal" aria-label="Close">
<span aria-hidden="true">&times;</span>
</button>
</div>
<div class="modal-body">
<form action="#" method="">
@csrf
<div class="form-group">
<label for="exampleFormControlSelect2">Example multiple select</label>
<select multiple class="form-control" id="exampleFormControlSelect2">
@foreach ($avaliadores as $avaliador)
<option value="{{ $avaliador->id }}" > {{ $avaliador->user->name }} </option>
@endforeach
</select>
<small id="emailHelp" class="form-text text-muted">Segure SHIFT do teclado para selecionar mais de um.</small>
</div>
<div class="mx-auto" >
<button type="submit" class="btn btn-success mx-auto">Atribuir</button>
</div>
</form>
</div>
</div>
</div>
</div>
@endsection
@section('javascript')
<script>
$('#myModal').on('shown.bs.modal', function () {
$('#myInput').trigger('focus')
})
</script>
@endsection
<div class="modal" tabindex="-1" role="dialog" id="{{$id}}" style="color:black">
<div class="modal-dialog modal-dialog-centered" role="document">
<div class="modal-content">
<div class="modal-header">
<h5 class="modal-title"> <strong>{{$titulo}}</strong> </h5>
</button>
</div>
<div class="modal-body" id="modalBody">
{{$conteudo}}
</div>
<div class="modal-footer">
<button type="button" class="btn btn-secondary" data-dismiss="modal">Fechar</button>
</div>
</div>
</div>
</div>
{{-- @component('componentes.popup', [
"titulo"=>"Informações:",
"conteudo"=>$requisicao_documento['detalhes'],
"id"=>$requisicao_documento['id']
])
@endcomponent --}}
\ No newline at end of file
......@@ -109,6 +109,9 @@ Route::prefix('usuarios')->name('admin.')->group(function(){
Route::post('/editar/atualizar/{id}', 'AdministradorController@update' )->name('user.update');
Route::post('/editar/deletar/{id}', 'AdministradorController@destroy' )->name('user.destroy');
Route::get('/editais', 'AdministradorController@editais' )->name('editais');
Route::get('/atribuir', 'AdministradorController@atribuir' )->name('atribuir');
Route::get('/selecionarAvaliador', 'AdministradorController@selecionar' )->name('selecionar');
Route::get('/selecionarProjetos', 'AdministradorController@projetos' )->name('projetos');
});
......
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