Refactor: responses as ActivitesAttended

This commit is contained in:
Sallu9007
2025-03-23 16:18:07 +05:30
parent e27937c29f
commit 8c4e18e702
13 changed files with 72 additions and 72 deletions

View File

@@ -6,7 +6,7 @@ namespace App\Http\Controllers;
use Illuminate\Http\Request; use Illuminate\Http\Request;
use Yajra\DataTables\Facades\DataTables; use Yajra\DataTables\Facades\DataTables;
use App\Models\Response; use App\Models\ActivitiesAttended;
class AdminController extends Controller class AdminController extends Controller
{ {
@@ -17,14 +17,14 @@ class AdminController extends Controller
} }
// View responses submitted by users // View responses submitted by users
public function viewResponses() public function viewActivitiesAttendedResponses()
{ {
return view('admin.responses'); return view('admin.activities-attended-responses');
} }
public function getResponses() public function getActivitiesAttendedResponses()
{ {
$responses = Response::with('user', 'department'); $responses = ActivitiesAttended::with('user', 'department');
return DataTables::of($responses) return DataTables::of($responses)
->addColumn('user_name', function ($response) { ->addColumn('user_name', function ($response) {
@@ -53,5 +53,5 @@ class AdminController extends Controller
}) })
->rawColumns(['action']) ->rawColumns(['action'])
->make(true); ->make(true);
} }
} }

View File

