feat: implement Course Registration management with CRUD functionality #64

Merged
pangestu merged 1 commits from refactor/move-Course-Registration-from-academic-class-to-manage into dev 2026-08-30 15:11:46 +08:00
7 changed files with 18 additions and 18 deletions

View File

@ -1,13 +1,13 @@
<?php
namespace App\Http\Controllers\Admin\AcademicClasses;
namespace App\Http\Controllers\Admin\Manage;
use App\Http\Controllers\Controller;
use App\Http\Requests\Admin\AcademicClasses\CourseRegistrationRequest;
use App\Http\Requests\Admin\Manage\CourseRegistrationRequest;
use App\Http\Requests\PaginatedRequest;
use App\Models\CourseRegistration;
use App\Services\Admin\AcademicClasses\CourseRegistrationService;
use App\Services\Admin\Manage\CourseClassService;
use App\Services\Admin\Manage\CourseRegistrationService;
use App\Services\Admin\Master\AcademicTermService;
use App\Services\Admin\Users\LecturerService;
use App\Services\Admin\Users\StudentService;
@ -27,7 +27,7 @@ public function __construct(
public function index(PaginatedRequest $request): Response
{
return Inertia::render('admin/academic-classes/course-registrations/index', [
return Inertia::render('admin/manage/course-registrations/index', [
'registrations' => $this->service->paginated(
...$request->validatedWithDefaults(),
status: $request->validated('status'),
@ -47,7 +47,7 @@ public function store(CourseRegistrationRequest $request): RedirectResponse
Inertia::flash('toast', ['type' => 'success', 'message' => 'Registrasi KRS berhasil ditambahkan.']);
return to_route('admin.academic-classes.course-registrations.index');
return to_route('admin.manage.course-registrations.index');
}
public function update(CourseRegistrationRequest $request, CourseRegistration $courseRegistration): RedirectResponse
@ -56,7 +56,7 @@ public function update(CourseRegistrationRequest $request, CourseRegistration $c
Inertia::flash('toast', ['type' => 'success', 'message' => 'Registrasi KRS berhasil diperbarui.']);
return to_route('admin.academic-classes.course-registrations.index');
return to_route('admin.manage.course-registrations.index');
}
public function destroy(CourseRegistration $courseRegistration): RedirectResponse

View File

@ -1,6 +1,6 @@
<?php
namespace App\Http\Requests\Admin\AcademicClasses;
namespace App\Http\Requests\Admin\Manage;
use App\Enums\RegistrationStatus;
use Illuminate\Foundation\Http\FormRequest;

View File

@ -1,6 +1,6 @@
<?php
namespace App\Services\Admin\AcademicClasses;
namespace App\Services\Admin\Manage;
use App\Enums\RegistrationStatus;
use App\Models\ClassEnrollment;

View File

@ -38,13 +38,13 @@ import {
} from '@/components/ui/sidebar';
import { index as assignmentsRoute } from '@/routes/admin/academic-classes/assignments';
import { index as attendancesRoute } from '@/routes/admin/academic-classes/attendances';
import { index as courseRegistrationsRoute } from '@/routes/admin/academic-classes/course-registrations';
import { index as materialsRoute } from '@/routes/admin/academic-classes/materials';
import { index as schedulesRoute } from '@/routes/admin/academic-classes/schedules';
import { index as announcementsRoute } from '@/routes/admin/announcements';
import { index as feedbackRoute } from '@/routes/admin/feedback';
import { index as tuitionInvoicesRoute } from '@/routes/admin/finances/tuition-invoices';
import { index as courseClassesRoute } from '@/routes/admin/manage/course-classes';
import { index as courseRegistrationsRoute } from '@/routes/admin/manage/course-registrations';
import { index as academicTerm } from '@/routes/admin/master/academic-terms';
import { index as coursesRoute } from '@/routes/admin/master/courses';
import { index as departmentsRoute } from '@/routes/admin/master/departments';
@ -110,6 +110,11 @@ const data: {
{
label: 'Kelola',
items: [
{
name: 'Registrasi KRS',
url: courseRegistrationsRoute.url(),
icon: FileCheck2,
},
{
name: 'Kelas Mata Kuliah',
url: courseClassesRoute.url(),
@ -120,11 +125,6 @@ const data: {
{
label: 'Kelas',
items: [
{
name: 'Registrasi KRS',
url: courseRegistrationsRoute.url(),
icon: FileCheck2,
},
{
name: 'Materi',
url: materialsRoute.url(),

View File

@ -24,7 +24,7 @@ import {
destroy,
store,
update,
} from '@/routes/admin/academic-classes/course-registrations';
} from '@/routes/admin/manage/course-registrations';
import type {
CourseRegistration,
CourseRegistrationCourseClass,

View File

@ -2,7 +2,6 @@
use App\Http\Controllers\Admin\AcademicClasses\AssignmentController;
use App\Http\Controllers\Admin\AcademicClasses\AttendanceController;
use App\Http\Controllers\Admin\AcademicClasses\CourseRegistrationController;
use App\Http\Controllers\Admin\AcademicClasses\MaterialController;
use App\Http\Controllers\Admin\AcademicClasses\ScheduleController;
use App\Http\Controllers\Admin\AcademicClasses\SubmissionController;
@ -12,6 +11,7 @@
use App\Http\Controllers\Admin\Finances\TuitionPaymentController;
use App\Http\Controllers\Admin\Manage\ClassEnrollmentController;
use App\Http\Controllers\Admin\Manage\CourseClassController;
use App\Http\Controllers\Admin\Manage\CourseRegistrationController;
use App\Http\Controllers\Admin\Master\AcademicTermController;
use App\Http\Controllers\Admin\Master\CourseController;
use App\Http\Controllers\Admin\Master\DepartmentController;
@ -33,8 +33,6 @@
});
Route::prefix('admin/academic-classes')->name('admin.academic-classes.')->group(function () {
Route::resource('course-registrations', CourseRegistrationController::class)->except(['create', 'edit', 'show']);
Route::resource('materials', MaterialController::class)->except(['create', 'edit', 'show']);
Route::resource('assignments', AssignmentController::class)->except(['create', 'edit', 'show']);
@ -63,6 +61,8 @@
});
Route::prefix('admin/manage')->name('admin.manage.')->group(function () {
Route::resource('course-registrations', CourseRegistrationController::class)->except(['create', 'edit', 'show']);
Route::resource('course-classes', CourseClassController::class)->except(['create', 'edit', 'show']);
Route::prefix('course-classes/{course_class}/enrollments')->name('course-classes.enrollments.')->group(function () {