From 0bb0d8839880cd449f1583278a6262e44b093b09 Mon Sep 17 00:00:00 2001 From: Alan Hurtarte Date: Wed, 17 Apr 2019 14:57:22 -0600 Subject: [PATCH] Generate pdf with the score report --- app/Http/Controllers/StudentsController.php | 8 + app/Student.php | 5 +- package.json | 1 + public/mix-manifest.json | 3 +- public/static/logo1.jpg | Bin 0 -> 42571 bytes resources/js/api/students.js | 8 + resources/js/lang/en.js | 2 + resources/js/lang/es.js | 2 + resources/js/objects/student.js | 2 + resources/js/router/modules/scores.js | 6 + resources/js/views/scores/grade.vue | 14 +- resources/js/views/scores/report.vue | 202 ++++++++++++++++++++ routes/api.php | 1 + 13 files changed, 241 insertions(+), 13 deletions(-) create mode 100644 public/static/logo1.jpg create mode 100644 resources/js/views/scores/report.vue diff --git a/app/Http/Controllers/StudentsController.php b/app/Http/Controllers/StudentsController.php index cdc1dd8..7242089 100644 --- a/app/Http/Controllers/StudentsController.php +++ b/app/Http/Controllers/StudentsController.php @@ -73,4 +73,12 @@ public function getScores(Request $request) return response([$response], 200); } + + public function get(Request $request) + { + $grade_id = $request->get('grade_id'); + $grade = Grade::findOrFail($grade_id); + $students = $grade->students->load('courses', 'grade'); + return response([$students], 200); + } } diff --git a/app/Student.php b/app/Student.php index 675cc19..14a0dc3 100644 --- a/app/Student.php +++ b/app/Student.php @@ -8,9 +8,10 @@ class Student extends Model { protected $guarded = []; - public function course() + public function courses() { - return $this->belongsToMany(Course::class, 'student_courses','student_id', 'course_id'); + return $this->belongsToMany(Course::class, 'student_courses','student_id', 'course_id') + ->withPivot(['score']); } public function grade() diff --git a/package.json b/package.json index 3a664fc..a18d3c0 100644 --- a/package.json +++ b/package.json @@ -38,6 +38,7 @@ "echarts": "^4.1.0", "element-ui": "^2.6.1", "file-saver": "^2.0.1", + "html2pdf.js": "^0.9.1", "js-cookie": "^2.2.0", "jsonlint": "^1.6.3", "jszip": "^3.2.0", diff --git a/public/mix-manifest.json b/public/mix-manifest.json index 2d60117..4b03d8c 100644 --- a/public/mix-manifest.json +++ b/public/mix-manifest.json @@ -1,4 +1,5 @@ { "/js/app.js": "/js/app.js", - "/css/app.css": "/css/app.css" + "/css/app.css": "/css/app.css", + "/vendors~pdfjsWorker.js": "/vendors~pdfjsWorker.js" } diff --git a/public/static/logo1.jpg b/public/static/logo1.jpg new file mode 100644 index 0000000000000000000000000000000000000000..4c0d7f1fd4400280099d92e518cfd59719ab40ab GIT binary patch literal 42571 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 import('@/views/scores/report'), + name: 'report', + meta: { title: 'Report', noCache: true }, + }, ], }; diff --git a/resources/js/views/scores/grade.vue b/resources/js/views/scores/grade.vue index 9d1372e..abc3da9 100644 --- a/resources/js/views/scores/grade.vue +++ b/resources/js/views/scores/grade.vue @@ -9,12 +9,8 @@ :value="grade.id"> - - - - + + @@ -187,10 +183,8 @@ export default { diff --git a/resources/js/views/scores/report.vue b/resources/js/views/scores/report.vue new file mode 100644 index 0000000..b47972a --- /dev/null +++ b/resources/js/views/scores/report.vue @@ -0,0 +1,202 @@ +/* eslint-disable new-cap */ + + + + + diff --git a/routes/api.php b/routes/api.php index 0c494f5..24b81eb 100644 --- a/routes/api.php +++ b/routes/api.php @@ -28,6 +28,7 @@ Route::delete('/professors', 'ProfessorsController@delete'); Route::post('/students', 'StudentsController@getList'); +Route::post('/students/get', 'StudentsController@get'); Route::post('/students/add', 'StudentsController@add'); Route::delete('/students', 'StudentsController@delete');