From 103ffc36b72b9bb6c5d61775b3f665c9fcc8a3e9 Mon Sep 17 00:00:00 2001 From: RocioMarco1011 Date: Thu, 5 Oct 2023 19:14:16 -0600 Subject: [PATCH] main --- app/Enums/TipoAccionEnum.php | 20 +++ .../Controllers/AccionPrevenirController.php | 100 +++++++++++ app/Models/AccionPrevenir.php | 28 +++ composer.json | 2 + composer.lock | 170 +++++++++++++++++- config/app.php | 2 + ...05_233523_create_accion_prevenir_table.php | 30 ++++ .../views/accionprevenir/create.blade.php | 44 +++++ resources/views/accionprevenir/edit.blade.php | 46 +++++ .../views/accionprevenir/index.blade.php | 55 ++++++ resources/views/accionprevenir/show.blade.php | 59 ++++++ .../views/estrategiasprevenir/index.blade.php | 2 +- routes/web.php | 5 + 13 files changed, 561 insertions(+), 2 deletions(-) create mode 100644 app/Enums/TipoAccionEnum.php create mode 100644 app/Http/Controllers/AccionPrevenirController.php create mode 100644 app/Models/AccionPrevenir.php create mode 100644 database/migrations/2023_10_05_233523_create_accion_prevenir_table.php create mode 100644 resources/views/accionprevenir/create.blade.php create mode 100644 resources/views/accionprevenir/edit.blade.php create mode 100644 resources/views/accionprevenir/index.blade.php create mode 100644 resources/views/accionprevenir/show.blade.php diff --git a/app/Enums/TipoAccionEnum.php b/app/Enums/TipoAccionEnum.php new file mode 100644 index 0000000..71db474 --- /dev/null +++ b/app/Enums/TipoAccionEnum.php @@ -0,0 +1,20 @@ + 'general', + 'especifica' => 'especifica', + ]; + } +} diff --git a/app/Http/Controllers/AccionPrevenirController.php b/app/Http/Controllers/AccionPrevenirController.php new file mode 100644 index 0000000..f735b86 --- /dev/null +++ b/app/Http/Controllers/AccionPrevenirController.php @@ -0,0 +1,100 @@ +accion = $request->input('accion'); + $accionPrevenir->tipo = $request->input('tipo'); + $accionPrevenir->dependencias_responsables = $request->input('dependencias_responsables'); + $accionPrevenir->dependencias_coordinadoras = $request->input('dependencias_coordinadoras'); + $accionPrevenir->save(); + + // Redirige a la página de la lista de acciones para prevenir + return redirect()->route('accionprevenir.index'); + } + + public function show($id) + { + $accionPrevenir = AccionPrevenir::find($id); + return view('accionprevenir.show', ['accionPrevenir' => $accionPrevenir]); + } + + public function edit($id) + { + // Obtener la acción para prevenir que se va a editar usando el $id + $accionPrevenir = AccionPrevenir::find($id); + + // Verificar si la acción para prevenir existe antes de continuar + if (!$accionPrevenir) { + return abort(404); // Puedes personalizar el manejo de acciones para prevenir no encontradas + } + + // Pasar la acción para prevenir a la vista de edición + return view('accionprevenir.edit', ['accionPrevenir' => $accionPrevenir]); + } + + public function update(Request $request, $id) + { + // Validación de datos + $request->validate([ + 'accion' => 'required|max:255', + 'tipo' => 'required|in:general,especifica', // Ajusta las reglas de validación según tus necesidades + 'dependencias_responsables' => 'nullable|max:255', + 'dependencias_coordinadoras' => 'nullable|max:255', + ]); + + // Obtener la acción para prevenir a actualizar + $accionPrevenir = AccionPrevenir::find($id); + + // Verificar si la acción para prevenir existe + if (!$accionPrevenir) { + return abort(404); // O manejo personalizado para acciones para prevenir no encontradas + } + + // Actualizar los datos de la acción para prevenir + $accionPrevenir->accion = $request->accion; + $accionPrevenir->tipo = $request->tipo; + $accionPrevenir->dependencias_responsables = $request->dependencias_responsables; + $accionPrevenir->dependencias_coordinadoras = $request->dependencias_coordinadoras; + $accionPrevenir->save(); + + // Redirigir a la página de detalles o a donde sea necesario + return redirect()->route('accionprevenir.show', ['accionprevenir' => $accionPrevenir->id]); + } + + public function destroy($id) + { + // Buscar la acción para prevenir por ID + $accionPrevenir = AccionPrevenir::find($id); + + // Verificar si la acción para prevenir existe + if (!$accionPrevenir) { + return abort(404); // O manejo personalizado para acciones para prevenir no encontradas + } + + // Eliminar la acción para prevenir + $accionPrevenir->delete(); + + // Redirigir a la página de índice o a donde sea necesario + return redirect()->route('accionprevenir.index'); + } +} diff --git a/app/Models/AccionPrevenir.php b/app/Models/AccionPrevenir.php new file mode 100644 index 0000000..b666ade --- /dev/null +++ b/app/Models/AccionPrevenir.php @@ -0,0 +1,28 @@ + EnumCast::class.':'.TipoAccionEnum::class, + ]; +} + diff --git a/composer.json b/composer.json index 9002707..7d2b167 100644 --- a/composer.json +++ b/composer.json @@ -12,6 +12,8 @@ "laravel/sanctum": "^3.2", "laravel/tinker": "^2.8", "livewire/livewire": "^3.0", + "spatie/enum": "^3.13", + "spatie/laravel-enum": "^3.0", "spatie/laravel-permission": "^5.11" }, "require-dev": { diff --git a/composer.lock b/composer.lock index ec1379a..2b884bc 100644 --- a/composer.lock +++ b/composer.lock @@ -4,7 +4,7 @@ "Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies", "This file is @generated automatically" ], - "content-hash": "6218dc30aa7e6f886a42ad679da5dfdc", + "content-hash": "66acfc041df3a55394fdc92bf376f4a1", "packages": [ { "name": "bacon/bacon-qr-code", @@ -3717,6 +3717,174 @@ ], "time": "2023-04-15T23:01:58+00:00" }, + { + "name": "spatie/enum", + "version": "3.13.0", + "source": { + "type": "git", + "url": "https://github.com/spatie/enum.git", + "reference": "f1a0f464ba909491a53e60a955ce84ad7cd93a2c" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/spatie/enum/zipball/f1a0f464ba909491a53e60a955ce84ad7cd93a2c", + "reference": "f1a0f464ba909491a53e60a955ce84ad7cd93a2c", + "shasum": "" + }, + "require": { + "ext-json": "*", + "php": "^8.0" + }, + "require-dev": { + "fakerphp/faker": "^1.9.1", + "larapack/dd": "^1.1", + "phpunit/phpunit": "^9.0", + "vimeo/psalm": "^4.3" + }, + "suggest": { + "fakerphp/faker": "To use the enum faker provider", + "phpunit/phpunit": "To use the enum assertions" + }, + "type": "library", + "autoload": { + "psr-4": { + "Spatie\\Enum\\": "src" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Brent Roose", + "email": "brent@spatie.be", + "homepage": "https://spatie.be", + "role": "Developer" + }, + { + "name": "Tom Witkowski", + "email": "dev@gummibeer.de", + "homepage": "https://gummibeer.de", + "role": "Developer" + } + ], + "description": "PHP Enums", + "homepage": "https://github.com/spatie/enum", + "keywords": [ + "enum", + "enumerable", + "spatie" + ], + "support": { + "docs": "https://docs.spatie.be/enum", + "issues": "https://github.com/spatie/enum/issues", + "source": "https://github.com/spatie/enum" + }, + "funding": [ + { + "url": "https://spatie.be/open-source/support-us", + "type": "custom" + }, + { + "url": "https://github.com/spatie", + "type": "github" + } + ], + "time": "2022-04-22T08:51:55+00:00" + }, + { + "name": "spatie/laravel-enum", + "version": "3.0.2", + "source": { + "type": "git", + "url": "https://github.com/spatie/laravel-enum.git", + "reference": "e7a7ef506489d0e349516e89ce6d01a3c6b0e8d2" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/spatie/laravel-enum/zipball/e7a7ef506489d0e349516e89ce6d01a3c6b0e8d2", + "reference": "e7a7ef506489d0e349516e89ce6d01a3c6b0e8d2", + "shasum": "" + }, + "require": { + "ext-json": "*", + "illuminate/console": "^8.0 || ^9.43 || ^10.0", + "illuminate/contracts": "^8.0 || ^9.43 || ^10.0", + "illuminate/database": "^8.0 || ^9.43 || ^10.0", + "illuminate/http": "^8.0 || ^9.43 || ^10.0", + "illuminate/support": "^8.0 || ^9.43 || ^10.0", + "php": "^7.4 || ^8.0", + "spatie/enum": "^3.9" + }, + "conflict": { + "bensampo/laravel-enum": "*" + }, + "require-dev": { + "fakerphp/faker": "^1.16", + "mockery/mockery": "^1.4.0", + "orchestra/testbench": "^6.0 || ^7.0 || ^8.0", + "phpunit/phpunit": "^9.5", + "vimeo/psalm": "^4.0" + }, + "suggest": { + "fzaninotto/faker": "^1.9.1" + }, + "type": "library", + "extra": { + "laravel": { + "providers": [ + "Spatie\\Enum\\Laravel\\EnumServiceProvider" + ] + } + }, + "autoload": { + "psr-4": { + "Spatie\\Enum\\Laravel\\": "src" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Brent Roose", + "email": "brent@spatie.be", + "homepage": "https://spatie.be", + "role": "Developer" + }, + { + "name": "Tom Witkowski", + "email": "dev@gummibeer.de", + "homepage": "https://gummibeer.de", + "role": "Developer" + } + ], + "description": "Laravel Enum support", + "homepage": "https://github.com/spatie/laravel-enum", + "keywords": [ + "enum", + "laravel", + "laravel-enum", + "spatie" + ], + "support": { + "issues": "https://github.com/spatie/laravel-enum/issues", + "source": "https://github.com/spatie/laravel-enum/tree/3.0.2" + }, + "funding": [ + { + "url": "https://spatie.be/open-source/support-us", + "type": "custom" + }, + { + "url": "https://github.com/spatie", + "type": "github" + } + ], + "time": "2023-02-10T15:02:18+00:00" + }, { "name": "spatie/laravel-permission", "version": "5.11.0", diff --git a/config/app.php b/config/app.php index f444c68..72b4ca6 100644 --- a/config/app.php +++ b/config/app.php @@ -171,6 +171,7 @@ App\Providers\FortifyServiceProvider::class, App\Providers\JetstreamServiceProvider::class, Spatie\Permission\PermissionServiceProvider::class, + Spatie\Enum\Laravel\EnumServiceProvider::class, ])->toArray(), /* @@ -186,6 +187,7 @@ 'aliases' => Facade::defaultAliases()->merge([ // 'Example' => App\Facades\Example::class, + 'Enum' => Spatie\Enum\Laravel\EnumFacade::class, ])->toArray(), ]; diff --git a/database/migrations/2023_10_05_233523_create_accion_prevenir_table.php b/database/migrations/2023_10_05_233523_create_accion_prevenir_table.php new file mode 100644 index 0000000..693a882 --- /dev/null +++ b/database/migrations/2023_10_05_233523_create_accion_prevenir_table.php @@ -0,0 +1,30 @@ +id(); + $table->string('accion'); + $table->enum('tipo', ['general', 'especifica']); + $table->string('dependencias_responsables'); + $table->string('dependencias_coordinadoras'); + $table->timestamps(); + }); +} + /** + * Reverse the migrations. + */ + public function down(): void + { + Schema::dropIfExists('accion_prevenir'); + } +}; diff --git a/resources/views/accionprevenir/create.blade.php b/resources/views/accionprevenir/create.blade.php new file mode 100644 index 0000000..43b825b --- /dev/null +++ b/resources/views/accionprevenir/create.blade.php @@ -0,0 +1,44 @@ + + +

