Commit 627ba05c authored by Lucas Henrique's avatar Lucas Henrique
Browse files

Adiciona novos tipos de avaliação ao cadastrar um edital

parent 2eac966d
......@@ -16,6 +16,7 @@ use App\Trabalho;
use App\AreaModalidade;
use App\Natureza;
use App\CoordenadorComissao;
use App\CampoAvaliacao;
use Illuminate\Http\Request;
use Carbon\Carbon;
use App\Rules\ExcelRule;
......@@ -82,7 +83,6 @@ class EventoController extends Controller
*/
public function store(Request $request)
{
$mytime = Carbon::now('America/Recife');
$yesterday = Carbon::yesterday('America/Recife');
$yesterday = $yesterday->toDateString();
......@@ -134,7 +134,6 @@ class EventoController extends Controller
'dt_fimRelatorioParcial' => ['required', 'date'],
'dt_inicioRelatorioFinal' => ['required', 'date'],
'dt_fimRelatorioFinal' => ['required', 'date'],
'pdfFormAvalExterno' => [($request->pdfFormAvalExternoPreenchido!=='sim'?'required':''), 'file','mimes:pdf,doc,docx,xlsx,xls,csv,zip', 'max:2048'],
'pdfEdital' => [($request->pdfEditalPreenchido!=='sim'?'required':''), 'file', 'mimes:pdf', 'max:2048'],
'inicioProjeto' => ['required', 'date'],
'fimProjeto' => ['required', 'date'],
......@@ -152,7 +151,7 @@ class EventoController extends Controller
'tipo' => ['required', 'string'],
'natureza' => ['required'],
'coordenador_id' => ['required'],
'numParticipantes' => ['required'],
'numParticipantes' => ['required'],
'nome_docExtra' => [Rule::requiredIf($request->check_docExtra != null),'max:255'],
#----------------------------------------------
'inicioSubmissao' => ['required', 'date', 'after:yesterday'],
......@@ -167,12 +166,31 @@ class EventoController extends Controller
'dt_fimRelatorioParcial' => ['required', 'date', 'after_or_equal:dt_inicioRelatorioParcial'],
'dt_inicioRelatorioFinal' => ['required', 'date', 'after:dt_fimRelatorioParcial'],
'dt_fimRelatorioFinal' => ['required', 'date', 'after_or_equal:dt_inicioRelatorioFinal'],
'pdfFormAvalExterno' => [($request->pdfFormAvalExternoPreenchido!=='sim'?'required':''), 'file','mimes:pdf,doc,docx,xlsx,xls,csv,zip', 'max:2048'],
'pdfEdital' => [($request->pdfEditalPreenchido!=='sim'?'required':''), 'file', 'mimes:pdf', 'max:2048'],
'inicioProjeto' => ['required', 'date', 'after:yesterday'],
'fimProjeto' => ['required', 'date', 'after_or_equal:fimSubmissao'],
//'modeloDocumento' => ['file', 'mimes:zip,doc,docx,odt,pdf', 'max:2048'],
]);
// Validação quando avaliação for por Barema
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 = Evento::create([
$evento['nome'] = $request->nome;
......@@ -203,6 +221,9 @@ class EventoController extends Controller
$evento['anexosStatus'] = 'final';
$evento['inicioProjeto'] = $request->inicioProjeto;
$evento['fimProjeto'] = $request->fimProjeto;
if($request->tipoAvaliacao == "link") {
$evento['formAvaliacaoExterno'] = $request->link;
}
//dd($evento);
// $user = User::find($request->coordenador_id);
......@@ -238,7 +259,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 . '/';
......@@ -257,7 +278,7 @@ class EventoController extends Controller
$evento->formAvaliacaoRelatorio = $path . $nome;
}
if(isset($request->docTutorial)){
if(isset($request->docTutorial) && ($request->tipoAvaliacao == 'form')){
$docTutorial = $request->docTutorial;
$extension = $docTutorial->extension();
$path = 'docTutorial/' . $evento->id . '/';
......@@ -269,6 +290,23 @@ class EventoController extends Controller
$evento->update();
// Criando campos de avaliacao
if ($request->tipoAvaliacao == 'campos') {
if($request->has('campos')){
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->has('inputField['. $value. ']["descricao"]')){
$campoAval->descricao = $request->inputField[$value]['descricao'];
}
$campoAval->prioridade = $request->inputField[$value]['prioridade'];
$campoAval->evento_id = $evento->id;
$campoAval->save();
}
}
}
// $user = Auth::user();
// $subject = "Evento Criado";
// Mail::to($user->email)
......@@ -300,7 +338,7 @@ class EventoController extends Controller
$nome = "modelo" . "." . $extension;
$eventoTemp->modeloDocumento = Storage::putFileAs($path, $request->modeloDocumento, $nome);
}
if(!(is_null($request->pdfFormAvalExterno)) ) {
if(!(is_null($request->pdfFormAvalExterno)) && ($request->tipoAvaliacao == 'form')) {
$extension = $request->pdfFormAvalExterno->extension();
$pasta = 'pdfFormAvalExterno/' . $eventoTemp->id;
$nome = "formulario de avaliação externo" . "." . $extension;
......@@ -311,7 +349,7 @@ class EventoController extends Controller
$eventoTemp->formAvaliacaoRelatorio = Storage::putFileAs($pasta, $request->pdfFormAvalRelatorio, 'formulario de avaliação do relatorio.pdf');
}
if(!(is_null($request->docTutorial)) ) {
if(!(is_null($request->docTutorial)) && ($request->tipoAvaliacao == 'form')) {
$extension = $request->docTutorial->extension();
$pasta = 'docTutorial/' . $eventoTemp->id;
$nome = "documento tutorial" . "." . $extension;
......@@ -647,7 +685,7 @@ class EventoController extends Controller
$numeroRevisores = Revisor::where('eventoId', $evento->id)->count();
$numeroComissao = ComissaoEvento::where('eventosId',$evento->id)->count();
// $atribuicoesProcessando
// $atribuicoesProcessando;
// dd($trabalhosEnviados);
$revs = Revisor::where('eventoId', $evento->id)->with('user')->get();
......
......@@ -407,14 +407,15 @@
<div class="mb-2">
<input type="radio" id="radioForm" name="tipoAvaliacao" onchange="displayTipoAvaliacao('form')"
checked value="form">
@if((old('tipoAvaliacao') == 'form') || old('tipoAvaliaco') == "") checked @endif value="form">
<label for="radioForm" style="margin-right: 5px">Formulário (em pdf)</label>
<input type="radio" id="radioCampos" name="tipoAvaliacao" onchange="displayTipoAvaliacao('campos')"
value="campos">
@if(old('tipoAvaliacao') == 'campos') checked @endif value="campos">
<label for="radioCampos" style="margin-right: 5px">Barema</label>
<input type="radio" id="radioLink" name="tipoAvaliacao" onchange="displayTipoAvaliacao('link')"
value="link">
@if(old('tipoAvaliacao') == 'link') checked @endif value="link">
<label for="radioLink" style="margin-right: 5px">Link</label><br>
</div>
......@@ -443,7 +444,7 @@
@endif
<input type="hidden" id="docTutorialPreenchido" name="docTutorialPreenchido" value="{{ old('docTutorialPreenchido') }}">
<input type="file" accept=".pdf,.docx,.doc,.zip" class="form-control-file pdf @error('docTutorial') is-invalid @enderror" name="docTutorial" value="{{ old('docTutorial') }}" id="docTutorial" onchange="exibirAnexoTemp(this)">
<small>O arquivo selecionado deve ser de até 2mb.</small>
<small>O arquivo selecionado deve ser de até 2mb.</small>
@error('docTutorial')
<span class="invalid-feedback" role="alert">
<strong>{{ $message }}</strong>
......@@ -456,29 +457,55 @@
<div class="row justify-content-center" style="margin-top:10px; display: none" id="displayCampos">
<table class="table table-bordered col-sm-12" id="dynamicAddRemove">
<tr>
<th>Nome</th>
<th>Nome<span style="color:red; font-weight:bold;">*</span></th>
<th>Descrição</th>
<th>Nota Máxima</th>
<th>Prioridade</th>
<th>Nota Máxima<span style="color:red; font-weight:bold;">*</span></th>
<th>Prioridade<span style="color:red; font-weight:bold;">*</span></th>
<th>Ação</th>
</tr>
<tr>
<td><input type="text" name="inputField[nome][0]" class="form-control nome" />
<td><input type="text" name="inputField[0][nome]" class="form-control nome @error('inputField.*.nome') is-invalid @enderror" value="{{ old('inputField[0][nome]') }}" />
@error('inputField.*.nome')
<span class="invalid-feedback" role="alert">
<strong>{{ $message }}</strong>
</span>
@enderror
</td>
<td><input type="text" name="inputField[descricao][0]" class="form-control descricao" />
<td><input type="text" name="inputField[0][descricao]" class="form-control descricao @error('inputField.*.descricao') is-invalid @enderror" value="{{ old('inputField[0][descricao]') }}" />
@error('inputField.*.descricao')
<span class="invalid-feedback" role="alert">
<strong>{{ $message }}</strong>
</span>
@enderror
</td>
<td><input type="number" min=1 step="1" name="inputField[nota_maxima][0]" class="form-control nota_maxima" />
<td><input type="number" min="1" step="1" name="inputField[0][nota_maxima]" class="form-control nota_maxima @error('inputField.*.nota_maxima') is-invalid @enderror" value="{{ old('inputField[0][nota_maxima]') }}" />
@error('inputField.*.nota_maxima')
<span class="invalid-feedback" role="alert">
<strong>{{ $message }}</strong>
</span>
@enderror
</td>
<td>
<select name="addMoreInputFields[prioridade][0]" class="form-control prioridade">
<select name="inputField[0][prioridade]" class="form-control prioridade @error('inputField.*.prioridade') is-invalid @enderror">
<option value="" selected>-- ORDEM --</option>
<option value="1" class="ordem_option">1</option>
</select>
@error('inputField.*.prioridade')
<span class="invalid-feedback" role="alert">
<strong>{{ $message }}</strong>
</span>
@enderror
</td>
<td><button type="button" name="add" id="dynamic-ar" class="btn btn-outline-primary">Adicionar</button></td>
</tr>
</table>
@if($errors->has('inputField.*'))
<div class="col-sm-12 alert alert-danger" style="display: none" id="nota_maxima_invalida">
Você deve preencher os campos obrigatórios.
</div>
@endif
<div class="col-sm-12 alert alert-danger" style="display: none" id="nota_maxima_invalida">
A soma das notas máximas não pode ser maior que 10.
</div>
......@@ -488,9 +515,15 @@
<div class="col-sm-12 row" style="margin-top:10px; display: none" id="displayLink">
<label for="link" class="col-form-label">{{ __('Link para o formulário:') }}<span style="color:red; font-weight:bold;">*</span></label>
<input id="link" type="text" class="form-control @error('link') is-invalid @enderror" name="link" value="{{ old('link') }}" required autocomplete="link">
<input id="link" type="text" class="form-control @error("link") is-invalid @enderror" name="link" value="{{ old('link') }}">
@error('link')
<span class="invalid-feedback" role="alert">
<strong>{{ $message }}</strong>
</span>
@enderror
</div>
<hr>
<div class="row subtitulo">
<div class="col-sm-12">
......@@ -575,12 +608,18 @@
var numCampos = 1;
var currentOptions = {'0': ''}
$(document).ready(function() {
displayTipoAvaliacao("{{ old('tipoAvaliacao') }}")
});
// Adiciona campo de avaliação
$("#dynamic-ar").click(function () {
++i;
++numCampos;
$("#dynamicAddRemove").append(
'<tr><td><input type="text" name="inputField[nome][' + i + ']" class="form-control nome"/></td><td><input type="text" name="inputField[descricao][' + i + ']" class="form-control descricao" /></td><td><input type="number" min=1 step="1" name="inputField[nota_maxima][' + i + ']" class="form-control nota_maxima" /></td><td><select name="addMoreInputFields[prioridade][' + i + ']" class="form-control prioridade"><option value="" selected>-- ORDEM --</option><option value="1" class="ordem_option">1</option></select></td><td><button type="button" class="btn btn-outline-danger remove-input-field" name="removeButton[' + i + ']">Remover</button></td></tr>');
'<tr><td><input type="text" name="inputField[' + i + '][nome]" class="form-control nome @error("inputField.*.nome") is-invalid @enderror" /></td><td><input type="text" name="inputField[' + i + '][descricao]" class="form-control descricao @error("inputField.*.descricao") is-invalid @enderror"/></td><td><input type="number" min="1" step="1" name="inputField[' + i + '][nota_maxima]" class="form-control nota_maxima @error("inputField.*.nota_maxima") is-invalid @enderror" /></td><td><select name="inputField[' + i + '][prioridade]" class="form-control prioridade @error("inputField.*.prioridade") is-invalid @enderror"><option value="" selected>-- ORDEM --</option><option value="1" class="ordem_option">1</option></select></td><td><button type="button" class="btn btn-outline-danger remove-input-field" name="removeButton[' + i + ']">Remover</button></td></tr>'
);
$("#displayCampos").append('<input type="checkbox" id="checkB[' + i + ']" checked name="campos[]" value="' + i + '" hidden>');
......@@ -605,7 +644,6 @@
})
//console.log(currentOptions);
});
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment