Commit 6266594f authored by alissonalbuquerque's avatar alissonalbuquerque
Browse files

fix(cursos): add correções em CRUD de cursos

parent 997e6dfe
......@@ -17,15 +17,10 @@ class CursoController extends Controller
*/
public function index()
{
$campusWithCursos = [];
$allCampus = Campus::all();
foreach($allCampus as $campus){
$campus->cursos = Curso::where('campus_id', '=', $campus->id)->get();
array_push($campusWithCursos, $campus);
}
$cursos = Curso::orderBy('campus_id')->orderBy('name')->get();
return view('curso.index', [
'campusWithCursos' => $campusWithCursos,
'cursos' => $cursos,
'menu' => Menu::CURSOS
]);
}
......@@ -62,18 +57,7 @@ class CursoController extends Controller
$model->fill($request->all());
$model->save();
return redirect()->route('curso_index')->with('success', 'Salvo com sucesso!');
}
/**
* Display the specified resource.
*
* @param int $id
* @return \Illuminate\Http\Response
*/
public function show($id)
{
//
return redirect()->route('curso_index')->with('success', 'Curso salvo com sucesso!');
}
/**
......@@ -110,7 +94,7 @@ class CursoController extends Controller
$model->fill($request->all());
$model->save();
return redirect()->route('curso_index')->with('success', 'Atualizado com sucesso!');
return redirect()->route('curso_index')->with('success', 'Curso atualizado com sucesso!');
}
/**
......@@ -120,11 +104,11 @@ class CursoController extends Controller
* @param string $id
* @return \Illuminate\Http\Response
*/
public function destroy($id)
public function delete($id)
{
$model = Curso::find($id);
$model->delete();
return redirect()->route('curso_index')->with('success', 'Excluído com sucesso!');
return redirect()->route('curso_index')->with('success', 'Curso excluído com sucesso!');
}
/**
......
......@@ -41,14 +41,19 @@ class Curso extends Model
{
$rules = [
'name' => ['min:8', 'max:255'],
'campus_id' => ['required']
'name' => ['required', 'min:8', 'max:255'],
'campus_id' => ['required', 'integer']
];
$messages = [
'min' => "O campo não tem o mínimo de caracteres permitido",
'max' => "O campo atingiu o máximo de caracteres permitido",
'required' => "O campo precisa ser preenchido",
//name
'name.required' => 'O campo "Nome do Campus" é obrigatório.',
'name.min' => 'O campo "Nome do Campus" deve ter no minímo 8 (oito) caracteres.',
'name.max' => 'O campo "Nome do Campus" deve ter no máximo 255 (duzentos e cinquenta e cinco) caracteres.',
//campus_id
'campus_id.required' => 'O campo "Campus" é obrigatório.',
'campus_id.integer' => 'O campo "Campus" deve ser um inteiro.',
];
try {
......
......@@ -34,21 +34,21 @@
</div>
</div>
[<div class='mb-3 col-sm-6'>]
[ <div class="form-group">]
[ <label for="unidade_id">Unidade</label>]
[ <select class="form-select" name="unidade_id" id="unidade_id">]
[ <option value="" disabled selected hidden> Selecione... </option>]
[ @foreach ($unidades as $unidade)]
[ <option value="{{ $unidade->id }}" {{ old('unidade_id') == $unidade->id ? 'selected' : '' }}>]
[ {{ $unidade->name }} </option>]
[ @endforeach]
[ </select>]
[ @error('unidade_id')]
[ <span class="text-danger"> {{ $message }} </span>]
[ @enderror]
[ </div>]
[</div>]
<div class='mb-3 col-sm-6'>
<div class="form-group">
<label for="unidade_id">Unidade</label>
<select class="form-select" name="unidade_id" id="unidade_id">
<option value="" disabled selected hidden> Selecione... </option>
@foreach ($unidades as $unidade)
<option value="{{ $unidade->id }}" {{ old('unidade_id') == $unidade->id ? 'selected' : '' }}>
{{ $unidade->name }} </option>
@endforeach
</select>
@error('unidade_id')
<span class="text-danger"> {{ $message }} </span>
@enderror
</div>
</div>
<div class='mt-1 text-end'>
@include('components.buttons.btn-cancel', [
......
@extends('layouts.main')
@section('title', 'Campus')
@section('title', 'Cursos')
@section('header')
@include('layouts.header', [
'user' => Auth::user(),
......@@ -8,16 +8,15 @@
@endsection
@section('nav')
@include('layouts.navigation', [
'index_menu' => $index_menu,
'menu' => $menu,
])
@endsection
@section('body')
<div class="content mx-auto">
<h1 class="titulo pt-4 pb-4 mb-3 border-bottom">CADASTRO CURSO</h1>
<p class="pb-4 mb-3 text-center text-muted align-items-center">
Insira os dados correspondentes nos campos exibidos abaixo
</p>
<!-- Formulario -->
<div class="mb-3">
<h3 class="h4"> Cadastrar Curso </h3>
</div>
<div>
<form action="{{ route('curso_store') }}" method="post">
@csrf
@method('POST')
......@@ -68,3 +67,19 @@
</form>
</div>
@endsection
@section('scripts')
<script type="text/javascript">
$('#campus_id').select2(
{
placeholder: 'Campus...',
allowClear: true,
ajax: {
url: '{{ route("campus_search") }}',
dataType: 'json'
}
});
</script>
@endsection
\ No newline at end of file
......@@ -41,28 +41,26 @@
</tr>
</thead>
<tbody>
@foreach ($campusWithCursos as $campusWithCurso)
@foreach ($campusWithCurso->cursos as $curso)
<tr>
<td>{{ $curso->name }}</td>
<td>{{ $curso->campus }}</td>
<td>
<div class="btn-group" role="group">
<div class="me-1">
@include('components.buttons.btn-edit', [
'route' => route('curso_edit', ['id' => $curso->id]),
])
</div>
<div class="me-1">
@include('components.buttons.btn-delete', [
'id' => $curso->id,
'route' => route('curso_delete', ['id' => $curso->id]),
])
</div>
@foreach ($cursos as $curso)
<tr>
<td>{{ $curso->name }}</td>
<td>{{ $curso->campus }}</td>
<td>
<div class="btn-group" role="group">
<div class="me-1">
@include('components.buttons.btn-edit', [
'route' => route('curso_edit', ['id' => $curso->id]),
])
</div>
</td>
</tr>
@endforeach
<div class="me-1">
@include('components.buttons.btn-delete', [
'id' => $curso->id,
'route' => route('curso_delete', ['id' => $curso->id]),
])
</div>
</div>
</td>
</tr>
@endforeach
</tbody>
</table>
......
@extends('layouts.main')
@section('title', 'Campus')
@section('title', 'Cursos')
@section('header')
@include('layouts.header', [
'user' => Auth::user(),
......@@ -8,17 +8,15 @@
@endsection
@section('nav')
@include('layouts.navigation', [
'index_menu' => $index_menu,
'menu' => $menu,
])
@endsection
@section('body')
<div class="content mx-auto">
<h1 class="titulo pt-4 pb-4 mb-3 border-bottom">CADASTRO CURSO</h1>
<p class="pb-4 mb-3 text-center text-muted align-items-center">
Insira os dados correspondentes nos campos exibidos abaixo
</p>
<div class="mb-3">
<h3 class="h4"> Atualizar Curso </h3>
</div>
<!-- Formulario -->
<div>
<form action="{{ route('curso_update', $curso->id ) }}" method="post">
@csrf
@method('POST')
......@@ -72,3 +70,19 @@
</form>
</div>
@endsection
@section('scripts')
<script type="text/javascript">
$('#campus_id').select2(
{
placeholder: 'Unidade...',
allowClear: true,
ajax: {
url: '{{ route("campus_search") }}',
dataType: 'json'
}
});
</script>
@endsection
\ No newline at end of file
......@@ -9,6 +9,6 @@ Route::prefix('/curso')->group(function () {
Route::post('/store', [CursoController::class, 'store'])->name('curso_store');
Route::get('/edit/{id}', [CursoController::class, 'edit'])->name('curso_edit');
Route::post('/update/{id}', [CursoController::class, 'update'])->name('curso_update');
Route::delete('/delete/{id}', [CursoController::class, 'destroy'])->name('curso_delete');
Route::delete('/delete/{id}', [CursoController::class, 'delete'])->name('curso_delete');
Route::get('/search', [CursoController::class, 'actionSearch'])->name('curso_search');
});
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