From 407861f5a18d5bd6bf2dceb020b99dc7fc09bf9b Mon Sep 17 00:00:00 2001 From: Gabriel-31415 <gabriel.uag.ufrpe@gmail.com> Date: Wed, 27 May 2020 17:03:18 +0000 Subject: [PATCH] add relacao avaliador e trabalho --- app/Avaliador.php | 3 + app/CoordenadorComissao.php | 2 +- app/Evento.php | 2 +- .../Controllers/AdministradorController.php | 10 ++ .../AdministradorResponsavelController.php | 78 +++++++++++++++ .../CoordenadorComissaoController.php | 4 +- app/Http/Controllers/EventoController.php | 7 +- app/Http/Controllers/TrabalhoController.php | 1 + app/Http/Controllers/UserController.php | 9 +- app/Policies/EventoPolicy.php | 7 +- app/Trabalho.php | 3 + app/User.php | 4 +- ...2020_02_05_123153_create_eventos_table.php | 2 +- .../2020_02_06_132418_chaves_estrangeiras.php | 6 +- ...0_05_23_054805_create_avaliadors_table.php | 2 +- ...3341_create_avaliadors_trabalhos_table.php | 34 +++++++ .../seeds/AdministradorResponsavelSeeder.php | 9 +- database/seeds/DatabaseSeeder.php | 38 +++++++ database/seeds/ParticipanteSeeder.php | 28 ++++++ database/seeds/UsuarioSeeder.php | 31 +++++- .../views/administrador/editais.blade.php | 73 ++++++++++++++ resources/views/administrador/index.blade.php | 2 +- .../editais.blade.php | 73 ++++++++++++++ .../administradorResponsavel/index.blade.php | 21 ++++ .../listarUsuarios.blade.php | 41 ++++++++ .../usuarios.blade.php | 55 +++++++++++ resources/views/coordenador/home.blade.php | 8 +- .../listarUsuarios.blade.php | 99 ++++++++++++++++++- resources/views/evento/criarEvento.blade.php | 2 +- resources/views/evento/listarEvento.blade.php | 3 - resources/views/layouts/app.blade.php | 57 +++++++++-- resources/views/user/meusTrabalhos.blade.php | 10 +- routes/web.php | 17 +++- 33 files changed, 691 insertions(+), 50 deletions(-) create mode 100644 app/Http/Controllers/AdministradorResponsavelController.php create mode 100644 database/migrations/2020_05_26_223341_create_avaliadors_trabalhos_table.php create mode 100644 database/seeds/ParticipanteSeeder.php create mode 100644 resources/views/administrador/editais.blade.php create mode 100644 resources/views/administradorResponsavel/editais.blade.php create mode 100644 resources/views/administradorResponsavel/listarUsuarios.blade.php create mode 100644 resources/views/administradorResponsavel/usuarios.blade.php diff --git a/app/Avaliador.php b/app/Avaliador.php index 99332ec..012cfa8 100644 --- a/app/Avaliador.php +++ b/app/Avaliador.php @@ -9,4 +9,7 @@ class Avaliador extends Model public function user(){ return $this->belongsTo('App\User'); } + public function trabalhos(){ + return $this->belongsToMany('App\Trabalho'); + } } diff --git a/app/CoordenadorComissao.php b/app/CoordenadorComissao.php index ff8f195..edd4d69 100644 --- a/app/CoordenadorComissao.php +++ b/app/CoordenadorComissao.php @@ -11,7 +11,7 @@ class CoordenadorComissao extends Model } public function editais(){ - return $this->hasMany('App\Evento', 'coordenadorId'); + return $this->hasMany('App\Evento'); } public function trabalho(){ diff --git a/app/Evento.php b/app/Evento.php index 7377ae7..40bc8a0 100644 --- a/app/Evento.php +++ b/app/Evento.php @@ -15,7 +15,7 @@ class Evento extends Model 'nome', 'descricao', 'tipo', 'inicioSubmissao', 'fimSubmissao', 'inicioRevisao', 'fimRevisao', 'resultado', 'coordenadorId', - 'numMaxTrabalhos', 'numMaxCoautores', 'hasResumo', + 'numMaxTrabalhos', 'numMaxCoautores', 'hasResumo', 'criador_id' ]; public function endereco(){ diff --git a/app/Http/Controllers/AdministradorController.php b/app/Http/Controllers/AdministradorController.php index 6202a40..bb383b0 100644 --- a/app/Http/Controllers/AdministradorController.php +++ b/app/Http/Controllers/AdministradorController.php @@ -3,6 +3,8 @@ namespace App\Http\Controllers; use Illuminate\Http\Request; +use App\Administrador; +use App\Evento; class AdministradorController extends Controller { @@ -18,4 +20,12 @@ class AdministradorController extends Controller return view('administrador.usuarios'); } + + public function editais(){ + //$admin = Administrador::with('user')->where('user_id', Auth()->user()->id)->first(); + //$eventos = Evento::where('coordenadorId',$admin->id )->get(); + $eventos = Evento::where('criador_id',Auth()->user()->id )->get(); + + return view('administrador.editais', ['eventos'=> $eventos]); + } } diff --git a/app/Http/Controllers/AdministradorResponsavelController.php b/app/Http/Controllers/AdministradorResponsavelController.php new file mode 100644 index 0000000..7c6d89e --- /dev/null +++ b/app/Http/Controllers/AdministradorResponsavelController.php @@ -0,0 +1,78 @@ +<?php + +namespace App\Http\Controllers; + +use Illuminate\Http\Request; +use App\AdministradorResponsavel; +use App\User; +use App\Evento; +use App\Avaliador; + +class AdministradorResponsavelController extends Controller +{ + public function index(){ + + return view('administradorResponsavel.index'); + } + + public function editais(){ + //$admResponsavel = AdministradorResponsavel::with('user')->where('user_id', Auth()->user()->id)->first(); + $eventos = Evento::where('criador_id',Auth()->user()->id )->get(); + + return view('administradorResponsavel.editais', ['eventos'=> $eventos]); + } + public function usuarios(){ + + return view('administradorResponsavel.usuarios'); + } + + public function atribuirPermissao(Request $request){ + + + $user = User::where('id', $request->user_id)->first(); + $isAvaliador = Avaliador::where('user_id', $request->user_id )->count(); + $avaliador = new Avaliador(); + $avaliador->save(); + if($isAvaliador == 0){ + + //$user->avaliadors()->save($user); + $avaliador->user()->associate($user); // um avaliador tem um usuario + $avaliador->save(); + //$user->avaliadors()->save($avaliador); //um usuario pode ter muitos avaliadores + //$user->save(); + //$avaliador->user_id = $user->id; + $success = true; + + }else{ + $avaliador = Avaliador::where('user_id', $request->user_id )->first(); + $avaliador->user()->dissociate($user); // um avaliador tem um usuario + $avaliador->save(); + $success = false; + } + + return response()->json( $success ); + + } + public function verPermissao(Request $request){ + + $user = User::where('id', $request->user_id)->first(); + $isAvaliador = Avaliador::where('user_id', $request->user_id)->count(); + + if($isAvaliador != 0){ + + $success = true; + + }else{ + + $success = false; + } + + + + return response()->json( [$success] ); + //return response()->json( $request->user_id ); + + } + + +} diff --git a/app/Http/Controllers/CoordenadorComissaoController.php b/app/Http/Controllers/CoordenadorComissaoController.php index e34959c..ef1d5d6 100644 --- a/app/Http/Controllers/CoordenadorComissaoController.php +++ b/app/Http/Controllers/CoordenadorComissaoController.php @@ -24,8 +24,8 @@ class CoordenadorComissaoController extends Controller public function editais(){ - - $eventos = Evento::where('coordenadorId', Auth()->user()->id)->get(); + $coordenador = CoordenadorComissao::with('user')->where('user_id', Auth()->user()->id)->first(); + $eventos = Evento::where('coordenadorId',$coordenador->id )->get(); return view('coordenadorComissao.editais', ['eventos'=> $eventos]); diff --git a/app/Http/Controllers/EventoController.php b/app/Http/Controllers/EventoController.php index dae200b..f4ec941 100644 --- a/app/Http/Controllers/EventoController.php +++ b/app/Http/Controllers/EventoController.php @@ -72,8 +72,10 @@ class EventoController extends Controller $mytime = Carbon::now('America/Recife'); $yesterday = Carbon::yesterday('America/Recife'); $yesterday = $yesterday->toDateString(); + //$admResponsavel = AdministradorResponsavel::with('user')->where('user_id', Auth()->user()->id)->first(); + $user_id = Auth()->user()->id; - //dd($request); + //dd($user_id); // validar datas nulas antes, pois pode gerar um bug if( @@ -123,8 +125,9 @@ class EventoController extends Controller 'fimRevisao' => $request->fimRevisao, 'resultado' => $request->resultado, 'coordenadorId' => $request->coordenador_id, + 'criador_id' => $user_id, ]); - + //dd($evento); // $user = User::find($request->coordenador_id); // $user->coordenadorComissao()->editais()->save($evento); diff --git a/app/Http/Controllers/TrabalhoController.php b/app/Http/Controllers/TrabalhoController.php index 621c91b..86a2a47 100644 --- a/app/Http/Controllers/TrabalhoController.php +++ b/app/Http/Controllers/TrabalhoController.php @@ -187,6 +187,7 @@ class TrabalhoController extends Controller 'password' => bcrypt($passwordTemporario), 'usuarioTemp' => true, 'name' => $request->nomeParticipante[$key], + 'tipo' => 'participante', 'funcao_participante_id' => $request->funcaoParticipante[$key], ]); diff --git a/app/Http/Controllers/UserController.php b/app/Http/Controllers/UserController.php index 7c52ef6..6f51c5b 100644 --- a/app/Http/Controllers/UserController.php +++ b/app/Http/Controllers/UserController.php @@ -10,6 +10,7 @@ use App\Endereco; use App\Trabalho; use App\Coautor; use App\Evento; +use App\Proponente; use Illuminate\Support\Facades\Log; class UserController extends Controller @@ -108,9 +109,13 @@ class UserController extends Controller public function meusTrabalhos(){ - $trabalhos = Trabalho::where('autorId', Auth::user()->id)->get(); + //$trabalhos = Trabalho::where('autorId', Auth::user()->id)->get(); + $proponente = Proponente::with('user')->where('user_id', Auth::user()->id)->first(); + $trabalhos = $proponente->trabalhos; + //dd($trabalhos); + return view('user.meusTrabalhos',[ - 'trabalhos' => $trabalhos, + 'trabalhos' => $trabalhos, ]); } } diff --git a/app/Policies/EventoPolicy.php b/app/Policies/EventoPolicy.php index 3ac4a37..25b9d3a 100644 --- a/app/Policies/EventoPolicy.php +++ b/app/Policies/EventoPolicy.php @@ -4,6 +4,8 @@ namespace App\Policies; use App\User; use App\Evento; +use App\CoordenadorComissao; +use App\AdministradorResponsavel; use Illuminate\Auth\Access\HandlesAuthorization; class EventoPolicy @@ -21,6 +23,9 @@ class EventoPolicy } public function isCoordenador(User $user, Evento $evento){ - return $user->id === $evento->coordenador->id; + + + return $evento->criador_id == Auth()->user()->id; + } } diff --git a/app/Trabalho.php b/app/Trabalho.php index c19ebe6..08f1a2e 100644 --- a/app/Trabalho.php +++ b/app/Trabalho.php @@ -81,4 +81,7 @@ class Trabalho extends Model public function coordenador(){ return $this->belongsTo('App\CoordenadorComissao'); } + public function avaliadors(){ + return $this->belongsToMany('App\Avaliador'); + } } diff --git a/app/User.php b/app/User.php index 6822501..ec0a657 100644 --- a/app/User.php +++ b/app/User.php @@ -20,7 +20,7 @@ class User extends Authenticatable implements MustVerifyEmail protected $fillable = [ 'name', 'email', 'password', 'cpf', 'instituicao', 'celular', 'especProfissional', 'enderecoId', - 'usuarioTemp', + 'usuarioTemp', 'tipo', 'user_id' ]; /** @@ -79,7 +79,7 @@ class User extends Authenticatable implements MustVerifyEmail public function administradors(){ return $this->hasMany('App\Administrador'); } - public function Proponentes(){ + public function proponentes(){ return $this->hasMany('App\Proponente'); } public function AdministradorResponsavel(){ diff --git a/database/migrations/2020_02_05_123153_create_eventos_table.php b/database/migrations/2020_02_05_123153_create_eventos_table.php index 2b23f5f..6012d90 100644 --- a/database/migrations/2020_02_05_123153_create_eventos_table.php +++ b/database/migrations/2020_02_05_123153_create_eventos_table.php @@ -27,7 +27,7 @@ class CreateEventosTable extends Migration $table->integer('numMaxTrabalhos')->nullable(); $table->integer('numMaxCoautores')->nullable(); $table->boolean('hasResumo')->nullable(); - $table->integer('coordComissaoId')->nullable(); + $table->integer('criador_id')->nullable(); $table->integer('coordenadorId')->nullable(); $table->string('pdfEdital')->nullable(); $table->string('modeloDocumento')->nullable(); diff --git a/database/migrations/2020_02_06_132418_chaves_estrangeiras.php b/database/migrations/2020_02_06_132418_chaves_estrangeiras.php index 81ec836..e6194b4 100644 --- a/database/migrations/2020_02_06_132418_chaves_estrangeiras.php +++ b/database/migrations/2020_02_06_132418_chaves_estrangeiras.php @@ -131,9 +131,9 @@ class ChavesEstrangeiras extends Migration // Schema::table('revisors', function (Blueprint $table) { // $table->foreign('areaId')->references('id')->on('areas'); // }); - Schema::table('eventos',function (Blueprint $table){ - $table->foreign('coordComissaoId')->references('id')->on('users'); - }); + // Schema::table('eventos',function (Blueprint $table){ + // $table->foreign('coordComissaoId')->references('id')->on('users'); + // }); //------------------------------------------------------------------------ } diff --git a/database/migrations/2020_05_23_054805_create_avaliadors_table.php b/database/migrations/2020_05_23_054805_create_avaliadors_table.php index 54a9372..0db3c6c 100644 --- a/database/migrations/2020_05_23_054805_create_avaliadors_table.php +++ b/database/migrations/2020_05_23_054805_create_avaliadors_table.php @@ -17,7 +17,7 @@ class CreateAvaliadorsTable extends Migration $table->bigIncrements('id'); $table->timestamps(); - $table->unsignedBigInteger('user_id'); + $table->unsignedBigInteger('user_id')->nullable(); $table->foreign('user_id')->references('id')->on('users'); }); } diff --git a/database/migrations/2020_05_26_223341_create_avaliadors_trabalhos_table.php b/database/migrations/2020_05_26_223341_create_avaliadors_trabalhos_table.php new file mode 100644 index 0000000..34b43cb --- /dev/null +++ b/database/migrations/2020_05_26_223341_create_avaliadors_trabalhos_table.php @@ -0,0 +1,34 @@ +<?php + +use Illuminate\Database\Migrations\Migration; +use Illuminate\Database\Schema\Blueprint; +use Illuminate\Support\Facades\Schema; + +class CreateAvaliadorsTrabalhosTable extends Migration +{ + /** + * Run the migrations. + * + * @return void + */ + public function up() + { + Schema::create('avaliador_trabalho', function (Blueprint $table) { + $table->unsignedBigInteger('trabalho_id'); + $table->unsignedBigInteger('avaliador_id'); + + $table->foreign('trabalho_id')->references('id')->on('trabalhos'); + $table->foreign('avaliador_id')->references('id')->on('avaliadors'); + }); + } + + /** + * Reverse the migrations. + * + * @return void + */ + public function down() + { + Schema::dropIfExists('avaliador_trabalho'); + } +} diff --git a/database/seeds/AdministradorResponsavelSeeder.php b/database/seeds/AdministradorResponsavelSeeder.php index ce63cbf..aaeff51 100644 --- a/database/seeds/AdministradorResponsavelSeeder.php +++ b/database/seeds/AdministradorResponsavelSeeder.php @@ -12,11 +12,18 @@ class AdministradorResponsavelSeeder extends Seeder */ public function run() { - $user_id = DB::table('users')->where('name','AdministradorResponsavel')->pluck('id'); + $user_id = DB::table('users')->where('name','AdministradorResponsavel1')->pluck('id'); DB::table('administrador_responsavels')->insert([ 'user_id' => $user_id[0], ]); + + $user_id = DB::table('users')->where('name','AdministradorResponsavel2')->pluck('id'); + + DB::table('administrador_responsavels')->insert([ + 'user_id' => $user_id[0], + + ]); } } diff --git a/database/seeds/DatabaseSeeder.php b/database/seeds/DatabaseSeeder.php index b3c7ad6..fadd488 100644 --- a/database/seeds/DatabaseSeeder.php +++ b/database/seeds/DatabaseSeeder.php @@ -21,6 +21,7 @@ class DatabaseSeeder extends Seeder $this->call(SubAreaSeeder::class); $this->call(FuncaoParticipanteSeeder::class); $this->call(CoordenadorComissaoSeeder::class); + $this->call(ParticipanteSeeder::class); // $this->call(UsersTableSeeder::class); // DB::table('enderecos')->insert([ // 1 @@ -65,6 +66,24 @@ class DatabaseSeeder extends Seeder // 'email_verified_at' => '2020-02-15', // ]); + DB::table('eventos')->insert([ + 'nome'=>'I CONGRESSO REGIONAL DE ZOOTECNIA', + // 'numeroParticipantes'=>60, + 'descricao'=>'Cada autor inscrito poderá submeter até dois (2) resumos; + O número máximo de autores por trabalho será seis autores; + Os trabalhos deverão ser submetidos na forma de resumo simples com no máximo uma (01) página, no formato PDF;', + 'tipo'=>'PIBIC', + 'inicioSubmissao'=>'2020-03-30', + 'fimSubmissao'=>'2020-09-20', + 'inicioRevisao'=>'2020-04-21', + 'fimRevisao'=>'2020-05-21', + 'resultado'=>'2020-05-22', + 'numMaxTrabalhos' => 2, + 'numMaxCoautores' => 5, + 'coordenadorId'=>1, + 'criador_id'=>1, + ]); + DB::table('eventos')->insert([ 'nome'=>'II CONGRESSO REGIONAL DE ZOOTECNIA', // 'numeroParticipantes'=>60, @@ -80,6 +99,25 @@ class DatabaseSeeder extends Seeder 'numMaxTrabalhos' => 2, 'numMaxCoautores' => 5, 'coordenadorId'=>1, + 'criador_id'=>2, + ]); + + DB::table('eventos')->insert([ + 'nome'=>'III CONGRESSO REGIONAL DE ZOOTECNIA', + // 'numeroParticipantes'=>60, + 'descricao'=>'Cada autor inscrito poderá submeter até dois (2) resumos; + O número máximo de autores por trabalho será seis autores; + Os trabalhos deverão ser submetidos na forma de resumo simples com no máximo uma (01) página, no formato PDF;', + 'tipo'=>'PIBIC', + 'inicioSubmissao'=>'2020-03-30', + 'fimSubmissao'=>'2020-09-20', + 'inicioRevisao'=>'2020-04-21', + 'fimRevisao'=>'2020-05-21', + 'resultado'=>'2020-05-22', + 'numMaxTrabalhos' => 2, + 'numMaxCoautores' => 5, + 'coordenadorId'=>1, + 'criador_id'=>3, ]); // $areasEventoZoo = [ diff --git a/database/seeds/ParticipanteSeeder.php b/database/seeds/ParticipanteSeeder.php new file mode 100644 index 0000000..6b10b0d --- /dev/null +++ b/database/seeds/ParticipanteSeeder.php @@ -0,0 +1,28 @@ +<?php + +use Illuminate\Database\Seeder; + +class ParticipanteSeeder extends Seeder +{ + /** + * Run the database seeds. + * + * @return void + */ + public function run() + { + $user_id = DB::table('users')->where('name','Participante1')->pluck('id'); + + DB::table('participantes')->insert([ + 'user_id' => $user_id[0], + + ]); + + $user_id = DB::table('users')->where('name','Participante2')->pluck('id'); + + DB::table('participantes')->insert([ + 'user_id' => $user_id[0], + + ]); + } +} diff --git a/database/seeds/UsuarioSeeder.php b/database/seeds/UsuarioSeeder.php index 0c896f9..8902037 100644 --- a/database/seeds/UsuarioSeeder.php +++ b/database/seeds/UsuarioSeeder.php @@ -24,8 +24,16 @@ class UsuarioSeeder extends Seeder DB::table('users')->insert([ - 'name'=>'AdministradorResponsavel', - 'email'=>'adminResp@ufrpe.br', + 'name'=>'AdministradorResponsavel1', + 'email'=>'adminResp1@ufrpe.br', + 'password'=>Hash::make('12345678'), + 'tipo'=>'administradorResponsavel', + 'email_verified_at'=>'2020-01-01' + ]); + DB::table('users')->insert([ + + 'name'=>'AdministradorResponsavel2', + 'email'=>'adminResp2@ufrpe.br', 'password'=>Hash::make('12345678'), 'tipo'=>'administradorResponsavel', 'email_verified_at'=>'2020-01-01' @@ -57,5 +65,24 @@ class UsuarioSeeder extends Seeder 'tipo'=>'coordenador', 'email_verified_at'=>'2020-01-01' ]); + + DB::table('users')->insert([ + + 'name'=>'Participante1', + 'email'=>'part1@ufrpe.br', + 'password'=>Hash::make('12345678'), + 'tipo'=>'participante', + 'email_verified_at'=>'2020-01-01' + ]); + + DB::table('users')->insert([ + + 'name'=>'Participante2', + 'email'=>'part2@ufrpe.br', + 'password'=>Hash::make('12345678'), + 'tipo'=>'participante', + 'email_verified_at'=>'2020-01-01' + ]); + } } diff --git a/resources/views/administrador/editais.blade.php b/resources/views/administrador/editais.blade.php new file mode 100644 index 0000000..d896b9e --- /dev/null +++ b/resources/views/administrador/editais.blade.php @@ -0,0 +1,73 @@ +@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 diff --git a/resources/views/administrador/index.blade.php b/resources/views/administrador/index.blade.php index 35ebc13..16473d7 100644 --- a/resources/views/administrador/index.blade.php +++ b/resources/views/administrador/index.blade.php @@ -8,7 +8,7 @@ <div class="row justify-content-center d-flex align-items-center"> <div class="col-sm-4 d-flex justify-content-center "> - <a href="{{route('evento.listar')}}" style="text-decoration:none; color: inherit;"> + <a href="{{route('admin.editais')}}" 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> diff --git a/resources/views/administradorResponsavel/editais.blade.php b/resources/views/administradorResponsavel/editais.blade.php new file mode 100644 index 0000000..d896b9e --- /dev/null +++ b/resources/views/administradorResponsavel/editais.blade.php @@ -0,0 +1,73 @@ +@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 diff --git a/resources/views/administradorResponsavel/index.blade.php b/resources/views/administradorResponsavel/index.blade.php index 4b23e93..3e595fd 100644 --- a/resources/views/administradorResponsavel/index.blade.php +++ b/resources/views/administradorResponsavel/index.blade.php @@ -5,7 +5,28 @@ <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="{{route('adminResp.editais')}}" 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('adminResp.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 diff --git a/resources/views/administradorResponsavel/listarUsuarios.blade.php b/resources/views/administradorResponsavel/listarUsuarios.blade.php new file mode 100644 index 0000000..13711d9 --- /dev/null +++ b/resources/views/administradorResponsavel/listarUsuarios.blade.php @@ -0,0 +1,41 @@ +@extends('layouts.app') + +@section('content') + +<div class="container" style="margin-top: 100px;"> + + <div class="container" > + <div class="row" > + <div class="col-sm-10"> + <h3>Usuarios</h3> + </div> + </div> + </div> + <hr> + <table class="table table-bordered"> + <thead> + <tr> + <th scope="col">Nome do Usuário</th> + <th scope="col">Data de Criação</th> + <th scope="col">Opção</th> + </tr> + </thead> + <tbody> + @foreach ($usuarios as $usuario) + <tr> + <td>{{ $usuario->user->name }}</td> + <td>{{ $usuario->user->email }}</td> + <td>3</td> + </tr> + @endforeach + </tbody> + </table> +</div> + +@endsection + +@section('javascript') +<script> + +</script> +@endsection diff --git a/resources/views/administradorResponsavel/usuarios.blade.php b/resources/views/administradorResponsavel/usuarios.blade.php new file mode 100644 index 0000000..28c97a9 --- /dev/null +++ b/resources/views/administradorResponsavel/usuarios.blade.php @@ -0,0 +1,55 @@ +@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="{{ route('coordenador.coord') }}" style="text-decoration:none; color: inherit;"> + <div class="card text-center " style="border-radius: 30px; width: 18rem; height: 12rem;"> + <div class="card-body d-flex justify-content-center"> + <h2 style="padding-top:15px">Coordenador de Comitê de Avaliação</h2> + </div> + </div> + </a> + </div> + <div class="col-sm-4 d-flex justify-content-center"> + <a href="{{ route('coordenador.avaliador') }}" style="text-decoration:none; color: inherit;"> + <div class="card text-center " style="border-radius: 30px; width: 18rem; height: 12rem;"> + <div class="card-body d-flex justify-content-center"> + <h2 style="padding-top:15px">Avaliador</h2> + </div> + </div> + </a> + </div> + <div class="col-sm-4 d-flex justify-content-center"> + <a href="{{ route('coordenador.proponente') }}" style="text-decoration:none; color: inherit;"> + <div class="card text-center " style="border-radius: 30px; width: 18rem; height: 12rem;"> + <div class="card-body d-flex justify-content-center"> + <h2 style="padding-top:15px">Proponente</h2> + </div> + </div> + </a> + </div> + <div class="col-sm-4 d-flex justify-content-center"> + <a href="{{ route('coordenador.participante') }}" style="text-decoration:none; color: inherit;"> + <div class="card text-center " style="border-radius: 30px; width: 18rem; height: 12rem;"> + <div class="card-body d-flex justify-content-center"> + <h2 style="padding-top:15px">Participante</h2> + </div> + </div> + </a> + </div> + </div> + + + + +</div> + +@endsection diff --git a/resources/views/coordenador/home.blade.php b/resources/views/coordenador/home.blade.php index 58fa875..fc56a24 100644 --- a/resources/views/coordenador/home.blade.php +++ b/resources/views/coordenador/home.blade.php @@ -32,8 +32,8 @@ <div class="row justify-content-center"> <div class="col-sm-12"> {{$evento->nome}} - @if(Auth::user()->tipo == "administrador") - {{-- @can('isCoordenador', $evento) --}} + {{-- @if(Auth::user()->tipo == "administrador" || Auth::user()->tipo == "administradorResponsavel") --}} + @can('isCoordenador', $evento) <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"> --}} @@ -58,8 +58,8 @@ </form> </div> </div> - {{-- @endcan --}} - @endif + @endcan + {{-- @endif --}} </div> </div> diff --git a/resources/views/coordenadorComissao/listarUsuarios.blade.php b/resources/views/coordenadorComissao/listarUsuarios.blade.php index 13711d9..faaae47 100644 --- a/resources/views/coordenadorComissao/listarUsuarios.blade.php +++ b/resources/views/coordenadorComissao/listarUsuarios.blade.php @@ -16,7 +16,7 @@ <thead> <tr> <th scope="col">Nome do Usuário</th> - <th scope="col">Data de Criação</th> + <th scope="col">E-mail</th> <th scope="col">Opção</th> </tr> </thead> @@ -25,17 +25,112 @@ <tr> <td>{{ $usuario->user->name }}</td> <td>{{ $usuario->user->email }}</td> - <td>3</td> + <td> + <form id="form{{ $usuario->user->id }}"> + @csrf + <button type="button" class="btn btn-primary" data-toggle="modal" id="button{{ $usuario->user->id }}" onclick="permissao({{ $usuario->user->id }});" data-target="#exampleModal{{ $usuario->user->id }}"> + Atribuir Permissões + </button> + <!-- Modal --> + <div class="modal fade" id="exampleModal{{ $usuario->user->id }}" tabindex="-1" role="dialog" aria-labelledby="exampleModalLabel" aria-hidden="true"> + <div class="modal-dialog modal-dialog-centered"> + <div class="modal-content"> + <div class="modal-header"> + <h5 class="modal-title" id="exampleModalLabel">Mudar Permissão{{ $usuario->user->id }}</h5> + <button type="button" class="close" data-dismiss="modal" aria-label="Close"> + <span aria-hidden="true">×</span> + </button> + </div> + + <div class="modal-body"> + <div class="custom-control custom-switch"> + <input type="checkbox" name="avaliador" value="{{ $usuario->user->id }}" checked="" onclick="myFunction({{ $usuario->user->id }})" class="custom-control-input switch" id="{{ $usuario->user->id }}" > + <input type="hidden" name="user_id" value="{{ $usuario->user->id }}" id="usuario{{ $usuario->user->id }}"> + <label class="custom-control-label" for="{{ $usuario->user->id }}">Avaliador</label> + </div> + + </div> + <div class="modal-footer"> + <button type="button" class="btn btn-secondary" data-dismiss="modal">Close</button> + <button type="submit" id="atribuir_id" data-dismiss="modal" class="btn btn-primary">Save changes</button> + </div> + </div> + </div> + </div> + + + + </form> + </td> </tr> @endforeach </tbody> </table> </div> + + + @endsection @section('javascript') <script> + function myFunction(id) { + var checkBox = document.getElementById(id); + + let dados = $('#form'+id).serialize() + // let dados = document.getElementById("usuario"+id).value; + console.log(dados) + + //ajax + $.ajax({ + type: 'post', + url: 'http://submeta.test/adminResp/atribuir', + data: dados, //x-www-form-urlencoded + dataType: 'json', + success: dados => { + + console.log(dados) + + }, + error: erro => { console.log(erro) } + }) + + } + + + function permissao(id) { + var checkBox = document.getElementById(id); + + // console.log('#atribuir_id'+id); + // console.log($('#'+id).attr('checked')) + let dados = $('#form'+id).serialize() + //let dados = $('form').serialize() + + $.ajax({ + type: 'post', + url: 'http://submeta.test/adminResp/verPermissao', + data: dados, //x-www-form-urlencoded + dataType: 'json', + success: dados => { + + checkBox.checked = dados[0]; + console.log(checkBox.checked) + + }, + error: erro => { console.log(erro) } + }) + + + } + + $(document).ready(() => { + + + + }) </script> @endsection + + diff --git a/resources/views/evento/criarEvento.blade.php b/resources/views/evento/criarEvento.blade.php index a9a0e18..c095428 100644 --- a/resources/views/evento/criarEvento.blade.php +++ b/resources/views/evento/criarEvento.blade.php @@ -62,7 +62,7 @@ <select class="form-control @error('funcaoParticipante') is-invalid @enderror" id="coordenador_id" name="coordenador_id"> <option value="" disabled selected hidden>-- Coordenador da Comissão Avaliadora --</option> @foreach($coordenadors as $coordenador) - <option value="{{$coordenador->user->id}}">{{$coordenador->user->name}}</option> + <option value="{{$coordenador->id}}">{{$coordenador->user->name}}</option> @endforeach </select> </div> diff --git a/resources/views/evento/listarEvento.blade.php b/resources/views/evento/listarEvento.blade.php index 3d66cf7..5f4e01e 100644 --- a/resources/views/evento/listarEvento.blade.php +++ b/resources/views/evento/listarEvento.blade.php @@ -9,9 +9,6 @@ <div class="col-sm-10"> <h3>Editais</h3> </div> - <div class="col-sm-2"> - <a href="{{route('evento.criar')}}" class="btn btn-primary">Criar Edital</a> - </div> </div> </div> <hr> diff --git a/resources/views/layouts/app.blade.php b/resources/views/layouts/app.blade.php index 489a743..b5674ec 100644 --- a/resources/views/layouts/app.blade.php +++ b/resources/views/layouts/app.blade.php @@ -58,12 +58,19 @@ @else <!-- Se o usuário for um aluno --> @if(Auth::user()->tipo == 'administrador') + + + <li class="nav-item"> + <a class="nav-link" href="{{route('visualizarEvento')}}">Home</a> + + </li> + <li class="nav-item"> <a class="nav-link" href="{{ route('admin.naturezas') }}">Naturezas</a> </li> <li class="nav-item"> - <a class="nav-link" href="{{route('evento.listar')}}">Editais</a> + <a class="nav-link" href="{{route('admin.editais')}}">Editais</a> </li> <li class="nav-item"> @@ -105,7 +112,11 @@ {{-- Pro-reitor --}} @if(Auth::user()->tipo == 'administradorResponsavel') <li class="nav-item"> - <a class="nav-link" href="{{route('evento.listar')}}">Editais</a> + <a class="nav-link" href="{{route('visualizarEvento')}}">Home</a> + + </li> + <li class="nav-item"> + <a class="nav-link" href="{{route('adminResp.editais')}}">Editais</a> </li> <li class="nav-item"> @@ -142,6 +153,10 @@ @endif @if(Auth::user()->tipo == 'coordenador') + <li class="nav-item"> + <a class="nav-link" href="{{route('visualizarEvento')}}">Home</a> + + </li> <li class="nav-item"> <a class="nav-link" href="{{route('coordenador.editais')}}">Meus Editais</a> @@ -181,19 +196,43 @@ @if(Auth::user()->tipo == 'proponente') <li class="nav-item"> - <a class="nav-link" href="{{ route('logout') }}" - onclick="event.preventDefault(); - document.getElementById('logout-form').submit();"> - Sair + <a class="nav-link" href="{{route('visualizarEvento')}}">Home</a> + </li> + <li class="nav-item"> + <a class="nav-link" href="{{route('user.meusTrabalhos')}}">Meus Trabalhos</a> + </li> + <li class="nav-item dropdown"> + <a id="navbarDropdown" class="nav-link dropdown-toggle" href="#" role="button" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false" v-pre> + {{ Auth::user()->name }} <span class="caret"></span> </a> + <div class="dropdown-menu dropdown-menu-right" aria-labelledby="navbarDropdown"> + <a class="dropdown-item" href="{{ route('admin.index') }}"> + <img src="{{asset('img/icons/perfil.svg')}}" alt=""> + {{ __('Minha Conta') }} + </a> + <a class="dropdown-item" href="{{ route('user.meusTrabalhos') }}"> + <img src="{{asset('img/icons/file-alt-regular-black.svg')}}" alt=""> + {{ __('Participante') }} + </a> + <a class="dropdown-item" href="{{ route('logout') }}" + onclick="event.preventDefault(); + document.getElementById('logout-form').submit();"> + <img src="{{asset('img/icons/sign-out-alt-solid.svg')}}" alt=""> + {{ __('Sair') }} + </a> + - <form id="logout-form" action="{{ route('logout') }}" method="POST" style="display: none;"> - @csrf - </form> + <form id="logout-form" action="{{ route('logout') }}" method="POST" style="display: none;"> + @csrf + </form> + </div> </li> @endif @if(Auth::user()->tipo == 'participante') + <li class="nav-item"> + <a class="nav-link" href="{{route('visualizarEvento')}}">Home</a> + </li> <li class="nav-item dropdown"> <a id="navbarDropdown" class="nav-link dropdown-toggle" href="#" role="button" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false" v-pre> {{ Auth::user()->name }} <span class="caret"></span> diff --git a/resources/views/user/meusTrabalhos.blade.php b/resources/views/user/meusTrabalhos.blade.php index c89c2b0..b8da777 100644 --- a/resources/views/user/meusTrabalhos.blade.php +++ b/resources/views/user/meusTrabalhos.blade.php @@ -54,16 +54,14 @@ <div class="col-sm-10"> <h1>Meus Trabalhos</h1> </div> - <div class="col-sm-2"> - <a href="{{route('home')}}" class="btn btn-primary">Eventos</a> - </div> + </div> </div> </div> <div class="row margin"> <div class="col-sm-12 info-evento"> - <h4>Como Autor</h4> + <h4>Como Proponente</h4> </div> </div> @@ -82,7 +80,7 @@ </tr> </thead> <tbody> - {{-- @foreach($trabalhos as $trabalho) + @foreach($trabalhos as $trabalho) <tr> <td>{{$trabalho->titulo}}</td> <td style="text-align:center"> @@ -104,7 +102,7 @@ </a> </td> </tr> - @endforeach --}} + @endforeach </tbody> </table> </div> diff --git a/routes/web.php b/routes/web.php index 6979531..edf881e 100644 --- a/routes/web.php +++ b/routes/web.php @@ -11,7 +11,7 @@ | */ use App\Evento; -use Illuminate\Support\Facades\Log; + // Route::get('/', function () { // if(Auth::check()){ @@ -21,10 +21,9 @@ use Illuminate\Support\Facades\Log; // $eventos = Evento::all(); // return view('index',['eventos'=>$eventos]); // }); -Log::debug('routes'); + Route::get('/', 'UserController@index')->name('home-user'); //Route::get('/visualizarEvento', 'UserController@index')->name('visualizarEvento'); -Log::debug('depois de login'); // Route::get('/#', function () { // if(Auth::check()){ // return redirect()->route('home'); @@ -44,6 +43,15 @@ Route::post('/perfil','UserController@editarPerfil')->name('perfil')->middleware // Rotas Administrador Route::get('/home-admin', 'AdministradorController@index')->middleware('checkAdministrador')->name('admin.index'); Route::get('/usuarios', 'AdministradorController@usuarios')->middleware('checkAdministrador')->name('admin.usuarios'); +Route::get('admin/editais', 'AdministradorController@editais')->middleware('checkAdministrador')->name('admin.editais'); + +// Rotas de administrador responsavel (Reitor ou pro-reitor) +Route::get('adminResp/editais', 'AdministradorResponsavelController@editais')->name('adminResp.editais'); +Route::get('adminResp/usuarios', 'AdministradorResponsavelController@usuarios')->name('adminResp.usuarios'); +Route::get('adminResp/atribuir', 'AdministradorResponsavelController@atribuirPermissao')->name('adminResp.atribuir'); +Route::post('adminResp/atribuir', 'AdministradorResponsavelController@atribuirPermissao')->name('adminResp.atribuir'); +Route::post('adminResp/verPermissao', 'AdministradorResponsavelController@verPermissao')->name('adminResp.verPermissao'); + //Rotas das naturezas Route::get('/naturezas', 'AdministradorController@naturezas')->middleware('checkAdministrador')->name('admin.naturezas'); Route::get('/naturezas/grande-area', 'GrandeAreaController@index')->middleware('checkAdministrador')->name('grandearea.index'); @@ -124,6 +132,5 @@ Route::group(['middleware' => ['isTemp', 'auth', 'verified']], function(){ Route::get( '/area/comissao', 'EventoController@listComissaoTrabalhos' )->name('area.comissao'); }); -Log::debug('antes de home'); + Route::get('/home', 'HomeController@index')->name('home')->middleware('verified'); -Log::debug('depois de home'); \ No newline at end of file -- GitLab