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/Http/Controllers/UserController.php b/app/Http/Controllers/UserController.php old mode 100755 new mode 100644 index 777aa923ad41ca933ba31c6a3d99fb8754d2fce0..dd52a0ba256f2aaf4e764feadc5ef4882b212a6b --- a/app/Http/Controllers/UserController.php +++ b/app/Http/Controllers/UserController.php @@ -14,6 +14,7 @@ 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; @@ -101,11 +102,15 @@ class UserController extends Controller 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->update(); + + 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) { @@ -208,15 +213,16 @@ class UserController extends Controller $avaliador = Avaliador::where('user_id', '=', $id)->first(); $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, - 'cursos' => $cursos - ]); + return view('user.perfilUser')->with(['user' => $user, + 'adminResp' => $adminResp, + 'avaliador' => $avaliador, + 'proponente' => $proponente, + '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/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/resources/views/user/perfilUser.blade.php b/resources/views/user/perfilUser.blade.php old mode 100755 new mode 100644 index f47cdab249917712d9bbe9069aefd0ed7883f4d9..2ee7db572d26b92134a01485b6652c9a46e7382d --- a/resources/views/user/perfilUser.blade.php +++ b/resources/views/user/perfilUser.blade.php @@ -150,7 +150,19 @@ @enderror - @else + +
+ +
+ @foreach($naturezas as $natureza) + naturezas->contains($natureza->id)) || (!empty(old('natureza')) && in_array($natureza->id, old('natureza')))) checked @endif> + + @endforeach +
+ @else +