some validation and error catching updates
This commit is contained in:
parent
083583e8e2
commit
7f5b8d8bc4
@ -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') {
|
||||
|
@ -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();
|
||||
|
@ -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.']);
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
@ -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();
|
||||
}
|
||||
}
|
||||
|
@ -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();
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
@ -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' => ''),
|
||||
|
@ -11,7 +11,7 @@
|
||||
<form method="POST" action="{{ route('user_add_attendance_note') }}">
|
||||
@csrf
|
||||
|
||||
<input type="hidden" class="form-control" name="attendance_id" value="{{ $attendance->id }}">
|
||||
<input type="hidden" class="form-control" name="attendance_id" value="{{ $attendance->id }}" required>
|
||||
<input type="hidden" id="note_content_hidden-{{ $attendance->id }}" name="note_content_hidden" value="{{ $attendance->notes }}">
|
||||
<div class="form-group">
|
||||
<label for="note_content-{{ $attendance->id }}" class="col-form-label">Treść notatki:</label>
|
||||
|
@ -8,7 +8,9 @@
|
||||
<div class="card-header custom-header">
|
||||
<h4> Wszystkie obecności <span class="badge badge-secondary" title="Liczba wszystkich obecności"> {{ $attendances->count() }} </span> </h4>
|
||||
<div>
|
||||
<a href="{{ route('user_export_grouped', [$grouped_by]) }}" class="btn btn-success btn-export" title="Wyeksportuj wszystko do xlsx"> <i class="fa fa-file-excel-o"></i> Wyeksportuj (.xlsx) </a>
|
||||
@if ($attendances->count() > 0)
|
||||
<a href="{{ route('user_export_grouped', [$grouped_by]) }}" class="btn btn-success btn-export" title="Wyeksportuj wszystko do xlsx"> <i class="fa fa-file-excel-o"></i> Wyeksportuj (.xlsx) </a>
|
||||
@endif
|
||||
<button type="button" class="btn btn-primary add-attendance-btn" title="Dodaj nowy wpis"> <i class="fa fa-plus"></i> Dodaj nowy wpis </button>
|
||||
</div>
|
||||
</div>
|
||||
|
@ -35,8 +35,19 @@
|
||||
<div class="preview-attendance-table">
|
||||
<div class="card-header custom-header">
|
||||
<h4> Lista obecności <span class="badge badge-secondary" title="Liczba osób w sali"> {{ $attendances->count() }} </span></h4>
|
||||
<a href="{{ route('user_export', [$classes_id]) }}" class="btn btn-success btn-export" title="Wyeksportuj tabelę do xlsx"> <i class="fa fa-file-excel-o"></i> Wyeksportuj (.xlsx) </a>
|
||||
@if($attendances->count() > 0)
|
||||
<a href="{{ route('user_export', [$classes_id]) }}" class="btn btn-success btn-export" title="Wyeksportuj tabelę do xlsx"> <i class="fa fa-file-excel-o"></i> Wyeksportuj (.xlsx) </a>
|
||||
@endif
|
||||
</div>
|
||||
@if ($errors->any())
|
||||
<div class="alert alert-danger invalid-feedback-alert">
|
||||
<ul>
|
||||
@foreach ($errors->all() as $error)
|
||||
<li>{{ $error }}</li>
|
||||
@endforeach
|
||||
</ul>
|
||||
</div>
|
||||
@endif
|
||||
<div class="card-body card-custom">
|
||||
<span class="sort-span"> Sortuj: </span>
|
||||
<input type="hidden" id="orderBy-hidden" value="{{ $orderBy }}">
|
||||
|
Loading…
Reference in New Issue
Block a user