Commit ba97c0e4 authored by alissonalbuquerque's avatar alissonalbuquerque
Browse files

add alterações do crud do pad

parent 06519e72
......@@ -5,13 +5,15 @@ namespace App\Http\Controllers;
use App\Http\Controllers\Controller;
use Illuminate\Http\Request;
use App\Models\PAD;
use App\Models\Tabelas\Constants;
use Database\Seeders\PadSeeder;
use Exception;
use Illuminate\Support\Facades\Auth;
use Illuminate\Support\Facades\Validator;
use Illuminate\Validation\Rule;
class PADController extends Controller
class PadController extends Controller
{
/**
* Show last PAD.
......@@ -20,8 +22,12 @@ class PADController extends Controller
*/
public function index()
{
$PADs = PAD::where('user_id', '=', Auth::user()->id);
return view('pad.index', ["PADs" => $PADs, 'index_menu' => 1 ]);
if(Auth::user()->isTypeAdmin()) {
$pads = Pad::all();
return view('pad.admin.index', ['pads' => $pads]);
}
dd('refatorar');
}
/**
......@@ -30,13 +36,11 @@ class PADController extends Controller
* @return \Illuminate\Http\Response
*/
public function create()
{
return view('pad.create', ['index_menu' => 1 ]);
}
public function anexo()
{
return view('pad.anexo', ['index_menu' => 1 ]);
{
$status = [
Constants::STATUS_ATIVO => Constants::listStatus(Constants::STATUS_ATIVO)
];
return view('pad.admin.create', ['status' => $status]);
}
/**
......@@ -46,47 +50,87 @@ class PADController extends Controller
* @return \Illuminate\Http\Response
*/
public function store(Request $request)
{
$validated = $request->validate([
'nome' => ['required', 'string', 'min:5', 'max:255'],
'status' => ['required', 'integer'],
'data_inicio' => ['required', 'date', 'before_or_equal:data_fim'],
'data_fim' => ['required', 'date', 'after_or_equal:data_inicio'],
],
[
'required' => 'O campo de :attribute é obrigatório',
'nome.min' => 'O campo de :attribute deve ter no mínimo 5 letras',
'nome.max' => 'O campo de :attribute deve ter no máximo 255 letras',
'data_inicio.before_or_equal' => 'A :attribute deve ser uma data anterior ou igual a data de fim',
'data_fim.after_or_equal' => 'A :attribute deve ser uma data posterior ou igual a data de início',
]);
if($validated) {
$model = new Pad($request->all());
if($model->save()) {
return redirect()->route('pad_index')->with('success', 'PAD cadastrado com sucesso!');
} else {
return redirect()->route('pad_index')->with('success', 'Erro ao cadastrar o PAD!');
}
}
}
public function anexo()
{
$rules = [
'first_name' => 'required|string|min:3|max:255',
'city_name' => 'required|string|min:3|max:255',
'email' => 'required|string|email|max:255'
];
$validator = Validator::make($request->all(),$rules);
if ($validator->fails()) {
return redirect('insert')
->withInput()
->withErrors($validator);
}
else{
$data = $request->input();
try{
$student = new StudInsert;
$student->first_name = $data['first_name'];
$student->last_name = $data['last_name'];
$student->city_name = $data['city_name'];
$student->email = $data['email'];
$student->save();
return redirect('insert')->with('status',"Insert successfully");
}
catch(Exception $e){
return redirect('insert')->with('failed',"operation failed");
}
}
return redirect('/dashboard');
return view('pad.anexo', ['index_menu' => 1 ]);
}
// /**
// * Store a newly created resource in storage.
// *
// * @param \Illuminate\Http\Request $request
// * @return \Illuminate\Http\Response
// */
// public function store(Request $request)
// {
// $rules = [
// 'first_name' => 'required|string|min:3|max:255',
// 'city_name' => 'required|string|min:3|max:255',
// 'email' => 'required|string|email|max:255'
// ];
// $validator = Validator::make($request->all(),$rules);
// if ($validator->fails()) {
// return redirect('insert')
// ->withInput()
// ->withErrors($validator);
// }
// else{
// $data = $request->input();
// try{
// $student = new StudInsert;
// $student->first_name = $data['first_name'];
// $student->last_name = $data['last_name'];
// $student->city_name = $data['city_name'];
// $student->email = $data['email'];
// $student->save();
// return redirect('insert')->with('status',"Insert successfully");
// }
// catch(Exception $e){
// return redirect('insert')->with('failed',"operation failed");
// }
// }
// return redirect('/dashboard');
// }
/**
* Show the form for editing the specified resource.
*
* @param int $id
* @param integer $id
* @return \Illuminate\Http\Response
*/
public function edit($id)
{
$model = PAD::find($id);
return view('pad.update', ['pad' => $model]);
$pad = PAD::find($id);
$status = Constants::listStatus();
return view('pad.admin.edit', ['pad' => $pad, 'status' => $status]);
}
/**
......@@ -98,11 +142,40 @@ class PADController extends Controller
*/
public function update(Request $request, $id)
{
$model = PAD::find($id);
$model->name = $request->name;
$model->save();
$validated = $request->validate([
'nome' => ['required', 'string', 'min:5', 'max:255'],
'status' => ['required', 'integer'],
'data_inicio' => ['required', 'date', 'before_or_equal:data_fim'],
'data_fim' => ['required', 'date', 'after_or_equal:data_inicio'],
],
[
'required' => 'O campo de :attribute é obrigatório',
'nome.min' => 'O campo de :attribute deve ter no mínimo 5 letras',
'nome.max' => 'O campo de :attribute deve ter no máximo 255 letras',
'data_inicio.before_or_equal' => 'A :attribute deve ser uma data anterior ou igual a data de fim',
'data_fim.after_or_equal' => 'A :attribute deve ser uma data posterior ou igual a data de início',
]);
return redirect('/pad/index');
if($validated) {
$model = new Pad($request->all());
if($model->save()) {
return redirect()->route('pad_index')->with('success', 'PAD atualizado com sucesso!');
} else {
return redirect()->route('pad_index')->with('success', 'Erro ao atualizar o PAD!');
}
}
}
public function delete($id) {
$model = Pad::find($id);
if($model->delete()) {
return redirect()->route('pad_index')->with('success', 'PAD removido com sucesso!');
} else {
return redirect()->route('pad_index')->with('fail', 'Não foi possível remover o PAD!');
}
}
/**
......
......@@ -2,44 +2,32 @@
namespace App\Models;
use App\Models\Tabelas\Constants;
use Carbon\Carbon;
use Illuminate\Database\Eloquent\Factories\HasFactory;
use Illuminate\Database\Eloquent\Model;
use Illuminate\Database\Eloquent\SoftDeletes;
use PHPUnit\TextUI\XmlConfiguration\Constant;
class PAD extends Model
class Pad extends Model
{
use HasFactory;
/**
* References table PADs
*
* @var string
*/
protected $table = 'PADs';
/**
* The attributes that are mass assignable.
*
* @var array
*/
protected $fillable = ['ano', 'semestre', 'carga_horaria', 'categoria', 'afastamento_total', 'afastamento_parcial', 'exerce_funcao_admin', 'exerce_funcao_sindical', 'licenca_de_acor_legais', 'outras_observacoes', 'professor_id', 'curso_id'];
/**
* Get User with user.id = user.campus_id
*
* @return User
*/
public function professor()
{
return $this->belongsTo(User::class);
protected $table = 'pad';
protected $fillable = ['id', 'nome', 'data_inicio', 'data_fim', 'status'];
protected $dates = ['deleted_at'];
public function getStatusAsText() {
return Constants::listStatus($this->status);
}
public function getDateInicio() {
return Carbon::parse($this->data_inicio)->format('d/m/Y');
}
/**
* Get Curso with curso.id = curso.curso_id
*
* @return Curso
*/
public function curso()
{
return $this->belongsTo(Curso::class);
public function getDateFim() {
return Carbon::parse($this->data_fim)->format('d/m/Y');
}
}
......@@ -24,6 +24,10 @@ class Constants {
const NATUREZA_VIVENCIA = 4;
const NATUREZA_OUTROS = 5;
const STATUS_ATIVO = 1;
const STATUS_INATIVO = 2;
const STATUS_ARQUIVADO = 3;
/**
* @return array|string
......@@ -91,7 +95,15 @@ class Constants {
return $value !== null? $values[$value] : $values;
}
public static function listStatus($value = null) {
$values = [
self::STATUS_ATIVO => 'Ativo',
self::STATUS_INATIVO => 'Inativo',
self::STATUS_ARQUIVADO => 'Arquivado',
];
return $value !== null? $values[$value] : $values;
}
}
\ No newline at end of file
<?php
use Illuminate\Database\Migrations\Migration;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Support\Facades\Schema;
class CreatePadTable extends Migration
{
/**
* Run the migrations.
*
* @return void
*/
public function up()
{
Schema::create('pad', function (Blueprint $table) {
$table->id();
$table->string('nome');
$table->date('data_inicio');
$table->date('data_fim');
$table->boolean('status');
$table->softDeletes();
$table->timestamps();
});
}
/**
* Reverse the migrations.
*
* @return void
*/
public function down()
{
Schema::dropIfExists('pad');
}
}
......@@ -2,7 +2,6 @@
namespace Database\Seeders;
use App\Models\Unidade;
use Illuminate\Database\Seeder;
class DatabaseSeeder extends Seeder
......@@ -22,7 +21,7 @@ class DatabaseSeeder extends Seeder
CursoSeeder::class,
UserSeeder::class,
PlanejamentoSeeder::class,
PADSeeder::class,
PadSeeder::class,
DisciplinaSeeder::class,
]);
}
......
......@@ -6,7 +6,7 @@ use App\Models\PAD;
use App\Models\User;
use Illuminate\Database\Seeder;
class PADSeeder extends Seeder
class PadSeeder extends Seeder
{
/**
* Run the database seeds.
......@@ -14,14 +14,6 @@ class PADSeeder extends Seeder
* @return void
*/
public function run()
{
$users = User::where('type', '=', User::TYPE_TEACHER)->get();
foreach($users as $user) {
PAD::create([
'user_id' => $user->id,
'licenca_de_acor_legais' => ""
]);
}
{
}
}
......@@ -41,7 +41,7 @@ class UserSeeder extends Seeder
'name' => "Admin",
'email' => "admin@upe.br",
'email_verified_at' => null,
'password' => Hash::make('12345678'),
'password' => Hash::make('@admin'),
'document' => "100000000",
'status' => User::STATUS_ACTIVE,
'campus_id' => NULL,
......
......@@ -47,7 +47,11 @@
@include('components.buttons.btn-cancel', [
'route' => route('campus_index'),
])
@include('components.buttons.btn-save')
@include('components.buttons.btn-save', [
'content' => 'Cadastrar'
'btn_class' => 'btn btn-outline-success'
'i_class' => ''
])
</div>
</form>
</div>
......
......@@ -18,7 +18,7 @@
@include('components.buttons.btn-create', [
'route' => route('campus_create'),
'css' => '',
'text' => 'Novo Campus',
'content' => 'Novo Campus',
'id' => '',
])
</div>
......@@ -40,6 +40,7 @@
<td>{{ $camp->unidade }}</td>
<td>
@include('components.buttons.btn-edit', [
'btn_class' => 'btn btn-warning',
'route' => route('campus_edit', ['id' => $camp->id]),
])
@include('components.buttons.btn-soft-delete', [
......
......@@ -46,7 +46,11 @@
@include('components.buttons.btn-cancel', [
'route' => route('campus_index'),
])
@include('components.buttons.btn-save')
@include('components.buttons.btn-save', [
'content' => 'Cadastrar'
'btn_class' => 'btn btn-outline-success'
'i_class' => ''
])
</div>
</form>
</div>
......
@if( Session::has('success') )
<div class="alert alert-success alert-dismissible fade show" role="alert">
{{ Session::get('success') }}
<button type="button" class="close" data-dismiss="alert" aria-label="Close">
<span aria-hidden="true">&times;</span>
<button type="button" class="btn-close" data-bs-dismiss="alert" aria-label="Close"></button>
</button>
</div>
@endif
......@@ -10,17 +9,13 @@
@if( Session::has('fail') )
<div class="alert alert-danger alert-dismissible fade show" role="alert">
{{ Session::get('fail') }}
<button type="button" class="close" data-dismiss="alert" aria-label="Close">
<span aria-hidden="true">&times;</span>
</button>
<button type="button" class="btn-close" data-bs-dismiss="alert" aria-label="Close"></button>
</div>
@endif
@if( Session::has('error') )
<div class="alert alert-danger alert-dismissible fade show" role="alert">
{{ Session::get('error') }}
<button type="button" class="close" data-dismiss="alert" aria-label="Close">
<span aria-hidden="true">&times;</span>
</button>
<button type="button" class="btn-close" data-bs-dismiss="alert" aria-label="Close"></button>
</div>
@endif
<a class="btn btn-outline-primary {{$css}}" href="{{$route}}" id="{{$id}}">
<a class="btn {{$class}}" href="{{$route}}" id="{{$id}}">
<i class="bi bi-plus-circle"></i>
{{$text}}
{{$content}}
</a>
<!-- Button trigger modal -->
<button type="button" class="btn btn-danger" data-toggle="modal" data-target="#modal-delete-0">
<i class="fas fa-trash"></i>
<button type="button" class="{{ $btn_class }}" data-bs-toggle="modal" data-bs-target="#modal-delete-{{ $id }}">
<i class="bi bi-trash"></i>
</button>
<!-- Modal -->
<div class="modal fade" id="modal-delete-0" tabindex="-1" role="dialog" aria-labelledby="modal-delete-label"
aria-hidden="true">
<div class="modal-dialog" role="document">
<div class="modal-content">
<div class="modal-header">
<h5 class="modal-title" id="modal-delete-label">Excluir Item</h5>
<button type="button" class="close" data-dismiss="modal" aria-label="Close">
<span aria-hidden="true">&times;</span>
</button>
</div>
<div class="modal-body">
Você tem certeza que deseja excluir esse item?
</div>
<div class="modal-footer">
<button id="btn-cancel" type="button" class="btn btn-secondary" data-dismiss="modal">Cancelar</button>
<form action="{{ $route }}" method="post">
@method('DELETE')
@csrf
<button id="btn-ok" type="submit" class="btn btn-primary">OK</button>
</form>
</div>
<div class="modal fade" id="modal-delete-{{ $id }}" tabindex="-1" aria-labelledby="moda-label-{{ $id }}" aria-hidden="true">
<div class="modal-dialog">
<div class="modal-content">
<div class="modal-header">
<h5 class="modal-title" id="$modal-label-title-{{ $id }}">Excluir Item</h5>
<button type="button" class="btn-close" data-bs-dismiss="modal" aria-label="Close"></button>
</div>
<div class="modal-body">
Você tem certeza que deseja excluir esse item?
</div>
<div class="modal-footer">
<button type="button" class="btn btn-secondary" data-bs-dismiss="modal">Cancelar</button>
<form action="{{ $route }}" method="post">
@method('DELETE')
@csrf
<button id="btn-ok" type="submit" class="btn btn-primary">OK</button>
</form>
</div>
</div>
</div>
</div>
<a class="btn btn-secondary" href="{{$route}}"><i class="fas fa-edit"></i></a>
\ No newline at end of file
<a class="{{$btn_class}}" href="{{$route}}"><i class="bi bi-pencil-square"></i></a>
\ No newline at end of file
<button class="btn btn-success" type="submit">
<i class="bi bi-sd-card-fill"></i>
Salvar
<button class="{{$btn_class}}" type="submit">
<i class="{{$i_class}}"></i>
{{$content}}
</button>
<!-- Button trigger modal -->
<button type="button" class="{{$btn_class}}" data-bs-toggle="modal" data-bs-target="#modal-delete-{{ $id }}">
<i class="bi bi-trash"></i>
</button>
<!-- Modal -->
<div class="modal fade" id="modal-delete-{{ $id }}" tabindex="-1" aria-labelledby="moda-label-{{ $id }}" aria-hidden="true">
<div class="modal-dialog">
<div class="modal-content">
<div class="modal-header">
<h5 class="modal-title" id="$modal-label-title-{{ $id }}">Excluir Item</h5>
<button type="button" class="btn-close" data-bs-dismiss="modal" aria-label="Close"></button>
</div>
<div class="modal-body">
Você tem certeza que deseja excluir esse item?
</div>
<div class="modal-footer">
<button type="button" class="btn btn-secondary" data-bs-dismiss="modal">Cancelar</button>
<form action="{{ $route }}" method="post">
@method('DELETE')
@csrf
<button id="btn-ok" type="submit" class="btn btn-primary">OK</button>
</form>
</div>
</div>
</div>
</div>
......@@ -16,8 +16,8 @@
<h2 class="">TODOS OS COORDENADORES</h2>
@include('components.buttons.btn-create', [
'route' => route('coordenador_create'),
'css' => '',
'text' => 'Novo Coordenador',
'class' => '',
'content' => 'Novo Coordenador',
'id' => '',
])
</div>
......@@ -39,6 +39,7 @@
<td>{{ $coordenador->document }}</td>
<td>
@include('components.buttons.btn-edit', [
'btn_class' => 'btn btn-warning',
'route' => route('coordenador_edit', ['id' => $coordenador->id]),
])
@include('components.buttons.btn-delete', [
......
......@@ -46,7 +46,11 @@
@include('components.buttons.btn-cancel', [
'route' => route('curso_index'),
])
@include('components.buttons.btn-save')
@include('components.buttons.btn-save', [
'content' => 'Cadastrar'
'btn_class' => 'btn btn-outline-success'
'i_class' => ''
])
</div>
</form>
</div>
......
......@@ -17,8 +17,8 @@
<h2 class="">TODOS OS CURSO</h2>
@include('components.buttons.btn-create', [
'route' => route('curso_create'),
'css' => '',
'text' => 'Novo Curso',
'class' => '',
'content' => 'Novo Curso',
'id' => '',
])
</div>
......@@ -40,6 +40,7 @@
<td>{{ $curso->campus }}</td>
<td>
@include('components.buttons.btn-edit', [
'btn_class' => 'btn btn-warning',
'route' => route('curso_edit', ['id' => $curso->id]),
])
@include('components.buttons.btn-soft-delete', [
......
......@@ -17,8 +17,8 @@
<h2 class="">TODOS OS Diretores</h2>
@include('components.buttons.btn-create', [
'route' => route('diretor_create'),
'css' => '',
'text' => 'Novo Diretor',
'class' => '',
'content' => 'Novo Diretor',
'id' => '',
])
</div>
......@@ -39,10 +39,12 @@
<td>{{ $diretor->document }}</td>
<td>
@include('components.buttons.btn-edit', [
'btn_class' => 'btn btn-warning',
'route' => route('diretor_edit', ['id' => $diretor->id]),
])
@include('components.buttons.btn-delete', [
'route' => route('diretor_delete', ['id' => $diretor->id]),
'btn_class' => 'btn btn-danger',
'modal_id' => $diretor->id,
])
</td>
......
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