+ CREAR NUEVA ACCIÓN PARA PREVENIR +

+
+
+
+
+
+
+ @csrf + +
+ + +
+
+ + +
+
+ + +
+
+ + +
+ +
+ +
+
+
+
+
+
+
diff --git a/resources/views/accionprevenir/edit.blade.php b/resources/views/accionprevenir/edit.blade.php new file mode 100644 index 0000000..695cf6c --- /dev/null +++ b/resources/views/accionprevenir/edit.blade.php @@ -0,0 +1,46 @@ + + +

+ EDITAR ACCIÓN PARA PREVENIR +

+
+ +
+
+
+
+
+ @csrf + @method('PUT') + +
+ + +
+
+ + +
+
+ + +
+
+ + +
+ +
+ +
+
+
+
+
+
+
diff --git a/resources/views/accionprevenir/index.blade.php b/resources/views/accionprevenir/index.blade.php new file mode 100644 index 0000000..8fcef15 --- /dev/null +++ b/resources/views/accionprevenir/index.blade.php @@ -0,0 +1,55 @@ + + +

+ ACCIONES DE PREVENCIÓN +

+
+ +
+
+
+
+ + + + + + + + + + + + + + + @foreach($accionesPrevenir as $accion) + + + + + + + + + + @endforeach + +
No.AcciónTipoDependencias ResponsablesDependencias Coordinadoras
{{ $accion->id }}{{ $accion->accion }}{{ $accion->tipo }}{{ $accion->dependencias_responsables }}{{ $accion->dependencias_coordinadoras }} + + Ver + + + + Progreso + +
+
+
+
+
+
diff --git a/resources/views/accionprevenir/show.blade.php b/resources/views/accionprevenir/show.blade.php new file mode 100644 index 0000000..b2fa260 --- /dev/null +++ b/resources/views/accionprevenir/show.blade.php @@ -0,0 +1,59 @@ + + +