@@ -5,7 +5,7 @@ namespace App\Http\Controllers;
use Illuminate\Http\Request; use Illuminate\Http\Request;
use Yajra\DataTables\Facades\DataTables; use Yajra\DataTables\Facades\DataTables;
use Illuminate\Support\Facades\Auth; use Illuminate\Support\Facades\Auth;
use App\Models\Response; use App\Models\ActivitiesAttended;
class CoordinatorController extends Controller class CoordinatorController extends Controller
{ {
@@ -16,13 +16,13 @@ class CoordinatorController extends Controller
} }
// View responses submitted by users // View responses submitted by users
public function viewResponses() public function viewActivitiesAttendedResponses()
{ {
return view('coordinator.responses'); return view('coordinator.activities-attended-responses');
} }
public function getResponses() public function getActivitiesAttendedResponses()
{ {
// Get the current logged-in user // Get the current logged-in user
$currentUser = Auth::user(); $currentUser = Auth::user();
@@ -31,7 +31,7 @@ public function getResponses()
$userDepartmentId = $currentUser->department->id ?? null; $userDepartmentId = $currentUser->department->id ?? null;
// Fetch the responses and filter by department_id // Fetch the responses and filter by department_id
$responses = Response::with('user', 'department') $responses = ActivitiesAttended::with('user', 'department')
->where('department_id', $userDepartmentId); // Filter by current user's department_id ->where('department_id', $userDepartmentId); // Filter by current user's department_id
return DataTables::of($responses) return DataTables::of($responses)

View File

@@ -3,7 +3,7 @@
namespace App\Http\Controllers; namespace App\Http\Controllers;
use Illuminate\Http\Request; use Illuminate\Http\Request;
use App\Models\Response; use App\Models\ActivitiesAttended;
class FacultyController extends Controller class FacultyController extends Controller
{ {
@@ -14,13 +14,13 @@ class FacultyController extends Controller
} }
// Faculty response form // Faculty response form
public function responseForm() public function ActivitiesAttendedForm()
{ {
// Logic to show the response form // Logic to show the response form
return view('faculty.response-form'); return view('faculty.activities-attended-form');
} }
public function submitResponse(Request $request) public function ActivitiesAttendedFormResponse(Request $request)
{ {
// dd($request->all()); // dd($request->all());
try { try {
@@ -57,7 +57,7 @@ class FacultyController extends Controller
// Save the response to the database // Save the response to the database
// dd($validated['organising_institute']); // dd($validated['organising_institute']);
Response::create([ ActivitiesAttended::create([
'title' => $validated['title'], 'title' => $validated['title'],
'organising_institute' => $validated['organising_institute'], 'organising_institute' => $validated['organising_institute'],
'address' => $validated['address'], 'address' => $validated['address'],
@@ -76,7 +76,7 @@ class FacultyController extends Controller
return redirect()->route('faculty.dashboard')->with('status', 'Response submitted successfully'); return redirect()->route('faculty.dashboard')->with('status', 'Response submitted successfully');
} catch (\Exception $e) { } catch (\Exception $e) {
// Handle the exception and provide an error message // Handle the exception and provide an error message
// dd($e); dd($e);
return back()->withErrors('An error occurred while submitting your response: ' . $e->getMessage()); return back()->withErrors('An error occurred while submitting your response: ' . $e->getMessage());
} }
} }

View File

@@ -5,7 +5,7 @@ namespace App\Models;
use Illuminate\Database\Eloquent\Factories\HasFactory; use Illuminate\Database\Eloquent\Factories\HasFactory;
use Illuminate\Database\Eloquent\Model; use Illuminate\Database\Eloquent\Model;
class Response extends Model class ActivitiesAttended extends Model
{ {
use HasFactory; use HasFactory;

View File

@@ -4,13 +4,13 @@ use Illuminate\Database\Migrations\Migration;
use Illuminate\Database\Schema\Blueprint; use Illuminate\Database\Schema\Blueprint;
use Illuminate\Support\Facades\Schema; use Illuminate\Support\Facades\Schema;
class CreateResponsesTable extends Migration class CreateActivitiesAttendedsTable extends Migration
{ {
// Updated Migration // Updated Migration
public function up() public function up()
{ {
Schema::create('responses', function (Blueprint $table) { Schema::create('activities_attendeds', function (Blueprint $table) {
$table->id(); $table->id();
$table->string('title'); $table->string('title');
$table->string('organising_institute'); $table->string('organising_institute');
@@ -33,6 +33,6 @@ class CreateResponsesTable extends Migration
public function down() public function down()
{ {
Schema::dropIfExists('responses'); Schema::dropIfExists('activities_attendeds');
} }
} }

View File

@@ -3,10 +3,10 @@
namespace Database\Seeders; namespace Database\Seeders;
use Illuminate\Database\Seeder; use Illuminate\Database\Seeder;
use App\Models\Response; use App\Models\ActivitiesAttended;
use Carbon\Carbon; use Carbon\Carbon;
class ResponsesTableSeeder extends Seeder class ActivitiesAttendedResponsesTableSeeder extends Seeder
{ {
/** /**
* Run the database seeds. * Run the database seeds.
@@ -33,12 +33,12 @@ class ResponsesTableSeeder extends Seeder
$numDays = $startDate->diffInDays($endDate) ?: 1; $numDays = $startDate->diffInDays($endDate) ?: 1;
// Create the response record // Create the response record
Response::create([ ActivitiesAttended::create([
'title' => $titles[array_rand($titles)], // Random title 'title' => $titles[array_rand($titles)], // Random title
'organising_institute' => $organizingInstitutes[array_rand($organizingInstitutes)], // Random organization 'organising_institute' => $organizingInstitutes[array_rand($organizingInstitutes)], // Random organization
'address' => $addresses[array_rand($addresses)], // Random address 'address' => $addresses[array_rand($addresses)], // Random address
'department_id' => rand(1, 5), // Random department ID 'department_id' => rand(1, 5), // Random department ID
'faculty_id' => rand(1, 3), // Random faculty ID 'faculty_id' => rand(1, 2), // Random faculty ID
'start_date' => $startDate->format('Y-m-d H:i:s'), // Start date and time 'start_date' => $startDate->format('Y-m-d H:i:s'), // Start date and time
'end_date' => $endDate->format('Y-m-d H:i:s'), // End date and time 'end_date' => $endDate->format('Y-m-d H:i:s'), // End date and time
'num_days' => $numDays, // Number of days 'num_days' => $numDays, // Number of days

View File

@@ -19,7 +19,7 @@ class DatabaseSeeder extends Seeder
RoleSeeder::class, RoleSeeder::class,
DepartmentSeeder::class, DepartmentSeeder::class,
UsersTableSeeder::class, UsersTableSeeder::class,
ResponsesTableSeeder::class, ActivitiesAttendedResponsesTableSeeder::class,
]); ]);
// User::factory()->create([ // User::factory()->create([

View File

@@ -184,7 +184,7 @@
}; };
} }
initAjaxRoute("{{ route('admin.responses.data') }}"); initAjaxRoute("{{ route('admin.ActivitiesAttendedResponses.data') }}");
}); });
</script> </script>

View File

@@ -149,7 +149,7 @@
}); });
}; };
initAjaxRoute("{{ route('coordinator.responses.data') }}"); initAjaxRoute("{{ route('coordinator.ActivitiesAttendedResponses.data') }}");
}); });
</script> </script>

View File

@@ -18,17 +18,17 @@
@php $role = auth()->user()->role->name; @endphp @php $role = auth()->user()->role->name; @endphp
@if ($role === 'Admin') @if ($role === 'Admin')
<a href="{{ route('admin.responses') }}" <a href="{{ route('admin.ActivitiesAttendedResponses') }}"
class="px-4 py-2 bg-blue-500 text-white rounded hover:bg-blue-600"> class="px-4 py-2 bg-blue-500 text-white rounded hover:bg-blue-600">
Go to Admin Responses Go to Admin Responses
</a> </a>
@elseif ($role === 'Coordinator') @elseif ($role === 'Coordinator')
<a href="{{ route('coordinator.responses') }}" <a href="{{ route('coordinator.ActivitiesAttendedResponses') }}"
class="px-4 py-2 bg-green-500 text-white rounded hover:bg-green-600"> class="px-4 py-2 bg-green-500 text-white rounded hover:bg-green-600">
Go to Coordinator Responses Go to Coordinator Responses
</a> </a>
@elseif ($role === 'Faculty') @elseif ($role === 'Faculty')
<a href="{{ route('faculty.response-form') }}" <a href="{{ route('faculty.ActivitiesAttendedForm') }}"
class="px-4 py-2 bg-purple-500 text-white rounded hover:bg-purple-600"> class="px-4 py-2 bg-purple-500 text-white rounded hover:bg-purple-600">
Go to Faculty Response Form Go to Faculty Response Form
</a> </a>

View File

@@ -12,7 +12,7 @@
</p> </p>
</div> </div>
<div class="border-t border-gray-200"> <div class="border-t border-gray-200">
<form method="POST" action="{{ route('faculty.submitResponse') }}" enctype="multipart/form-data"> <form method="POST" action="{{ route('faculty.ActivitiesAttendedFormResponse') }}" enctype="multipart/form-data">
@csrf @csrf
<div class="px-4 py-5 sm:px-6"> <div class="px-4 py-5 sm:px-6">
<div class="space-y-6"> <div class="space-y-6">

View File

@@ -18,15 +18,15 @@
<!-- Role-specific Links using direct role checks --> <!-- Role-specific Links using direct role checks -->
@if(auth()->user()->role->name === 'Admin') @if(auth()->user()->role->name === 'Admin')
<x-nav-link :href="route('admin.responses')" :active="request()->routeIs('admin.responses')"> <x-nav-link :href="route('admin.ActivitiesAttendedResponses')" :active="request()->routeIs('admin.ActivitiesAttendedResponses')">
{{ __('Activities Attended') }} {{ __('Activities Attended') }}
</x-nav-link> </x-nav-link>
@elseif(auth()->user()->role->name === 'Coordinator') @elseif(auth()->user()->role->name === 'Coordinator')
<x-nav-link :href="route('coordinator.responses')" :active="request()->routeIs('coordinator.responses')"> <x-nav-link :href="route('coordinator.ActivitiesAttendedResponses')" :active="request()->routeIs('coordinator.ActivitiesAttendedResponses')">
{{ __('Activities Attended') }} {{ __('Activities Attended') }}
</x-nav-link> </x-nav-link>
@elseif(auth()->user()->role->name === 'Faculty') @elseif(auth()->user()->role->name === 'Faculty')
<x-nav-link :href="route('faculty.responseForm')" :active="request()->routeIs('faculty.responseForm')"> <x-nav-link :href="route('faculty.ActivitiesAttendedForm')" :active="request()->routeIs('faculty.ActivitiesAttendedForm')">
{{ __('Activities Attended') }} {{ __('Activities Attended') }}
</x-nav-link> </x-nav-link>
@endif @endif
@@ -87,15 +87,15 @@
<!-- Role-specific Links using direct role checks --> <!-- Role-specific Links using direct role checks -->
@if(auth()->user()->role->name === 'Admin') @if(auth()->user()->role->name === 'Admin')
<x-responsive-nav-link :href="route('admin.responses')" :active="request()->routeIs('admin.responses')"> <x-responsive-nav-link :href="route('admin.ActivitiesAttendedResponses')" :active="request()->routeIs('admin.ActivitiesAttendedResponses')">
{{ __('Activities Attended') }} {{ __('Activities Attended') }}
</x-responsive-nav-link> </x-responsive-nav-link>
@elseif(auth()->user()->role->name === 'Coordinator') @elseif(auth()->user()->role->name === 'Coordinator')
<x-responsive-nav-link :href="route('coordinator.responses')" :active="request()->routeIs('coordinator.responses')"> <x-responsive-nav-link :href="route('coordinator.ActivitiesAttendedResponses')" :active="request()->routeIs('coordinator.ActivitiesAttendedResponses')">
{{ __('Activities Attended') }} {{ __('Activities Attended') }}
</x-responsive-nav-link> </x-responsive-nav-link>
@elseif(auth()->user()->role->name === 'Faculty') @elseif(auth()->user()->role->name === 'Faculty')
<x-responsive-nav-link :href="route('faculty.responseForm')" :active="request()->routeIs('faculty.responseForm')"> <x-responsive-nav-link :href="route('faculty.ActivitiesAttendedForm')" :active="request()->routeIs('faculty.ActivitiesAttendedForm')">
{{ __('Activities Attended') }} {{ __('Activities Attended') }}
</x-responsive-nav-link> </x-responsive-nav-link>
@endif @endif

View File

@@ -39,23 +39,23 @@ Route::middleware('auth')->group(function () {
// Admin routes // Admin routes
Route::middleware(['auth', CheckRole::class . ':Admin'])->group(function () { Route::middleware(['auth', CheckRole::class . ':Admin'])->group(function () {
Route::get('/admin', [AdminController::class, 'index'])->name('admin.dashboard'); Route::get('/admin', [AdminController::class, 'index'])->name('admin.dashboard');
Route::get('/admin/responses', [AdminController::class, 'viewResponses'])->name('admin.responses'); Route::get('/admin/ActivitiesAttendedResponses', [AdminController::class, 'viewActivitiesAttendedResponses'])->name('admin.ActivitiesAttendedResponses');
Route::get('/admin/responses/data', [AdminController::class, 'getResponses'])->name('admin.responses.data'); Route::get('/admin/ActivitiesAttendedResponses/data', [AdminController::class, 'getActivitiesAttendedResponses'])->name('admin.ActivitiesAttendedResponses.data');
}); });
// Coordinator routes // Coordinator routes
Route::middleware(['auth', CheckRole::class . ':Coordinator'])->group(function () { Route::middleware(['auth', CheckRole::class . ':Coordinator'])->group(function () {
Route::get('/coordinator', [CoordinatorController::class, 'index'])->name('coordinator.dashboard'); Route::get('/coordinator', [CoordinatorController::class, 'index'])->name('coordinator.dashboard');
Route::get('/coordinator/responses', [CoordinatorController::class, 'viewResponses'])->name('coordinator.responses'); Route::get('/coordinator/ActivitiesAttendedResponses', [CoordinatorController::class, 'viewActivitiesAttendedResponses'])->name('coordinator.ActivitiesAttendedResponses');
Route::get('/coordinator/responses/data', [CoordinatorController::class, 'getResponses'])->name('coordinator.responses.data'); Route::get('/coordinator/ActivitiesAttendedResponses/data', [CoordinatorController::class, 'getActivitiesAttendedResponses'])->name('coordinator.ActivitiesAttendedResponses.data');
}); });
// Faculty routes // Faculty routes
Route::middleware(['auth', CheckRole::class . ':Faculty'])->group(function () { Route::middleware(['auth', CheckRole::class . ':Faculty'])->group(function () {
Route::get('/faculty', [FacultyController::class, 'index'])->name('faculty.dashboard'); Route::get('/faculty', [FacultyController::class, 'index'])->name('faculty.dashboard');
Route::get('/faculty/response-form', [FacultyController::class, 'responseForm'])->name('faculty.responseForm'); Route::get('/faculty/ActivitiesAttendedForm', [FacultyController::class, 'ActivitiesAttendedForm'])->name('faculty.ActivitiesAttendedForm');
Route::post('/faculty/submit-response', [FacultyController::class, 'submitResponse'])->name('faculty.submitResponse'); Route::post('/faculty/ActivitiesAttendedFormResponse', [FacultyController::class, 'ActivitiesAttendedFormResponse'])->name('faculty.ActivitiesAttendedFormResponse');
}); });
// API Resources // API Resources