From 7f5b8d8bc4fd5c20ca54a682489d0f381082a526 Mon Sep 17 00:00:00 2001 From: s416422 Date: Fri, 6 Mar 2020 18:33:03 +0100 Subject: [PATCH] some validation and error catching updates --- .../AttendanceGroupedExportSingleView.php | 4 +- app/Exports/AttendanceGroupedExportView.php | 3 + .../User/UserAttendancesController.php | 43 +++++++--- .../User/UserClassesController.php | 86 ++++++++++++++----- .../User/UserSubjectsController.php | 25 ++++-- database/seeds/RoomsTableSeeder.php | 16 ++-- .../views/user/attendance_note.blade.php | 2 +- .../views/user/user_attendances.blade.php | 4 +- .../views/user/user_preview_classes.blade.php | 13 ++- 9 files changed, 143 insertions(+), 53 deletions(-) diff --git a/app/Exports/AttendanceGroupedExportSingleView.php b/app/Exports/AttendanceGroupedExportSingleView.php index 1e0a344..f8a0164 100644 --- a/app/Exports/AttendanceGroupedExportSingleView.php +++ b/app/Exports/AttendanceGroupedExportSingleView.php @@ -34,8 +34,8 @@ class AttendanceGroupedExportSingleView implements FromView, WithTitle { if($this->groupBy == 'classes_id') { - $subject = Subject::find(Classes::find($this->groupedValue)->subject_id)->name; - $date = Classes::find($this->groupedValue)->date; + $subject = Subject::findOrFail(Classes::find($this->groupedValue)->subject_id)->name; + $date = Classes::findOrFail($this->groupedValue)->date; $this->groupedValue = "{$date} {$subject}"; } else if($this->groupBy == 'seat_number') { diff --git a/app/Exports/AttendanceGroupedExportView.php b/app/Exports/AttendanceGroupedExportView.php index bdaff42..207c509 100644 --- a/app/Exports/AttendanceGroupedExportView.php +++ b/app/Exports/AttendanceGroupedExportView.php @@ -28,6 +28,9 @@ class AttendanceGroupedExportView implements WithMultipleSheets public function sheets(): array { $user_id = Auth::id(); + if(!$user_id) { + abort(401); + } $subjects = Subject::where('user_id', $user_id)->get(); $subjects_ids = $subjects->pluck('id')->toArray(); $classes = Classes::whereIn('subject_id', $subjects_ids)->orderBy('created_at','DESC')->get(); diff --git a/app/Http/Controllers/User/UserAttendancesController.php b/app/Http/Controllers/User/UserAttendancesController.php index 3c3bd03..a131d2c 100644 --- a/app/Http/Controllers/User/UserAttendancesController.php +++ b/app/Http/Controllers/User/UserAttendancesController.php @@ -3,6 +3,7 @@ namespace App\Http\Controllers\User; use App\Http\Controllers\Controller; +use Illuminate\Database\Eloquent\ModelNotFoundException; use Illuminate\Http\Request; use Illuminate\Support\Facades\Auth; use App\Exports\AttendanceExportView; @@ -40,6 +41,9 @@ class UserAttendancesController extends Controller public function index($groupBy='classes_id') { $user_id = Auth::id(); + if(!$user_id) { + abort(401); + } $subjects = Subject::where('user_id', $user_id)->get(); $subjects_ids = $subjects->pluck('id')->toArray(); $classes = Classes::whereIn('subject_id', $subjects_ids)->orderBy('created_at','DESC')->get(); @@ -83,20 +87,29 @@ class UserAttendancesController extends Controller public function delete_attendance($attendance_id) { - Attendance::find($attendance_id)->delete(); - return redirect()->back(); + try { + Attendance::findOrFail($attendance_id)->delete(); + return redirect()->back(); + } catch(ModelNotFoundException $exception) { + return redirect()->back()->withErrors(['Taki wpis obecności nie istnieje w bazie danych, zatem nie można go usunąć.']); + } } public function edit_attendance($attendance_id) { - Attendance::find($attendance_id); + Attendance::findOrFail($attendance_id); return redirect()->back(); } public function export($classes_id) { - $classes_date = Classes::find($classes_id)->date; - return Excel::download(new AttendanceExportView($classes_id), "classes-attendance-{$classes_date}.xlsx"); + try { + $classes_date = Classes::findOrFail($classes_id)->date; + return Excel::download(new AttendanceExportView($classes_id), "classes-attendance-{$classes_date}.xlsx"); + } catch(ModelNotFoundException $exception) { + return redirect()->back()->withErrors(['Takie zajęcia nie istnieją w bazie danych, zatem nie można wyeksportować obecności.']); + } + } public function export_grouped($groupBy) @@ -106,18 +119,24 @@ class UserAttendancesController extends Controller if($groupBy == 'classes_id') { $groupByLabel = 'classes-name'; } - return Excel::download(new AttendanceGroupedExportView($groupBy), "all-attendance-grouped-by-{$groupByLabel}-{$today_date}.xlsx"); + if($today_date & $groupByLabel){ + return Excel::download(new AttendanceGroupedExportView($groupBy), "all-attendance-grouped-by-{$groupByLabel}-{$today_date}.xlsx"); + }; + return redirect()->back(); } public function add_attendance_note(Request $request) { $attendance_id = $request->input('attendance_id'); $note = $request->input('note_content'); - $attendance = Attendance::find($attendance_id); - $attendance->notes = $note; - $attendance->save(); - $attendance->refresh(); - return redirect()->back(); + try { + $attendance = Attendance::findOrFail($attendance_id); + $attendance->notes = $note; + $attendance->save(); + $attendance->refresh(); + return redirect()->back(); + } catch(ModelNotFoundException $exception) { + return redirect()->back()->withErrors(['Taki wpis obecności nie istnieje w bazie danych, zatem nie można dodaź do niego notatki.']); + } } - } diff --git a/app/Http/Controllers/User/UserClassesController.php b/app/Http/Controllers/User/UserClassesController.php index db56cd2..bd9f662 100644 --- a/app/Http/Controllers/User/UserClassesController.php +++ b/app/Http/Controllers/User/UserClassesController.php @@ -5,6 +5,7 @@ namespace App\Http\Controllers\User; use App\Attendance; use App\Http\Controllers\Controller; use App\Http\Controllers\UserCache; +use Illuminate\Database\Eloquent\ModelNotFoundException; use Illuminate\Http\Request; use App\Subject; @@ -54,6 +55,9 @@ class UserClassesController extends Controller { public function index($groupBy = 'subject_id') { $user_id = Auth::id(); + if(!$user_id) { + abort(401); + } $subjects = Subject::where('user_id', $user_id)->get(); $subjects_ids = $subjects->pluck('id')->toArray(); $classes = Classes::whereIn('subject_id', $subjects_ids)->orderBy('created_at', 'DESC')->get(); @@ -91,26 +95,33 @@ class UserClassesController extends Controller { } public function delete_classes($classes_id) { - Classes::find($classes_id)->delete(); - return redirect()->back(); + try { + Classes::findOrFail($classes_id)->delete(); + return redirect()->back(); + } catch(ModelNotFoundException $exception) { + return redirect()->back()->withErrors(['Takie zajęcia nie istniejeą w bazie danych, zatem nie można ich usunąć.']); + } } public function edit_classes($classes_id) { - Classes::find($classes_id); + Classes::findOrFail($classes_id); return redirect()->back(); } public function start_classes($classes_id) { - $classes = Classes::find($classes_id); - $classes_code = $classes->classes_code; - if (!$classes_code) { - $classes_code = generateRandomString(10); - $classes->classes_code = $classes_code; - $classes->save(); - $classes->refresh(); + try { + $classes = Classes::findOrFail($classes_id); + $classes_code = $classes->classes_code; + if (!$classes_code) { + $classes_code = generateRandomString(10); + $classes->classes_code = $classes_code; + $classes->save(); + $classes->refresh(); + } + return view('map.start_map', ['classes_code' => $classes_code, 'classes' => $classes]); + } catch(ModelNotFoundException $exception) { + return redirect()->back()->withErrors(['Takie zajęcia nie istnieją w bazie danych, zatem nie można ich rozpocząć.']); } - - return view('map.start_map', ['classes_code' => $classes_code, 'classes' => $classes]); } public function start_classes_verified(Request $request) { @@ -123,9 +134,21 @@ class UserClassesController extends Controller { $student_id_number = $request->input('student_id_number'); $student_name = $request->input('student_name'); $student_surname = $request->input('student_surname'); - $classes = Classes::find($request->get('classes_id')); - $subject = Subject::find($classes->subject_id); - $room_capacity = Room::find($subject->room_id)->capacity; + try { + $classes = Classes::findOrFail($request->get('classes_id')); + } catch(ModelNotFoundException $exception) { + return redirect()->back()->withErrors(['Takie zajęcia nie istnieją w bazie danych, zatem nie można ich rozpocząć.']); + } + try { + $subject = Subject::findOrFail($classes->subject_id); + } catch(ModelNotFoundException $exception) { + return redirect()->back()->withErrors(['Taki przedmiot nie istnieje w bazie danych.']); + } + try { + $room_capacity = Room::findOrFail($subject->room_id)->capacity; + } catch(ModelNotFoundException $exception) { + return redirect()->back()->withErrors(['Taka sala nie istnieje w bazie danych.']); + } $attendances = Attendance::where('classes_id', $classes->id)->get(); $student_ids = $attendances->pluck('student_id_number')->toArray(); $seat_numbers = $attendances->pluck('seat_number')->toArray(); @@ -157,7 +180,11 @@ class UserClassesController extends Controller { return view('map.summary_map', ['student_name' => $student_name, 'student_surname' => $student_surname, 'seat_number' => null, 'student_id_number' => $student_id_number, 'classes_id' => $classes->id, 'mode' => $classes->mode, 'warning' => null]); } else { // prepare seat map - $room_arrangement = Room::find($subject->room_id)->arrangement; + try { + $room_arrangement = Room::findOrFail($subject->room_id)->arrangement; + } catch(ModelNotFoundException $exception) { + return redirect()->back()->withErrors(['Taka sala nie istnieje w bazie danych.']); + } if (!$room_arrangement) { $room_arrangement = Room::where('name', 'Inna sala')->first()->arrangement; } @@ -182,6 +209,7 @@ class UserClassesController extends Controller { } } } + } public function save_classes_data(Request $request) { @@ -190,7 +218,11 @@ class UserClassesController extends Controller { $student_name = $request->input('student_name'); $student_surname = $request->input('student_surname'); $seat_number = $request->input('seat_number'); - $classes = Classes::find($request->get('classes_id')); + try { + $classes = Classes::findOrFail($request->get('classes_id')); + } catch(ModelNotFoundException $exception) { + return redirect()->back()->withErrors(['Takie zajęcia nie istnieją w bazie danych.']); + } $attendances = Attendance::where('classes_id', $classes->id)->get(); $student_ids = $attendances->pluck('student_id_number')->toArray(); @@ -212,11 +244,23 @@ class UserClassesController extends Controller { public function preview_classes($classes_id, $orderBy = 'student_surname', $orderDirection = 'ASC') { if (!$classes_id == 0) { - $classes = Classes::find($classes_id); + try { + $classes = Classes::findOrFail($classes_id); + } catch(ModelNotFoundException $exception) { + return redirect()->back()->withErrors(['Takie zajęcia nie istnieją w bazie danych.']); + } $attendances = Attendance::where('classes_id', $classes->id)->orderBy($orderBy, $orderDirection)->get(); $seat_numbers = $attendances->pluck('seat_number')->toArray(); - $subject = Subject::find($classes->subject_id); - $room_arrangement = Room::find($subject->room_id)->arrangement; + try { + $subject = Subject::findOrFail($classes->subject_id); + } catch(ModelNotFoundException $exception) { + return redirect()->back()->withErrors(['Taki przedmiot nie istnieje w bazie danych.']); + } + try { + $room_arrangement = Room::findOrFail($subject->room_id)->arrangement; + } catch(ModelNotFoundException $exception) { + return redirect()->back()->withErrors(['Taka sala nie istnieje w bazie danych.']); + } if (!$room_arrangement) { $room_arrangement = Room::where('name', 'Inna sala')->first()->arrangement; } @@ -228,7 +272,7 @@ class UserClassesController extends Controller { $multi_parts = false; } return view('user.user_preview_classes', ['classes_id' => $classes_id, 'room_arrangement' => $room_arrangement, 'attendances' => $attendances, 'seat_numbers' => $seat_numbers, 'orderBy' => $orderBy, 'orderDirection' => $orderDirection, 'multi_parts' => $multi_parts, 'parts_number' => $parts_number]); - } + return redirect()->back(); } } diff --git a/app/Http/Controllers/User/UserSubjectsController.php b/app/Http/Controllers/User/UserSubjectsController.php index 76bd127..f552cff 100644 --- a/app/Http/Controllers/User/UserSubjectsController.php +++ b/app/Http/Controllers/User/UserSubjectsController.php @@ -3,6 +3,7 @@ namespace App\Http\Controllers\User; use App\Http\Controllers\Controller; +use Illuminate\Database\Eloquent\ModelNotFoundException; use Illuminate\Support\Facades\Validator; use Illuminate\Http\Request; use Illuminate\Support\Facades\Auth; @@ -56,6 +57,9 @@ class UserSubjectsController extends Controller public function index($groupBy = 'weekday') { $user_id = Auth::id(); + if(!$user_id) { + abort(401); + } $subjects = Subject::where('user_id', $user_id)->orderBy('name','ASC')->get(); $subjects_grouped = $subjects->groupBy($groupBy); $rooms = Room::all(); @@ -94,16 +98,20 @@ class UserSubjectsController extends Controller public function delete_subject($subject_id) { - Subject::find($subject_id)->delete(); - return redirect()->back(); + try { + Subject::findOrFail($subject_id)->delete(); + return redirect()->back(); + } catch(ModelNotFoundException $exception) { + return redirect()->back()->withErrors(['Taki przedmiot nie istnieje w bazie danych, zatem nie można go usunąć.']); + } } public function edit_subject(Request $request) { $subject_id = $request->input('subject_id'); - $subject = Subject::find($subject_id); - if($subject) { - if($request->input('name_e') == $subject->name) { + try { + $subject = Subject::findOrFail($subject_id); + if ($request->input('name_e') == $subject->name) { $validator = $this->edited_validator($request->except(['name_e'])); } else { $validator = $this->edited_validator($request->all()); @@ -120,7 +128,10 @@ class UserSubjectsController extends Controller $subject->room_id = $request->input('room_id_e'); $subject->save(); $subject->refresh(); + return redirect()->back(); + } catch(ModelNotFoundException $exception) { + return redirect()->back()->withErrors(['Taki przedmiot nie istnieje w bazie danych, zatem nie można go edytować.']); } - return redirect()->back(); - } + +} } diff --git a/database/seeds/RoomsTableSeeder.php b/database/seeds/RoomsTableSeeder.php index ae8865e..5475c04 100644 --- a/database/seeds/RoomsTableSeeder.php +++ b/database/seeds/RoomsTableSeeder.php @@ -53,17 +53,17 @@ class RoomsTableSeeder extends Seeder ), array('name' => 'A2-2', 'capacity' => 34, 'arrangement' => 'c[1,1]c[2,2]c[3,3]c[4,4]c[5,5]c[6,6]++_++c[7,7]c[8,8]c[9,9]c[10,10]c[11,11]c[12,12]++c[13,13]c[14,14]c[15,15]c[16,16]c[17,17]c[18,18]++c[19,19]c[20,20]c[21,21]c[22,22]c[23,23]c[24,24]++_++c[25,25]c[26,26]c[27,27]c[28,28]c[29,29]c[30,30]++c[31,31]c[32,32]c[33,33]c[34,34]', 'description' => ''), array('name' => 'A2-20', 'capacity' => 32, 'arrangement' => 'c[1,1]c[2,2]c[3,3]c[4,4]c[5,5]c[6,6]++_++c[7,7]c[8,8]c[9,9]c[10,10]c[11,11]c[12,12]++c[13,13]c[14,14]c[15,15]c[16,16]c[17,17]c[18,18]++c[19,19]c[20,20]c[21,21]c[22,22]c[23,23]c[24,24]++_++c[25,25]c[26,26]c[27,27]c[28,28]c[29,29]c[30,30]++c[31,31]c[32,32]', 'description' => ''), - array('name' => 'A2-21', 'capacity' => 48, 'arrangement' => 'c[1,1]c[2,2]c[3,3]c[4,4]_c[5,5]c[6,6]c[7,7]c[8,8]++c[9,9]c[10,10]c[11,11]c[12,12]_c[13,13]c[14,14]c[15,15]c[16,16]++c[17,17]c[18,18]c[19,19]c[20,20]_c[21,21]c[22,22]c[23,23]c[24,24]++c[25,25]c[26,26]c[27,27]c[28,28]_c[29,29]c[30,30]c[31,31]c[32,32]++c[33,33]c[34,34]c[35,35]c[36,36]_c[37,37]c[38,38]c[39,39]c[40,40]++c[41,41]c[42,42]c[43,43]c[44,44]_c[45,45]c[46,46]c[47,47]c[48,48]', - 'description' => 'Perspektywa z poziomu komputera prowadzącego - numery 1-8 to rząd pod ścianą.' + array('name' => 'A2-21', 'capacity' => 48, 'arrangement' => '_____c[1,1]c[2,2]c[3,3]c[4,4]++_____c[5,5]c[6,6]c[7,7]c[8,8]++c[9,9]c[10,10]c[11,11]c[12,12]_c[13,13]c[14,14]c[15,15]c[16,16]++c[17,17]c[18,18]c[19,19]c[20,20]_c[21,21]c[22,22]c[23,23]c[24,24]++c[25,25]c[26,26]c[27,27]c[28,28]_c[29,29]c[30,30]c[31,31]c[32,32]++c[33,33]c[34,34]c[35,35]c[36,36]_c[37,37]c[38,38]c[39,39]c[40,40]++c[41,41]c[42,42]c[43,43]c[44,44]_c[45,45]c[46,46]c[47,47]c[48,48]', + 'description' => 'Perspektywa z poziomu komputera prowadzącego - numery 1-4 to rząd pod ścianą.' ), - array('name' => 'A2-22', 'capacity' => 48, 'arrangement' => 'c[1,1]c[2,2]c[3,3]c[4,4]_c[5,5]c[6,6]c[7,7]c[8,8]++c[9,9]c[10,10]c[11,11]c[12,12]_c[13,13]c[14,14]c[15,15]c[16,16]++c[17,17]c[18,18]c[19,19]c[20,20]_c[21,21]c[22,22]c[23,23]c[24,24]++c[25,25]c[26,26]c[27,27]c[28,28]_c[29,29]c[30,30]c[31,31]c[32,32]++c[33,33]c[34,34]c[35,35]c[36,36]_c[37,37]c[38,38]c[39,39]c[40,40]++c[41,41]c[42,42]c[43,43]c[44,44]_c[45,45]c[46,46]c[47,47]c[48,48]', - 'description' => 'Perspektywa z poziomu komputera prowadzącego - numery 1-8 to rząd pod ścianą.' + array('name' => 'A2-22', 'capacity' => 48, 'arrangement' => '_____c[1,1]c[2,2]c[3,3]c[4,4]++_____c[5,5]c[6,6]c[7,7]c[8,8]++c[9,9]c[10,10]c[11,11]c[12,12]_c[13,13]c[14,14]c[15,15]c[16,16]++c[17,17]c[18,18]c[19,19]c[20,20]_c[21,21]c[22,22]c[23,23]c[24,24]++c[25,25]c[26,26]c[27,27]c[28,28]_c[29,29]c[30,30]c[31,31]c[32,32]++c[33,33]c[34,34]c[35,35]c[36,36]_c[37,37]c[38,38]c[39,39]c[40,40]++c[41,41]c[42,42]c[43,43]c[44,44]_c[45,45]c[46,46]c[47,47]c[48,48]', + 'description' => 'Perspektywa z poziomu komputera prowadzącego - numery 1-4 to rząd pod ścianą.' ), - array('name' => 'A2-23', 'capacity' => 48, 'arrangement' => 'c[1,1]c[2,2]c[3,3]c[4,4]_c[5,5]c[6,6]c[7,7]c[8,8]++c[9,9]c[10,10]c[11,11]c[12,12]_c[13,13]c[14,14]c[15,15]c[16,16]++c[17,17]c[18,18]c[19,19]c[20,20]_c[21,21]c[22,22]c[23,23]c[24,24]++c[25,25]c[26,26]c[27,27]c[28,28]_c[29,29]c[30,30]c[31,31]c[32,32]++c[33,33]c[34,34]c[35,35]c[36,36]_c[37,37]c[38,38]c[39,39]c[40,40]++c[41,41]c[42,42]c[43,43]c[44,44]_c[45,45]c[46,46]c[47,47]c[48,48]', - 'description' => 'Perspektywa z poziomu komputera prowadzącego - numery 1-8 to rząd pod ścianą.' + array('name' => 'A2-23', 'capacity' => 48, 'arrangement' => '_____c[1,1]c[2,2]c[3,3]c[4,4]++_____c[5,5]c[6,6]c[7,7]c[8,8]++c[9,9]c[10,10]c[11,11]c[12,12]_c[13,13]c[14,14]c[15,15]c[16,16]++c[17,17]c[18,18]c[19,19]c[20,20]_c[21,21]c[22,22]c[23,23]c[24,24]++c[25,25]c[26,26]c[27,27]c[28,28]_c[29,29]c[30,30]c[31,31]c[32,32]++c[33,33]c[34,34]c[35,35]c[36,36]_c[37,37]c[38,38]c[39,39]c[40,40]++c[41,41]c[42,42]c[43,43]c[44,44]_c[45,45]c[46,46]c[47,47]c[48,48]', + 'description' => 'Perspektywa z poziomu komputera prowadzącego - numery 1-4 to rząd pod ścianą.' ), - array('name' => 'A2-24', 'capacity' => 48, 'arrangement' => 'c[1,1]c[2,2]c[3,3]c[4,4]_c[5,5]c[6,6]c[7,7]c[8,8]++c[9,9]c[10,10]c[11,11]c[12,12]_c[13,13]c[14,14]c[15,15]c[16,16]++c[17,17]c[18,18]c[19,19]c[20,20]_c[21,21]c[22,22]c[23,23]c[24,24]++c[25,25]c[26,26]c[27,27]c[28,28]_c[29,29]c[30,30]c[31,31]c[32,32]++c[33,33]c[34,34]c[35,35]c[36,36]_c[37,37]c[38,38]c[39,39]c[40,40]++c[41,41]c[42,42]c[43,43]c[44,44]_c[45,45]c[46,46]c[47,47]c[48,48]', - 'description' => 'Perspektywa z poziomu komputera prowadzącego - numery 1-8 to rząd pod ścianą.' + array('name' => 'A2-24', 'capacity' => 48, 'arrangement' => '_____c[1,1]c[2,2]c[3,3]c[4,4]++_____c[5,5]c[6,6]c[7,7]c[8,8]++c[9,9]c[10,10]c[11,11]c[12,12]_c[13,13]c[14,14]c[15,15]c[16,16]++c[17,17]c[18,18]c[19,19]c[20,20]_c[21,21]c[22,22]c[23,23]c[24,24]++c[25,25]c[26,26]c[27,27]c[28,28]_c[29,29]c[30,30]c[31,31]c[32,32]++c[33,33]c[34,34]c[35,35]c[36,36]_c[37,37]c[38,38]c[39,39]c[40,40]++c[41,41]c[42,42]c[43,43]c[44,44]_c[45,45]c[46,46]c[47,47]c[48,48]', + 'description' => 'Perspektywa z poziomu komputera prowadzącego - numery 1-4 to rząd pod ścianą.' ), array('name' => 'A2-4', 'capacity' => 24, 'arrangement' => 'c[1,1]c[2,2]c[3,3]c[4,4]c[5,5]c[6,6]++_++c[7,7]c[8,8]c[9,9]c[10,10]c[11,11]c[12,12]++c[13,13]c[14,14]c[15,15]c[16,16]c[17,17]c[18,18]++c[19,19]c[20,20]c[21,21]c[22,22]c[23,23]++c[24,24]', 'description' => ''), array('name' => 'A2-5', 'capacity' => 24, 'arrangement' => 'c[1,1]c[2,2]c[3,3]c[4,4]c[5,5]c[6,6]++_++c[7,7]c[8,8]c[9,9]c[10,10]c[11,11]c[12,12]++c[13,13]c[14,14]c[15,15]c[16,16]c[17,17]c[18,18]++c[19,19]c[20,20]c[21,21]c[22,22]c[23,23]++c[24,24]', 'description' => ''), diff --git a/resources/views/user/attendance_note.blade.php b/resources/views/user/attendance_note.blade.php index 1b22303..6ead369 100644 --- a/resources/views/user/attendance_note.blade.php +++ b/resources/views/user/attendance_note.blade.php @@ -11,7 +11,7 @@
@csrf - +
diff --git a/resources/views/user/user_attendances.blade.php b/resources/views/user/user_attendances.blade.php index 60b5466..28d137f 100644 --- a/resources/views/user/user_attendances.blade.php +++ b/resources/views/user/user_attendances.blade.php @@ -8,7 +8,9 @@

Wszystkie obecności {{ $attendances->count() }}

- Wyeksportuj (.xlsx) + @if ($attendances->count() > 0) + Wyeksportuj (.xlsx) + @endif
diff --git a/resources/views/user/user_preview_classes.blade.php b/resources/views/user/user_preview_classes.blade.php index 4377a9a..2824ba0 100644 --- a/resources/views/user/user_preview_classes.blade.php +++ b/resources/views/user/user_preview_classes.blade.php @@ -35,8 +35,19 @@

Lista obecności {{ $attendances->count() }}

- Wyeksportuj (.xlsx) + @if($attendances->count() > 0) + Wyeksportuj (.xlsx) + @endif
+ @if ($errors->any()) +
+
    + @foreach ($errors->all() as $error) +
  • {{ $error }}
  • + @endforeach +
+
+ @endif
Sortuj: