1
0
mirror of https://github.com/robonen/education-project.git synced 2026-03-20 02:44:31 +00:00

Merge branch 'timetable' of github.com:Robonen/education-project into timetable

This commit is contained in:
nikden13
2020-12-17 01:11:39 +07:00
9 changed files with 104 additions and 135 deletions

View File

@@ -23,12 +23,27 @@ class JournalFilter extends QueryFilter
$this->builder = $this->builder->where('subject_id', $value);
}
protected function date($value)
protected function start($value)
{
$value = Carbon::createFromTimestamp($value/1000)->floorDays();
$this->builder = $this->builder->where('updated_at', $value);
$this->builder = $this->builder->where('updated_at', '>=', $this->transformDate($value));
}
protected function end($value)
{
$this->builder = $this->builder->where('updated_at', '<=', $this->transformDate($value));
}
protected function transformDate($value)
{
return Carbon::createFromTimestamp($value/1000)->floorDays();;
}
// protected function date($value)
// {
// $value = Carbon::createFromTimestamp($value/1000)->floorDays();
// $this->builder = $this->builder->where('updated_at', $value);
// }
protected function last($value)
{
$date = Carbon::now()->subDays($value);

View File

@@ -47,14 +47,14 @@ class TimetableController extends Controller
}
$dateTimetables = [];
if (!$filterTimetables->isEmpty()) {
//if (!$filterTimetables->isEmpty()) {
for ($i = 0; $i < 6; $i++) {
$date = Carbon::parse($request->input('date'))
->startOfWeek()
->addDays($i)
->format('Y-m-d');
array_push($dateTimetables, [$date => $filterTimetables->where('date', $date)->values()]);
}
// }
}
return response()->json($dateTimetables, 200);
}

View File

@@ -7,6 +7,7 @@ use App\Http\Requests\StudentRequest;
use App\Models\SchoolClass;
use App\Models\Student;
use Illuminate\Http\JsonResponse;
use App\Models\AnswerToTask;
class StudentController extends Controller
{
@@ -66,7 +67,17 @@ class StudentController extends Controller
return response()->json(collect($student)->except('school_class'), 200);
}
public function destroy(Student $student)
{
$user = $student->user;
$user->delete();
return response()->json(null, 204);
}
public function getAnswers(Student $student) {
return AnswerToTask::where('student_id', '=', $student->id)->get();
}
}

View File

@@ -26,14 +26,18 @@ class SchoolClass extends Model
->withPivot('hours_per_week', 'hours_per_year');
}
public function chatLinks()
{
return $this->hasMany(ChatLink::class, 'class_id');
}
public function tasks() {
return $this->hasMany(Task::class, 'class_id');
}
public function chatLinks()
{
return $this->hasMany(ChatLink::class, 'class_id');
}
}

View File

@@ -34,7 +34,9 @@ class Teacher extends Model
return $this->belongsTo(User::class);
}
public function tasks(){
return $this->hasMany(Task::class);
}
}

172
composer.lock generated
View File

