From 1216f6b81bf6cddc0b8b86a86f82bd3a93be650f Mon Sep 17 00:00:00 2001 From: "m.zargarov" Date: Sun, 23 Jun 2024 00:57:29 +0400 Subject: [PATCH] Rebase --- .../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 | 1 + 5 files changed, 88 insertions(+), 18 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 0d8a69a..cc335e2 100644 --- a/app/Http/Controllers/GradeSubjectController.php +++ b/app/Http/Controllers/GradeSubjectController.php @@ -5,6 +5,8 @@ namespace App\Http\Controllers; use App\Http\Requests\GradeSubjectPostRequest; use App\Models\Grade; use App\Models\Subject; + +use App\Services\JournalService; use Illuminate\Http\RedirectResponse; use Illuminate\View\View; @@ -25,27 +27,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 db41072..498a15c 100644 --- a/routes/web.php +++ b/routes/web.php @@ -44,6 +44,7 @@ Route::middleware('auth')->group(function () { Route::middleware([TeacherAction::class])->group(function () { 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('grades/{grade}/subjects/{subject}/journal', [GradeSubjectController::class, 'journal'])->name('grades.subjects.journal'); }); Route::get('export-pdf', [SubjectController::class, 'exportToPDF'])->name('export-pdf');