From 24b5683090aacf964c5cacc5ae9b227780511a69 Mon Sep 17 00:00:00 2001 From: "m.zargarov" Date: Thu, 20 Jun 2024 12:27:05 +0400 Subject: [PATCH] Add journal --- .../Controllers/GradeSubjectController.php | 27 +++------ app/Services/JournalService.php | 19 +++++++ .../views/grade-subject/journal.blade.php | 57 +++++++++++++++++++ resources/views/grades/show.blade.php | 2 +- routes/web.php | 4 +- 5 files changed, 89 insertions(+), 20 deletions(-) create mode 100644 app/Services/JournalService.php create mode 100644 resources/views/grade-subject/journal.blade.php diff --git a/app/Http/Controllers/GradeSubjectController.php b/app/Http/Controllers/GradeSubjectController.php index d7ee45d..3ec4ed8 100644 --- a/app/Http/Controllers/GradeSubjectController.php +++ b/app/Http/Controllers/GradeSubjectController.php @@ -5,7 +5,7 @@ namespace App\Http\Controllers; use App\Http\Requests\GradeSubjectPostRequest; use App\Models\Grade; use App\Models\Subject; -use App\Services\ServiceInterface; +use App\Services\JournalService; use Illuminate\Http\RedirectResponse; use Illuminate\View\View; @@ -26,27 +26,18 @@ class GradeSubjectController extends Controller return redirect()->route('grades.show', $grade); } - public function edit(Grade $grade, Subject $subject): View - { - return view('grade-subject.edit', [ - 'grade' => $grade, - 'updateSubject' => $subject, - 'subjects' => Subject::all(), - ]); - } - - public function update(GradeSubjectPostRequest $request, Grade $grade, Subject $subject): RedirectResponse - { - $grade->subjects()->detach($subject); - $grade->subjects()->attach($request->subject_id); - - return redirect()->route('grades.show', $grade); - } - public function destroy(Grade $grade, Subject $subject): RedirectResponse { $grade->subjects()->detach($subject); return redirect()->route('grades.show', $grade); } + + public function journal(Grade $grade, Subject $subject, JournalService $service): View + { + return view('grade-subject.journal', [ + 'lessons' => $grade->lessons()->where('subject_id', $subject->id)->with('students')->get(), + 'students' => $grade->students()->orderBy('last_name')->get(), + ]); + } } diff --git a/app/Services/JournalService.php b/app/Services/JournalService.php new file mode 100644 index 0000000..daa1238 --- /dev/null +++ b/app/Services/JournalService.php @@ -0,0 +1,19 @@ +where('grade_id', $grade->id) + ->where('subject_id', $subject->id) + ->orderBy('lesson_date') + ->get(); + } +} diff --git a/resources/views/grade-subject/journal.blade.php b/resources/views/grade-subject/journal.blade.php new file mode 100644 index 0000000..02f3cb1 --- /dev/null +++ b/resources/views/grade-subject/journal.blade.php @@ -0,0 +1,57 @@ +@extends('layouts.application') + +@section('content') +
+
+ @if (count($students)) +
+
{{__('Журнал')}}
+
+
+ + + + + @foreach ($lessons as $lesson) + + @endforeach + + + + @foreach ($lessons as $lesson) + + @endforeach + + + + @foreach ($students as $student) + + + @foreach ($lessons as $lesson) + + @endforeach + + @endforeach +{{-- --}} +{{-- --}} +{{-- @foreach ($avgScores as $avgScore)--}} +{{-- --}} +{{-- @endforeach--}} +{{-- --}} + +
ФИО{{ $lesson->lesson_date }}
{{ $lesson->type }}
{{ $student->fio }} + {{ $student->lessons->find($lesson->id)->pivot->score ?? "-" }} +
Средняя оценка--}} +{{-- {{ $avgScore ? $avgScore : "" }}--}} +{{--
+
+
+
+{{--
--}} +{{-- @include('journals.list', ['users' => $goods, 'studentName' => 'хорошистов'])--}} +{{-- @include('journals.list', ['users' => $perfects, 'studentName' => 'отличников'])--}} +{{--
--}} + @endif +
+
+@endsection diff --git a/resources/views/grades/show.blade.php b/resources/views/grades/show.blade.php index 80fa23f..dc25c85 100644 --- a/resources/views/grades/show.blade.php +++ b/resources/views/grades/show.blade.php @@ -35,7 +35,7 @@
- Редактировать + Журнал
diff --git a/routes/web.php b/routes/web.php index 95a8b77..aafe04d 100644 --- a/routes/web.php +++ b/routes/web.php @@ -35,11 +35,13 @@ Route::middleware('auth')->group(function () { Route::resource('teachers.subjects', SubjectTeacherController::class)->except('index'); Route::resource('teachers.subjects.grades', GradeTeacherController::class)->except('index', 'show'); - Route::resource('grades.subjects', GradeSubjectController::class)->except('index', 'show'); + Route::resource('grades.subjects', GradeSubjectController::class)->except('index', 'show', 'edit', 'update'); Route::get('lessons/{lesson}/scores', [ScoreController::class, 'show'])->name('lessons.scores.show'); Route::put('lessons/{lesson}/scores', [ScoreController::class, 'update'])->name('lessons.scores.update'); Route::get('export-pdf', [SubjectController::class, 'exportToPDF'])->name('export-pdf'); + + Route::get('grades/{grade}/subjects/{subject}/journal', [GradeSubjectController::class, 'journal'])->name('grades.subjects.journal'); }); require __DIR__.'/auth.php';