From f7f638c4319ae580d44828e82e2b5182fc14ebe0 Mon Sep 17 00:00:00 2001 From: Lucas Henrique Date: Tue, 3 Jan 2023 11:44:17 -0300 Subject: [PATCH] =?UTF-8?q?Adiciona=20novos=20tipos=20de=20avalia=C3=A7?= =?UTF-8?q?=C3=A3o=20na=20edi=C3=A7=C3=A3o=20de=20evento?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/Http/Controllers/EventoController.php | 63 ++- resources/views/evento/criarEvento.blade.php | 2 +- resources/views/evento/editarEvento.blade.php | 468 ++++++++++++++++-- 3 files changed, 482 insertions(+), 51 deletions(-) diff --git a/app/Http/Controllers/EventoController.php b/app/Http/Controllers/EventoController.php index bea80c8..40c0293 100755 --- a/app/Http/Controllers/EventoController.php +++ b/app/Http/Controllers/EventoController.php @@ -122,6 +122,7 @@ class EventoController extends Controller 'natureza' => ['required'], 'coordenador_id' => ['required'], 'numParticipantes' => ['required'], + 'tipoAvaliacao' => ['required'], 'inicioSubmissao' => ['required', 'date'], 'fimSubmissao' => ['required', 'date'], 'inicioRevisao' => ['required', 'date'], @@ -153,6 +154,7 @@ class EventoController extends Controller 'coordenador_id' => ['required'], 'numParticipantes' => ['required'], 'nome_docExtra' => [Rule::requiredIf($request->check_docExtra != null),'max:255'], + 'tipoAvaliacao' => ['required'], #---------------------------------------------- 'inicioSubmissao' => ['required', 'date', 'after:yesterday'], 'fimSubmissao' => ['required', 'date', 'after_or_equal:inicioSubmissao'], @@ -223,6 +225,7 @@ class EventoController extends Controller $evento['anexosStatus'] = 'final'; $evento['inicioProjeto'] = $request->inicioProjeto; $evento['fimProjeto'] = $request->fimProjeto; + $evento['tipoAvaliacao'] = $request->tipoAvaliacao; if($request->tipoAvaliacao == "link") { $evento['formAvaliacaoExterno'] = $request->link; } @@ -299,7 +302,7 @@ class EventoController extends Controller $campoAval = new CampoAvaliacao(); $campoAval->nome = $request->inputField[$value]['nome']; $campoAval->nota_maxima = $request->inputField[$value]['nota_maxima']; - if ($request->has('inputField['. $value. ']["descricao"]')){ + if ($request->inputField[$value]['descricao'] != null){ $campoAval->descricao = $request->inputField[$value]['descricao']; } $campoAval->prioridade = $request->inputField[$value]['prioridade']; @@ -445,11 +448,13 @@ class EventoController extends Controller $naturezas = Natureza::orderBy('nome')->get(); $yesterday = Carbon::yesterday('America/Recife'); $yesterday = $yesterday->toDateString(); + $camposAvaliacao = CampoAvaliacao::where('evento_id', $id)->get(); return view('evento.editarEvento',['evento'=>$evento, 'coordenadores'=>$coordenadors, 'naturezas'=>$naturezas, 'ontem'=>$yesterday, - 'coordEvent'=>$coordEvent]); + 'coordEvent'=>$coordEvent, + 'camposAvaliacao'=>$camposAvaliacao]); } /** @@ -467,6 +472,7 @@ class EventoController extends Controller $evento = Evento::find($id); $yesterday = Carbon::yesterday('America/Recife'); $yesterday = $yesterday->toDateString(); + $camposAvaliacao = CampoAvaliacao::where('evento_id', $id); if( $request->inicioSubmissao == null || $request->fimSubmissao == null || @@ -483,6 +489,7 @@ class EventoController extends Controller 'tipo' => ['required', 'string'], 'natureza' => ['required'], 'numParticipantes' => ['required'], + 'tipoAvaliacao' => ['required'], 'inicioSubmissao' => ['required', 'date'], 'fimSubmissao' => ['required', 'date'], 'inicioRevisao' => ['required', 'date', 'after:fimSubmissao'], @@ -497,7 +504,6 @@ class EventoController extends Controller 'dt_fimRelatorioFinal' => ['required', 'date'], 'pdfEdital' => ['file', 'mimes:pdf', 'max:2048'], 'modeloDocumento' => ['file', 'mimes:zip,doc,docx,odt,pdf', 'max:2048'], - 'pdfFormAvalExterno' => ['file','mimes:pdf,doc,docx,xlsx,xls,csv,zip', 'max:2048'], 'pdfFormAvalRelatorio' => ['file', 'mimes:pdf', 'max:2048'], 'inicioProjeto' => ['required', 'date'], 'fimProjeto' => ['required', 'date'], @@ -513,6 +519,7 @@ class EventoController extends Controller 'tipo' => ['required', 'string'], 'natureza' => ['required'], 'numParticipantes' => ['required'], + 'tipoAvaliacao' => ['required'], 'inicioSubmissao' => ['required', 'date', 'after_or_equal:inicioSubmissao'], 'fimSubmissao' => ['required', 'date', 'after_or_equal:inicioSubmissao'], 'inicioRevisao' => ['required', 'date', 'after:fimSubmissao'], @@ -527,13 +534,30 @@ class EventoController extends Controller 'dt_fimRelatorioFinal' => ['required', 'date', 'after_or_equal:dt_inicioRelatorioFinal'], 'modeloDocumento' => ['file', 'mimes:zip,doc,docx,odt,pdf', 'max:2048'], 'pdfFormAvalExterno' => ['file', 'mimes:pdf,doc,docx,xlsx,xls,csv,zip', 'max:2048'], - 'pdfFormAvalRelatorio' => ['file', 'mimes:pdf', 'max:2048'], 'inicioProjeto' => ['required', 'date', 'after:resultado_final'], 'fimProjeto' => ['required', 'date', 'after:inicioProjeto'], 'docTutorial' => ['file', 'mimes:zip,doc,docx,pdf', 'max:2048'], 'nome_docExtra' => [Rule::requiredIf($request->check_docExtra != null) , 'max:255'], ]); + if ($request->tipoAvaliacao == 'form') { + $validateAvaliacao = $request->validate([ + 'pdfFormAvalExterno' => [($request->pdfFormAvalExternoPreenchido!=='sim'?'required':''), 'file','mimes:pdf,doc,docx,xlsx,xls,csv,zip', 'max:2048'], + ]); + } elseif ($request->tipoAvaliacao == 'campos') { + if($request->has('campos')){ + $validateCampo = $request->validate([ + 'inputField.*.nome' => ['required', 'string'], + 'inputField.*.nota_maxima' => ['required'], + 'inputField.*.prioridade' => ['required'] + ]); + } + } elseif ($request->tipoAvaliacao == 'link') { + $validateAvaliacao = $request->validate([ + 'link' => ['required', 'url'], + ]); + } + $evento->nome = $request->nome; $evento->descricao = $request->descricao; $evento->tipo = $request->tipo; @@ -562,6 +586,11 @@ class EventoController extends Controller $evento->obrigatoriedade_docExtra = $request->has('obrigatoriedade_docExtra'); $evento->inicioProjeto = $request->inicioProjeto; $evento->fimProjeto = $request->fimProjeto; + $evento->tipoAvaliacao = $request->tipoAvaliacao; + if($request->tipoAvaliacao == "link") { + $evento->formAvaliacaoExterno = $request->link; + } + if($request->pdfEdital != null){ $pdfEdital = $request->pdfEdital; $path = 'pdfEdital/' . $evento->id . '/'; @@ -579,7 +608,7 @@ class EventoController extends Controller } - if(isset($request->pdfFormAvalExterno)){ + if(isset($request->pdfFormAvalExterno) && ($request->tipoAvaliacao == 'form')){ $pdfFormAvalExterno = $request->pdfFormAvalExterno; $extension = $pdfFormAvalExterno->extension(); $path = 'pdfFormAvalExterno/' . $evento->id . '/'; @@ -589,7 +618,7 @@ class EventoController extends Controller $evento->formAvaliacaoExterno = $path . $nome; } - if($request->docTutorial != null){ + if($request->docTutorial != null && ($request->tipoAvaliacao == 'form')){ $docTutorial = $request->docTutorial; $extension = $docTutorial->extension(); $path = 'docTutorial/' . $evento->id . '/'; @@ -610,6 +639,26 @@ class EventoController extends Controller $evento->update(); + // Editando campos de avaliacao + if ($request->tipoAvaliacao == 'campos') { + if($request->has('campos')){ + $camposAvaliacao->forceDelete(); + // $numCampos = $camposAvaliacao->count(); + // $numNovosCampos = count($request->inputField); + foreach ($request->get('campos') as $key => $value) { + $campoAval = new CampoAvaliacao(); + $campoAval->nome = $request->inputField[$value]['nome']; + $campoAval->nota_maxima = $request->inputField[$value]['nota_maxima']; + if ($request->inputField[$value]['descricao'] != null){ + $campoAval->descricao = $request->inputField[$value]['descricao']; + } + $campoAval->prioridade = $request->inputField[$value]['prioridade']; + $campoAval->evento_id = $evento->id; + $campoAval->save(); + } + } + } + $eventos = Evento::orderBy('nome')->get(); if($tipo_usuario == 'coordenador'){ @@ -664,7 +713,7 @@ class EventoController extends Controller $evento->delete(); - return redirect()->back(); + return redirect()->back()->with(['mensagem' => 'Edital deletado com sucesso!']); } public function detalhes(Request $request){ diff --git a/resources/views/evento/criarEvento.blade.php b/resources/views/evento/criarEvento.blade.php index aaed5ec..144532a 100755 --- a/resources/views/evento/criarEvento.blade.php +++ b/resources/views/evento/criarEvento.blade.php @@ -407,7 +407,7 @@
+ @if((old('tipoAvaliacao') == 'form') || old('tipoAvaliacao') == "") checked @endif value="form">
@@ -388,6 +390,240 @@ @endcomponent
+ +
+
+
+

