diff --git a/README.md b/README.md index d09e86f..91cd51a 100644 --- a/README.md +++ b/README.md @@ -4,5 +4,6 @@ atcheck$ php artisan migrate:fresh atcheck$ php artisan db:seed atcheck$ composer dump-autoload +atcheck$ php artisan cache:clear && php artisan route:clear && php artisan config:clear && php artisan view:clear atcheck$ php artisan serve ``` diff --git a/app/Classes.php b/app/Classes.php index c5a3d14..c6c85d3 100644 --- a/app/Classes.php +++ b/app/Classes.php @@ -7,6 +7,6 @@ use Illuminate\Database\Eloquent\Model; class Classes extends Model { protected $fillable = [ - 'subject_id', 'date', 'classes_code', 'test_mode' + 'subject_id', 'date', 'classes_code', 'mode' ]; } diff --git a/app/Http/Controllers/User/UserClassesController.php b/app/Http/Controllers/User/UserClassesController.php index 5ff47f3..fd71461 100644 --- a/app/Http/Controllers/User/UserClassesController.php +++ b/app/Http/Controllers/User/UserClassesController.php @@ -41,11 +41,11 @@ class UserClassesController extends Controller { $subject_id = $request->input('subject_id'); $date = $request->input('date'); - $test_mode = $request->input('test_mode'); + $mode = $request->input('mode'); $classes_id = Classes::create([ 'subject_id' => $subject_id, 'date' => $date, - 'test_mode' => $test_mode + 'mode' => $mode ])->id; return redirect(route('user_start_classes', ['classes_id' => $classes_id])); } @@ -73,48 +73,47 @@ class UserClassesController extends Controller $classes->refresh(); } - $userCache = new UserCache(); - $cache = $userCache->get($classes_code); - if($cache) { - $student_id_number = $cache->index; - $student_name = $cache->name; - $student_surname = $cache->surname; - $classes = DB::table("classes")->where("classes_code", $cache->classcode)->first(); - $attendances = Attendance::where('classes_id', $classes->id)->get(); - $seat_numbers = $attendances->pluck('seat_number')->toArray(); - $subject = Subject::find($classes->subject_id); - - if($classes->test_mode) { - $room_capacity = Room::find($subject->room_id)->capacity; - $random_seat = rand(1, $room_capacity); - while(in_array($random_seat, $seat_numbers)) { - $random_seat = rand(1, $room_capacity); - } - Attendance::create([ - 'classes_id' => $classes->id, - 'student_id_number' => $student_id_number, - 'student_name' => $student_name, - 'student_surname' => $student_surname, - 'seat_number' => $random_seat - ]); - return view('map.summary_map', ['student_name' => $student_name, 'student_surname' => $student_surname, 'seat_number' => $random_seat, 'student_id_number' => $student_id_number, 'classes_id' => $classes->id]); - } - - $room_arrangement = Room::find($subject->room_id)->arrangement; - if(!$room_arrangement) { - $room_arrangement = Room::where('name', 'Inna sala')->first()->arrangement; - } - $room_rows = count(explode("++", $room_arrangement)); - if($room_rows > 4) { //max 4 rows on one page - $multi_parts = true; - $parts_number = ceil($room_rows/4); - } else { - $multi_parts = false; - } - $userCache->delete($cache->classcode); - return view('map.seat_map', ['student_name' => $student_name, 'student_surname' => $student_surname, 'student_id_number' => $student_id_number, 'classes_id' => $classes->id, 'seat_numbers' => $seat_numbers, 'room_arrangement' => $room_arrangement, 'multi_parts' => $multi_parts, 'parts_number' =>$parts_number]); - } - +// $userCache = new UserCache(); +// $cache = $userCache->get($classes_code); +// if($cache) { +// $student_id_number = $cache->index; +// $student_name = $cache->name; +// $student_surname = $cache->surname; +// $classes = DB::table("classes")->where("classes_code", $cache->classcode)->first(); +// $attendances = Attendance::where('classes_id', $classes->id)->get(); +// $seat_numbers = $attendances->pluck('seat_number')->toArray(); +// $subject = Subject::find($classes->subject_id); +// +// if($classes->test_mode) { +// $room_capacity = Room::find($subject->room_id)->capacity; +// $random_seat = rand(1, $room_capacity); +// while(in_array($random_seat, $seat_numbers)) { +// $random_seat = rand(1, $room_capacity); +// } +// Attendance::create([ +// 'classes_id' => $classes->id, +// 'student_id_number' => $student_id_number, +// 'student_name' => $student_name, +// 'student_surname' => $student_surname, +// 'seat_number' => $random_seat +// ]); +// return view('map.summary_map', ['student_name' => $student_name, 'student_surname' => $student_surname, 'seat_number' => $random_seat, 'student_id_number' => $student_id_number, 'classes_id' => $classes->id]); +// } +// +// $room_arrangement = Room::find($subject->room_id)->arrangement; +// if(!$room_arrangement) { +// $room_arrangement = Room::where('name', 'Inna sala')->first()->arrangement; +// } +// $room_rows = count(explode("++", $room_arrangement)); +// if($room_rows > 4) { //max 4 rows on one page +// $multi_parts = true; +// $parts_number = ceil($room_rows/4); +// } else { +// $multi_parts = false; +// } +// $userCache->delete($cache->classcode); +// return view('map.seat_map', ['student_name' => $student_name, 'student_surname' => $student_surname, 'student_id_number' => $student_id_number, 'classes_id' => $classes->id, 'seat_numbers' => $seat_numbers, 'room_arrangement' => $room_arrangement, 'multi_parts' => $multi_parts, 'parts_number' =>$parts_number]); +// } return view('map.start_map', ['classes_code' => $classes_code, 'classes' => $classes]); } @@ -124,36 +123,44 @@ class UserClassesController extends Controller $student_name = $request->input('student_name'); $student_surname = $request->input('student_surname'); $classes = Classes::find($request->get('classes_id')); - $attendances = Attendance::where('classes_id', $classes->id)->get(); - $seat_numbers = $attendances->pluck('seat_number')->toArray(); - $subject = Subject::find($classes->subject_id); - if($classes->test_mode) { - $room_capacity = Room::find($subject->room_id)->capacity; - $random_seat = rand(1, $room_capacity); - while(in_array($random_seat, $seat_numbers)) { - $random_seat = rand(1, $room_capacity); - } + + if($classes->mode == 'quick') { Attendance::create([ 'classes_id' => $classes->id, 'student_id_number' => $student_id_number, 'student_name' => $student_name, 'student_surname' => $student_surname, - 'seat_number' => $random_seat + 'seat_number' => null ]); - return view('map.summary_map', ['student_name' => $student_name, 'student_surname' => $student_surname, 'seat_number' => $random_seat, 'student_id_number' => $student_id_number, 'classes_id' => $classes->id]); - } - $room_arrangement = Room::find($subject->room_id)->arrangement; - if(!$room_arrangement) { - $room_arrangement = Room::where('name', 'Inna sala')->first()->arrangement; - } - $room_rows = count(explode("++", $room_arrangement)); - if($room_rows > 4) { //max 4 rows on one page - $multi_parts = true; - $parts_number = ceil($room_rows/4); + 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' => 'quick']); + } else { - $multi_parts = false; + $attendances = Attendance::where('classes_id', $classes->id)->get(); + $seat_numbers = $attendances->pluck('seat_number')->toArray(); + $subject = Subject::find($classes->subject_id); + $room_arrangement = Room::find($subject->room_id)->arrangement; + if(!$room_arrangement) { + $room_arrangement = Room::where('name', 'Inna sala')->first()->arrangement; + } + $room_rows = count(explode("++", $room_arrangement)); + if($room_rows > 4) { //max 4 rows on one page + $multi_parts = true; + $parts_number = ceil($room_rows/4); + } else { + $multi_parts = false; + $parts_number = 1; + } + + if($classes->mode == 'test') { + $room_capacity = Room::find($subject->room_id)->capacity; + $random_seat = rand(1, $room_capacity); + while(in_array($random_seat, $seat_numbers)) { + $random_seat = rand(1, $room_capacity); + } + return view('map.seat_map', ['student_name' => $student_name, 'student_surname' => $student_surname, 'seat_number' => $random_seat, 'student_id_number' => $student_id_number, 'classes_id' => $classes->id, 'seat_numbers' => $seat_numbers, 'room_arrangement' => $room_arrangement, 'multi_parts' => $multi_parts, 'parts_number' =>$parts_number, 'mode' => 'test', 'random_seat' => $random_seat]); + } + return view('map.seat_map', ['student_name' => $student_name, 'student_surname' => $student_surname, 'student_id_number' => $student_id_number, 'classes_id' => $classes->id, 'seat_numbers' => $seat_numbers, 'room_arrangement' => $room_arrangement, 'multi_parts' => $multi_parts, 'parts_number' =>$parts_number, 'mode' => null]); } - return view('map.seat_map', ['student_name' => $student_name, 'student_surname' => $student_surname, 'student_id_number' => $student_id_number, 'classes_id' => $classes->id, 'seat_numbers' => $seat_numbers, 'room_arrangement' => $room_arrangement, 'multi_parts' => $multi_parts, 'parts_number' =>$parts_number]); } public function save_classes_data(Request $request) @@ -191,7 +198,8 @@ class UserClassesController extends Controller } else { $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 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]); } } diff --git a/database/migrations/2019_11_26_232020_create_classes_table.php b/database/migrations/2019_11_26_232020_create_classes_table.php index 13875a5..5d90740 100644 --- a/database/migrations/2019_11_26_232020_create_classes_table.php +++ b/database/migrations/2019_11_26_232020_create_classes_table.php @@ -18,7 +18,7 @@ class CreateClassesTable extends Migration $table->integer('subject_id'); $table->date('date'); $table->string('classes_code')->nullable(); - $table->boolean('test_mode')->nullable(); + $table->string('mode')->nullable(); $table->timestamps(); }); } diff --git a/database/migrations/2019_11_26_233012_create_attendances_table.php b/database/migrations/2019_11_26_233012_create_attendances_table.php index 924f981..b5b2dd6 100644 --- a/database/migrations/2019_11_26_233012_create_attendances_table.php +++ b/database/migrations/2019_11_26_233012_create_attendances_table.php @@ -19,7 +19,7 @@ class CreateAttendancesTable extends Migration $table->integer('student_id_number'); $table->string('student_name'); $table->string('student_surname'); - $table->integer('seat_number'); + $table->integer('seat_number')->nullable(); $table->text('notes')->nullable(); $table->timestamps(); }); diff --git a/database/seeds/ClassesTableSeeder.php b/database/seeds/ClassesTableSeeder.php index fd5b2c5..84d454c 100644 --- a/database/seeds/ClassesTableSeeder.php +++ b/database/seeds/ClassesTableSeeder.php @@ -14,13 +14,13 @@ class ClassesTableSeeder extends Seeder DB::table('classes')->insert([ 'subject_id' => 1, 'date' => '2019-12-02', - 'test_mode' => false + 'mode' => null ]); DB::table('classes')->insert([ 'subject_id' => 2, 'date' => '2019-12-02', - 'test_mode' => false + 'mode' => null ]); } } diff --git a/public/css/app.css b/public/css/app.css index 2a00945..fcf54d4 100644 --- a/public/css/app.css +++ b/public/css/app.css @@ -11204,12 +11204,24 @@ main { font-size: 85%; } -.test-mode-div { +.mode-div { display: flex; justify-content: flex-start; align-items: center; + width: 100%; } -.test-mode-div input { +.mode-div input { width: 20px; } + +.scrollable-div { + max-height: 500px; + overflow-y: auto; + -ms-overflow-style: none; +} +.scrollable-div::-webkit-scrollbar { + display: none; +} + + diff --git a/public/js/custom.js b/public/js/custom.js index 4b2fc21..28dd446 100644 --- a/public/js/custom.js +++ b/public/js/custom.js @@ -31,8 +31,9 @@ $(document).ready(function(){ }); $(".modal").on("hidden.bs.modal", function(){ - const originalText = $(this).find("#note_content_hidden").first().val(); - $(this).find("#note_content").first().val(originalText); + const id = $(this).attr('id').split('-')[1]; + const originalText = $(this).find(`#note_content_hidden-${id}`).first().val(); + $(this).find(`#note_content-${id}`).first().val(originalText); }); $('#sort-select').on('change', function() { diff --git a/public/js/map/seatchart-custom.js b/public/js/map/seatchart-custom.js index 7fc0e47..72062b8 100644 --- a/public/js/map/seatchart-custom.js +++ b/public/js/map/seatchart-custom.js @@ -43,10 +43,34 @@ function checkForUnavailablePlaces() { } $(document).ready(function(){ - checkForUnavailablePlaces(); - toggleButtonAvailability(); $('.seatCharts-seat').on('click', function(){ toggleButtonAvailability(); savePlaceNumber(); }); + var mode = $('#mode').val(); + if(mode === 'test') { + var random_seat = $('#random_seat').val(); + var allPlaces = $('.seatCharts-seat.seatCharts-cell'); + var allSlides = $('.carousel-item'); + var seat; + allPlaces.each(function(){ + if($(this).text() === random_seat) { + $(this).click(); + seat = $(this); + } + $(this).css('pointer-events', 'none'); + $('.cancel-cart-item').remove(); + }); + allSlides.each(function() { + if($.contains($(this).get(0), $(seat).get(0))) { + $('#map-carousel').carousel($(this).index()-1); + } + }); + setTimeout(function() { + $('#test-end-btn').click(); + }, 7000); + } else { + checkForUnavailablePlaces(); + toggleButtonAvailability(); + } }); diff --git a/resources/views/map/seat_map.blade.php b/resources/views/map/seat_map.blade.php index 91a821c..7eaf88b 100644 --- a/resources/views/map/seat_map.blade.php +++ b/resources/views/map/seat_map.blade.php @@ -66,21 +66,29 @@

{{ $student_name }} {{ $student_surname }}

{{ $student_id_number }}

-

Wybrane miejsce: +

Twoje miejsce:

@foreach($seat_numbers as $seat_number) @endforeach -
- - - - - - -
+ @if($mode == 'test') + + + @endif +
+ + + + + + @if($mode == 'test') + + @else + + @endif +
diff --git a/resources/views/user/attendance_note.blade.php b/resources/views/user/attendance_note.blade.php index 46945ce..1b22303 100644 --- a/resources/views/user/attendance_note.blade.php +++ b/resources/views/user/attendance_note.blade.php @@ -1,8 +1,8 @@ -