From 2d00cbe1a0d89ac45404af5bffd4c5c16428dac5 Mon Sep 17 00:00:00 2001 From: alejandroava Date: Mon, 11 Nov 2024 19:08:16 -0500 Subject: [PATCH 1/5] fix:delete use of dashboard asidebar --- resources/js/Pages/HomePage.vue | 1 - 1 file changed, 1 deletion(-) diff --git a/resources/js/Pages/HomePage.vue b/resources/js/Pages/HomePage.vue index efbe9c5..f2f0b22 100644 --- a/resources/js/Pages/HomePage.vue +++ b/resources/js/Pages/HomePage.vue @@ -5,7 +5,6 @@ +@stop diff --git a/Modules/OrganizerPanel/resources/views/layouts/master.blade.php b/Modules/OrganizerPanel/resources/views/layouts/master.blade.php new file mode 100644 index 0000000..158d57b --- /dev/null +++ b/Modules/OrganizerPanel/resources/views/layouts/master.blade.php @@ -0,0 +1,29 @@ + + + + + + + + + + OrganizerPanel Module - {{ config('app.name', 'Laravel') }} + + + + + + + + + + {{-- Vite CSS --}} + {{-- {{ module_vite('build-organizerpanel', 'resources/assets/sass/app.scss') }} --}} + + + + @yield('content') + + {{-- Vite JS --}} + {{-- {{ module_vite('build-organizerpanel', 'resources/assets/js/app.js') }} --}} + diff --git a/Modules/OrganizerPanel/routes/.gitkeep b/Modules/OrganizerPanel/routes/.gitkeep new file mode 100644 index 0000000..e69de29 diff --git a/Modules/OrganizerPanel/routes/api.php b/Modules/OrganizerPanel/routes/api.php new file mode 100644 index 0000000..87ff26a --- /dev/null +++ b/Modules/OrganizerPanel/routes/api.php @@ -0,0 +1,19 @@ +prefix('v1')->group(function () { + Route::apiResource('organizerpanel', OrganizerPanelController::class)->names('organizerpanel'); +}); diff --git a/Modules/OrganizerPanel/routes/web.php b/Modules/OrganizerPanel/routes/web.php new file mode 100644 index 0000000..1db237b --- /dev/null +++ b/Modules/OrganizerPanel/routes/web.php @@ -0,0 +1,20 @@ +names('organizerpanel'); + Route::get('/panel', [OrganizerPanelController::class, 'index'])->name('organizer.dashboard'); +}); diff --git a/Modules/OrganizerPanel/tests/Feature/.gitkeep b/Modules/OrganizerPanel/tests/Feature/.gitkeep new file mode 100644 index 0000000..e69de29 diff --git a/Modules/OrganizerPanel/tests/Unit/.gitkeep b/Modules/OrganizerPanel/tests/Unit/.gitkeep new file mode 100644 index 0000000..e69de29 diff --git a/Modules/OrganizerPanel/vite.config.js b/Modules/OrganizerPanel/vite.config.js new file mode 100644 index 0000000..8762c76 --- /dev/null +++ b/Modules/OrganizerPanel/vite.config.js @@ -0,0 +1,26 @@ +import { defineConfig } from 'vite'; +import laravel from 'laravel-vite-plugin'; + +export default defineConfig({ + build: { + outDir: '../../public/build-organizerpanel', + emptyOutDir: true, + manifest: true, + }, + plugins: [ + laravel({ + publicDirectory: '../../public', + buildDirectory: 'build-organizerpanel', + input: [ + __dirname + '/resources/assets/sass/app.scss', + __dirname + '/resources/assets/js/app.js' + ], + refresh: true, + }), + ], +}); + +//export const paths = [ +// 'Modules/OrganizerPanel/resources/assets/sass/app.scss', +// 'Modules/OrganizerPanel/resources/assets/js/app.js', +//]; \ No newline at end of file diff --git a/modules_statuses.json b/modules_statuses.json index f12d0b7..2a820fb 100644 --- a/modules_statuses.json +++ b/modules_statuses.json @@ -6,5 +6,6 @@ "Draws": true, "Audit": true, "Reward": true, - "Lottery": true + "Lottery": true, + "OrganizerPanel": true } \ No newline at end of file From b35713b12af150e4a6ba40b532b4fc9b5209b2ef Mon Sep 17 00:00:00 2001 From: alejandroava Date: Tue, 12 Nov 2024 10:48:58 -0500 Subject: [PATCH 5/5] add:panel organizer with create raffle, show dinamic price ticket --- .../Controllers/OrganizerPanelController.php | 16 ++++- .../resources/views/index.blade.php | 2 +- Modules/OrganizerPanel/routes/web.php | 5 +- .../app/Http/Controllers/RaffleController.php | 14 +++- Modules/Raffle/app/Models/Raffle.php | 1 + .../Raffle/resources/views/create.blade.php | 72 +++++++++++++++---- Modules/Raffle/routes/web.php | 6 +- config/adminlte.php | 44 +++++++----- 8 files changed, 121 insertions(+), 39 deletions(-) diff --git a/Modules/OrganizerPanel/app/Http/Controllers/OrganizerPanelController.php b/Modules/OrganizerPanel/app/Http/Controllers/OrganizerPanelController.php index ec09708..85d10b6 100644 --- a/Modules/OrganizerPanel/app/Http/Controllers/OrganizerPanelController.php +++ b/Modules/OrganizerPanel/app/Http/Controllers/OrganizerPanelController.php @@ -4,6 +4,7 @@ use App\Http\Controllers\Controller; use Illuminate\Http\Request; +use Modules\Raffle\Models\Raffle; class OrganizerPanelController extends Controller { @@ -28,7 +29,20 @@ public function create() */ public function store(Request $request) { - // + $request->validate([ + 'organizer_id' => 'required|exists:users,id', + 'lottery_id' => 'required|exists:lotteries,id', + 'ticket_price' => 'required|numeric|min:0', + 'total_tickets' => 'required|integer|min:1', + 'tickets_sold' => 'nullable|integer|min:0', + 'description' => 'nullable|string', + 'start_date' => 'required|date', + 'end_date' => 'required|date|after:start_date', + ]); + + Raffle::create($request->all()); + + return redirect()->route('raffles.index')->with('success', 'Rifa creada exitosamente.'); } /** diff --git a/Modules/OrganizerPanel/resources/views/index.blade.php b/Modules/OrganizerPanel/resources/views/index.blade.php index 2aecfcf..215c0e9 100644 --- a/Modules/OrganizerPanel/resources/views/index.blade.php +++ b/Modules/OrganizerPanel/resources/views/index.blade.php @@ -3,7 +3,7 @@ @section('title', 'Dashboard') @section('content_header') -