Avaliação

+
+
+ +
+

Como a avaliação será realizada?

+
+ +
+ @if (old('tipoAvaliacao') != null) + + + + + + + +
+ @else + tipoAvaliacao == 'form' || $evento->tipoAvaliacao == '') checked @endif value="form"> + + + tipoAvaliacao == 'campos') checked @endif value="campos"> + + + tipoAvaliacao == 'link') checked @endif value="link"> +
+ @endif +
+ +
+
+
+ + + + + + O arquivo selecionado deve ter até 2mb. + @error('pdfFormAvalExterno') + + {{ $message }} + + @enderror +
+
+ +
+
+ + @if($evento->docTutorial != null) + + + + @else + + + + @endif + + O arquivo selecionado deve ser no formato PDF de até 2mb. + @error('docTutorial') + + {{ $message }} + + @enderror +
+
+
+ + + + +
@@ -400,9 +636,15 @@
- - - + @if($evento->pdfEdital != null) + + + + @else + + + + @endif O arquivo selecionado deve ser no formato PDF de até 2mb. @error('pdfEdital') @@ -416,9 +658,15 @@
- - - + @if($evento->modeloDocumento != null) + + + + @else + + + + @endif O arquivo selecionado deve ter até 2mb. @error('modeloDocumento') @@ -429,41 +677,12 @@
-
-
- - - - - - O arquivo selecionado deve ter até 2mb. - @error('pdfFormAvalExterno') - - {{ $message }} - - @enderror -
-
-
-
- - - - - - O arquivo selecionado deve ser no formato PDF de até 2mb. - @error('pdfFormAvalRelatorio') - - {{ $message }} - - @enderror -
-
+
- - @if($evento->docTutorial != null) - + + @if($evento->formAvaliacaoRelatorio != null) + @else @@ -471,15 +690,17 @@ @endif - + + O arquivo selecionado deve ser no formato PDF de até 2mb. - @error('docTutorial') + @error('pdfFormAvalRelatorio') - {{ $message }} - + {{ $message }} + @enderror
+
@@ -501,6 +722,159 @@ @endsection @section('javascript') + + @if($errors->has('somaNotas')) + + @endif + @endsection \ No newline at end of file -- GitLab