+ DETALLES DE LA ACCIÓN PARA PREVENIR +

+
+ +
+
+
+
+ + Regresar a la Lista + + + + + + + + + + + + + + + + + + + + + + + + +
No.:{{ $accionPrevenir->id }}
Acción:{{ $accionPrevenir->accion }}
Tipo de Acción:{{ $accionPrevenir->tipo }}
Dependencias Responsables:{{ $accionPrevenir->dependencias_responsables ?? 'No especificado' }}
Dependencias Coordinadoras:{{ $accionPrevenir->dependencias_coordinadoras ?? 'No especificado' }}
+ + +
+
+ + Editar Acción + +
+ @csrf + @method('DELETE') + +
+
+
+
+
+
+
+
diff --git a/resources/views/estrategiasprevenir/index.blade.php b/resources/views/estrategiasprevenir/index.blade.php index 9ea4e16..e84bd1b 100644 --- a/resources/views/estrategiasprevenir/index.blade.php +++ b/resources/views/estrategiasprevenir/index.blade.php @@ -34,7 +34,7 @@ - + Acciones diff --git a/routes/web.php b/routes/web.php index 0670461..478e30e 100644 --- a/routes/web.php +++ b/routes/web.php @@ -4,6 +4,7 @@ use App\Http\Controllers\UserController; use App\Http\Controllers\PrevenirController; use App\Http\Controllers\EstrategiasPrevenirController; +use App\Http\Controllers\AccionPrevenirController; /* @@ -34,3 +35,7 @@ Route::group(['middleware' => 'auth'], function () { Route::resource('estrategiasprevenir', \App\Http\Controllers\EstrategiasPrevenirController::class); }); + +Route::group(['middleware' => 'auth'], function () { + Route::resource('accionprevenir', \App\Http\Controllers\AccionPrevenirController::class); + }); -- GitLab