Unverified Commit 6f4c2523 authored by Gabriel Antônio da Silva's avatar Gabriel Antônio da Silva Committed by GitHub
Browse files

Merge pull request #6 from lmts-ufape/detalhesEdital

Detalhes de edital
parents 5250d353 b00ec816
......@@ -37,6 +37,9 @@ class Evento extends Model
public function coordenadorComissao(){
return $this->belongsTo('App\CoordenadorComissao', 'coordenadorId');
}
public function trabalhos(){
return $this->hasMany('App\Trabalho');
}
}
<?php
namespace App\Http\Controllers;
use Illuminate\Http\Request;
use Auth;
class AvaliadorController extends Controller
{
public function visualizarTrabalhos(Request $request){
$trabalhos = Auth::user()->avaliadors->first()->trabalhos;
//dd($trabalhos);
return view('avaliador.listarTrabalhos', ['trabalhos'=>$trabalhos]);
}
}
......@@ -27,7 +27,7 @@ class CoordenadorComissaoController extends Controller
$coordenador = CoordenadorComissao::with('user')->where('user_id', Auth()->user()->id)->first();
$eventos = Evento::where('coordenadorId',$coordenador->id )->get();
//dd($eventos);
return view('coordenadorComissao.editais', ['eventos'=> $eventos]);
}
public function coordenadorComite(){
......@@ -51,4 +51,68 @@ class CoordenadorComissaoController extends Controller
return view('coordenadorComissao.listarUsuarios', ['usuarios' => $usuarios]);
}
public function listarTrabalhos(Request $request){
$evento = Evento::where('id',$request->evento_id )->first();
$trabalhos = $evento->trabalhos;
return view('coordenadorComissao.listarTrabalhos', ['trabalhos' => $trabalhos]);
}
public function detalhesEdital(Request $request){
$evento = Evento::where('id',$request->evento_id )->first();
$trabalhos = $evento->trabalhos;
return view('coordenadorComissao.detalhesEdital', ['evento' => $evento]);
}
public function retornoDetalhes(Request $request){
// array:2 [▼
// "item" => "listarTrabalhos"
// "evento_id" => "1"
// ]
//dd($request->all());
if($request->item == "definirSubmissoes" ){
}else if($request->item == "listarTrabalhos" ){
$evento = Evento::where('id',$request->evento_id )->first();
$trabalhos = $evento->trabalhos;
//dd($trabalhos);
return view('coordenadorComissao.gerenciarEdital.listarTrabalhos', ['trabalhos' => $trabalhos]);
}else if($request->item == "cadastrarAreas" ){
return view('coordenadorComissao.gerenciarEdital.cadastrarAreas', ['trabalhos' => $trabalhos]);
}else if($request->item == "listarAreas" ){
return view('coordenadorComissao.gerenciarEdital.listarAreas', ['trabalhos' => $trabalhos]);
}else if($request->item == "cadastrarRevisores" ){
return view('coordenadorComissao.gerenciarEdital.cadastrarRevisores', ['trabalhos' => $trabalhos]);
}else if($request->item == "listarRevisores" ){
$avaliadores = Avaliador::all();
return view('coordenadorComissao.gerenciarEdital.listarRevisores', ['avaliadores' => $avaliadores]);
}else if($request->item == "definirCoordenador" ){
return view('coordenadorComissao.gerenciarEdital.definirCoordenador', ['trabalhos' => $trabalhos]);
}else if($request->item == "listarComissao" ){
return view('coordenadorComissao.gerenciarEdital.listarComissao', ['trabalhos' => $trabalhos]);
}
}
}
......@@ -178,8 +178,8 @@ class EventoController extends Controller
if($proponente != null){
$hasTrabalho = false;
$hasFile = false;
$trabalhos = $proponente->trabalhos()->get();
$trabalhosCount = $proponente->trabalhos()->count();
$trabalhos = $proponente->trabalhos()->where('evento_id', $evento->id )->get();
$trabalhosCount = $proponente->trabalhos()->where('evento_id', $evento->id )->count();
if($trabalhosCount != 0){
$hasTrabalho = true;
......
......@@ -39,6 +39,9 @@ class HomeController extends Controller
else if (Auth::user()->tipo == 'proponente') {
return view('proponente.index');
}
else if (Auth::user()->has('avaliadors')) {
return view('avaliador.index');
}
else if (Auth::user()->tipo == 'participante') {
return view('participante.index');
}
......
......@@ -18,6 +18,7 @@ use App\GrandeArea;
use App\SubArea;
use App\FuncaoParticipantes;
use App\Participante;
use App\Avaliador;
use Carbon\Carbon;
use Auth;
use Illuminate\Http\Request;
......@@ -27,6 +28,7 @@ use Illuminate\Support\Facades\Mail;
use Illuminate\Support\Facades\Log;
use Illuminate\Support\Str;
use App\Mail\SubmissaoTrabalho;
use App\Mail\EventoCriado;
class TrabalhoController extends Controller
{
......@@ -401,5 +403,39 @@ class TrabalhoController extends Controller
'revisoresDisponiveis' => $revisoresAux1
], 200);
}
public function atribuirAvaliadorTrabalho(Request $request){
$request->trabalho_id;
$trabalho = Trabalho::find($request->trabalho_id);
$avaliadores = Avaliador::all();
return view('coordenadorComissao.gerenciarEdital.atribuirAvaliadorTrabalho', ['avaliadores'=>$avaliadores, 'trabalho'=>$trabalho, 'evento'=> $trabalho->evento ]);
}
public function atribuir(Request $request){
$trabalho = Trabalho::find($request->trabalho_id);
$todosAvaliadores = Avaliador::all();
$avaliadores = Avaliador::whereIn('id', $request->avaliadores)->with('user')->get();
$trabalho->avaliadors()->sync($request->avaliadores);
foreach ($avaliadores as $key => $avaliador) {
$user = $avaliador->user;
$subject = "Trabalho atribuido";
Mail::to($user->email)
->send(new EventoCriado($user, $subject));
}
return view('coordenadorComissao.detalhesEdital', ['evento'=> $trabalho->evento ]);
}
}
......@@ -24,8 +24,12 @@ class EventoPolicy
public function isCoordenador(User $user, Evento $evento){
if(Auth()->user()->coordenadorComissao->first() != null ){
return $evento->criador_id == Auth()->user()->coordenadorComissao->first()->id;
}else{
return false;
}
return $evento->criador_id == Auth()->user()->id;
}
}
<?php
namespace App\Policies;
use App\User;
use App\Evento;
use App\CoordenadorComissao;
use App\AdministradorResponsavel;
use Illuminate\Auth\Access\HandlesAuthorization;
class UsuariosPolicy
{
use HandlesAuthorization;
/**
* Create a new policy instance.
*
* @return void
*/
public function __construct()
{
}
public function isUser(User $user){
if($user->has('')){
}else if(){
}else if(){
}else if(){
}else if(){
}else if(){
}else if(){
}
}
}
......@@ -67,7 +67,7 @@ class Trabalho extends Model
}
public function evento(){
return $this->belongsTo('App\Evento', 'eventoId');
return $this->belongsTo('App\Evento');
}
public function planoTrabalho(){
return $this->hasMany('App\PlanoTrabalho');
......
......@@ -22,6 +22,7 @@ class DatabaseSeeder extends Seeder
$this->call(FuncaoParticipanteSeeder::class);
$this->call(CoordenadorComissaoSeeder::class);
$this->call(ParticipanteSeeder::class);
// $this->call(UsersTableSeeder::class);
// DB::table('enderecos')->insert([ // 1
......@@ -134,6 +135,6 @@ class DatabaseSeeder extends Seeder
// ];
$this->call(TrabalhoSeeder::class);
}
}
<?php
use Illuminate\Database\Seeder;
class TrabalhoSeeder extends Seeder
{
/**
* Run the database seeds.
*$table->string('titulo');
$table->boolean('avaliado')->nullable();
$table->string('linkGrupoPesquisa');
$table->string('linkLattesEstudante');
$table->string('pontuacaoPlanilha');
$table->date('data')->nullable();
//Anexos
$table->string('anexoProjeto');
$table->string('anexoDecisaoCONSU')->nullable();
$table->string('anexoPlanilhaPontuacao');
$table->string('anexoLattesCoordenador');
$table->string('anexoAutorizacaoComiteEtica');
//chaves estrangeiras
$table->unsignedBigInteger('grande_area_id');
$table->unsignedBigInteger('area_id');
$table->unsignedBigInteger('sub_area_id');
$table->unsignedBigInteger('evento_id');
$table->unsignedBigInteger('coordenador_id');
* @return void
*/
public function run()
{
DB::table('trabalhos')->insert([
'titulo' =>'Projeto',
'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,
]);
}
}
@extends('layouts.app')
@section('content')
<div class="container" style="margin-top: 100px;">
<div class="container" >
<div class="row" >
<div class="col-sm-10">
<h3>Meus Editais</h3>
</div>
<div class="col-sm-2">
<a href="{{route('evento.criar')}}" class="btn btn-primary">Criar Edital</a>
</div>
</div>
</div>
<hr>
<table class="table table-bordered">
<thead>
<tr>
<th scope="col">Nome do Edital</th>
<th scope="col">Data de Criação</th>
<th scope="col">Opção</th>
</tr>
</thead>
<tbody>
@foreach ($eventos as $evento)
<tr>
<td>
<a href="{{ route('evento.visualizar',['id'=>$evento->id]) }}" class="visualizarEvento">
{{ $evento->nome }}
</a>
</td>
<td>10/05/2020</td>
<td>
<div class="btn-group dropright dropdown-options">
<a id="options" class="dropdown-toggle " data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
{{-- <img src="{{asset('img/icons/ellipsis-v-solid.svg')}}" style="width:8px"> --}}
</a>
<div class="dropdown-menu">
<a href="{{ route('coord.detalhesEvento', ['eventoId' => $evento->id]) }}" class="dropdown-item">
<img src="{{asset('img/icons/eye-regular.svg')}}" class="icon-card" alt="">
Detalhes
</a>
<a href="{{route('evento.editar',$evento->id)}}" class="dropdown-item">
<img src="{{asset('img/icons/edit-regular.svg')}}" class="icon-card" alt="">
Editar
</a>
<form method="POST" action="{{route('evento.deletar',$evento->id)}}">
{{ csrf_field() }}
{{ method_field('DELETE') }}
<button type="submit" class="dropdown-item">
<img src="{{asset('img/icons/trash-alt-regular.svg')}}" class="icon-card" alt="">
Deletar
</button>
</form>
</div>
</div>
</td>
</tr>
@endforeach
</tbody>
</table>
</div>
@endsection
@section('javascript')
<script>
</script>
@endsection
@extends('layouts.app')
@section('content')
<div class="container">
<h2 style="margin-top: 100px; ">{{ Auth()->user()->name }}</h2>
<div class="row justify-content-center d-flex align-items-center">
<div class="col-sm-4 d-flex justify-content-center ">
<a href="" style="text-decoration:none; color: inherit;">
<div class="card text-center " style="border-radius: 30px; width: 18rem;">
<div class="card-body d-flex justify-content-center">
<h2 style="padding-top:15px">Editais</h2>
</div>
</div>
</a>
</div>
<div class="col-sm-4 d-flex justify-content-center">
<a href="{{ route('visualizarTrabalho') }}" style="text-decoration:none; color: inherit;">
<div class="card text-center " style="border-radius: 30px; width: 18rem;">
<div class="card-body d-flex justify-content-center">
<h2 style="padding-top:15px">Trabalhos</h2>
</div>
</div>
</a>
</div>
<div class="col-sm-4 d-flex justify-content-center">
<a href="{{ route('admin.usuarios') }}" style="text-decoration:none; color: inherit;">
<div class="card text-center " style="border-radius: 30px; width: 18rem;">
<div class="card-body d-flex justify-content-center">
<h2 style="padding-top:15px">Usuários</h2>
</div>
</div>
</a>
</div>
</div>
</div>
@endsection
@extends('layouts.app')
@section('content')
<div class="container" style="margin-top: 100px;">
<div class="container" >
<div class="row" >
<div class="col-sm-10">
<h3>Trabalhos</h3>
</div>
</div>
</div>
<hr>
<table class="table table-bordered">
<thead>
<tr>
<th scope="col">Nome do Projeto</th>
<th scope="col">Data de Criação</th>
<th scope="col">Baixar</th>
<th scope="col">Parecer</th>
</tr>
</thead>
<tbody>
@foreach ($trabalhos as $trabalho)
<tr>
<td>{{ $trabalho->titulo }}</td>
<td>{{ $trabalho->create_at }}</td>
<td>baixar</td>
<td>parecer</td>
</tr>
@endforeach
</tbody>
</table>
</div>
@endsection
@section('javascript')
<script>
</script>
@endsection
@extends('layouts.app')
@section('sidebar')
<div class="wrapper">
<div class="sidebar">
<h2>{{{$evento->nome}}}</h2>
<ul>
<a id="informacoes">
<li>
<img src="{{asset('img/icons/info-circle-solid.svg')}}" alt=""> <h5> Informações</h5>
</li>
</a>
<a id="trabalhos">
<li data-toggle="collapse" data-target="#ajuda" class="collapsed">
<img src="{{asset('img/icons/file-alt-regular.svg')}}" alt=""><h5>Trabalhos</h5><img class="arrow" src="{{asset('img/icons/arrow.svg')}}">
</li>
<ul class="sub-menu collapse" id="ajuda" style="background-color: gray">
<a id="definirSubmissoes" class="exibir">
<li>
<img src="{{asset('img/icons/plus-square-solid.svg')}}" alt=""><h5>Definir Submissões</h5>
</li>
</a>
<a id="listarTrabalhos" class="exibir" >
<li>
<img src="{{asset('img/icons/list.svg')}}" alt=""><h5>Listar Trabalhos</h5>
</li>
</a>
</ul>
</a>
<a id="areas">
<li data-toggle="collapse" data-target="#menuAreas" class="collapsed">
<img src="{{asset('img/icons/area.svg')}}" alt=""><h5> Áreas</h5><img class="arrow" src="{{asset('img/icons/arrow.svg')}}">
</li>
<ul class="sub-menu collapse" id="menuAreas" style="background-color: gray">
<a id="cadastrarAreas" class="exibir">
<li>
<img src="{{asset('img/icons/plus-square-solid.svg')}}" alt=""><h5> Cadastrar Áreas</h5>
</li>
</a>
<a id="listarAreas" class="exibir">
<li>
<img src="{{asset('img/icons/list.svg')}}" alt=""><h5> Listar Áreas</h5>
</li>
</a>
</ul>
</a>
<a id="avaliador">
<li data-toggle="collapse" data-target="#menuAvaliador" class="collapsed">
<img src="{{asset('img/icons/glasses-solid.svg')}}" alt=""><h5>Avaliadores</h5><img class="arrow" src="{{asset('img/icons/arrow.svg')}}">
</li>
<ul class="sub-menu collapse" id="menuAvaliador" style="background-color: gray">
<a id="cadastrarRevisores" class="exibir">
<li>
<img src="{{asset('img/icons/user-plus-solid.svg')}}" alt=""><h5> Cadastrar Revisores</h5>
</li>
</a>
<a id="listarRevisores" class="exibir">
<li>
<img src="{{asset('img/icons/list.svg')}}" alt=""><h5> Listar Revisores</h5>
</li>
</a>
</ul>
</a>
<a id="comissao" >
<li data-toggle="collapse" data-target="#menuComissao" class="collapsed">
<img src="{{asset('img/icons/user-tie-solid.svg')}}" alt=""><h5>Comissão</h5><img class="arrow" src="{{asset('img/icons/arrow.svg')}}">
</li>
<ul class="sub-menu collapse" id="menuComissao" style="background-color: gray">
<a id="definirCoordenador" class="exibir">
<li>
<img src="{{asset('img/icons/crown-solid.svg')}}" alt=""><h5> Definir Coordenador</h5>
</li>
</a>
<a id="listarComissao" class="exibir">
<li>
<img src="{{asset('img/icons/list.svg')}}" alt=""><h5> Listar Comissão</h5>
</li>
</a>
</ul>
</a>
</ul>
</div>
</div>
<!-- paginas -->
<div class="main" style="margin-left: 200px; margin-top: 100px;">
<div class="container">
<div class="row" id="pagina">
</div>
</div>
</div>
@endsection
@section('javascript')
<script type="text/javascript" >
$(document).ready(()=>{
$('.exibir').on('click',(event) => {
event.preventDefault();
console.log(event.currentTarget.id);
var itemMenu = event.currentTarget.id;
$.ajax({
type: 'POST',
url: '{{ route('coordenador.retornoDetalhes') }}',
data: 'item='+itemMenu+'&evento_id='+'{{ $evento->id }}' ,
headers:
{
'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content')
},
success: (data) => {
$('#pagina').html(data);
//console.log(data);
},
error: (data) => {
console.log(data);
}
})
});
})
</script>
@endsection
<div class="container">
<div class="row">
<div class="col">
<h3>Documentação</h3>
<hr />
<p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Proin at semper orci, congue tempor libero. Vivamus tristique risus ac risus gravida, et accumsan velit elementum. Donec mattis porttitor enim, ac mollis eros accumsan vel. Cras vel fermentum enim, et molestie diam. Cras nisl elit, volutpat sed ullamcorper at, congue sed orci. Suspendisse potenti. Nulla molestie mattis viverra. Cras fringilla, enim vel bibendum ornare, est risus condimentum ligula, quis commodo nunc justo et metus. Quisque vitae magna luctus, convallis felis a, pellentesque libero. Quisque dictum volutpat risus eget laoreet. Sed elementum eu turpis eu bibendum. Mauris nec consequat lacus, in consectetur ante. Aliquam et ex mattis, tincidunt mauris sollicitudin, ullamcorper lacus. Morbi malesuada odio quis arcu tempus dapibus. Duis nec tincidunt ipsum, id laoreet metus.</p>
</div>
</div>
</div>
\ No newline at end of file
......@@ -24,7 +24,7 @@
@foreach ($eventos as $evento)
<tr>
<td>
<a href="{{ route('evento.visualizar',['id'=>$evento->id]) }}" class="visualizarEvento">
<a href="{{ route('coordenador.detalhesEdital',['evento_id'=>$evento->id]) }}" class="visualizarEvento">
{{ $evento->nome }}
</a>
</td>
......
@extends('layouts.app')
@section('content')
<div class="container" style="margin-top: 100px;">
<h2>{{$trabalho->titulo}}</h2>
<form action="{{ route('coordenador.atribuir') }}" method="post" enctype="multipart/form-data">
@csrf
<input type="hidden" name="trabalho_id" value="{{$trabalho->id}}" >
<div class="form-group">
<label>Avaliadores</label>
<select name="avaliadores[]" id="" class="form-control" multiple>
@foreach($avaliadores as $avaliador)
<option value="{{$avaliador->id}}">{{$avaliador->user->name}}</option>
@endforeach
</select>
</div>
<div>
<a href="{{ route('coordenador.detalhesEdital', ['evento_id' => $evento->id]) }}" class="btn btn-danger">Cancelar</a>
<button type="submit" class="btn btn-primary">Atribuir</button>
</div>
</form>
</div>
@endsection
@section('javascript')
<script>
</script>
@endsection
<div class="col-sm-10">
<h1 class="">Avaliadores</h1>
</div>
<table class="table table-hover table-responsive-lg table-sm">
<thead>
<tr>
<th scope="col">ID</th>
<th scope="col">Nome</th>
<th scope="col">E-mail</th>
<th scope="col">Trabalhos</th>
<th scope="col">Visualizar</th>
</tr>
</thead>
<tbody>
@php $i = 0; @endphp
@foreach($avaliadores as $avaliador)
<tr>
<td>{{$avaliador->id}}</td>
<td>{{$avaliador->user->name}} </td>
<td>{{$avaliador->user->email}}</td>
<td> </td>
<td> </td>
</tr>
@endforeach
</tbody>
</table>
<div class="col-sm-10">
<h1 class="">Trabalhos</h1>
</div>
<table class="table table-hover table-responsive-lg table-sm">
<thead>
<tr>
<th scope="col">ID</th>
<th scope="col">Titulo</th>
<th scope="col">Avaliadores</th>
<th scope="col" style="text-align:center">Baixar</th>
<th scope="col" style="text-align:center">Atribuição</th>
</tr>
</thead>
<tbody>
@php $i = 0; @endphp
@foreach($trabalhos as $trabalho)
<tr>
<td>{{$trabalho->id}}</td>
<td>{{$trabalho->titulo}}</td>
<td>
@foreach($trabalho->avaliadors as $atribuicao)
{{$atribuicao->user->email}},
@endforeach
</td>
<td style="text-align:center">
@php $arquivo = ""; $i++; @endphp
@foreach($trabalho->arquivo as $key)
@php
if($key->versaoFinal == true){
$arquivo = $key->nome;
}
@endphp
@endforeach
<img onclick="document.getElementById('formDownload{{$i}}').submit();" class="" src="{{asset('img/icons/file-download-solid-black.svg')}}" style="width:20px" alt="">
<form method="GET" action="{{ route('download') }}" target="_new" id="formDownload{{$i}}">
<input type="hidden" name="file" value="{{$arquivo}}">
</form>
</td>
<td style="text-align:center">
<a id="listarComissao" class="exibir">
<form action="{{ route('coordenador.atribuirAvaliadorTrabalho') }}" method="POST" >
@csrf
<input type="hidden" name="trabalho_id" value="{{$trabalho->id}}">
<button type="submit" class="btn btn-primary" > Atribuir Avaliadores </button>
</form>
{{-- <a class="botaoAjax" href="#" data-toggle="modal" onclick="" data-target="#modalTrabalho"><img src="{{asset('img/icons/eye-regular.svg')}}" style="width:20px"></a> --}}
</td>
</tr>
@endforeach
</tbody>
</table>
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