Dashboard

+

Bienvenido

@stop @section('content') diff --git a/Modules/OrganizerPanel/routes/web.php b/Modules/OrganizerPanel/routes/web.php index 1db237b..8a0d22a 100644 --- a/Modules/OrganizerPanel/routes/web.php +++ b/Modules/OrganizerPanel/routes/web.php @@ -2,6 +2,7 @@ use Illuminate\Support\Facades\Route; use Modules\OrganizerPanel\Http\Controllers\OrganizerPanelController; +use Modules\Raffle\Http\Controllers\RaffleController; /* |-------------------------------------------------------------------------- @@ -16,5 +17,7 @@ Route::group([], function () { Route::resource('organizerpanel', OrganizerPanelController::class)->names('organizerpanel'); - Route::get('/panel', [OrganizerPanelController::class, 'index'])->name('organizer.dashboard'); + Route::get('admin/panel', [OrganizerPanelController::class, 'index'])->name('organizer.dashboard'); + Route::get('/admin/crear-rifa', [RaffleController::class, 'create'])->name('create'); + Route::post('/admin/actualizar-rifa', [RaffleController::class, 'store'])->name('store'); }); diff --git a/Modules/Raffle/app/Http/Controllers/RaffleController.php b/Modules/Raffle/app/Http/Controllers/RaffleController.php index bf5d525..c209375 100644 --- a/Modules/Raffle/app/Http/Controllers/RaffleController.php +++ b/Modules/Raffle/app/Http/Controllers/RaffleController.php @@ -37,7 +37,19 @@ public function store(Request $request) 'end_date' => 'required|date|after:start_date', ]); - Raffle::create($request->all()); + Raffle::create([ + 'name' => $request->name, + 'organizer_id' => $request->organizer_id, + 'lottery_id' => $request->lottery_id, + + 'total_tickets' => $request->total_tickets, + 'ticket_price' => $request->ticket_price, + 'tickets_sold' => $request->tickets_sold ?? 0, + 'description' => $request->description, + 'start_date' => $request->start_date, + 'end_date' => $request->end_date, + 'total_sales' => 0, // valor predeterminado de total_sales + ]); return redirect()->route('raffles.index')->with('success', 'Rifa creada exitosamente.'); } diff --git a/Modules/Raffle/app/Models/Raffle.php b/Modules/Raffle/app/Models/Raffle.php index c379cce..cf630ea 100644 --- a/Modules/Raffle/app/Models/Raffle.php +++ b/Modules/Raffle/app/Models/Raffle.php @@ -20,6 +20,7 @@ class Raffle extends Model 'ticket_price', 'total_tickets', 'tickets_sold', + 'total_sales', 'description', 'start_date', 'end_date', diff --git a/Modules/Raffle/resources/views/create.blade.php b/Modules/Raffle/resources/views/create.blade.php index fa57bfb..7d0c97b 100644 --- a/Modules/Raffle/resources/views/create.blade.php +++ b/Modules/Raffle/resources/views/create.blade.php @@ -1,26 +1,36 @@ -@extends('raffle::layouts.master') +@extends('adminlte::page') + +@section('title', 'Registrar Nueva Rifa') + +@section('content_header') +

Registrar Nueva Rifa

+@stop @section('content')

Registrar Nueva Rifa

-
+ @csrf
- @foreach($organizers as $user) @endforeach
+
+ + +
- @foreach($lotteries as $lottery) @@ -28,44 +38,78 @@
- +
- - + + +
+ + +
+ +
- + +
+ + +
+ +
- +
- +
- +
- +
- +
-@endsection +@stop + +@section('css') + {{-- Añade estilos adicionales aquí si es necesario --}} +@stop + +@section('js') + +@stop diff --git a/Modules/Raffle/routes/web.php b/Modules/Raffle/routes/web.php index c57e291..3ac4884 100644 --- a/Modules/Raffle/routes/web.php +++ b/Modules/Raffle/routes/web.php @@ -14,10 +14,10 @@ | */ -Route::prefix('raffles')->middleware(['auth', 'role:admin'])->name('raffles.')->group(function () { +Route::prefix('raffles')->name('raffles.')->group(function () { Route::get('/', [RaffleController::class, 'index'])->name('index'); - Route::get('/create', [RaffleController::class, 'create'])->name('create'); - Route::post('/store', [RaffleController::class, 'store'])->name('store'); + Route::get('/admin/crear-rifa', [RaffleController::class, 'create'])->name('create'); + Route::post('/admin/actualizar-rifa', [RaffleController::class, 'store'])->name('store'); Route::get('/{id}/edit', [RaffleController::class, 'edit'])->name('edit'); Route::put('/{id}', [RaffleController::class, 'update'])->name('update'); Route::delete('/{id}', [RaffleController::class, 'destroy'])->name('destroy'); diff --git a/config/adminlte.php b/config/adminlte.php index 727a001..12bbe4a 100644 --- a/config/adminlte.php +++ b/config/adminlte.php @@ -321,12 +321,35 @@ 'can' => 'manage-blog', ], [ - 'text' => 'pages', - 'url' => 'admin/pages', + 'text' => 'Rifas', + 'submenu' => [ + [ + 'text' => 'Crear rifa', + 'url'=> 'admin/crear-rifa' + ], + [ + 'text' => 'Actualizar rifa', + 'url'=> 'admin/actualizar-rifa' + ], + [ + 'text' => 'Borrar rifa', + 'url' => '' + ], + ], + ], + [ + 'text' => 'Estadisticas', + 'submenu' => [ + [ + 'text' => 'Boletos vendidos', + 'url' => '' + ], + ], 'icon' => 'far fa-fw fa-file', 'label' => 4, 'label_color' => 'success', ], + ['header' => 'account_settings'], [ 'text' => 'profile', @@ -376,24 +399,9 @@ ], ], ], - ['header' => 'labels'], - [ - 'text' => 'important', - 'icon_color' => 'red', - 'url' => '#', - ], - [ - 'text' => 'warning', - 'icon_color' => 'yellow', - 'url' => '#', - ], - [ - 'text' => 'information', - 'icon_color' => 'cyan', - 'url' => '#', - ], ], + /* |-------------------------------------------------------------------------- | Menu Filters