diff --git a/app/Avaliador.php b/app/Avaliador.php index 99332ec17b77f1c7fcc00de1092e272bd3eba9af..012cfa8bbb0845242b78459c2d6af4b8d3e175cc 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 ff8f19593b819ee4e09ecf0d429b5f5075f5db4d..edd4d694aa50e8387bcedafa8135a689d6d6cb9d 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 7377ae7fed3c5319aa545c1731c4ce2f241f3632..40bc8a01792ed8b1f636b4f9e51e9f173947db24 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 6202a405d189affd7c7052ca909404de3fa37e41..bb383b0ddf10aac309a834925d1e14a3ccf2aac5 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 0000000000000000000000000000000000000000..7c6d89e6b34eddfe0e01af8ee250d58395f0b7ed --- /dev/null +++ b/app/Http/Controllers/AdministradorResponsavelController.php @@ -0,0 +1,78 @@ +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 e34959c2da808e7b4361348851937690a44335dd..ef1d5d6fb36086f4c641c2a47ac16a87b6625502 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 dae200b2a1040256035e54a7edc3571c33a1f0c1..f4ec941195febdb66cd6eab35865b88aa6080c87 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 621c91b1abe4b7ab4f254b7d2ad1e989fe77a7db..86a2a472e3c4ea1f02ffef8bd05b6ff452735838 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 7c52ef6a63f56eb5d64ead7348683d27ee8b64ac..6f51c5b126711c9b6bbc0a1fac43d5bce2b453ee 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 3ac4a370f0ed29fb96f0fb9183911977d5f115b1..25b9d3a5d9949bef65efe8f831e8e37e02aa2ec5 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 c19ebe66492087b03410a021131aeefe93269609..08f1a2ef14f74407a7743ce33375f2c61c360171 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 6822501c6fc4248f05211fad462587bc392cbe18..ec0a6570f263d7ccbd1a784f7ea9afa00b719ba7 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 2b23f5f5a0314b5c08988a57295b204888c7677c..6012d9003ba8b2b568beb5ba3b8cd05f9bafa079 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 81ec836de1769652ecb5e22fa3a719b085580318..e6194b4462ef064049bd48e92330d098e99cd79d 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 54a9372d54609319962618f1ff396e8bb15b7912..0db3c6ca5556124ec5d145ecf04524b3257165d3 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 0000000000000000000000000000000000000000..34b43cbdfbd6e8c9e2c92ebd4972128d6913c2f5 --- /dev/null +++ b/database/migrations/2020_05_26_223341_create_avaliadors_trabalhos_table.php @@ -0,0 +1,34 @@ +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 ce63cbf71559060232f7657bf19e0a4f226e1267..aaeff51430ad51b0706a21eaad518a26bc57d5ca 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 b3c7ad62da41a64fc648f05c157603805c271793..fadd488d58bb92e5f86dc4c1d15f7b841e66c794 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 0000000000000000000000000000000000000000..6b10b0d242292bab4a17957834ee238534554fa0 --- /dev/null +++ b/database/seeds/ParticipanteSeeder.php @@ -0,0 +1,28 @@ +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 0c896f91ad8778f89e1937935ddcbbafd60dcd13..8902037a4c7e5aad4246cc7db7a0986fa999668a 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 0000000000000000000000000000000000000000..d896b9e26767197810f0f21e66e25d2e1601bdf9 --- /dev/null +++ b/resources/views/administrador/editais.blade.php @@ -0,0 +1,73 @@ +@extends('layouts.app') + +@section('content') + +
+ +
+
+
+

Meus Editais

+
+ +
+
+
+ + + + + + + + + + @foreach ($eventos as $evento) + + + + + + @endforeach + +
Nome do EditalData de CriaçãoOpção
+ + {{ $evento->nome }} + + 10/05/2020 + +
+
+ +@endsection + +@section('javascript') + +@endsection diff --git a/resources/views/administrador/index.blade.php b/resources/views/administrador/index.blade.php index 35ebc13ec0d60307ed059573b66daaad96bfe984..16473d7267be4280a1c1a08cca1c8fcca571cde4 100644 --- a/resources/views/administrador/index.blade.php +++ b/resources/views/administrador/index.blade.php @@ -8,7 +8,7 @@
- +

Editais

diff --git a/resources/views/administradorResponsavel/editais.blade.php b/resources/views/administradorResponsavel/editais.blade.php new file mode 100644 index 0000000000000000000000000000000000000000..d896b9e26767197810f0f21e66e25d2e1601bdf9 --- /dev/null +++ b/resources/views/administradorResponsavel/editais.blade.php @@ -0,0 +1,73 @@ +@extends('layouts.app') + +@section('content') + +
+ + +
+ + + + + + + + + + @foreach ($eventos as $evento) + + + + + + @endforeach + +
Nome do EditalData de CriaçãoOpção
+ + {{ $evento->nome }} + + 10/05/2020 + +
+
+ +@endsection + +@section('javascript') + +@endsection diff --git a/resources/views/administradorResponsavel/index.blade.php b/resources/views/administradorResponsavel/index.blade.php index 4b23e93fe500468efd0c48905b848d9f242265d3..3e595fda5b7556f3660d1b2cd3af4e43d48935e0 100644 --- a/resources/views/administradorResponsavel/index.blade.php +++ b/resources/views/administradorResponsavel/index.blade.php @@ -5,7 +5,28 @@

{{ Auth()->user()->name }}

+
@endsection diff --git a/resources/views/administradorResponsavel/listarUsuarios.blade.php b/resources/views/administradorResponsavel/listarUsuarios.blade.php new file mode 100644 index 0000000000000000000000000000000000000000..13711d9f21136c1842209e0ca9bee7767779d50a --- /dev/null +++ b/resources/views/administradorResponsavel/listarUsuarios.blade.php @@ -0,0 +1,41 @@ +@extends('layouts.app') + +@section('content') + +
+ +
+
+
+

Usuarios

+
+
+
+
+ + + + + + + + + + @foreach ($usuarios as $usuario) + + + + + + @endforeach + +
Nome do UsuárioData de CriaçãoOpção
{{ $usuario->user->name }}{{ $usuario->user->email }}3
+
+ +@endsection + +@section('javascript') + +@endsection diff --git a/resources/views/administradorResponsavel/usuarios.blade.php b/resources/views/administradorResponsavel/usuarios.blade.php new file mode 100644 index 0000000000000000000000000000000000000000..28c97a9065b44b4177bbe1ca601aa8724c65ae17 --- /dev/null +++ b/resources/views/administradorResponsavel/usuarios.blade.php @@ -0,0 +1,55 @@ +@extends('layouts.app') + +@section('content') + + + +@endsection diff --git a/resources/views/coordenador/home.blade.php b/resources/views/coordenador/home.blade.php index 58fa8754ecc311b6f6a0fe253c7340f9787a4141..fc56a24b744866cbed353e7bbe5989218755e71c 100644 --- a/resources/views/coordenador/home.blade.php +++ b/resources/views/coordenador/home.blade.php @@ -32,8 +32,8 @@
{{$evento->nome}} - @if(Auth::user()->tipo == "administrador") - {{-- @can('isCoordenador', $evento) --}} + {{-- @if(Auth::user()->tipo == "administrador" || Auth::user()->tipo == "administradorResponsavel") --}} + @can('isCoordenador', $evento)
Criar Edital -

diff --git a/resources/views/layouts/app.blade.php b/resources/views/layouts/app.blade.php index 489a74362737eaedae8ec7d4e950a6947a17a495..b5674ec06ab06d916983d1ca60af02769a86a70b 100644 --- a/resources/views/layouts/app.blade.php +++ b/resources/views/layouts/app.blade.php @@ -58,12 +58,19 @@ @else @if(Auth::user()->tipo == 'administrador') + + + + + + + @endif @if(Auth::user()->tipo == 'participante') +