From 494b04277eeac98278d97fd71206321d1740532a Mon Sep 17 00:00:00 2001
From: s416422
Date: Thu, 19 Dec 2019 00:10:39 +0100
Subject: [PATCH] attendance notes added, sorting in classes preview added
---
app/Exports/AttendanceExportView.php | 2 +-
.../User/UserAttendancesController.php | 19 +++++++--
.../User/UserClassesController.php | 12 +++---
.../User/UserSubjectsController.php | 8 ++--
public/css/app.css | 11 +++++
public/js/custom.js | 40 ++++++++++++++++++-
resources/views/home.blade.php | 1 +
.../views/user/attendance_note.blade.php | 29 ++++++++++++++
.../views/user/attendances_table.blade.php | 21 +++++++++-
.../user/attendances_table_preview.blade.php | 29 +++++++++++++-
.../views/user/user_attendances.blade.php | 18 +++++----
resources/views/user/user_classes.blade.php | 11 +++--
.../views/user/user_preview_classes.blade.php | 18 +++++++--
resources/views/user/user_subjects.blade.php | 20 ++++++----
routes/web.php | 5 +--
15 files changed, 199 insertions(+), 45 deletions(-)
create mode 100644 resources/views/user/attendance_note.blade.php
diff --git a/app/Exports/AttendanceExportView.php b/app/Exports/AttendanceExportView.php
index 6cbe18f..8ef4c67 100644
--- a/app/Exports/AttendanceExportView.php
+++ b/app/Exports/AttendanceExportView.php
@@ -21,7 +21,7 @@ class AttendanceExportView implements FromView
public function view(): View
{
$attendances = Attendance::where('classes_id', $this->classes_id)->get();
- return view('user.attendances_table_preview', ['attendances' => $attendances]);
+ return view('user.attendances_table_preview', ['attendances' => $attendances, 'export' => 1]);
}
}
diff --git a/app/Http/Controllers/User/UserAttendancesController.php b/app/Http/Controllers/User/UserAttendancesController.php
index 20fa946..9ad92bc 100644
--- a/app/Http/Controllers/User/UserAttendancesController.php
+++ b/app/Http/Controllers/User/UserAttendancesController.php
@@ -34,26 +34,28 @@ class UserAttendancesController extends Controller
$student_name = $request->input('student_name');
$student_surname = $request->input('student_surname');
$seat_number = $request->input('seat_number');
+ $note = $request->input('note');
Attendance::create([
'classes_id' => $classes_id,
'student_id_number' => $student_id_number,
'student_name' => $student_name,
'student_surname' => $student_surname,
'seat_number' => $seat_number,
+ 'notes' => $note
]);
- return redirect(route('user_attendances'));
+ return redirect()->back();
}
public function delete_attendance($attendance_id)
{
Attendance::find($attendance_id)->delete();
- return redirect(route('user_attendances'));
+ return redirect()->back();
}
public function edit_attendance($attendance_id)
{
Attendance::find($attendance_id);
- return redirect(route('user_attendances'));
+ return redirect()->back();
}
public function export($classes_id)
@@ -72,4 +74,15 @@ class UserAttendancesController extends Controller
return Excel::download(new AttendanceGroupedExportView($groupBy), "all-attendance-grouped-by-{$groupByLabel}-{$today_date}.xlsx");
}
+ 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();
+ }
+
}
diff --git a/app/Http/Controllers/User/UserClassesController.php b/app/Http/Controllers/User/UserClassesController.php
index 78f98da..b038492 100644
--- a/app/Http/Controllers/User/UserClassesController.php
+++ b/app/Http/Controllers/User/UserClassesController.php
@@ -51,13 +51,13 @@ class UserClassesController extends Controller
public function delete_classes($classes_id)
{
Classes::find($classes_id)->delete();
- return redirect(route('user_classes'));
+ return redirect()->back();
}
public function edit_classes($classes_id)
{
Classes::find($classes_id);
- return redirect(route('user_classes'));
+ return redirect()->back();
}
public function start_classes($classes_id)
@@ -120,16 +120,16 @@ class UserClassesController extends Controller
'student_id_number' => $student_id_number,
'student_name' => $student_name,
'student_surname' => $student_surname,
- 'seat_number' => $seat_number,
+ 'seat_number' => $seat_number
]);
return view('map.summary_map', ['student_name' => $student_name, 'student_surname' => $student_surname, 'seat_number' => $seat_number, 'student_id_number' => $student_id_number, 'classes_id' => $classes_id]);
}
- public function preview_classes($classes_id)
+ public function preview_classes($classes_id, $orderBy='student_surname', $orderDirection='ASC')
{
if(!$classes_id == 0) {
$classes = Classes::find($classes_id);
- $attendances = Attendance::where('classes_id', $classes->id)->get();
+ $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;
@@ -137,6 +137,6 @@ class UserClassesController extends Controller
$room_arrangement = Room::where('name', 'Inna sala')->first()->arrangement;
}
}
- return view('user.user_preview_classes', ['classes_id' => $classes_id, 'room_arrangement' => $room_arrangement, 'attendances' => $attendances, 'seat_numbers' => $seat_numbers]);
+ return view('user.user_preview_classes', ['classes_id' => $classes_id, 'room_arrangement' => $room_arrangement, 'attendances' => $attendances, 'seat_numbers' => $seat_numbers, 'orderBy' => $orderBy, 'orderDirection' => $orderDirection]);
}
}
diff --git a/app/Http/Controllers/User/UserSubjectsController.php b/app/Http/Controllers/User/UserSubjectsController.php
index 94b046a..f7aedd3 100644
--- a/app/Http/Controllers/User/UserSubjectsController.php
+++ b/app/Http/Controllers/User/UserSubjectsController.php
@@ -14,7 +14,7 @@ class UserSubjectsController extends Controller
public function index($groupBy = 'weekday') {
setlocale(LC_ALL, 'pl', 'pl_PL', 'pl_PL.ISO8859-2', 'plk', 'polish', 'Polish');
$user_id = Auth::id();
- $subjects = Subject::where('user_id', $user_id)->get();
+ $subjects = Subject::where('user_id', $user_id)->orderBy('name','ASC')->get();
$subjects_grouped = $subjects->groupBy($groupBy);
$rooms = Room::all();
$weekdays = ['Poniedziałek', 'Wtorek', 'Środa', 'Czwartek', 'Piątek', 'Sobota', 'Niedziela'];
@@ -43,18 +43,18 @@ class UserSubjectsController extends Controller
'room_id' => $room_id,
'user_id' => $user_id_n
]);
- return redirect(route('user_subjects'));
+ return redirect()->back();
}
public function delete_subject($subject_id)
{
Subject::find($subject_id)->delete();
- return redirect(route('user_subjects'));
+ return redirect()->back();
}
public function edit_subject($subject_id)
{
Subject::find($subject_id);
- return redirect(route('user_subjects'));
+ return redirect()->back();
}
}
diff --git a/public/css/app.css b/public/css/app.css
index 0bda1a3..52a91bc 100644
--- a/public/css/app.css
+++ b/public/css/app.css
@@ -11199,3 +11199,14 @@ a.text-dark:focus {
.card-header {
background-color: #ececec;
}
+.card-custom {
+ display: flex;
+ justify-content: flex-start;
+ align-items: center;
+}
+.sort-span {
+ margin-right: 20px;
+}
+.form-custom {
+ width: auto;
+}
diff --git a/public/js/custom.js b/public/js/custom.js
index d18547b..d636f41 100644
--- a/public/js/custom.js
+++ b/public/js/custom.js
@@ -1,6 +1,5 @@
$(document).ready(function(){
$('.add-mn-btn').on('click', function () {
- console.log($('.add-mn-btn'));
$('.czytnik').toggleClass('open');
});
@@ -22,4 +21,43 @@ $(document).ready(function(){
$(this).text('Dodaj nowy wpis')
}
});
+
+ $(".modal").on("hidden.bs.modal", function(){
+ const originalText = $(this).find("#note_content_hidden").first().val();
+ $(this).find("#note_content").first().val(originalText);
+ });
+
+ $('#sort-select').on('change', function() {
+ $(location).attr('href', $(this).val())
+ });
+
+ $('#group-select').on('change', function() {
+ $(location).attr('href', $(this).val())
+ });
+
+ function setSelectedOptionSortAttendances() {
+ const orderBy = $('#orderBy-hidden').first().val();
+ const orderDirection = $('#orderDirection-hidden').first().val();
+ const pattern = `/${orderBy}/${orderDirection}`;
+ const options = $('#sort-select').find('option');
+ options.each(function() {
+ if($(this).val().search(pattern) !== -1) {
+ $('#sort-select').val($(this).val());
+ }
+ });
+ }
+ setSelectedOptionSortAttendances();
+
+ function setSelectedOptionGroup() {
+ const groupBy = $('#groupBy-hidden').first().val();
+ const pattern = `/${groupBy}`;
+ const options = $('#group-select').find('option');
+ options.each(function() {
+ if($(this).val().search(pattern) !== -1) {
+ $('#group-select').val($(this).val());
+ }
+ });
+ }
+ setSelectedOptionGroup();
+
});
diff --git a/resources/views/home.blade.php b/resources/views/home.blade.php
index d421692..df2322c 100644
--- a/resources/views/home.blade.php
+++ b/resources/views/home.blade.php
@@ -30,6 +30,7 @@
Dane dotyczące obecności znajdziesz także w zakładce Obecności .
+ Do każdej obecności możesz dodać notatkę.
Rekordy dotyczące wszystkich obecności możesz grupować i wyeksportować. Przy eksporcie każda tabela-grupa trafi do pliku xlsx jako osobny arkusz.
@endsection
diff --git a/resources/views/user/attendance_note.blade.php b/resources/views/user/attendance_note.blade.php
new file mode 100644
index 0000000..46fb2b2
--- /dev/null
+++ b/resources/views/user/attendance_note.blade.php
@@ -0,0 +1,29 @@
+
diff --git a/resources/views/user/attendances_table.blade.php b/resources/views/user/attendances_table.blade.php
index 914ace4..a00c083 100644
--- a/resources/views/user/attendances_table.blade.php
+++ b/resources/views/user/attendances_table.blade.php
@@ -2,11 +2,14 @@
Nazwa zajęć
Nr indeksu
- Imię
Nazwisko
+ Imię
Nr miejsca
@if(!$export == 1)
+
+ @else
+ Notatka
@endif
@foreach ($attendances_list as $attendance)
@@ -14,13 +17,27 @@
{{ App\Subject::find(App\Classes::find($attendance->classes_id)->subject_id)->name }},
{{ App\Classes::find($attendance->classes_id)-> date }} {{ App\Subject::find(App\Classes::find($attendance->classes_id)->subject_id)->time }}, sala {{ App\Room::find(App\Subject::find(App\Classes::find($attendance->classes_id)->subject_id)->room_id)->name }}
{{ $attendance->student_id_number }}
- {{ $attendance->student_name}}
{{ $attendance->student_surname}}
+ {{ $attendance->student_name}}
{{ $attendance->seat_number }}
@if(!$export == 1)
Usuń
+ @if(!$attendance->notes)
+
+ Dodaj notatkę
+
+ @else
+
+ Edytuj notatkę
+
+ @endif
+ @include('user.attendance_note', [$attendance])
+ @else
+
+ {{ $attendance->notes }}
+
@endif
@endforeach
diff --git a/resources/views/user/attendances_table_preview.blade.php b/resources/views/user/attendances_table_preview.blade.php
index babbc27..fa10a8b 100644
--- a/resources/views/user/attendances_table_preview.blade.php
+++ b/resources/views/user/attendances_table_preview.blade.php
@@ -1,16 +1,41 @@
Nr indeksu
- Imię
Nazwisko
+ Imię
Nr miejsca
+ @if(!$export == 1)
+
+
+ @else
+ Notatka
+ @endif
@foreach ($attendances as $attendance)
{{ $attendance->student_id_number }}
- {{ $attendance->student_name}}
{{ $attendance->student_surname}}
+ {{ $attendance->student_name}}
{{ $attendance->seat_number }}
+ @if(!$export == 1)
+
+ Usuń
+
+ @if(!$attendance->notes)
+
+ Dodaj notatkę
+
+ @else
+
+ Edytuj notatkę
+
+ @endif
+ @include('user.attendance_note', [$attendance])
+ @else
+
+ {{ $attendance->notes }}
+
+ @endif
@endforeach
diff --git a/resources/views/user/user_attendances.blade.php b/resources/views/user/user_attendances.blade.php
index 6ea2044..210ea45 100644
--- a/resources/views/user/user_attendances.blade.php
+++ b/resources/views/user/user_attendances.blade.php
@@ -103,16 +103,17 @@
@if ($attendances->count() > 0)
-
-
Grupuj:
-
po nazwie zajęć
-
po numerze indeksu
-
po numerze miejsca
-
Wyeksportuj do xlsx
+
+ Grupuj:
+
+
+ po nazwie zajęć
+ po numerze indeksu
+ po numerze miejsca
+
+
-
-
@foreach ($attendances_grouped as $attendances_group_name => $attendances_list)
@if($attendances_group_name)
@if($grouped_by == 'classes_id')
@@ -136,4 +137,5 @@
+
@endsection
diff --git a/resources/views/user/user_classes.blade.php b/resources/views/user/user_classes.blade.php
index 569c287..7e6b5fd 100644
--- a/resources/views/user/user_classes.blade.php
+++ b/resources/views/user/user_classes.blade.php
@@ -58,10 +58,13 @@
Moje zajęcia: ({{ $classes->count() }})
-
-
Grupuj:
-
po nazwie przedmiotu
-
po dacie
+
+ Grupuj:
+
+
+ po nazwie przedmiotu
+ po dacie
+
diff --git a/resources/views/user/user_preview_classes.blade.php b/resources/views/user/user_preview_classes.blade.php
index 5040b5c..c99f31a 100644
--- a/resources/views/user/user_preview_classes.blade.php
+++ b/resources/views/user/user_preview_classes.blade.php
@@ -29,10 +29,22 @@
-
- @include('user.attendances_table_preview', $attendances)
+
+ Sortuj:
+
+
+
+ po nazwisku A-Z
+ po nazwisku Z-A
+ po numerze indeksu rosnąco
+ po numerze indeksu malejąco
+ po numerze miejsca rosnąco
+ po numerze miejsca malejąco
+
+
+ @include('user.attendances_table_preview', ['attendances' => $attendances, 'export' => 0])
diff --git a/resources/views/user/user_subjects.blade.php b/resources/views/user/user_subjects.blade.php
index c9df7ab..bd1569d 100644
--- a/resources/views/user/user_subjects.blade.php
+++ b/resources/views/user/user_subjects.blade.php
@@ -34,7 +34,7 @@
-
+
@foreach ($weekdays as $weekday)
@if ($weekday == $defaultWeekday)
{{ $weekday }}
@@ -110,14 +110,18 @@
@if ($subjects->count() > 0)
-
-
Grupuj:
-
po nazwie
- {{--
Type --}}
-
po dniu tygodnia
-
po godzinie
-
po sali
+
+
+ Grupuj:
+
+
+ po dniu tygodnia
+ po nazwie
+ po godzinie
+ po sali
+
+
@foreach ($subjects_grouped as $subject_group_name => $subjects_list)
@if($subject_group_name)
diff --git a/routes/web.php b/routes/web.php
index b7365f5..2da9b17 100644
--- a/routes/web.php
+++ b/routes/web.php
@@ -61,12 +61,13 @@ Route::group(array('prefix' => 'user', 'namespace' => 'User'), function() { //TO
Route::get('/classes/start/{classes_id}', 'UserClassesController@start_classes')->name('user_start_classes');
Route::post('/classes/start', 'UserClassesController@start_classes_verified')->name('user_start_classes_verified')->middleware('classesCode');
Route::post('/classes/save', 'UserClassesController@save_classes_data')->name('user_save_classes_data');
- Route::get('/classes/preview/{classes_id?}', 'UserClassesController@preview_classes')->name('user_preview_classes');
+ Route::get('/classes/preview/{classes_id}/{orderBy?}/{orderDirection?}', 'UserClassesController@preview_classes')->name('user_preview_classes');
Route::group(array('prefix' => 'add'), function() {
Route::post('/subject', 'UserSubjectsController@add_subject')->name('user_add_subject');
Route::post('/classes', 'UserClassesController@add_classes')->name('user_add_classes');
Route::post('/attendance', 'UserAttendancesController@add_attendance')->name('user_add_attendance');
+ Route::post('/attendance/note', 'UserAttendancesController@add_attendance_note')->name('user_add_attendance_note');
});
Route::group(array('prefix' => 'delete'), function() {
@@ -83,5 +84,3 @@ Route::group(array('prefix' => 'user', 'namespace' => 'User'), function() { //TO
Route::get('/export/attendances/{classes_id}', 'UserAttendancesController@export')->name('user_export');
Route::get('/export/attendances/grouped/{groupBy}', 'UserAttendancesController@export_grouped')->name('user_export_grouped');
});
-
-