diff --git a/.gitignore b/.gitignore index 40100e41607b2b6d2d978853f692101b1620ce8e..363ca2d2ecbb4be381f1bfd50abbedcd3fdd8795 100755 --- a/.gitignore +++ b/.gitignore @@ -11,3 +11,4 @@ Homestead.yaml npm-debug.log yarn-error.log submeta.code-workspace +composer.lock diff --git a/app/Avaliador.php b/app/Avaliador.php index 4ac1b051a7586719c499b450db9ba67e1b43e111..a3b73ead686e4df84e8b68de677ff586935bec03 100755 --- a/app/Avaliador.php +++ b/app/Avaliador.php @@ -34,4 +34,7 @@ class Avaliador extends Model return $this->hasMany(ParecerInterno::class, 'avali_id', 'id'); } + public function naturezas(){ + return $this->belongsToMany('App\Natureza', 'naturezas_avaliadors', 'avaliador_id'); + } } diff --git a/app/Curso.php b/app/Curso.php new file mode 100644 index 0000000000000000000000000000000000000000..b6068340884ff1bf4c85704699504e04aed11cd5 --- /dev/null +++ b/app/Curso.php @@ -0,0 +1,17 @@ +belongsToMany('App\Proponente', 'proponentes_cursos', 'curso_id'); + } +} diff --git a/app/Http/Controllers/AdministradorController.php b/app/Http/Controllers/AdministradorController.php index d9bba1eac44a49ed8b5a417da756e37412a251b5..d78df05d51bbb8805995a11c697a6987c9726153 100755 --- a/app/Http/Controllers/AdministradorController.php +++ b/app/Http/Controllers/AdministradorController.php @@ -34,6 +34,8 @@ use Illuminate\Support\Facades\Storage; use Illuminate\Support\Str; use Illuminate\Validation\Rule; use PDF; +use DB; + class AdministradorController extends Controller { @@ -658,8 +660,11 @@ class AdministradorController extends Controller $grandeAreas = GrandeArea::orderBy('nome')->get(); $avalSelecionados = $evento->avaliadors; $avalNaoSelecionadosId = $evento->avaliadors->pluck('id'); - $avaliadores = Avaliador::whereNotIn('id', $avalNaoSelecionadosId)->get(); $trabalhos = $evento->trabalhos->whereNotIn('status', 'rascunho'); + $avaliadores = Avaliador::join('naturezas_avaliadors', 'avaliadors.id', '=' ,'naturezas_avaliadors.avaliador_id') + ->whereNotIn('avaliadors.id', $avalNaoSelecionadosId) + ->where('naturezas_avaliadors.natureza_id', $evento->natureza_id) + ->get(); if ((Auth::user()->id != $coordenador_id->user_id) && ($user->tipo != 'administrador')) { return redirect()->back(); @@ -977,12 +982,17 @@ class AdministradorController extends Controller $avaliador->area()->associate($area); $avaliador->user()->associate($user); $avaliador->eventos()->attach($evento); - + if($evento->natureza_id == 3){ + $avaliador->naturezas()->sync($evento->natureza_id); + } $user->save(); $avaliador->save(); } else { $avaliador = $user->avaliadors; $avaliador->eventos()->attach($evento); + if($evento->natureza_id == 3){ + $avaliador->naturezas()->sync($evento->natureza_id); + } $user->save(); $avaliador->save(); } diff --git a/app/Http/Controllers/Auth/RegisterController.php b/app/Http/Controllers/Auth/RegisterController.php index 4681086b393e855de3607fac413d97ca3c943152..d9ae34de3ba1544eb2b6086696fe7d6fd1f52ba4 100755 --- a/app/Http/Controllers/Auth/RegisterController.php +++ b/app/Http/Controllers/Auth/RegisterController.php @@ -13,6 +13,7 @@ use App\User; use App\Participante; use App\Proponente; use App\Rules\UrlValidacao; +use App\Curso; class RegisterController extends Controller { @@ -91,7 +92,7 @@ class RegisterController extends Controller */ protected function create(array $data) { - //dd($data); + // dd($data); $user = new User(); $user->name = $data['name']; $user->email = $data['email']; @@ -134,8 +135,11 @@ class RegisterController extends Controller $proponente->nivel = $data['nivel']; } $proponente->linkLattes = $data['linkLattes']; - + $user->proponentes()->save($proponente); + if($proponente->titulacaoMaxima == 'Técnico'){ + $proponente->cursos()->sync($data['curso']); + } } return $user; @@ -143,6 +147,7 @@ class RegisterController extends Controller public function showRegistrationForm() { - return view('auth.register'); + $cursos = Curso::orderBy('nome')->get(); + return view('auth.register', compact('cursos')); } } diff --git a/app/Http/Controllers/CursoController.php b/app/Http/Controllers/CursoController.php new file mode 100644 index 0000000000000000000000000000000000000000..ebefc1921289293400fe46637bc744d84cf59f63 --- /dev/null +++ b/app/Http/Controllers/CursoController.php @@ -0,0 +1,10 @@ +get(); + return view('proponente.index', compact('cursos')); } public function create(){ @@ -71,6 +72,7 @@ class ProponenteController extends Controller $proponente->bolsistaProdutividade = $request->bolsistaProdutividade; $proponente->nivel = $request->nivel; $proponente->linkLattes = $request->linkLattes; + // dd($request); $proponente->user_id = Auth::user()->id; $proponente->save(); @@ -82,6 +84,7 @@ class ProponenteController extends Controller return redirect( route('home'))->with(['mensagem' => 'Cadastro feito com sucesso! Você já pode criar projetos']); } }else{ + // dd($request); return redirect( route('proponente.create'))->with(['mensagem' => 'Você já é proponente!']); } diff --git a/app/Http/Controllers/UserController.php b/app/Http/Controllers/UserController.php old mode 100755 new mode 100644 index 918359380ce9caaab397e61cdfcd2468c49baad6..dd52a0ba256f2aaf4e764feadc5ef4882b212a6b --- a/app/Http/Controllers/UserController.php +++ b/app/Http/Controllers/UserController.php @@ -14,49 +14,50 @@ use App\Endereco; use App\Trabalho; use App\Coautor; use App\Evento; +use App\Natureza; use Carbon\Carbon; use Illuminate\Validation\Rule; use Illuminate\Support\Facades\Hash; use Illuminate\Support\Facades\Log; +use App\Curso; class UserController extends Controller { public function index() { - $eventos = Evento::orderBy('created_at', 'desc')->get(); - dd($eventos); - if(Auth::check()){ - Log::debug('UserController check'); - return redirect()->route('home'); - } - Log::debug('UserController index'); - $hoje = Carbon::today('America/Recife'); - $hoje = $hoje->toDateString(); - return view('index', ['eventos' => $eventos, 'hoje' => $hoje]); - //return view('auth.login'); + $eventos = Evento::orderBy('created_at', 'desc')->get(); + if (Auth::check()) { + Log::debug('UserController check'); + return redirect()->route('home'); + } + Log::debug('UserController index'); + $hoje = Carbon::today('America/Recife'); + $hoje = $hoje->toDateString(); + return view('index', ['eventos' => $eventos, 'hoje' => $hoje]); } public function inicial() { - $eventos = Evento::orderBy('created_at', 'desc')->get(); - $hoje = Carbon::today('America/Recife'); - $hoje = $hoje->toDateString(); - return view('index', ['eventos' => $eventos, 'hoje' => $hoje]); - //return view('auth.login'); + $eventos = Evento::orderBy('created_at', 'desc')->get(); + $hoje = Carbon::today('America/Recife'); + $hoje = $hoje->toDateString(); + return view('index', ['eventos' => $eventos, 'hoje' => $hoje]); } - function perfil(){ + function perfil() + { $user = User::find(Auth::user()->id); - return view('user.perfilUser',['user'=>$user]); + return view('user.perfilUser', ['user' => $user]); } - - function editarPerfil(Request $request){ + + function editarPerfil(Request $request) + { $id = Auth()->user()->id; $user = User::find($id); if ($request->tipo != "proponente") { - + $validated = $request->validate([ 'name' => ['required', 'string', 'max:255'], 'instituicao' => ['required_if:instituicaoSelect,Outra', 'max:255'], @@ -86,10 +87,10 @@ class UserController extends Controller 'nivel' => ['required_if:bolsistaProdutividade,sim'], // 'nivel' => [(isset($request['cargo']) && $request['cargo'] !== 'Estudante') || (isset($request['cargo']) && $request['cargo'] === 'Estudante' && isset($request['vinculo']) && $request['vinculo'] === 'Pós-doutorando') ? 'required':''], 'linkLattes' => ['required_with:titulacaoMaxima,anoTitulacao,areaFormacao,bolsistaProdutividade'], - 'linkLattes' => [(isset($request['cargo']) && $request['cargo'] !== 'Estudante') || (isset($request['cargo']) && $request['cargo'] === 'Estudante' && isset($request['vinculo']) && $request['vinculo'] === 'Pós-doutorando') ? 'required':''], - 'linkLattes' => [(isset($request['cargo']) && $request['cargo'] !== 'Estudante') || (isset($request['cargo']) && $request['cargo'] === 'Estudante' && isset($request['vinculo']) && $request['vinculo'] === 'Pós-doutorando') ? 'link_lattes':''], - - ]); + 'linkLattes' => [(isset($request['cargo']) && $request['cargo'] !== 'Estudante') || (isset($request['cargo']) && $request['cargo'] === 'Estudante' && isset($request['vinculo']) && $request['vinculo'] === 'Pós-doutorando') ? 'required' : ''], + 'linkLattes' => [(isset($request['cargo']) && $request['cargo'] !== 'Estudante') || (isset($request['cargo']) && $request['cargo'] === 'Estudante' && isset($request['vinculo']) && $request['vinculo'] === 'Pós-doutorando') ? 'link_lattes' : ''], + + ]); } if ($request->alterarSenhaCheckBox != null) { @@ -100,13 +101,16 @@ class UserController extends Controller if (!($request->nova_senha === $request->confirmar_senha)) { return redirect()->back()->withErrors(['nova_senha' => 'Senhas diferentes']); } - } + if($user->avaliadors != null && $request->area != null && $user->tipo == "avaliador"){ $avaliador = Avaliador::where('user_id', '=', $id)->first(); $avaliador->user_id = $user->id; //$avaliador->area_id = $request->area; + + $avaliador->naturezas()->sync($request->natureza); $avaliador->update(); + } switch ($request->tipo) { @@ -119,9 +123,9 @@ class UserController extends Controller $avaliador = Avaliador::where('user_id', '=', $id)->first(); $avaliador->user_id = $user->id; $avaliador->area_id = $request->area; - if($user->usuarioTemp == true){ + if ($user->usuarioTemp == true) { $user->usuarioTemp = false; - } + } $avaliador->update(); break; case "proponente": @@ -147,6 +151,7 @@ class UserController extends Controller $proponente->linkLattes = $request->linkLattes; $proponente->user_id = $user->id; + $proponente->cursos()->sync($request->curso); $proponente->update(); break; case "participante": @@ -154,7 +159,7 @@ class UserController extends Controller //$participante = $user->participantes->where('user_id', Auth::user()->id)->first(); $participante->user_id = $user->id; //dd($participante); - if($user->usuarioTemp == true){ + if ($user->usuarioTemp == true) { $user->usuarioTemp = false; } @@ -165,7 +170,7 @@ class UserController extends Controller $user->name = $request->name; $user->tipo = $request->tipo; - // $user->email = $request->email; + // $user->email = $request->email; $user->cpf = $request->cpf; $user->celular = $request->celular; if ($request->instituicao != null) { @@ -181,24 +186,26 @@ class UserController extends Controller $user->update(); - return redirect( route('user.perfil') )->with(['mensagem' => 'Dados atualizados com sucesso.']); + return redirect(route('user.perfil'))->with(['mensagem' => 'Dados atualizados com sucesso.']); } - public function meusTrabalhos(){ + public function meusTrabalhos() + { //$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, - 'agora' => now(), - ]); + return view('user.meusTrabalhos', [ + 'trabalhos' => $trabalhos, + 'agora' => now(), + ]); } - public function minhaConta() { + public function minhaConta() + { $id = Auth::user()->id; $user = User::find($id); @@ -207,10 +214,15 @@ class UserController extends Controller $proponente = Proponente::where('user_id', '=', $id)->first(); $participante = Participante::where('user_id', '=', $id)->first(); + $naturezas = Natureza::orderBy('nome')->get(); + $cursos = Curso::orderBy('nome')->get(); + return view('user.perfilUser')->with(['user' => $user, 'adminResp' => $adminResp, 'avaliador' => $avaliador, 'proponente' => $proponente, - 'participante' => $participante]); + 'participante' => $participante, + 'cursos' => $cursos, + 'naturezas' => $naturezas]); } } diff --git a/app/Natureza.php b/app/Natureza.php index c963308393a611dcaa8e281144bc190a725fab67..769520542b68adcf1129aa768dc78d20b2cecc10 100755 --- a/app/Natureza.php +++ b/app/Natureza.php @@ -9,4 +9,8 @@ class Natureza extends Model public function projetos() { return $this->hasMany('App\Evento'); } + + public function avaliadors(){ + return $this->belongsToMany('App\Avaliador', 'naturezas_avaliadors', 'natureza_id'); + } } diff --git a/app/Proponente.php b/app/Proponente.php index 40ebd4777767db54cedc9559ffea0926ea01d99b..d8b3fa18ce02d0e830ebbc19cd119f0c2b1d5113 100755 --- a/app/Proponente.php +++ b/app/Proponente.php @@ -17,4 +17,9 @@ class Proponente extends Model public function trabalhos(){ return $this->hasMany('App\Trabalho'); } + + public function cursos() + { + return $this->belongsToMany('App\Curso', 'proponentes_cursos', 'proponente_id'); + } } diff --git a/database/migrations/2022_10_25_204029_create_cursos_table.php b/database/migrations/2022_10_25_204029_create_cursos_table.php new file mode 100644 index 0000000000000000000000000000000000000000..2b479a6c3ef02a093a67ec4e678c599a66a6dff8 --- /dev/null +++ b/database/migrations/2022_10_25_204029_create_cursos_table.php @@ -0,0 +1,32 @@ +bigIncrements('id'); + $table->string('nome'); + $table->timestamps(); + }); + } + + /** + * Reverse the migrations. + * + * @return void + */ + public function down() + { + Schema::dropIfExists('cursos'); + } +} diff --git a/database/migrations/2022_10_25_210227_create_proponentes_cursos_table.php b/database/migrations/2022_10_25_210227_create_proponentes_cursos_table.php new file mode 100644 index 0000000000000000000000000000000000000000..0e408c870e573f4f9ed98a75962980605ea22735 --- /dev/null +++ b/database/migrations/2022_10_25_210227_create_proponentes_cursos_table.php @@ -0,0 +1,38 @@ +bigIncrements('id'); + + $table->integer('curso_id'); + $table->foreign('curso_id')->references('id')->on('cursos'); + + $table->integer('proponente_id'); + $table->foreign('proponente_id')->references('id')->on('proponentes'); + + $table->timestamps(); + }); + } + + /** + * Reverse the migrations. + * + * @return void + */ + public function down() + { + Schema::dropIfExists('proponentes_cursos'); + } +} diff --git a/database/migrations/2022_11_04_172506_create_naturezas_avaliadors_table.php b/database/migrations/2022_11_04_172506_create_naturezas_avaliadors_table.php new file mode 100644 index 0000000000000000000000000000000000000000..f543c9e84b6124e72443c35f2dc01a44c17bccbe --- /dev/null +++ b/database/migrations/2022_11_04_172506_create_naturezas_avaliadors_table.php @@ -0,0 +1,37 @@ +bigIncrements('id'); + $table->timestamps(); + + $table->integer('natureza_id'); + $table->foreign('natureza_id')->references('id')->on('naturezas'); + $table->integer('avaliador_id'); + $table->foreign('avaliador_id')->references('id')->on('avaliadors'); + + }); + } + + /** + * Reverse the migrations. + * + * @return void + */ + public function down() + { + Schema::dropIfExists('naturezas_avaliadors'); + } +} diff --git a/database/migrations/2022_11_08_214901_add_conflitos_interesse_to_trabalhos_table.php b/database/migrations/2022_11_08_214901_add_conflitos_interesse_to_trabalhos_table.php new file mode 100644 index 0000000000000000000000000000000000000000..69d21a1feb2608d73a5412e49003a8d169fe2d8a --- /dev/null +++ b/database/migrations/2022_11_08_214901_add_conflitos_interesse_to_trabalhos_table.php @@ -0,0 +1,32 @@ +text('conflitosInteresse')->nullable(); + }); + } + + /** + * Reverse the migrations. + * + * @return void + */ + public function down() + { + Schema::table('trabalhos', function (Blueprint $table) { + $table->dropColumn('conflitosInteresse'); + }); + } +} diff --git a/resources/views/administrador/analisarProposta.blade.php b/resources/views/administrador/analisarProposta.blade.php index 7d8f5768584a0ead7512c03d19e4d70e560c17f3..87b9d282b08c301329f1f1d1e578346e20a2023a 100644 --- a/resources/views/administrador/analisarProposta.blade.php +++ b/resources/views/administrador/analisarProposta.blade.php @@ -1625,16 +1625,18 @@ -