Unverified Commit 55a0747c authored by José Rômulo's avatar José Rômulo Committed by GitHub
Browse files

Merge branch 'lmts-ufape:master' into master

parents e211da21 22e72923
web: vendor/bin/heroku-php-apache2 public/
......@@ -15,7 +15,7 @@ class CoordenadorComissao extends Model
}
public function trabalho(){
return $this->hasMany('App\Trabalho');
return $this->hasMany('App\Trabalho', 'coordenador_id');
}
}
......@@ -88,6 +88,7 @@ class ArquivoController extends Controller
$arquivo = Arquivo::find($id);
if (Storage::disk()->exists($arquivo->nome)) {
ob_end_clean();
return Storage::download($arquivo->nome);
}
return abort(404);
......
......@@ -166,6 +166,7 @@ class EventoController extends Controller
$evento['coordenadorId'] = $request->coordenador_id;
$evento['criador_id'] = $user_id;
$evento['numParticipantes'] = $request->numParticipantes;
$evento['consu'] = $request->has('consu');
$evento['anexosStatus'] = 'final';
//dd($evento);
......@@ -395,7 +396,7 @@ class EventoController extends Controller
$evento->resultado_preliminar = $request->resultado_preliminar;
$evento->resultado_final = $request->resultado_final;
$evento->coordenadorId = $request->coordenador_id;
$evento->consu = $request->has('consu');
if($request->pdfEdital != null){
$pdfEdital = $request->pdfEdital;
$path = 'pdfEdital/' . $evento->id . '/';
......@@ -597,6 +598,7 @@ class EventoController extends Controller
$evento = Evento::find($id);
if (Storage::disk()->exists($evento->pdfEdital)) {
ob_end_clean();
return Storage::download($evento->pdfEdital);
}
......@@ -607,6 +609,7 @@ class EventoController extends Controller
$evento = Evento::find($id);
if (Storage::disk()->exists($evento->modeloDocumento)) {
ob_end_clean();
return Storage::download($evento->modeloDocumento);
}
......
......@@ -54,6 +54,7 @@ class HomeController extends Controller
}
public function downloadArquivo(Request $request){
ob_end_clean();
return Storage::download($request->file);
}
}
......@@ -239,12 +239,14 @@ class TrabalhoController extends Controller
Storage::delete($trabalho->anexoAutorizacaoComiteEtica);
}
$trabalho->anexoAutorizacaoComiteEtica = Storage::putFileAs($pasta, $request->anexoAutorizacaoComiteEtica, 'Comite_de_etica.pdf');
$trabalho->justificativaAutorizacaoEtica = null;
} elseif( isset($request->justificativaAutorizacaoEtica)){
if(Storage::disk()->exists($trabalho->justificativaAutorizacaoEtica)) {
Storage::delete($trabalho->justificativaAutorizacaoEtica);
}
$trabalho->justificativaAutorizacaoEtica = Storage::putFileAs($pasta, $request->justificativaAutorizacaoEtica, 'Justificativa.pdf');
$trabalho->anexoAutorizacaoComiteEtica = null;
}
//Anexo Lattes
......@@ -260,6 +262,7 @@ class TrabalhoController extends Controller
if(Storage::disk()->exists($trabalho->anexoPlanilhaPontuacao)) {
Storage::delete($trabalho->anexoPlanilhaPontuacao);
}
$trabalho->anexoPlanilhaPontuacao = Storage::putFileAs($pasta, $request->anexoPlanilhaPontuacao, "Planilha.". $request->file('anexoPlanilhaPontuacao')->extension());
}
......@@ -270,7 +273,7 @@ class TrabalhoController extends Controller
}
$trabalho->anexoGrupoPesquisa = Storage::putFileAs($pasta, $request->anexoGrupoPesquisa, "Grupo_de_pesquisa.". $request->file('anexoGrupoPesquisa')->extension());
}
$trabalho->save();
return $trabalho;
}
......@@ -289,9 +292,12 @@ class TrabalhoController extends Controller
//Autorização ou Justificativa
if( isset($request->anexoAutorizacaoComiteEtica)){
$trabalho->anexoAutorizacaoComiteEtica = Storage::putFileAs($pasta, $request->anexoAutorizacaoComiteEtica, 'Comite_de_etica.pdf');
$trabalho->justificativaAutorizacaoEtica = null;
} elseif( isset($request->justificativaAutorizacaoEtica)){
$trabalho->justificativaAutorizacaoEtica = Storage::putFileAs($pasta, $request->justificativaAutorizacaoEtica, 'Justificativa.pdf');
$trabalho->anexoAutorizacaoComiteEtica = null;
}
//Anexo Lattes
......@@ -314,14 +320,22 @@ class TrabalhoController extends Controller
public function show($id)
{
//
$projeto = Auth::user()->proponentes->trabalhos()->where('id', $id)->first();
if(Auth::user()->tipo == 'administrador'){
$projeto = Trabalho::find($id);
}
if(!$projeto){
// $projeto = Auth::user()->coordenadorComissao->trabalho()->where('id', $id)->first();
return back()->withErrors(['Proposta não encontrada!']);
}
$edital = Evento::find($projeto->evento_id);
$grandeAreas = GrandeArea::all();
$areas = Area::all();
$subareas = Subarea::all();
$funcaoParticipantes = FuncaoParticipantes::all();
$participantes = Participante::where('trabalho_id', $id)->get();
$participantes = $projeto->participantes;
$participantesUsersIds = Participante::where('trabalho_id', $id)->select('user_id')->get();
$users = User::whereIn('id', $participantesUsersIds)->get();
$arquivos = Arquivo::where('trabalhoId', $id)->get();
......@@ -342,7 +356,10 @@ class TrabalhoController extends Controller
public function exportProjeto($id)
{
$projeto = Trabalho::find($id);
$projeto = Auth::user()->proponentes->trabalhos()->where('id', $id)->first();
if(!$projeto){
return back()->withErrors(['Proposta não encontrada!']);
}
$edital = Evento::find($projeto->evento_id);
$grandeAreas = GrandeArea::all();
$areas = Area::all();
......@@ -364,7 +381,10 @@ class TrabalhoController extends Controller
public function edit($id)
{
$proponente = Proponente::where('user_id', Auth::user()->id)->first();
$projeto = Trabalho::find($id);
$projeto = Auth::user()->proponentes->trabalhos()->where('id', $id)->first();
if(!$projeto){
return back()->withErrors(['Proposta não encontrada!']);
}
$edital = Evento::find($projeto->evento_id);
$grandeAreas = GrandeArea::all();
$areas = Area::all();
......@@ -392,234 +412,6 @@ class TrabalhoController extends Controller
]);
}
// $mytime = Carbon::now('America/Recife');
// $mytime = $mytime->toDateString();
// $evento = Evento::find($request->editalId);
// $coordenador = CoordenadorComissao::find($evento->coordenadorId);
// //Relaciona o projeto criado com o proponente que criou o projeto
// $proponente = Proponente::where('user_id', Auth::user()->id)->first();
// //$trabalho->proponentes()->save($proponente);
// //dd($coordenador->id);
// $trabalho = "trabalho";
// if($evento->inicioSubmissao > $mytime){
// if($mytime >= $evento->fimSubmissao){
// return redirect()->route('home');
// }
// }
// //O anexo de Decisão do CONSU dependo do tipo de edital
// if( $evento->tipo == 'PIBIC' || $evento->tipo == 'PIBIC-EM'){
// $validatedData = $request->validate([
// 'editalId' => ['required', 'string'],
// 'nomeProjeto' => ['required', 'string'],
// 'grandeArea' => ['required', 'string'],
// 'area' => ['required', 'string'],
// 'subArea' => ['required', 'string'],
// 'pontuacaoPlanilha' => ['required', 'string'],
// 'linkGrupo' => ['required', 'string'],
// 'linkLattesEstudante' => ['required', 'string'],
// 'nomeParticipante.*' => ['required', 'string'],
// 'emailParticipante.*' => ['required', 'string'],
// 'funcaoParticipante.*' => ['required', 'string'],
// ]);
// }else{
// //Caso em que o anexo da Decisão do CONSU não necessário
// $validatedData = $request->validate([
// 'editalId' => ['required', 'string'],
// 'nomeProjeto' => ['required', 'string',],
// 'grandeArea' => ['required', 'string'],
// 'area' => ['required', 'string'],
// 'subArea' => ['required', 'string'],
// 'pontuacaoPlanilha' => ['required', 'string'],
// 'linkGrupo' => ['required', 'string'],
// 'linkLattesEstudante' => ['required', 'string'],
// 'nomeCoordenador' => ['required', 'string'],
// 'nomeParticipante.*' => ['required', 'string'],
// 'emailParticipante.*' => ['required', 'string'],
// 'funcaoParticipante.*' => ['required', 'string'],
// ]);
// }
// $trabalho = Trabalho::find($id);
// $trabalho->titulo = $request->nomeProjeto;
// $trabalho->coordenador_id = $coordenador->id;
// $trabalho->grande_area_id = $request->grandeArea;
// $trabalho->area_id = $request->area;
// $trabalho->sub_area_id = $request->subArea;
// $trabalho->pontuacaoPlanilha = $request->pontuacaoPlanilha;
// $trabalho->linkGrupoPesquisa = $request->linkGrupo;
// $trabalho->linkLattesEstudante = $request->linkLattesEstudante;
// $trabalho->data = $mytime;
// $trabalho->evento_id = $request->editalId;
// $trabalho->proponente_id = $proponente->id;
// $pasta = 'trabalhos/' . $request->editalId . '/' . $trabalho->id;
// if (!(is_null($request->anexoDecisaoCONSU))) {
// Storage::delete($trabalho->anexoDecisaoCONSU);
// $trabalho->anexoDecisaoCONSU = Storage::putFileAs($pasta, $request->anexoDecisaoCONSU, "CONSU.pdf");
// }
// if (!(is_null($request->anexoProjeto))) {
// Storage::delete($trabalho->anexoProjeto);
// $trabalho->anexoProjeto = Storage::putFileAs($pasta, $request->anexoProjeto, "Projeto.pdf");
// }
// if (!(is_null($request->anexoComiteEtica))) {
// Storage::delete($trabalho->anexoComiteEtica);
// $trabalho->anexoAutorizacaoComiteEtica = Storage::putFileAs($pasta, $request->anexoComiteEtica, "Comite_de_etica.pdf");
// }
// if (!(is_null($request->anexoLattesCoordenador))) {
// Storage::delete($trabalho->anexoLattesCoordenador);
// $trabalho->anexoLattesCoordenador = Storage::putFileAs($pasta, $request->anexoLattesCoordenador, "Latter_Coordenador.pdf");
// }
// if (!(is_null($request->anexoPlanilhaPontuacao))) {
// Storage::delete($trabalho->anexoLattesCoordenador);
// $trabalho->anexoPlanilhaPontuacao = Storage::putFileAs($pasta, $request->anexoPlanilhaPontuacao, "Planilha.pdf");
// }
// //atualizando projeto
// $trabalho->update();
// // criando novos participantes que podem ter sido adicionados
// $participantesUsersIds = Participante::where('trabalho_id', '=', $trabalho->id)->select('user_id')->get();
// $users = User::whereIn('id', $participantesUsersIds)->get();
// $emailParticipantes = [];
// foreach ($users as $user) {
// array_push($emailParticipantes, $user->email);
// }
// foreach ($request->emailParticipante as $key => $value) {
// // criando novos participantes que podem ter sido adicionados
// if (!(in_array($request->emailParticipante[$key], $emailParticipantes, false))) {
// $userParticipante = User::where('email', $value)->first();
// if($userParticipante == null){
// $passwordTemporario = Str::random(8);
// $subject = "Participante de Projeto";
// Mail::to($value)->send(new EmailParaUsuarioNaoCadastrado(Auth()->user()->name, ' ', 'Participante', $evento->nome, $passwordTemporario, $subject));
// $usuario = User::create([
// 'email' => $value,
// 'password' => bcrypt($passwordTemporario),
// 'usuarioTemp' => true,
// 'name' => $request->nomeParticipante[$key],
// 'tipo' => 'participante',
// ]);
// $participante = new Participante();
// $participante->user_id = $usuario->id;
// $participante->trabalho_id = $trabalho->id;
// $participante->funcao_participante_id = $request->funcaoParticipante[$key];
// $participante->save();
// }else{
// $participante = new Participante();
// $participante->user_id = $userParticipante->id;
// $participante->trabalho_id = $trabalho->id;
// $participante->funcao_participante_id = $request->funcaoParticipante[$key];
// $participante->save();
// $participante->trabalhos()->save($trabalho);
// $subject = "Participante de Projeto";
// $email = $value;
// Mail::to($email)
// ->send(new SubmissaoTrabalho($userParticipante, $subject, $evento, $trabalho));
// }
// $path = 'trabalhos/' . $request->editalId . '/' . $trabalho->id .'/';
// $nome = $request->nomePlanoTrabalho[$key] .".pdf";
// $file = $request->anexoPlanoTrabalho[$key];
// Storage::putFileAs($path, $file, $nome);
// $arquivo = new Arquivo();
// $arquivo->titulo = $request->nomePlanoTrabalho[$key];
// $arquivo->nome = $path . $nome;
// $arquivo->trabalhoId = $trabalho->id;
// $arquivo->data = $mytime;
// $arquivo->participanteId = $participante->id;
// $arquivo->versaoFinal = true;
// $arquivo->save();
// }
// //atualizando os participantes que já estão no projeto e planos de trabalho se enviados
// if (in_array($request->emailParticipante[$key], $emailParticipantes, false)) {
// $userParticipante = User::where('email', $value)->first();
// if($userParticipante != null){
// $user = User::where('email', $request->emailParticipante[$key])->first();
// $participante = Participante::where([['user_id', '=', $user->id], ['trabalho_id', '=', $trabalho->id]])->first();
// $user->name = $request->nomeParticipante[$key];
// $user->update();
// $participante->funcao_participante_id = $request->funcaoParticipante[$key];
// $participante->update();
// //atualizando planos de trabalho
// if ($request->anexoPlanoTrabalho != null && array_key_exists($key, $request->anexoPlanoTrabalho)) {
// if (!(is_null($request->anexoPlanoTrabalho[$key]))) {
// $arquivo = Arquivo::where('participanteId', $participante->id)->first();
// //se plano já existir, deletar
// if($arquivo != null){
// Storage::delete($arquivo->nome);
// $arquivo->delete();
// }
// //atualizar plano
// if($request->semPlano[$key] == null){
// $path = 'trabalhos/' . $request->editalId . '/' . $trabalho->id .'/';
// $nome = $request->nomePlanoTrabalho[$key] .".pdf";
// $file = $request->anexoPlanoTrabalho[$key];
// Storage::putFileAs($path, $file, $nome);
// $arquivo = new Arquivo();
// $arquivo->titulo = $request->nomePlanoTrabalho[$key];
// $arquivo->nome = $path . $nome;
// $arquivo->trabalhoId = $trabalho->id;
// $arquivo->data = $mytime;
// $arquivo->participanteId = $participante->id;
// $arquivo->versaoFinal = true;
// $arquivo->save();
// }
// }
// }
// //removendo planos de trabalho
// if($request->nomePlanoTrabalho != null && array_key_exists($key, $request->nomePlanoTrabalho)){
// if($request->semPlano[$key] == 'sim'){
// $arquivo = Arquivo::where('participanteId', $participante->id)->first();
// //se plano já existir, deletar
// if($arquivo != null){
// Storage::delete($arquivo->nome);
// $arquivo->delete();
// }
// }
// }
// }
// }
// }
// // Atualizando possiveis usuários removidos
// $participantesUsersIds = Participante::where('trabalho_id', '=', $trabalho->id)->select('user_id')->get();
// $users = User::whereIn('id', $participantesUsersIds)->get();
// foreach ($users as $user) {
// if (!(in_array($user->email, $request->emailParticipante, false))) {
// $participante = Participante::where([['user_id', '=', $user->id], ['trabalho_id', '=', $trabalho->id]])->first();
// $arquivo = Arquivo::where('participanteId', $participante->id)->first();
// if($arquivo != null){
// Storage::delete($arquivo->nome);
// $arquivo->delete();
// }
// $participante->delete();
// }
// }
public function destroy(Request $request)
{
$projeto = Trabalho::find($request->id);
......@@ -793,6 +585,7 @@ class TrabalhoController extends Controller
$projeto = Trabalho::find($id);
//dd($projeto);
if (Storage::disk()->exists($projeto->anexoProjeto)) {
ob_end_clean();
return Storage::download($projeto->anexoProjeto);
}
return abort(404);
......@@ -800,6 +593,7 @@ class TrabalhoController extends Controller
public function baixarAnexoGrupoPesquisa($id) {
$projeto = Trabalho::find($id);
if (Storage::disk()->exists($projeto->anexoGrupoPesquisa)) {
ob_end_clean();
return Storage::download($projeto->anexoGrupoPesquisa);
}
return abort(404);
......@@ -809,6 +603,7 @@ class TrabalhoController extends Controller
$projeto = Trabalho::find($id);
if (Storage::disk()->exists($projeto->anexoDecisaoCONSU)) {
ob_end_clean();
return Storage::download($projeto->anexoDecisaoCONSU);
}
return abort(404);
......@@ -818,6 +613,7 @@ class TrabalhoController extends Controller
$projeto = Trabalho::find($id);
if (Storage::disk()->exists($projeto->anexoAutorizacaoComiteEtica)) {
ob_end_clean();
return Storage::download($projeto->anexoAutorizacaoComiteEtica);
}
return abort(404);
......@@ -827,6 +623,7 @@ class TrabalhoController extends Controller
$projeto = Trabalho::find($id);
if (Storage::disk()->exists($projeto->anexoLattesCoordenador)) {
ob_end_clean();
return Storage::download($projeto->anexoLattesCoordenador);
}
return abort(404);
......@@ -836,7 +633,32 @@ class TrabalhoController extends Controller
$projeto = Trabalho::find($id);
if (Storage::disk()->exists($projeto->anexoPlanilhaPontuacao)) {
return Storage::download($projeto->anexoPlanilhaPontuacao);
ob_end_clean();
$file = $projeto->anexoPlanilhaPontuacao;
$ext = explode(".", $file);
switch ($ext[1]) {
case 'xlsx':
$hearder = 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet';
break;
case 'xls':
$hearder = 'application/vnd.ms-excel';
break;
case 'ods':
$hearder = 'application/vnd.oasis.opendocument.spreadsheet';
break;
default:
$hearder = 'application/vnd.ms-excel';
break;
}
$headers = array(
"Content-type: {$hearder}",
);
return Storage::download($projeto->anexoPlanilhaPontuacao, "Planilha.{$ext[1]}",$headers);
}
return abort(404);
}
......@@ -845,6 +667,7 @@ class TrabalhoController extends Controller
$projeto = Trabalho::find($id);
if (Storage::disk()->exists($projeto->justificativaAutorizacaoEtica)) {
ob_end_clean();
return Storage::download($projeto->justificativaAutorizacaoEtica);
}
......@@ -858,6 +681,7 @@ class TrabalhoController extends Controller
->orderByDesc('updated_at')->first();
if (Storage::disk()->exists($trabalho->$nomeAnexo)) {
ob_end_clean();
return Storage::download($trabalho->$nomeAnexo);
}
return abort(404);
......@@ -868,68 +692,17 @@ class TrabalhoController extends Controller
->orderByDesc('updated_at')->first();
if (Storage::disk()->exists($eventoTemp->$nomeAnexo)) {
ob_end_clean();
return Storage::download($eventoTemp->$nomeAnexo);
}
return abort(404);
}
// try {
// $edital = Evento::find($request->editalId);
// $hoje = now();
// if (!($edital->inicioSubmissao < $hoje && $edital->fimSubmissao >= $hoje)) {
// return redirect()->route('inicial')->with(['error'=> 0, 'mensagem' => 'As submissões para o edital '. $edital->titulo .' foram encerradas.']);
// }
// $projeto = $this->atribuirDados($request, $edital);
// $projeto->save();
// // Email de submissão
// // $subject = "Submissão de Trabalho";
// // $proponente = Auth()->user();
// // Mail::to($proponente->email)->send(new SubmissaoTrabalho($proponente, $subject, $edital, $projeto));
// $id = $projeto->id;
// Notification::send(Auth::user(), new SubmissaoNotification($id));
// // Salvando participantes
// $this->salvarParticipantes($request, $edital, $projeto);
// return redirect(route('proponente.projetos'))->with(['mensagem' => 'Projeto submetido com sucesso!']);
// } catch (\Throwable $th) {
// return back()->with(['mensagem' => $th->getMessage()]);
// }
// foreach ($request->marcado as $key => $value) {
// $user = User::firstOrCreate([
// ['email' => $request->email[$value]],
// [
// 'name' => $request->name[$value], 'instituicao' => $request->instituicao[$value],
// 'cpf' => $request->cpf[$value], 'celular' => $request->celular[$value],
// ]
// ]);
// $participante = Participante::create([
// 'rg' => $request->rg[$value], 'data_de_nascimento'=> $request->data_de_nascimento[$value],
// 'curso' => $request->curso[$value], 'turno' => $request->turno[$value],
// 'ordem_prioridade'=> $request->ordem_prioridade[$value],'periodo_atual' => $request->periodo_atual[$value],
// 'total_periodos' => $request->total_periodos[$value],'media_do_curso'=> $request->media_do_curso[$value]
// ]);
// $user->endereco()->create([
// 'rua' => $request->rua[$value],
// 'numero' => $request->numero[$value],
// 'bairro' => $request->bairro[$value],
// 'cidade' => $request->cidade[$value],
// 'uf' => $request->uf[$value],
// 'cep' => $request->cep[$value],
// 'complemento' => $request->complemento[$value],
// ]);
// $user->participantes()->save($participante);
// $trabalho->participantes()->save($participante);
// }
public function update(UpdateTrabalho $request, $id)
{
// dd($request->participante_id);
// dd( $request->all() );
try {
if (!$request->has('rascunho') ) {
$request->merge([
......@@ -944,31 +717,36 @@ class TrabalhoController extends Controller
$request->merge([
'coordenador_id' => $evento->coordenadorComissao->id
]);
$trabalho = Auth::user()->proponentes->trabalhos()->where('id', $id)->first();
DB::beginTransaction();
if(!$trabalho){
return back()->withErrors(['Proposta não encontrada']);
}
$trabalho = Auth::user()->proponentes->trabalhos()->where('id', $id)->first();
$trabalho->update($request->except([
'anexoProjeto', 'anexoDecisaoCONSU','anexoPlanilhaPontuacao',
'anexoLattesCoordenador','anexoGrupoPesquisa','anexoAutorizacaoComiteEtica',
'justificativaAutorizacaoEtica'
'anexoLattesCoordenador','anexoGrupoPesquisa','justificativaAutorizacaoEtica','anexoAutorizacaoComiteEtica'
]));
$pasta = 'trabalhos/' . $evento->id . '/' . $trabalho->id;
$trabalho = $this->armazenarAnexosFinais($request, $pasta, $trabalho, $evento);
$trabalho->save();
if ($request->marcado == null) {
$idExcluido = $trabalho->participantes->pluck('id');
}else{
$idExcluido = [];
}
// dd($idExcluido);
// dd(array_search( 2, $request->marcado));
foreach ($request->participante_id as $key => $value) {
// $value = intval($value);
if($request->marcado != null && array_search( $key, $request->marcado) === false){
if($value !== null)
array_push($idExcluido, $value);
}
}
// dd($idExcluido);
foreach ($idExcluido as $key => $value) {
$trabalho->participantes()->find($value)->delete();
}
......@@ -1070,9 +848,7 @@ class TrabalhoController extends Controller
}
$pasta = 'trabalhos/' . $evento->id . '/' . $trabalho->id;
$trabalho = $this->armazenarAnexosFinais($request, $pasta, $trabalho, $evento);
$trabalho->save();
DB::commit();
......
......@@ -2,9 +2,10 @@
namespace App\Http\Requests;
use Illuminate\Foundation\Http\FormRequest;
use Illuminate\Support\Facades\Auth;
use App\Evento;
use Illuminate\Validation\Rule;
use Illuminate\Support\Facades\Auth;
use Illuminate\Foundation\Http\FormRequest;
class StoreTrabalho extends FormRequest
{
......@@ -26,7 +27,7 @@ class StoreTrabalho extends FormRequest
public function rules()
{
$evento = Evento::find($this->editalId);
$rules = [
'editalId' => ['required', 'string'],
'marcado.*' => ['required'],
......@@ -37,7 +38,7 @@ class StoreTrabalho extends FormRequest
'pontuacaoPlanilha' => ['required', 'string'],
'linkGrupoPesquisa' => ['required', 'string'],
'anexoProjeto' => ['required', 'mimes:pdf'],
'anexoDecisaoCONSU' => ['required', 'mimes:pdf'],
'anexoDecisaoCONSU' => [Rule::requiredIf($evento->consu), 'mimes:pdf'],
'anexoPlanilhaPontuacao' => ['required'],
'anexoLattesCoordenador' => ['required', 'mimes:pdf'],
'anexoGrupoPesquisa' => ['required', 'mimes:pdf'],
......@@ -62,7 +63,6 @@ class StoreTrabalho extends FormRequest
$rules['cidade.'.$value] = ['required', 'string'];
$rules['uf.'.$value] = ['required', 'string'];
$rules['cep.'.$value] = ['required', 'string'];
$rules['complemento.'.$value] = ['required', 'string'];
//participante
$rules['rg.'.$value] = ['required', 'string'];
$rules['data_de_nascimento.'.$value] = ['required', 'string'];
......
......@@ -2,10 +2,11 @@
namespace App\Http\Requests;
use App\Evento;
use App\Trabalho;
use Illuminate\Foundation\Http\FormRequest;
use Illuminate\Support\Facades\Auth;
use Illuminate\Validation\Rule;
use Illuminate\Support\Facades\Auth;
use Illuminate\Foundation\Http\FormRequest;
class UpdateTrabalho extends FormRequest
{
......@@ -27,7 +28,7 @@ class UpdateTrabalho extends FormRequest
public function rules()
{
$projeto = Trabalho::find($this->id);
$evento = Evento::find($this->editalId);
$rules = [
'editalId' => ['required', 'string'],
'marcado.*' => ['required'],
......@@ -38,15 +39,15 @@ class UpdateTrabalho extends FormRequest
'pontuacaoPlanilha' => ['required', 'string'],
'linkGrupoPesquisa' => ['required', 'string'],
'anexoProjeto' => [[Rule::requiredIf(!$this->has('rascunho') && $projeto->anexoProjeto == null)], 'mimes:pdf'],
'anexoDecisaoCONSU' => ['mimes:pdf'],
'anexoDecisaoCONSU' => [Rule::requiredIf($evento->consu && $projeto->anexoDecisaoCONSU == null), 'mimes:pdf'],
'anexoPlanilhaPontuacao' => [[Rule::requiredIf(!$this->has('rascunho') && $projeto->anexoPlanilhaPontuacao == null)]],
'anexoLattesCoordenador' => [[Rule::requiredIf(!$this->has('rascunho') && $projeto->anexoLattesCoordenador == null)], 'mimes:pdf'],
'anexoGrupoPesquisa' => [[Rule::requiredIf(!$this->has('rascunho') && $projeto->anexoGrupoPesquisa == null)], 'mimes:pdf'],
'anexoAutorizacaoComiteEtica' => [
Rule::requiredIf((!$this->has('rascunho') && $projeto->anexoAutorizacaoComiteEtica == null) )
Rule::requiredIf((!$this->has('rascunho') && $projeto->justificativaAutorizacaoEtica == null && $projeto->anexoAutorizacaoComiteEtica == null) )
],
'justificativaAutorizacaoEtica' => [
Rule::requiredIf((!$this->has('rascunho') && $projeto->anexoAutorizacaoComiteEtica == null))
Rule::requiredIf((!$this->has('rascunho') && $projeto->anexoAutorizacaoComiteEtica == null && $projeto->justificativaAutorizacaoEtica == null))
],
];
......@@ -66,7 +67,6 @@ class UpdateTrabalho extends FormRequest
$rules['cidade.'.$value] = ['required', 'string'];
$rules['uf.'.$value] = ['required', 'string'];
$rules['cep.'.$value] = ['required', 'string'];
$rules['complemento.'.$value] = ['required', 'string'];
//participante
$rules['rg.'.$value] = ['required', 'string'];
$rules['data_de_nascimento.'.$value] = ['required', 'string'];
......@@ -91,4 +91,14 @@ class UpdateTrabalho extends FormRequest
return $rules;
}
}
public function messages()
{
return [
'titulo.required' => 'O :attribute é obrigatório',
'justificativaAutorizacaoEtica.required' => 'O campo justificativa Autorizacao Etica é obrigatório',
'anexoAutorizacaoComiteEtica.required' => 'O campo anexoAutorizacao Comite Etica é obrigatório',
];
}
}
......@@ -1643,16 +1643,16 @@
},
{
"name": "monolog/monolog",
"version": "2.2.0",
"version": "2.3.0",
"source": {
"type": "git",
"url": "https://github.com/Seldaek/monolog.git",
"reference": "1cb1cde8e8dd0f70cc0fe51354a59acad9302084"
"reference": "df991fd88693ab703aa403413d83e15f688dae33"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/Seldaek/monolog/zipball/1cb1cde8e8dd0f70cc0fe51354a59acad9302084",
"reference": "1cb1cde8e8dd0f70cc0fe51354a59acad9302084",
"url": "https://api.github.com/repos/Seldaek/monolog/zipball/df991fd88693ab703aa403413d83e15f688dae33",
"reference": "df991fd88693ab703aa403413d83e15f688dae33",
"shasum": ""
},
"require": {
......@@ -1671,7 +1671,7 @@
"php-amqplib/php-amqplib": "~2.4",
"php-console/php-console": "^3.1.3",
"phpspec/prophecy": "^1.6.1",
"phpstan/phpstan": "^0.12.59",
"phpstan/phpstan": "^0.12.91",
"phpunit/phpunit": "^8.5",
"predis/predis": "^1.1",
"rollbar/rollbar": "^1.3",
......@@ -1723,7 +1723,7 @@
],
"support": {
"issues": "https://github.com/Seldaek/monolog/issues",
"source": "https://github.com/Seldaek/monolog/tree/2.2.0"
"source": "https://github.com/Seldaek/monolog/tree/2.3.0"
},
"funding": [
{
......@@ -1735,7 +1735,7 @@
"type": "tidelift"
}
],
"time": "2020-12-14T13:15:25+00:00"
"time": "2021-07-05T11:34:13+00:00"
},
{
"name": "nesbot/carbon",
......@@ -1832,16 +1832,16 @@
},
{
"name": "nikic/php-parser",
"version": "v4.10.5",
"version": "v4.11.0",
"source": {
"type": "git",
"url": "https://github.com/nikic/PHP-Parser.git",
"reference": "4432ba399e47c66624bc73c8c0f811e5c109576f"
"reference": "fe14cf3672a149364fb66dfe11bf6549af899f94"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/nikic/PHP-Parser/zipball/4432ba399e47c66624bc73c8c0f811e5c109576f",
"reference": "4432ba399e47c66624bc73c8c0f811e5c109576f",
"url": "https://api.github.com/repos/nikic/PHP-Parser/zipball/fe14cf3672a149364fb66dfe11bf6549af899f94",
"reference": "fe14cf3672a149364fb66dfe11bf6549af899f94",
"shasum": ""
},
"require": {
......@@ -1882,9 +1882,9 @@
],
"support": {
"issues": "https://github.com/nikic/PHP-Parser/issues",
"source": "https://github.com/nikic/PHP-Parser/tree/v4.10.5"
"source": "https://github.com/nikic/PHP-Parser/tree/v4.11.0"
},
"time": "2021-05-03T19:11:20+00:00"
"time": "2021-07-03T13:36:55+00:00"
},
{
"name": "opis/closure",
......@@ -7321,5 +7321,5 @@
"php": "^7.2"
},
"platform-dev": [],
"plugin-api-version": "2.1.0"
"plugin-api-version": "2.0.0"
}
<?php
use Illuminate\Support\Str;
// $DATABASE_URL=parse_url('postgres://shldedzeknxkxv:2b9d0bcbdc7bd07dcbc4db2716e1af333788b38234d527435607a3fd1353f52b@ec2-54-227-246-76.compute-1.amazonaws.com:5432/d87d2lg0us76su');
return [
/*
......@@ -15,7 +15,7 @@ return [
|
*/
'default' => env('DB_CONNECTION', 'mysql'),
'default' => env('DB_CONNECTION', 'pgsql'),
/*
|--------------------------------------------------------------------------
......@@ -78,6 +78,20 @@ return [
'sslmode' => 'prefer',
],
// 'pgsql' => array(
// 'driver' => 'pgsql',
// 'host' => $DATABASE_URL['host'],
// 'port' => $DATABASE_URL['port'],
// 'database' => ltrim($DATABASE_URL['path'], "/"),
// 'username' => $DATABASE_URL['user'],
// 'password' => $DATABASE_URL['pass'],
// 'charset' => 'utf8',
// 'prefix' => '',
// 'prefix_indexes' => true,
// 'schema' => 'public',
// 'sslmode' => 'prefer',
// ),
'sqlsrv' => [
'driver' => 'sqlsrv',
'url' => env('DATABASE_URL'),
......
<?php
use Illuminate\Database\Migrations\Migration;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Support\Facades\Schema;
class AlterTableEventos extends Migration
{
/**
* Run the migrations.
*
* @return void
*/
public function up()
{
Schema::table('eventos', function (Blueprint $table) {
$table->boolean('consu')->default(false);
});
}
/**
* Reverse the migrations.
*
* @return void
*/
public function down()
{
Schema::table('eventos', function (Blueprint $table) {
$table->dropColumn('consu');
});
}
}
......@@ -15,7 +15,7 @@
</div>
{{-- nome | Participantes | Tipo--}}
<div class="row justify-content-center">
<div class="col-sm-6">
<div class="col-sm-12">
<label for="nome" class="col-form-label">{{ __('Nome*:') }}</label>
<input id="nome" type="text" class="form-control @error('nome') is-invalid @enderror" name="nome" value="{{ old('nome') }}" required autocomplete="nome" autofocus>
......@@ -26,7 +26,7 @@
@enderror
</div>
<div class="col-sm-2">
<div class="col-sm-5">
<label for="tipo" class="col-form-label">{{ __('Tipo*:') }}</label>
<select id="tipo" type="text" class="form-control @error('tipo') is-invalid @enderror" name="tipo" value="{{ old('tipo') }}" required>
<option @if(old('tipo')=='PIBIC' ) selected @endif value="PIBIC">PIBIC</option>
......@@ -56,7 +56,8 @@
@enderror
</div>
<div class="col-sm-2">
<label for="numParticipantes" class="col-form-label">{{ __('numParticipantes*:') }}</label>
<label for="numParticipantes" class="col-form-label">{{ __('Nº de Participantes*:') }}</label>
<input id="numParticipantes" type="number" min="1" max="20" class="form-control @error('numParticipantes') is-invalid @enderror" name="numParticipantes" value="{{ old('numParticipantes') }}" required autocomplete="numParticipantes" autofocus>
@error('numParticipantes')
......@@ -65,6 +66,18 @@
</span>
@enderror
</div>
<div class="col-sm-3">
<label for="consu" class="col-form-label">{{ __('Consu obrigatório?*') }}</label>
<br>
<input type="checkbox" name="consu" id="consu">
{{-- <input id="consu" type="checkbox" class="form-control @error('consu') is-invalid @enderror" name="consu" @if(old('consu')) checked @endif required autocomplete="consu" autofocus> --}}
@error('consu')
<span class="invalid-feedback" role="alert">
<strong>{{ $message }}</strong>
</span>
@enderror
</div>
</div>{{-- end nome | Participantes | Tipo--}}
{{-- Descricao Edital --}}
......
......@@ -15,7 +15,7 @@
</div>
{{-- nome | Tipo--}}
<div class="row justify-content-center">
<div class="col-sm-6">{{--Nome do evento--}}
<div class="col-sm-12">{{--Nome do evento--}}
<label for="nome" class="col-form-label">{{ __('Nome*:') }}</label>
<input value="{{$evento->nome}}" id="nome" type="text" class="form-control @error('nome') is-invalid @enderror" name="nome" value="{{ old('nome') }}" required autocomplete="nome" autofocus>
......@@ -27,7 +27,7 @@
</div>{{--End Nome do evento--}}
{{-- Tipo do evento --}}
<div class="col-sm-2">
<div class="col-sm-5">
<label for="tipo" class="col-form-label">{{ __('Tipo*:') }}</label>
<!-- <input value="{{$evento->tipo}}" id="tipo" type="text" class="form-control @error('tipo') is-invalid @enderror" name="tipo" value="{{ old('tipo') }}" required autocomplete="tipo" autofocus> -->
<select id="tipo" type="text" class="form-control @error('tipo') is-invalid @enderror" name="tipo" required>
......@@ -70,6 +70,18 @@
</span>
@enderror
</div>
<div class="col-sm-3">
<label for="consu" class="col-form-label">{{ __('Consu obrigatório?*') }}</label>
<br>
<input type="checkbox" @if($evento->consu) checked @endif name="consu" id="consu">
{{-- <input id="consu" type="checkbox" class="form-control @error('consu') is-invalid @enderror" name="consu" @if(old('consu')) checked @endif required autocomplete="consu" autofocus> --}}
@error('consu')
<span class="invalid-feedback" role="alert">
<strong>{{ $message }}</strong>
</span>
@enderror
</div>
</div>{{-- end nome | Participantes | Tipo--}}
{{-- Descricao Evento --}}
......
......@@ -41,6 +41,17 @@
@enderror
@endcomponent
</div>
@if($edital->consu)
<div class="form-group col-md-6">
<label class=" control-label" for="firstname">Decisão do CONSU (.pdf)<span style="color: red; font-weight:bold">*</span></label>
<input type="file" class="input-group-text" name="anexoDecisaoCONSU" accept=".pdf" />
@error('anexoDecisaoCONSU')
<span class="invalid-feedback" role="alert" style="overflow: visible; display:block">
<strong>{{ $message }}</strong>
</span>
@enderror
</div>
@else
<div class="form-group col-md-6">
<label class=" control-label" for="firstname">Decisão do CONSU (.pdf)</label>
<input type="file" class="input-group-text" name="anexoDecisaoCONSU" accept=".pdf" />
......@@ -51,6 +62,8 @@
@enderror
</div>
@endif
<div class="form-group col-md-6" style="margin-top: 10px">
@component('componentes.input', ['label' => 'Grupo de Pesquisa (.pdf)'])
<input type="file" class="input-group-text" name="anexoGrupoPesquisa" placeholder="Anexo do Grupo de Pesquisa" accept="application/pdf" />
......
......@@ -102,7 +102,7 @@
<div class="col-md-12"><h5>Endereço</h5></div>
<div class="col-6">
@component('componentes.input', ['label' => 'CEP'])
<input type="text" class="form-control" value="{{old('cep')[$i] ?? "" }}" name="cep[{{$i}}]" placeholder="CEP" />
<input type="text" class="form-control cep" value="{{old('cep')[$i] ?? "" }}" name="cep[{{$i}}]" placeholder="CEP" />
@error('cep.'.$i)
<span class="invalid-feedback" role="alert" style="overflow: visible; display:block">
<strong>{{ $message }}</strong>
......@@ -167,14 +167,15 @@
@endcomponent
</div>
<div class="col-12">
@component('componentes.input', ['label' => 'Complemento',])
<div class="form-group">
<label class=" control-label" for="firstname">Complemento</label>
<input type="text" class="form-control" value="{{old('complemento')[$i] ?? "" }}" name="complemento[{{$i}}]" placeholder="Complemento" />
@error('complemento.'.$i)
<span class="invalid-feedback" role="alert" style="overflow: visible; display:block">
<strong>{{ $message }}</strong>
</span>
@enderror
@endcomponent
</div>
</div>
<div class="col-md-12"><h5>Dados do curso</h5></div>
<div class="col-6">
......
......@@ -45,7 +45,7 @@
</div>
<div class="form-group col-md-6">
<label for="pontuacaoPlanilha">Valor da planilha de pontuação <span style="color: red; font-weight:bold">*</span></label>
<input class="form-control @error('pontuacaoPlanilha') is-invalid @enderror" type="number" min="0" name="pontuacaoPlanilha"
<input class="form-control @error('pontuacaoPlanilha') is-invalid @enderror" type="number" min="0" step=".01" name="pontuacaoPlanilha"
value="{{old('pontuacaoPlanilha')}}" >
@error('pontuacaoPlanilha')
......
......@@ -29,20 +29,20 @@
<div class="row justify-content-center">
@component('evento.formulario.projeto', ['grandeAreas' => $grandeAreas])
@endcomponent
@include('evento.formulario.projeto')
@component('evento.formulario.proponente')
@endcomponent
@component('evento.formulario.anexos')
@endcomponent
@include('evento.formulario.proponente')
@component('evento.formulario.participantes', ['estados' => $estados, 'enum_turno' => $enum_turno, 'edital'=>$edital])
@endcomponent
@component('evento.formulario.finalizar')
@endcomponent
@include('evento.formulario.anexos')
@include('evento.formulario.participantes')
@include('evento.formulario.finalizar')
</div>
</div>
......
......@@ -13,10 +13,22 @@
O Submeta é um sistema de submissão de projetos acadêmicos, que pode ser adotado para os diferentes propósitos de Ensino, Pesquisa e Extensão. O sistema abrange todas as principais etapas relacionadas à submissão de projetos, permitindo o lançamento e configuração de editais, além de gerenciar a distribuição das avaliações e os pareceres técnicos dos avaliadores, como também, visualizar os projetos submetidos pelos proponentes.
</p>
</div>
<br>
<div class="row position-text">
{{-- <button class="btn btn-opcoes-edital" style="margin-bottom: 20px;">
Leia mais
</button> --}}
<div class="alert alert-danger" role="alert">
<p>
<strong>INFORME</strong>
</p>
<p>
<strong>Comitês Internos do PIBIC e do PIBITI comunicam prorrogração do prazo de envio de propostas</strong>
</p>
<p>
Os Comitês Internos do PIBIC e do PIBITI da UFAPE informam que o prazo para envio das propostas referentes aos Editais PIBIC/PIC e PIBITI UFAPE 2021/2022 foi prorrogado para o dia 07/07/2021 até às 23h59min (horário de Brasília).
</p>
<p>
Não serão aceitas propostas submetidas após este prazo.
</p>
</div>
</div>
</div>
<br>
......
......@@ -61,7 +61,7 @@
<div class="row justify-content-center">
<div class="col-12">
@component('componentes.input', ['label' => 'Planilha de Pontuação (.xlsx,.xls,.ods)'])
<input type="file" class="input-group-text" name="anexoPlanilhaPontuacao" accept=".xlsx, .xls, .ods" />
<input type="file" class="input-group-text" name="anexoPlanilhaPontuacao" accept=".xlsx, .xls, .ods, .gnumeric" />
@error('anexoPlanilhaPontuacao')
<span class="invalid-feedback" role="alert" style="overflow: visible; display:block">
<strong>{{ $message }}</strong>
......@@ -83,6 +83,35 @@
</div>
{{-- Anexo da Decisão do CONSU --}}
@if($edital->consu)
<div class="form-group col-md-6" style="margin-top: 10px">
<div class="row justify-content-center">
<div class="col-12">
<div class="form-group">
<label class=" control-label" for="firstname">Decisão do CONSU (.pdf<span style="color: red; font-weight:bold">*</span>)</label>
<input type="file" class="input-group-text" name="anexoDecisaoCONSU" accept=".pdf" />
@error('anexoDecisaoCONSU')
<span class="invalid-feedback" role="alert" style="overflow: visible; display:block">
<strong>{{ $message }}</strong>
</span>
@enderror
</div>
</div>
@if($projeto->anexoDecisaoCONSU)
<div class="col-3 ">
<a href="{{ route('baixar.anexo.consu', ['id' => $projeto->id]) }}"><i class="fas fa-file-pdf fa-2x"></i></a>
</div>
@else
<div class="col-3 text-danger">
<p><i class="fas fa-times-circle fa-2x"></i></p>
</div>
@endif
</div>
</div>
@else
<div class="form-group col-md-6" style="margin-top: 10px">
<div class="row justify-content-center">
<div class="col-12">
......@@ -111,6 +140,9 @@
</div>
</div>
@endif
{{-- Anexo do Grupo de Pesquisa --}}
<div class="form-group col-md-6" style="margin-top: 10px">
<div class="row justify-content-center">
......@@ -140,26 +172,26 @@
<div class="form-group col-md-6">
<label for="botao" class="col-form-label @error('botao') is-invalid @enderror" data-toggle="tooltip" data-placement="bottom" title="Se possuir, coloque todas em único arquivo pdf." style="margin-right: 15px;">{{ __('Possui autorizações especiais?') }} <span style="color: red; font-weight:bold">*</span></label>
<input type="radio" checked id="radioSim" name="sim" onchange="displayAutorizacoesEspeciais('sim')">
<input type="radio" id="radioSim" @if($projeto->anexoAutorizacaoComiteEtica) checked @endif name="sim" onchange="displayAutorizacoesEspeciais('sim')">
<label for="radioSim" style="margin-right: 5px">Sim</label>
<input type="radio" id="radioNao" name="nao" onchange="displayAutorizacoesEspeciais('nao')">
<input type="radio" id="radioNao" @if($projeto->justificativaAutorizacaoEtica) checked @endif name="nao" onchange="displayAutorizacoesEspeciais('nao')">
<label for="radioNao" style="margin-right: 5px">Não</label><br>
<span id="idAvisoAutorizacaoEspecial" class="invalid-feedback" role="alert" style="overflow: visible; display:none">
<strong>Selecione a autorização e envie o arquivo!</strong>
</span>
<div class="form-group" id="displaySim" style="display: block; margin-top:-1rem">
<div class="form-group" id="displaySim" @if($projeto->anexoAutorizacaoComiteEtica) style="display: block; margin-top:-1rem" @else style="display: none; margin-top:-1rem" @endif >
@component('componentes.input', ['label' => 'Sim, declaro que necessito de autorizações especiais (.pdf)'])
<input type="file" class="input-group-text" name="anexoAutorizacaoComiteEtica" accept=".pdf" />
<div class="row justify-content-center">
@if($projeto->justificativaAutorizacaoEtica || $projeto->anexoAutorizacaoComiteEtica )
@if($projeto->anexoAutorizacaoComiteEtica )
<div class="row justify-content-center">
<div class="col-3 mt-2">
<a href="{{ route('baixar.anexo.comite', ['id' => $projeto->id]) }}"><i class="fas fa-file-pdf fa-2x"></i></a>
</div>
</div>
@else
<div class="col-3 text-danger">
<div class="col-3 text-danger mt-2">
<p><i class="fas fa-times-circle fa-2x"></i></p>
</div>
@endif
......@@ -173,17 +205,17 @@
@endcomponent
</div>
<div class="form-group" id="displayNao" style="display: none; margin-top:-1rem">
<div class="form-group" id="displayNao" @if($projeto->justificativaAutorizacaoEtica) style="display: block; margin-top:-1rem" @else style="display: none; margin-top:-1rem" @endif >
@component('componentes.input', ['label' => 'Declaração de que não necessito de autorização especiais (.pdf)'])
<input type="file" class="input-group-text" name="justificativaAutorizacaoEtica" accept=".pdf" />
@if($projeto->justificativaAutorizacaoEtica || $projeto->anexoAutorizacaoComiteEtica )
@if($projeto->justificativaAutorizacaoEtica)
<div class="row justify-content-center">
<div class="col-3 mt-2">
<a href="{{ route('baixar.anexo.justificativa', ['id' => $projeto->id]) }}"><i class="fas fa-file-pdf fa-2x"></i></a>
</div>
</div>
@else
<div class="col-3 text-danger">
<div class="col-3 text-danger mt-2">
<p><i class="fas fa-times-circle fa-2x"></i></p>
</div>
@endif
......
......@@ -177,14 +177,16 @@
@endcomponent
</div>
<div class="col-12">
@component('componentes.input', ['label' => 'Complemento',])
<div class="form-group">
<label class=" control-label" for="firstname">Complemento</label>
<input type="text" class="form-control" value="{{old('complemento')[$i] ?? $p->user->endereco->complemento }}" name="complemento[{{$i}}]" placeholder="Complemento" />
@error('complemento.'.$i)
<span class="invalid-feedback" role="alert" style="overflow: visible; display:block">
<strong>{{ $message }}</strong>
</span>
@enderror
@endcomponent
</div>
</div>
<div class="col-md-12"><h5>Dados do curso</h5></div>
<div class="col-6">
......@@ -403,7 +405,7 @@
<div class="col-md-12"><h5>Endereço</h5></div>
<div class="col-6">
@component('componentes.input', ['label' => 'CEP'])
<input type="text" class="form-control" value="{{old('cep')[$i] ?? "" }}" name="cep[{{$i}}]" placeholder="CEP" />
<input type="text" class="form-control cep" value="{{old('cep')[$i] ?? "" }}" name="cep[{{$i}}]" placeholder="CEP" />
@error('cep.'.$i)
<span class="invalid-feedback" role="alert" style="overflow: visible; display:block">
<strong>{{ $message }}</strong>
......@@ -468,14 +470,15 @@
@endcomponent
</div>
<div class="col-12">
@component('componentes.input', ['label' => 'Complemento',])
<div class="form-group">
<label class=" control-label" for="firstname">Complemento</label>
<input type="text" class="form-control" value="{{old('complemento')[$i] ?? "" }}" name="complemento[{{$i}}]" placeholder="Complemento" />
@error('complemento.'.$i)
<span class="invalid-feedback" role="alert" style="overflow: visible; display:block">
<strong>{{ $message }}</strong>
</span>
@enderror
@endcomponent
</div>
</div>
<div class="col-md-12"><h5>Dados do curso</h5></div>
<div class="col-6">
......
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