Se crean las especificaciones de los documentos a requerir por nivel, a su vez permitir al alumno subirlos

This commit is contained in:
2026-03-31 11:56:34 -06:00
parent cfd9d2ac68
commit 588a63ed24
61 changed files with 1487 additions and 326 deletions
@@ -0,0 +1,103 @@
<?php
namespace App\Http\Controllers;
use App\Models\DocumentoTipo;
use App\Models\Nivel;
use Illuminate\Http\Request;
use Illuminate\Routing\Controller;
class DocumentoTipoController extends Controller
{
public function __construct() {
$this->middleware('can:documentoTipo.index')->only('index','show');
$this->middleware('can:documentoTipo.create')->only('create','store');
$this->middleware('can:documentoTipo.edit')->only('edit','update');
$this->middleware('can:documentoTipo.destroy')->only('destroy');
}
public function index()
{
$documentotipos=DocumentoTipo::all();
return view('documento.index',compact('documentotipos'));
}
public function create()
{
$nivels = Nivel::where('status','=','1')->get();
return view('Documento.create',compact('nivels'));
}
/**
* Store a newly created resource in storage.
*/
public function store(Request $request)
{
$request->validate([
'name' => 'required',
'slug' => 'required|unique:documento_tipos,slug',
'extensiones' => 'required|array'
]);
$documentotipo=DocumentoTipo::create([
'name' => $request->name,
'slug' => $request->slug,
'extensiones' => $request->extensiones
]);
$documentotipo->niveles()->sync($request->nivels ?? []);
return redirect()->route('documentotipo.edit',compact('documentotipo'))->with('info','Se creó la la documentación correctamente');
}
/**
* Display the specified resource.
*/
public function show(string $id)
{
//
}
/**
* Show the form for editing the specified resource.
*/
public function edit(DocumentoTipo $documentotipo)
{
$documentotipo->load('niveles');
$nivels = Nivel::where('status','=','1')->get();
return view('documento.edit',compact(['documentotipo','nivels']));
}
/**
* Update the specified resource in storage.
*/
public function update(Request $request, DocumentoTipo $documentotipo)
{
$documentotipo->update([
'name' => $request->name,
'slug' => $request->slug,
'extensiones' => $request->extensiones
]);
$documentotipo->niveles()->sync($request->nivels ?? []);
return redirect()->route('documentotipo.edit',compact('documentotipo'))->with('info','Se modificó la la documentación correctamente');
}
/**
* Remove the specified resource from storage.
*/
public function destroy(DocumentoTipo $documentotipo)
{
$documentotipo->niveles()->detach();
$documentotipo->delete();
session()->flash('swal',[
'icon'=>'success',
'title'=>'Eliminado!',
'text'=>'Se han eliminado los registros correctamente'
]);
return redirect()->route('documentotipo.index');
}
}