@@ -4,7 +4,7 @@
"Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies",
"This file is @generated automatically"
],
"content-hash": "b864dde6a95522044afee456c400fb07",
"content-hash": "7a7b53e8f06f6bcd7118e6f3b9093703",
"packages": [
{
"name": "asm89/stack-cors",
@@ -1055,16 +1055,16 @@
},
{
"name": "laravel/framework",
"version": "v8.18.1",
"version": "v8.19.0",
"source": {
"type": "git",
"url": "https://github.com/laravel/framework.git",
"reference": "31747193c26ba0a9cb7929a912895d3cdefd10cf"
"reference": "f5f331cee60f1bbe672503b7eb9ba5b22b2ceacb"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/laravel/framework/zipball/31747193c26ba0a9cb7929a912895d3cdefd10cf",
"reference": "31747193c26ba0a9cb7929a912895d3cdefd10cf",
"url": "https://api.github.com/repos/laravel/framework/zipball/f5f331cee60f1bbe672503b7eb9ba5b22b2ceacb",
"reference": "f5f331cee60f1bbe672503b7eb9ba5b22b2ceacb",
"shasum": ""
},
"require": {
@@ -1214,20 +1214,20 @@
"framework",
"laravel"
],
"time": "2020-12-08T22:05:12+00:00"
"time": "2020-12-15T16:16:31+00:00"
},
{
"name": "laravel/passport",
"version": "v10.1.0",
"version": "v10.0.1",
"source": {
"type": "git",
"url": "https://github.com/laravel/passport.git",
"reference": "c2b93a7d8d93cf303bb1eefbfa5610f084f9bdd4"
"reference": "4e53f1b237a9e51ac10f0b30c6ebedd68f6848ab"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/laravel/passport/zipball/c2b93a7d8d93cf303bb1eefbfa5610f084f9bdd4",
"reference": "c2b93a7d8d93cf303bb1eefbfa5610f084f9bdd4",
"url": "https://api.github.com/repos/laravel/passport/zipball/4e53f1b237a9e51ac10f0b30c6ebedd68f6848ab",
"reference": "4e53f1b237a9e51ac10f0b30c6ebedd68f6848ab",
"shasum": ""
},
"require": {
@@ -1242,10 +1242,9 @@
"illuminate/encryption": "^8.2",
"illuminate/http": "^8.2",
"illuminate/support": "^8.2",
"lcobucci/jwt": "^3.4|^4.0",
"league/oauth2-server": "^8.2",
"league/oauth2-server": "^8.1",
"nyholm/psr7": "^1.3",
"php": "^7.3|^8.0",
"php": "^7.3",
"phpseclib/phpseclib": "^2.0",
"symfony/psr-http-message-bridge": "^2.0"
},
@@ -1287,7 +1286,7 @@
"oauth",
"passport"
],
"time": "2020-11-26T07:57:30+00:00"
"time": "2020-09-15T16:41:42+00:00"
},
{
"name": "laravel/tinker",
@@ -1353,100 +1352,36 @@
],
"time": "2020-10-29T13:07:12+00:00"
},
{
"name": "lcobucci/clock",
"version": "2.0.0",
"source": {
"type": "git",
"url": "https://github.com/lcobucci/clock.git",
"reference": "353d83fe2e6ae95745b16b3d911813df6a05bfb3"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/lcobucci/clock/zipball/353d83fe2e6ae95745b16b3d911813df6a05bfb3",
"reference": "353d83fe2e6ae95745b16b3d911813df6a05bfb3",
"shasum": ""
},
"require": {
"php": "^7.4 || ^8.0"
},
"require-dev": {
"infection/infection": "^0.17",
"lcobucci/coding-standard": "^6.0",
"phpstan/extension-installer": "^1.0",
"phpstan/phpstan": "^0.12",
"phpstan/phpstan-deprecation-rules": "^0.12",
"phpstan/phpstan-phpunit": "^0.12",
"phpstan/phpstan-strict-rules": "^0.12",
"phpunit/php-code-coverage": "9.1.4",
"phpunit/phpunit": "9.3.7"
},
"type": "library",
"autoload": {
"psr-4": {
"Lcobucci\\Clock\\": "src"
}
},
"notification-url": "https://packagist.org/downloads/",
"license": [
"MIT"
],
"authors": [
{
"name": "Luís Cobucci",
"email": "lcobucci@gmail.com"
}
],
"description": "Yet another clock abstraction",
"funding": [
{
"url": "https://github.com/lcobucci",
"type": "github"
},
{
"url": "https://www.patreon.com/lcobucci",
"type": "patreon"
}
],
"time": "2020-08-27T18:56:02+00:00"
},
{
"name": "lcobucci/jwt",
"version": "4.0.0",
"version": "3.3.3",
"source": {
"type": "git",
"url": "https://github.com/lcobucci/jwt.git",
"reference": "6d8665ccd924dc076a9b65d1ea8abe21d68f6958"
"reference": "c1123697f6a2ec29162b82f170dd4a491f524773"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/lcobucci/jwt/zipball/6d8665ccd924dc076a9b65d1ea8abe21d68f6958",
"reference": "6d8665ccd924dc076a9b65d1ea8abe21d68f6958",
"url": "https://api.github.com/repos/lcobucci/jwt/zipball/c1123697f6a2ec29162b82f170dd4a491f524773",
"reference": "c1123697f6a2ec29162b82f170dd4a491f524773",
"shasum": ""
},
"require": {
"ext-mbstring": "*",
"ext-openssl": "*",
"lcobucci/clock": "^2.0",
"php": "^7.4 || ^8.0"
"php": "^5.6 || ^7.0"
},
"require-dev": {
"infection/infection": "^0.20",
"lcobucci/coding-standard": "^6.0",
"mikey179/vfsstream": "^1.6",
"phpbench/phpbench": "^0.17",
"phpstan/extension-installer": "^1.0",
"phpstan/phpstan": "^0.12",
"phpstan/phpstan-deprecation-rules": "^0.12",
"phpstan/phpstan-phpunit": "^0.12",
"phpstan/phpstan-strict-rules": "^0.12",
"phpunit/php-invoker": "^3.1",
"phpunit/phpunit": "^9.4"
"mikey179/vfsstream": "~1.5",
"phpmd/phpmd": "~2.2",
"phpunit/php-invoker": "~1.1",
"phpunit/phpunit": "^5.7 || ^7.3",
"squizlabs/php_codesniffer": "~2.3"
},
"type": "library",
"extra": {
"branch-alias": {
"dev-master": "4.0-dev"
"dev-master": "3.1-dev"
}
},
"autoload": {
@@ -1460,7 +1395,7 @@
],
"authors": [
{
"name": "Luís Cobucci",
"name": "Luís Otávio Cobucci Oblonczyk",
"email": "lcobucci@gmail.com",
"role": "Developer"
}
@@ -1480,7 +1415,7 @@
"type": "patreon"
}
],
"time": "2020-11-25T02:06:12+00:00"
"time": "2020-08-20T13:22:28+00:00"
},
{
"name": "league/commonmark",
@@ -1771,25 +1706,25 @@
},
{
"name": "league/oauth2-server",
"version": "8.2.4",
"version": "8.1.1",
"source": {
"type": "git",
"url": "https://github.com/thephpleague/oauth2-server.git",
"reference": "622eaa1f28eb4a2dea0cfc7e4f5280fac794e83c"
"reference": "09f22e8121fa1832962dba18213b80d4267ef8a3"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/thephpleague/oauth2-server/zipball/622eaa1f28eb4a2dea0cfc7e4f5280fac794e83c",
"reference": "622eaa1f28eb4a2dea0cfc7e4f5280fac794e83c",
"url": "https://api.github.com/repos/thephpleague/oauth2-server/zipball/09f22e8121fa1832962dba18213b80d4267ef8a3",
"reference": "09f22e8121fa1832962dba18213b80d4267ef8a3",
"shasum": ""
},
"require": {
"defuse/php-encryption": "^2.2.1",
"ext-json": "*",
"ext-openssl": "*",
"lcobucci/jwt": "^3.4 || ^4.0",
"lcobucci/jwt": "^3.3.1",
"league/event": "^2.2",
"php": "^7.2 || ^8.0",
"php": ">=7.2.0",
"psr/http-message": "^1.0.1"
},
"replace": {
@@ -1797,10 +1732,10 @@
"lncd/oauth2": "*"
},
"require-dev": {
"laminas/laminas-diactoros": "^2.4.1",
"phpstan/phpstan": "^0.12.57",
"phpstan/phpstan-phpunit": "^0.12.16",
"phpunit/phpunit": "^8.5.13",
"laminas/laminas-diactoros": "^2.3.0",
"phpstan/phpstan": "^0.11.19",
"phpstan/phpstan-phpunit": "^0.11.2",
"phpunit/phpunit": "^8.5.4 || ^9.1.3",
"roave/security-advisories": "dev-master"
},
"type": "library",
@@ -1850,20 +1785,20 @@
"type": "github"
}
],
"time": "2020-12-10T11:35:44+00:00"
"time": "2020-07-01T11:33:50+00:00"
},
{
"name": "monolog/monolog",
"version": "2.1.1",
"version": "2.2.0",
"source": {
"type": "git",
"url": "https://github.com/Seldaek/monolog.git",
"reference": "f9eee5cec93dfb313a38b6b288741e84e53f02d5"
"reference": "1cb1cde8e8dd0f70cc0fe51354a59acad9302084"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/Seldaek/monolog/zipball/f9eee5cec93dfb313a38b6b288741e84e53f02d5",
"reference": "f9eee5cec93dfb313a38b6b288741e84e53f02d5",
"url": "https://api.github.com/repos/Seldaek/monolog/zipball/1cb1cde8e8dd0f70cc0fe51354a59acad9302084",
"reference": "1cb1cde8e8dd0f70cc0fe51354a59acad9302084",
"shasum": ""
},
"require": {
@@ -1876,16 +1811,17 @@
"require-dev": {
"aws/aws-sdk-php": "^2.4.9 || ^3.0",
"doctrine/couchdb": "~1.0@dev",
"elasticsearch/elasticsearch": "^6.0",
"elasticsearch/elasticsearch": "^7",
"graylog2/gelf-php": "^1.4.2",
"mongodb/mongodb": "^1.8",
"php-amqplib/php-amqplib": "~2.4",
"php-console/php-console": "^3.1.3",
"php-parallel-lint/php-parallel-lint": "^1.0",
"phpspec/prophecy": "^1.6.1",
"phpstan/phpstan": "^0.12.59",
"phpunit/phpunit": "^8.5",
"predis/predis": "^1.1",
"rollbar/rollbar": "^1.3",
"ruflin/elastica": ">=0.90 <3.0",
"ruflin/elastica": ">=0.90 <7.0.1",
"swiftmailer/swiftmailer": "^5.3|^6.0"
},
"suggest": {
@@ -1905,7 +1841,7 @@
"type": "library",
"extra": {
"branch-alias": {
"dev-master": "2.x-dev"
"dev-main": "2.x-dev"
}
},
"autoload": {
@@ -1921,11 +1857,11 @@
{
"name": "Jordi Boggiano",
"email": "j.boggiano@seld.be",
"homepage": "http://seld.be"
"homepage": "https://seld.be"
}
],
"description": "Sends your logs to files, sockets, inboxes, databases and various web services",
"homepage": "http://github.com/Seldaek/monolog",
"homepage": "https://github.com/Seldaek/monolog",
"keywords": [
"log",
"logging",
@@ -1941,7 +1877,7 @@
"type": "tidelift"
}
],
"time": "2020-07-23T08:41:23+00:00"
"time": "2020-12-14T13:15:25+00:00"
},
{
"name": "nesbot/carbon",
@@ -6708,16 +6644,16 @@
},
{
"name": "phar-io/version",
"version": "3.0.3",
"version": "3.0.4",
"source": {
"type": "git",
"url": "https://github.com/phar-io/version.git",
"reference": "726c026815142e4f8677b7cb7f2249c9ffb7ecae"
"reference": "e4782611070e50613683d2b9a57730e9a3ba5451"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/phar-io/version/zipball/726c026815142e4f8677b7cb7f2249c9ffb7ecae",
"reference": "726c026815142e4f8677b7cb7f2249c9ffb7ecae",
"url": "https://api.github.com/repos/phar-io/version/zipball/e4782611070e50613683d2b9a57730e9a3ba5451",
"reference": "e4782611070e50613683d2b9a57730e9a3ba5451",
"shasum": ""
},
"require": {
@@ -6751,7 +6687,7 @@
}
],
"description": "Library for handling version information and constraints",
"time": "2020-11-30T09:21:21+00:00"
"time": "2020-12-13T23:18:30+00:00"
},
{
"name": "phpdocumentor/reflection-common",

View File

@@ -160,6 +160,7 @@ return [
Illuminate\Session\SessionServiceProvider::class,
Illuminate\Translation\TranslationServiceProvider::class,
Illuminate\Validation\ValidationServiceProvider::class,
\Laravel\Passport\PassportServiceProvider::class,
Illuminate\View\ViewServiceProvider::class,

View File

@@ -18,7 +18,7 @@ Route::apiResource('headteachers', 'Users\HeadTeacherController');
Route::apiResource('teachers', 'Users\TeacherController');//->middleware(['auth:api','role:headteacher|teacher']);
Route::get('teacher/{teacher}/classes', 'Users\TeacherController@getClasses'); //получить классы у которых ведет учитель
Route::get('teacher/{teacher}/classes', 'Users\TeacherController@getClasses');
Route::get('teacher/{teacher}/classes/{class}/uncheked-task', 'Users\TeacherController@getUncheckedTask');
Route::get('teacher/{teacher}/classes/{class}/unchecked-task', 'Users\TeacherController@getUncheckedTask');
Route::apiResource('students', 'Users\StudentController');
Route::get('/student/{student}/answers', 'Users\StudentController@getAnswers');
@@ -33,6 +33,7 @@ Route::get('classes/{class}/students', 'SchoolClassController@getStudents'); //
Route::get('classes/{class}/journal', 'SchoolClassController@getStudentsJournal'); //все ученики класса с оценками
Route::get('classes/{class}/subjects', 'SchoolClassController@getSubjects'); //все предметы класса
Route::apiResource('journal', 'JournalController');
Route::apiResource('themes', 'BankTask\ThemeController');
@@ -47,14 +48,12 @@ Route::group(['prefix' => 'banktask'], function () {
Route::delete('{banktask}', 'BankTask\BankTaskController@delete'); //удаление задания
Route::post('{banktask}/addfile', 'BankTask\BankTaskFileController@store');
Route::get('{banktask}/files', 'BankTask\BankTaskFileController@showFiles');
Route::get('/file/{file}/download', 'BankTask\BankTaskFileController@download');
Route::delete('/file/{file}/delete', 'BankTask\BankTaskFileController@delete');
Route::put('/file/{file}/update', 'BankTask\BankTaskFileController@update');
Route::delete('banktask/file/{file}/delete', 'BankTask\BankTaskFileController@delete');
Route::put('banktask/file/{file}/update', 'BankTask\BankTaskFileController@update');
});
Route::get('/file/{file}/download', 'BankTaskFileController@download');
Route::delete('/file/{file}/delete', 'BankTaskFileController@delete');
Route::put('/file/{file}/update', 'BankTaskFileController@update');
Route::group(['prefix' => 'news'], function () {
Route::post('', 'News\NewsController@store');
@@ -83,3 +82,4 @@ Route::group(['prefix' => 'task'], function () {
Route::get('/{task}/file/{file}', 'TaskFileController@download'); // Скачать файл
Route::delete('/file/{file}', 'TaskFileController@delete'); // Удалить файл
});

View File

@@ -13,4 +13,4 @@
|
*/
Route::view('/', 'auth');