1
0
mirror of https://github.com/robonen/education-project.git synced 2026-03-20 10:54: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); $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', '>=', $this->transformDate($value));
$this->builder = $this->builder->where('updated_at', $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) protected function last($value)
{ {
$date = Carbon::now()->subDays($value); $date = Carbon::now()->subDays($value);

View File

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

View File

@@ -7,6 +7,7 @@ use App\Http\Requests\StudentRequest;
use App\Models\SchoolClass; use App\Models\SchoolClass;
use App\Models\Student; use App\Models\Student;
use Illuminate\Http\JsonResponse; use Illuminate\Http\JsonResponse;
use App\Models\AnswerToTask;
class StudentController extends Controller class StudentController extends Controller
{ {
@@ -66,7 +67,17 @@ class StudentController extends Controller
return response()->json(collect($student)->except('school_class'), 200); 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) { public function getAnswers(Student $student) {
return AnswerToTask::where('student_id', '=', $student->id)->get(); 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'); ->withPivot('hours_per_week', 'hours_per_year');
} }
public function chatLinks()
{
return $this->hasMany(ChatLink::class, 'class_id');
}
public function tasks() { public function tasks() {
return $this->hasMany(Task::class, 'class_id'); 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); return $this->belongsTo(User::class);
} }
public function tasks(){ public function tasks(){
return $this->hasMany(Task::class); 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", "Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies",
"This file is @generated automatically" "This file is @generated automatically"
], ],
"content-hash": "b864dde6a95522044afee456c400fb07", "content-hash": "7a7b53e8f06f6bcd7118e6f3b9093703",
"packages": [ "packages": [
{ {
"name": "asm89/stack-cors", "name": "asm89/stack-cors",
@@ -1055,16 +1055,16 @@
}, },
{ {
"name": "laravel/framework", "name": "laravel/framework",
"version": "v8.18.1", "version": "v8.19.0",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/laravel/framework.git", "url": "https://github.com/laravel/framework.git",
"reference": "31747193c26ba0a9cb7929a912895d3cdefd10cf" "reference": "f5f331cee60f1bbe672503b7eb9ba5b22b2ceacb"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/laravel/framework/zipball/31747193c26ba0a9cb7929a912895d3cdefd10cf", "url": "https://api.github.com/repos/laravel/framework/zipball/f5f331cee60f1bbe672503b7eb9ba5b22b2ceacb",
"reference": "31747193c26ba0a9cb7929a912895d3cdefd10cf", "reference": "f5f331cee60f1bbe672503b7eb9ba5b22b2ceacb",
"shasum": "" "shasum": ""
}, },
"require": { "require": {
@@ -1214,20 +1214,20 @@
"framework", "framework",
"laravel" "laravel"
], ],
"time": "2020-12-08T22:05:12+00:00" "time": "2020-12-15T16:16:31+00:00"
}, },
{ {
"name": "laravel/passport", "name": "laravel/passport",
"version": "v10.1.0", "version": "v10.0.1",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/laravel/passport.git", "url": "https://github.com/laravel/passport.git",
"reference": "c2b93a7d8d93cf303bb1eefbfa5610f084f9bdd4" "reference": "4e53f1b237a9e51ac10f0b30c6ebedd68f6848ab"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/laravel/passport/zipball/c2b93a7d8d93cf303bb1eefbfa5610f084f9bdd4", "url": "https://api.github.com/repos/laravel/passport/zipball/4e53f1b237a9e51ac10f0b30c6ebedd68f6848ab",
"reference": "c2b93a7d8d93cf303bb1eefbfa5610f084f9bdd4", "reference": "4e53f1b237a9e51ac10f0b30c6ebedd68f6848ab",
"shasum": "" "shasum": ""
}, },
"require": { "require": {
@@ -1242,10 +1242,9 @@
"illuminate/encryption": "^8.2", "illuminate/encryption": "^8.2",
"illuminate/http": "^8.2", "illuminate/http": "^8.2",
"illuminate/support": "^8.2", "illuminate/support": "^8.2",
"lcobucci/jwt": "^3.4|^4.0", "league/oauth2-server": "^8.1",
"league/oauth2-server": "^8.2",
"nyholm/psr7": "^1.3", "nyholm/psr7": "^1.3",
"php": "^7.3|^8.0", "php": "^7.3",
"phpseclib/phpseclib": "^2.0", "phpseclib/phpseclib": "^2.0",
"symfony/psr-http-message-bridge": "^2.0" "symfony/psr-http-message-bridge": "^2.0"
}, },
@@ -1287,7 +1286,7 @@
"oauth", "oauth",
"passport" "passport"
], ],
"time": "2020-11-26T07:57:30+00:00" "time": "2020-09-15T16:41:42+00:00"
}, },
{ {
"name": "laravel/tinker", "name": "laravel/tinker",
@@ -1353,100 +1352,36 @@
], ],
"time": "2020-10-29T13:07:12+00:00" "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", "name": "lcobucci/jwt",
"version": "4.0.0", "version": "3.3.3",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/lcobucci/jwt.git", "url": "https://github.com/lcobucci/jwt.git",
"reference": "6d8665ccd924dc076a9b65d1ea8abe21d68f6958" "reference": "c1123697f6a2ec29162b82f170dd4a491f524773"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/lcobucci/jwt/zipball/6d8665ccd924dc076a9b65d1ea8abe21d68f6958", "url": "https://api.github.com/repos/lcobucci/jwt/zipball/c1123697f6a2ec29162b82f170dd4a491f524773",
"reference": "6d8665ccd924dc076a9b65d1ea8abe21d68f6958", "reference": "c1123697f6a2ec29162b82f170dd4a491f524773",
"shasum": "" "shasum": ""
}, },
"require": { "require": {
"ext-mbstring": "*", "ext-mbstring": "*",
"ext-openssl": "*", "ext-openssl": "*",
"lcobucci/clock": "^2.0", "php": "^5.6 || ^7.0"
"php": "^7.4 || ^8.0"
}, },
"require-dev": { "require-dev": {
"infection/infection": "^0.20", "mikey179/vfsstream": "~1.5",
"lcobucci/coding-standard": "^6.0", "phpmd/phpmd": "~2.2",
"mikey179/vfsstream": "^1.6", "phpunit/php-invoker": "~1.1",
"phpbench/phpbench": "^0.17", "phpunit/phpunit": "^5.7 || ^7.3",
"phpstan/extension-installer": "^1.0", "squizlabs/php_codesniffer": "~2.3"
"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"
}, },
"type": "library", "type": "library",
"extra": { "extra": {
"branch-alias": { "branch-alias": {
"dev-master": "4.0-dev" "dev-master": "3.1-dev"
} }
}, },
"autoload": { "autoload": {
@@ -1460,7 +1395,7 @@
], ],
"authors": [ "authors": [
{ {
"name": "Luís Cobucci", "name": "Luís Otávio Cobucci Oblonczyk",
"email": "lcobucci@gmail.com", "email": "lcobucci@gmail.com",
"role": "Developer" "role": "Developer"
} }
@@ -1480,7 +1415,7 @@
"type": "patreon" "type": "patreon"
} }
], ],
"time": "2020-11-25T02:06:12+00:00" "time": "2020-08-20T13:22:28+00:00"
}, },
{ {
"name": "league/commonmark", "name": "league/commonmark",
@@ -1771,25 +1706,25 @@
}, },
{ {
"name": "league/oauth2-server", "name": "league/oauth2-server",
"version": "8.2.4", "version": "8.1.1",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/thephpleague/oauth2-server.git", "url": "https://github.com/thephpleague/oauth2-server.git",
"reference": "622eaa1f28eb4a2dea0cfc7e4f5280fac794e83c" "reference": "09f22e8121fa1832962dba18213b80d4267ef8a3"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/thephpleague/oauth2-server/zipball/622eaa1f28eb4a2dea0cfc7e4f5280fac794e83c", "url": "https://api.github.com/repos/thephpleague/oauth2-server/zipball/09f22e8121fa1832962dba18213b80d4267ef8a3",
"reference": "622eaa1f28eb4a2dea0cfc7e4f5280fac794e83c", "reference": "09f22e8121fa1832962dba18213b80d4267ef8a3",
"shasum": "" "shasum": ""
}, },
"require": { "require": {
"defuse/php-encryption": "^2.2.1", "defuse/php-encryption": "^2.2.1",
"ext-json": "*", "ext-json": "*",
"ext-openssl": "*", "ext-openssl": "*",
"lcobucci/jwt": "^3.4 || ^4.0", "lcobucci/jwt": "^3.3.1",
"league/event": "^2.2", "league/event": "^2.2",
"php": "^7.2 || ^8.0", "php": ">=7.2.0",
"psr/http-message": "^1.0.1" "psr/http-message": "^1.0.1"
}, },
"replace": { "replace": {
@@ -1797,10 +1732,10 @@
"lncd/oauth2": "*" "lncd/oauth2": "*"
}, },
"require-dev": { "require-dev": {
"laminas/laminas-diactoros": "^2.4.1", "laminas/laminas-diactoros": "^2.3.0",
"phpstan/phpstan": "^0.12.57", "phpstan/phpstan": "^0.11.19",
"phpstan/phpstan-phpunit": "^0.12.16", "phpstan/phpstan-phpunit": "^0.11.2",
"phpunit/phpunit": "^8.5.13", "phpunit/phpunit": "^8.5.4 || ^9.1.3",
"roave/security-advisories": "dev-master" "roave/security-advisories": "dev-master"
}, },
"type": "library", "type": "library",
@@ -1850,20 +1785,20 @@
"type": "github" "type": "github"
} }
], ],
"time": "2020-12-10T11:35:44+00:00" "time": "2020-07-01T11:33:50+00:00"
}, },
{ {
"name": "monolog/monolog", "name": "monolog/monolog",
"version": "2.1.1", "version": "2.2.0",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/Seldaek/monolog.git", "url": "https://github.com/Seldaek/monolog.git",
"reference": "f9eee5cec93dfb313a38b6b288741e84e53f02d5" "reference": "1cb1cde8e8dd0f70cc0fe51354a59acad9302084"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/Seldaek/monolog/zipball/f9eee5cec93dfb313a38b6b288741e84e53f02d5", "url": "https://api.github.com/repos/Seldaek/monolog/zipball/1cb1cde8e8dd0f70cc0fe51354a59acad9302084",
"reference": "f9eee5cec93dfb313a38b6b288741e84e53f02d5", "reference": "1cb1cde8e8dd0f70cc0fe51354a59acad9302084",
"shasum": "" "shasum": ""
}, },
"require": { "require": {
@@ -1876,16 +1811,17 @@
"require-dev": { "require-dev": {
"aws/aws-sdk-php": "^2.4.9 || ^3.0", "aws/aws-sdk-php": "^2.4.9 || ^3.0",
"doctrine/couchdb": "~1.0@dev", "doctrine/couchdb": "~1.0@dev",
"elasticsearch/elasticsearch": "^6.0", "elasticsearch/elasticsearch": "^7",
"graylog2/gelf-php": "^1.4.2", "graylog2/gelf-php": "^1.4.2",
"mongodb/mongodb": "^1.8",
"php-amqplib/php-amqplib": "~2.4", "php-amqplib/php-amqplib": "~2.4",
"php-console/php-console": "^3.1.3", "php-console/php-console": "^3.1.3",
"php-parallel-lint/php-parallel-lint": "^1.0",
"phpspec/prophecy": "^1.6.1", "phpspec/prophecy": "^1.6.1",
"phpstan/phpstan": "^0.12.59",
"phpunit/phpunit": "^8.5", "phpunit/phpunit": "^8.5",
"predis/predis": "^1.1", "predis/predis": "^1.1",
"rollbar/rollbar": "^1.3", "rollbar/rollbar": "^1.3",
"ruflin/elastica": ">=0.90 <3.0", "ruflin/elastica": ">=0.90 <7.0.1",
"swiftmailer/swiftmailer": "^5.3|^6.0" "swiftmailer/swiftmailer": "^5.3|^6.0"
}, },
"suggest": { "suggest": {
@@ -1905,7 +1841,7 @@
"type": "library", "type": "library",
"extra": { "extra": {
"branch-alias": { "branch-alias": {
"dev-master": "2.x-dev" "dev-main": "2.x-dev"
} }
}, },
"autoload": { "autoload": {
@@ -1921,11 +1857,11 @@
{ {
"name": "Jordi Boggiano", "name": "Jordi Boggiano",
"email": "j.boggiano@seld.be", "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", "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": [ "keywords": [
"log", "log",
"logging", "logging",
@@ -1941,7 +1877,7 @@
"type": "tidelift" "type": "tidelift"
} }
], ],
"time": "2020-07-23T08:41:23+00:00" "time": "2020-12-14T13:15:25+00:00"
}, },
{ {
"name": "nesbot/carbon", "name": "nesbot/carbon",
@@ -6708,16 +6644,16 @@
}, },
{ {
"name": "phar-io/version", "name": "phar-io/version",
"version": "3.0.3", "version": "3.0.4",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/phar-io/version.git", "url": "https://github.com/phar-io/version.git",
"reference": "726c026815142e4f8677b7cb7f2249c9ffb7ecae" "reference": "e4782611070e50613683d2b9a57730e9a3ba5451"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/phar-io/version/zipball/726c026815142e4f8677b7cb7f2249c9ffb7ecae", "url": "https://api.github.com/repos/phar-io/version/zipball/e4782611070e50613683d2b9a57730e9a3ba5451",
"reference": "726c026815142e4f8677b7cb7f2249c9ffb7ecae", "reference": "e4782611070e50613683d2b9a57730e9a3ba5451",
"shasum": "" "shasum": ""
}, },
"require": { "require": {
@@ -6751,7 +6687,7 @@
} }
], ],
"description": "Library for handling version information and constraints", "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", "name": "phpdocumentor/reflection-common",

View File

@@ -160,6 +160,7 @@ return [
Illuminate\Session\SessionServiceProvider::class, Illuminate\Session\SessionServiceProvider::class,
Illuminate\Translation\TranslationServiceProvider::class, Illuminate\Translation\TranslationServiceProvider::class,
Illuminate\Validation\ValidationServiceProvider::class, Illuminate\Validation\ValidationServiceProvider::class,
\Laravel\Passport\PassportServiceProvider::class,
Illuminate\View\ViewServiceProvider::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::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', '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::apiResource('students', 'Users\StudentController');
Route::get('/student/{student}/answers', 'Users\StudentController@getAnswers'); 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}/journal', 'SchoolClassController@getStudentsJournal'); //все ученики класса с оценками
Route::get('classes/{class}/subjects', 'SchoolClassController@getSubjects'); //все предметы класса Route::get('classes/{class}/subjects', 'SchoolClassController@getSubjects'); //все предметы класса
Route::apiResource('journal', 'JournalController'); Route::apiResource('journal', 'JournalController');
Route::apiResource('themes', 'BankTask\ThemeController'); Route::apiResource('themes', 'BankTask\ThemeController');
@@ -47,14 +48,12 @@ Route::group(['prefix' => 'banktask'], function () {
Route::delete('{banktask}', 'BankTask\BankTaskController@delete'); //удаление задания Route::delete('{banktask}', 'BankTask\BankTaskController@delete'); //удаление задания
Route::post('{banktask}/addfile', 'BankTask\BankTaskFileController@store'); Route::post('{banktask}/addfile', 'BankTask\BankTaskFileController@store');
Route::get('{banktask}/files', 'BankTask\BankTaskFileController@showFiles'); Route::get('{banktask}/files', 'BankTask\BankTaskFileController@showFiles');
Route::get('/file/{file}/download', 'BankTask\BankTaskFileController@download'); Route::delete('banktask/file/{file}/delete', 'BankTask\BankTaskFileController@delete');
Route::delete('/file/{file}/delete', 'BankTask\BankTaskFileController@delete'); Route::put('banktask/file/{file}/update', 'BankTask\BankTaskFileController@update');
Route::put('/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::group(['prefix' => 'news'], function () {
Route::post('', 'News\NewsController@store'); Route::post('', 'News\NewsController@store');
@@ -83,3 +82,4 @@ Route::group(['prefix' => 'task'], function () {
Route::get('/{task}/file/{file}', 'TaskFileController@download'); // Скачать файл Route::get('/{task}/file/{file}', 'TaskFileController@download'); // Скачать файл
Route::delete('/file/{file}', 'TaskFileController@delete'); // Удалить файл Route::delete('/file/{file}', 'TaskFileController@delete'); // Удалить файл
}); });

View File

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