From 20f68266565a5618dd4cd6daee3a06a3aafadd1a Mon Sep 17 00:00:00 2001 From: Will Date: Mon, 30 May 2022 14:41:27 +0100 Subject: [PATCH 01/24] Created view, route and controller for institutions --- app/Http/Controllers/Institution.php | 13 +++++++++++++ resources/views/institutions.blade.php | 0 routes/web.php | 4 ++++ 3 files changed, 17 insertions(+) create mode 100644 app/Http/Controllers/Institution.php create mode 100644 resources/views/institutions.blade.php diff --git a/app/Http/Controllers/Institution.php b/app/Http/Controllers/Institution.php new file mode 100644 index 00000000..c5bc191b --- /dev/null +++ b/app/Http/Controllers/Institution.php @@ -0,0 +1,13 @@ +name('blog.hidden'); Route::get('/blog/{slug}', [Blog::class, 'show']) ->name('blog.show'); +Route::get('/institutions', [Institution::class, 'view']) + ->middleware(['auth', 'verified', 'admin']) + ->name('institution.manage'); // Post routes Route::post('/assignments/delete/{id}', [Assignment::class, 'delete']) From c42d54ea656b19b365e62ef8bfbc9e14beb84fcd Mon Sep 17 00:00:00 2001 From: Will Date: Mon, 30 May 2022 14:43:22 +0100 Subject: [PATCH 02/24] Added page to navigation for admins --- resources/views/layouts/navigation.blade.php | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/resources/views/layouts/navigation.blade.php b/resources/views/layouts/navigation.blade.php index e28a671b..7024d994 100644 --- a/resources/views/layouts/navigation.blade.php +++ b/resources/views/layouts/navigation.blade.php @@ -90,6 +90,12 @@ class="ml-1 flex items-center justify-center h-10 w-10 rounded-full focus:outlin @endif + @if (auth()->user()->is_admin) + + {{ __('Institutions') }} + + @endif + {{ __('Community') }} @@ -265,6 +271,12 @@ class="focus:ring-indigo-500 focus:border-indigo-500 block w-full pl-9 sm:text-s @endif + @if (auth()->user()->is_admin) + + {{ __('Institutions') }} + + @endif + {{ __('Community') }} From 893b0a33c31a0d0c57c30e4a302325bdf368f38e Mon Sep 17 00:00:00 2001 From: Will Date: Mon, 30 May 2022 14:53:36 +0100 Subject: [PATCH 03/24] List now shows all the institutions with tutor and student counts --- app/Http/Controllers/Institution.php | 5 +- resources/views/institutions.blade.php | 138 +++++++++++++++++++++++++ 2 files changed, 142 insertions(+), 1 deletion(-) diff --git a/app/Http/Controllers/Institution.php b/app/Http/Controllers/Institution.php index c5bc191b..06f16608 100644 --- a/app/Http/Controllers/Institution.php +++ b/app/Http/Controllers/Institution.php @@ -8,6 +8,9 @@ class Institution extends Controller { public function view() { - return view('institutions'); + return view('institutions', + [ + 'all' => \App\Models\Institution::query()->orderByDesc('institutions.institution')->paginate(10), + ]); } } diff --git a/resources/views/institutions.blade.php b/resources/views/institutions.blade.php index e69de29b..9692b7e7 100644 --- a/resources/views/institutions.blade.php +++ b/resources/views/institutions.blade.php @@ -0,0 +1,138 @@ + +
+ + +
+ +
+ + +
+
+
+ +
+
+ + +
+ +
+
+
+
+ +
+
+ +
+ + + +
+
+
+
+
+
+
+

Institutions

+

A list of all the users in your account including their name, title, email and role.

+
+
+ +
+
+
+
+
+
+ + + + + + + + + + + + @foreach($all as $i) + + + + + + + + @endforeach + + + +
InstitutionTutors + Manage +
{{$i->institution}}{{$i->User->where('is_tutor', 1)->count()}} + Manage, Lindsay Walton +
+
+
+
+
+
+ \ No newline at end of file From 13d5f199dd953ef337fd7c5187c2724faf43273b Mon Sep 17 00:00:00 2001 From: Will Date: Mon, 30 May 2022 14:54:12 +0100 Subject: [PATCH 04/24] Adjusted pagination number --- app/Http/Controllers/Institution.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/Http/Controllers/Institution.php b/app/Http/Controllers/Institution.php index 06f16608..c1c757ca 100644 --- a/app/Http/Controllers/Institution.php +++ b/app/Http/Controllers/Institution.php @@ -10,7 +10,7 @@ public function view() { return view('institutions', [ - 'all' => \App\Models\Institution::query()->orderByDesc('institutions.institution')->paginate(10), + 'all' => \App\Models\Institution::query()->orderByDesc('institutions.institution')->paginate(25), ]); } } From 20c751c8ab83c0b68d7101a12baa5edf94d18ede Mon Sep 17 00:00:00 2001 From: Will Date: Mon, 30 May 2022 14:55:02 +0100 Subject: [PATCH 05/24] Created manage and new institution pages --- resources/views/institutionmanage.blade.php | 3 +++ resources/views/institutionnew.blade.php | 3 +++ 2 files changed, 6 insertions(+) create mode 100644 resources/views/institutionmanage.blade.php create mode 100644 resources/views/institutionnew.blade.php diff --git a/resources/views/institutionmanage.blade.php b/resources/views/institutionmanage.blade.php new file mode 100644 index 00000000..c5ea161a --- /dev/null +++ b/resources/views/institutionmanage.blade.php @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/resources/views/institutionnew.blade.php b/resources/views/institutionnew.blade.php new file mode 100644 index 00000000..c5ea161a --- /dev/null +++ b/resources/views/institutionnew.blade.php @@ -0,0 +1,3 @@ + + + \ No newline at end of file From 6852d68289a0b229345371cf69df4521423f49eb Mon Sep 17 00:00:00 2001 From: Will Date: Mon, 30 May 2022 14:58:33 +0100 Subject: [PATCH 06/24] Linked institution edit page --- app/Http/Controllers/Institution.php | 5 +++++ resources/views/institutions.blade.php | 2 +- routes/web.php | 3 +++ 3 files changed, 9 insertions(+), 1 deletion(-) diff --git a/app/Http/Controllers/Institution.php b/app/Http/Controllers/Institution.php index c1c757ca..7ed18890 100644 --- a/app/Http/Controllers/Institution.php +++ b/app/Http/Controllers/Institution.php @@ -13,4 +13,9 @@ public function view() 'all' => \App\Models\Institution::query()->orderByDesc('institutions.institution')->paginate(25), ]); } + + public function manage($joincode) + { + + } } diff --git a/resources/views/institutions.blade.php b/resources/views/institutions.blade.php index 9692b7e7..5b622ed7 100644 --- a/resources/views/institutions.blade.php +++ b/resources/views/institutions.blade.php @@ -122,7 +122,7 @@ class="origin-top-right absolute right-0 mt-2 w-48 rounded-md shadow-lg bg-white {{$i->joincode}} {{$i->User->where('is_tutor', 1)->count()}} - Manage, Lindsay Walton + Manage, Lindsay Walton @endforeach diff --git a/routes/web.php b/routes/web.php index d40305f8..9adcbffc 100644 --- a/routes/web.php +++ b/routes/web.php @@ -186,6 +186,9 @@ Route::get('/institutions', [Institution::class, 'view']) ->middleware(['auth', 'verified', 'admin']) ->name('institution.manage'); +Route::get('/institutions/{joincode}', [Institution::class, 'manage']) + ->middleware(['auth', 'verified', 'admin']) + ->name('institution.edit'); // Post routes Route::post('/assignments/delete/{id}', [Assignment::class, 'delete']) From 87d191ec302b9bd1a7012e8ea2c37c11170bab86 Mon Sep 17 00:00:00 2001 From: Will Date: Mon, 30 May 2022 15:02:12 +0100 Subject: [PATCH 07/24] Created view to show users in institution --- app/Http/Controllers/Institution.php | 5 +++++ resources/views/institutions.blade.php | 4 +++- resources/views/institutionusers.blade.php | 0 routes/web.php | 3 +++ 4 files changed, 11 insertions(+), 1 deletion(-) create mode 100644 resources/views/institutionusers.blade.php diff --git a/app/Http/Controllers/Institution.php b/app/Http/Controllers/Institution.php index 7ed18890..78364d06 100644 --- a/app/Http/Controllers/Institution.php +++ b/app/Http/Controllers/Institution.php @@ -18,4 +18,9 @@ public function manage($joincode) { } + + public function create() + { + + } } diff --git a/resources/views/institutions.blade.php b/resources/views/institutions.blade.php index 5b622ed7..fefbfdd3 100644 --- a/resources/views/institutions.blade.php +++ b/resources/views/institutions.blade.php @@ -95,7 +95,9 @@ class="origin-top-right absolute right-0 mt-2 w-48 rounded-md shadow-lg bg-white

A list of all the users in your account including their name, title, email and role.

- + + +
diff --git a/resources/views/institutionusers.blade.php b/resources/views/institutionusers.blade.php new file mode 100644 index 00000000..e69de29b diff --git a/routes/web.php b/routes/web.php index 9adcbffc..e065b980 100644 --- a/routes/web.php +++ b/routes/web.php @@ -189,6 +189,9 @@ Route::get('/institutions/{joincode}', [Institution::class, 'manage']) ->middleware(['auth', 'verified', 'admin']) ->name('institution.edit'); +Route::get('/institutions/new', [Institution::class, 'create']) + ->middleware(['auth', 'verified', 'admin']) + ->name('institution.create'); // Post routes Route::post('/assignments/delete/{id}', [Assignment::class, 'delete']) From 085f347e9c346ead167291ff1a159a615ccf107e Mon Sep 17 00:00:00 2001 From: Will Date: Mon, 30 May 2022 15:03:36 +0100 Subject: [PATCH 08/24] Added route in controller for institution --- app/Http/Controllers/Institution.php | 4 +- resources/views/institutionmanage.blade.php | 62 +++++++++++++++++++++ resources/views/institutionusers.blade.php | 3 + 3 files changed, 67 insertions(+), 2 deletions(-) diff --git a/app/Http/Controllers/Institution.php b/app/Http/Controllers/Institution.php index 78364d06..63526938 100644 --- a/app/Http/Controllers/Institution.php +++ b/app/Http/Controllers/Institution.php @@ -16,11 +16,11 @@ public function view() public function manage($joincode) { - + return view('institutionmanage'); } public function create() { - + return view('institutionnew'); } } diff --git a/resources/views/institutionmanage.blade.php b/resources/views/institutionmanage.blade.php index c5ea161a..83025b13 100644 --- a/resources/views/institutionmanage.blade.php +++ b/resources/views/institutionmanage.blade.php @@ -1,3 +1,65 @@ + +
+

Last 30 days

+
+
+
Total Subscribers
+
+
+ 71,897 + from 70,946 +
+ +
+ + + Increased by + 12% +
+
+
+ +
+
Avg. Open Rate
+
+
+ 58.16% + from 56.14% +
+ +
+ + + Increased by + 2.02% +
+
+
+ +
+
Avg. Click Rate
+
+
+ 24.57% + from 28.62% +
+ +
+ + + Decreased by + 4.05% +
+
+
+
+
\ No newline at end of file diff --git a/resources/views/institutionusers.blade.php b/resources/views/institutionusers.blade.php index e69de29b..c5ea161a 100644 --- a/resources/views/institutionusers.blade.php +++ b/resources/views/institutionusers.blade.php @@ -0,0 +1,3 @@ + + + \ No newline at end of file From cf75327707ebdbcd0e461f0622be490c1a7b5214 Mon Sep 17 00:00:00 2001 From: Will Date: Mon, 30 May 2022 15:07:25 +0100 Subject: [PATCH 09/24] Created data for view and created stats for institution --- app/Http/Controllers/Institution.php | 4 +- resources/views/institutionmanage.blade.php | 133 ++++++++++++++------ resources/views/institutionnew.blade.php | 89 +++++++++++++ 3 files changed, 188 insertions(+), 38 deletions(-) diff --git a/app/Http/Controllers/Institution.php b/app/Http/Controllers/Institution.php index 63526938..a739e8da 100644 --- a/app/Http/Controllers/Institution.php +++ b/app/Http/Controllers/Institution.php @@ -16,7 +16,9 @@ public function view() public function manage($joincode) { - return view('institutionmanage'); + return view('institutionmanage', [ + 'institution' => \App\Models\Institution::query()->where('institutions.joincode', $joincode)->firstOrFail() + ]); } public function create() diff --git a/resources/views/institutionmanage.blade.php b/resources/views/institutionmanage.blade.php index 83025b13..77f89bcb 100644 --- a/resources/views/institutionmanage.blade.php +++ b/resources/views/institutionmanage.blade.php @@ -1,61 +1,120 @@ +
+ + +
+ +
+ + +
+
+
+ +
+
+ + +
+ +
+
+
+
+ +
+
+ +
+ + + +
+
+
+
-

Last 30 days

+

{{$institution->institution}}'s statistics

-
Total Subscribers
+
Students
- 71,897 - from 70,946 -
- -
- - - Increased by - 12% + {{$institution->User->where('is_tutor', 0)->count()}}
-
Avg. Open Rate
+
Tutors
- 58.16% - from 56.14% -
- -
- - - Increased by - 2.02% + {{$institution->User->where('is_tutor', 1)->count()}}
-
Avg. Click Rate
+
Total
- 24.57% - from 28.62% -
- -
- - - Decreased by - 4.05% + {{$institution->User->count()}}
diff --git a/resources/views/institutionnew.blade.php b/resources/views/institutionnew.blade.php index c5ea161a..deca85e1 100644 --- a/resources/views/institutionnew.blade.php +++ b/resources/views/institutionnew.blade.php @@ -1,3 +1,92 @@ +
+ + +
+ +
+ + +
+
+
+ +
+
+ + +
+ +
+
+
+
+ +
+
+ +
+ + + +
+
+
+
\ No newline at end of file From cc8648047a9c49ca702d1fa5df32a1eaced180ec Mon Sep 17 00:00:00 2001 From: Will Date: Mon, 30 May 2022 15:40:31 +0100 Subject: [PATCH 10/24] Created the users list --- app/Http/Controllers/Institution.php | 7 + resources/views/institutionmanage.blade.php | 106 +++++++++++++++ resources/views/institutionusers.blade.php | 142 ++++++++++++++++++++ routes/web.php | 3 + 4 files changed, 258 insertions(+) diff --git a/app/Http/Controllers/Institution.php b/app/Http/Controllers/Institution.php index a739e8da..23575f78 100644 --- a/app/Http/Controllers/Institution.php +++ b/app/Http/Controllers/Institution.php @@ -25,4 +25,11 @@ public function create() { return view('institutionnew'); } + + public function users($joincode) + { + return view('institutionusers', [ + 'users' => \App\Models\Institution::query()->where('institutions.joincode', $joincode)->firstOrFail() + ]); + } } diff --git a/resources/views/institutionmanage.blade.php b/resources/views/institutionmanage.blade.php index 77f89bcb..9028e446 100644 --- a/resources/views/institutionmanage.blade.php +++ b/resources/views/institutionmanage.blade.php @@ -121,4 +121,110 @@ class="origin-top-right absolute right-0 mt-2 w-48 rounded-md shadow-lg bg-white
+ +
+
+

Account

+ +
+
+
+

Profile

+

This information will be displayed publicly so be careful what you share.

+
+ +
+ + +
+ +
+ + +
+ +
+ +
+ workcation.com/ + +
+
+ +
+ +
+ +
+
+ + +
+ +
+
+
+ +
+ +
+ +
+

Brief description for your profile. URLs are hyperlinked.

+
+ +
+ + +
+
+ +
+
+

Personal Information

+

This information will be displayed publicly so be careful what you share.

+
+ +
+ + +
+ +
+ + +
+ +
+ + +
+ +
+ + +
+ +

This account was created on .

+
+ +
+ + +
+
+
+
+
+
+ +
\ No newline at end of file diff --git a/resources/views/institutionusers.blade.php b/resources/views/institutionusers.blade.php index c5ea161a..b84bd7a9 100644 --- a/resources/views/institutionusers.blade.php +++ b/resources/views/institutionusers.blade.php @@ -1,3 +1,145 @@ +
+ +
+ +
+ + +
+
+
+ +
+
+ + +
+ +
+
+
+
+ +
+
+ +
+ + + +
+
+
+
+ \ No newline at end of file diff --git a/routes/web.php b/routes/web.php index e065b980..4e712005 100644 --- a/routes/web.php +++ b/routes/web.php @@ -192,6 +192,9 @@ Route::get('/institutions/new', [Institution::class, 'create']) ->middleware(['auth', 'verified', 'admin']) ->name('institution.create'); +Route::get('/institutions/{joincode}/users', [Institution::class, 'users']) + ->middleware(['auth', 'verified', 'admin']) + ->name('institution.users'); // Post routes Route::post('/assignments/delete/{id}', [Assignment::class, 'delete']) From ada8c9719c9ff0320361fa56642d856e70d9ec05 Mon Sep 17 00:00:00 2001 From: Will Date: Mon, 30 May 2022 15:42:46 +0100 Subject: [PATCH 11/24] Fixed incorrect total for member list --- resources/views/institutionusers.blade.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/resources/views/institutionusers.blade.php b/resources/views/institutionusers.blade.php index b84bd7a9..fefebbdd 100644 --- a/resources/views/institutionusers.blade.php +++ b/resources/views/institutionusers.blade.php @@ -91,7 +91,7 @@ class="origin-top-right absolute right-0 mt-2 w-48 rounded-md shadow-lg bg-white
-
+
Students
From cebf9c300c4f1feaf7b88a661cb810954e18720c Mon Sep 17 00:00:00 2001 From: Will Date: Wed, 1 Jun 2022 10:23:06 +0100 Subject: [PATCH 16/24] Created page to add users to institutions --- app/Http/Controllers/Institution.php | 5 +++++ resources/views/institutionadduser.blade.php | 3 +++ resources/views/institutionmanage.blade.php | 3 ++- routes/web.php | 6 ++++++ 4 files changed, 16 insertions(+), 1 deletion(-) create mode 100644 resources/views/institutionadduser.blade.php diff --git a/app/Http/Controllers/Institution.php b/app/Http/Controllers/Institution.php index 9da2cb41..3113e486 100644 --- a/app/Http/Controllers/Institution.php +++ b/app/Http/Controllers/Institution.php @@ -43,4 +43,9 @@ public function users($joincode) 'users' => \App\Models\Institution::query()->where('institutions.joincode', $joincode)->firstOrFail() ]); } + + public function addUser($joincode) + { + return view('institutionadduser'); + } } diff --git a/resources/views/institutionadduser.blade.php b/resources/views/institutionadduser.blade.php new file mode 100644 index 00000000..c5ea161a --- /dev/null +++ b/resources/views/institutionadduser.blade.php @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/resources/views/institutionmanage.blade.php b/resources/views/institutionmanage.blade.php index f6a74a8c..29d93717 100644 --- a/resources/views/institutionmanage.blade.php +++ b/resources/views/institutionmanage.blade.php @@ -123,7 +123,8 @@ class="origin-top-right absolute right-0 mt-2 w-48 rounded-md shadow-lg bg-white

{{$institution->institution}}'s settings

-
+ + @csrf
diff --git a/routes/web.php b/routes/web.php index 68a8b47a..23235b80 100644 --- a/routes/web.php +++ b/routes/web.php @@ -195,6 +195,9 @@ Route::get('/institutions/{joincode}/users', [Institution::class, 'users']) ->middleware(['auth', 'verified', 'admin']) ->name('institution.users'); +Route::get('/institutions/{joincode}/add', [Institution::class, 'addUser']) + ->middleware(['auth', 'admin', 'verified']) + ->name('institutions.add'); // Post routes Route::post('/assignments/delete/{id}', [Assignment::class, 'delete']) @@ -309,6 +312,9 @@ Route::post('/blog/{slug}/disable', [Blog::class, 'disableReplies']) ->middleware(['admin', 'auth', 'verified']) ->name('blog.disable-replies'); +Route::post('/institutions/create', [Institution::class, 'create']) + ->middleware(['admin', 'auth', 'verified']) + ->name('institutions.create'); //API GET ROUTES Route::prefix('api')->group(function () { From 49eddb40c473cd78b7a6cc861db28a6626d3a0dc Mon Sep 17 00:00:00 2001 From: Will Date: Wed, 1 Jun 2022 10:28:26 +0100 Subject: [PATCH 17/24] Adjusted manage institution logic and added few more routes --- app/Http/Controllers/Institution.php | 6 ++++-- resources/views/institutionmanage.blade.php | 2 +- routes/web.php | 3 +++ 3 files changed, 8 insertions(+), 3 deletions(-) diff --git a/app/Http/Controllers/Institution.php b/app/Http/Controllers/Institution.php index 3113e486..2502683b 100644 --- a/app/Http/Controllers/Institution.php +++ b/app/Http/Controllers/Institution.php @@ -28,13 +28,15 @@ public function create() public function update($joincode, Request $request) { + $new = $request->input('joincode'); + $n = \App\Models\Institution::query()->where('joincode', $joincode) ->update([ 'institution' => $request->input('institution'), - 'joincode' => $request->input('joincode') + 'joincode' => $new ]); - return redirect(route('institution.manage', $n->joincode)); + return redirect(route('institution.manage')); } public function users($joincode) diff --git a/resources/views/institutionmanage.blade.php b/resources/views/institutionmanage.blade.php index 29d93717..08428e6f 100644 --- a/resources/views/institutionmanage.blade.php +++ b/resources/views/institutionmanage.blade.php @@ -123,7 +123,7 @@ class="origin-top-right absolute right-0 mt-2 w-48 rounded-md shadow-lg bg-white

{{$institution->institution}}'s settings

- + @csrf
diff --git a/routes/web.php b/routes/web.php index 23235b80..966ee44a 100644 --- a/routes/web.php +++ b/routes/web.php @@ -315,6 +315,9 @@ Route::post('/institutions/create', [Institution::class, 'create']) ->middleware(['admin', 'auth', 'verified']) ->name('institutions.create'); +Route::post('/institutions/{joincode}/update', [Institution::class, 'update']) + ->middleware(['auth', 'admin', 'verified']) + ->name('institution.update'); //API GET ROUTES Route::prefix('api')->group(function () { From 8cbe1715b92a847d7067845d3b5e43ecf901df4d Mon Sep 17 00:00:00 2001 From: Will Date: Wed, 1 Jun 2022 10:34:37 +0100 Subject: [PATCH 18/24] Added links to add and view institution users --- resources/views/institutionmanage.blade.php | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/resources/views/institutionmanage.blade.php b/resources/views/institutionmanage.blade.php index 08428e6f..60557a97 100644 --- a/resources/views/institutionmanage.blade.php +++ b/resources/views/institutionmanage.blade.php @@ -143,6 +143,12 @@ class="origin-top-right absolute right-0 mt-2 w-48 rounded-md shadow-lg bg-white
+ + Add user + + + View users +
From 17170dae27d1c1d47a188aeec1c361fb6ac57239 Mon Sep 17 00:00:00 2001 From: Will Date: Wed, 1 Jun 2022 10:52:38 +0100 Subject: [PATCH 19/24] Added logic for adding users to institution via email --- app/Http/Controllers/Institution.php | 19 ++++ resources/views/institutionadduser.blade.php | 105 +++++++++++++++++++ routes/web.php | 3 + 3 files changed, 127 insertions(+) diff --git a/app/Http/Controllers/Institution.php b/app/Http/Controllers/Institution.php index 2502683b..f172ce58 100644 --- a/app/Http/Controllers/Institution.php +++ b/app/Http/Controllers/Institution.php @@ -50,4 +50,23 @@ public function addUser($joincode) { return view('institutionadduser'); } + + public function process($joincode, Request $request) + { + $email = $request->input('email'); + + $user = \App\Models\User::query()->where('email', $email); + + $id = \App\Models\Institution::query()->where('joincode', $joincode)->get('id'); + + if ($user->exists() and $user->get('users.institution_id') == null) { + $user = \App\Models\User::all()->where('email', $email)->all(); + $user->Institution()->associate($id); + $user->save(); + } + else { + abort(404, 'User not found'); + } + return view(route('institution.users', $joincode)); + } } diff --git a/resources/views/institutionadduser.blade.php b/resources/views/institutionadduser.blade.php index c5ea161a..bc4e9f31 100644 --- a/resources/views/institutionadduser.blade.php +++ b/resources/views/institutionadduser.blade.php @@ -1,3 +1,108 @@ +
+ + +
+ +
+ + +
+
+
+ +
+
+ + +
+ +
+
+
+
+ +
+
+ +
+ + + +
+
+
+
+ +
+
+

Add student to institution

+
+

Enter the students email to add them to the institution if they are not already part of one.

+
+
+
+ + +
+ +
+
+
\ No newline at end of file diff --git a/routes/web.php b/routes/web.php index 966ee44a..51c8c52e 100644 --- a/routes/web.php +++ b/routes/web.php @@ -318,6 +318,9 @@ Route::post('/institutions/{joincode}/update', [Institution::class, 'update']) ->middleware(['auth', 'admin', 'verified']) ->name('institution.update'); +Route::post('/institutions/{joincode}/process', [Institution::class, 'process']) + ->middleware(['auth', 'admin', 'verified']) + ->name('institution.process'); //API GET ROUTES Route::prefix('api')->group(function () { From 30fe7a3742eeb1b74c266cb98a41f57fe4c7493b Mon Sep 17 00:00:00 2001 From: Will Date: Wed, 1 Jun 2022 11:03:01 +0100 Subject: [PATCH 20/24] Admins can now create new institutions --- app/Http/Controllers/Institution.php | 12 ++++++ app/Models/Institution.php | 5 +++ resources/views/institutionnew.blade.php | 50 ++++++++++++++++++++++++ routes/web.php | 3 ++ 4 files changed, 70 insertions(+) diff --git a/app/Http/Controllers/Institution.php b/app/Http/Controllers/Institution.php index f172ce58..7d1702df 100644 --- a/app/Http/Controllers/Institution.php +++ b/app/Http/Controllers/Institution.php @@ -26,6 +26,18 @@ public function create() return view('institutionnew'); } + public function submit(Request $request) + { + \App\Models\Institution::query()->create( + [ + 'joincode' => $request->input('joincode'), + 'institution' => $request->input('name') + ] + )->save(); + + return redirect(route('institution.edit', $request->input('joincode'))); + } + public function update($joincode, Request $request) { $new = $request->input('joincode'); diff --git a/app/Models/Institution.php b/app/Models/Institution.php index 274e0554..69efdc3d 100644 --- a/app/Models/Institution.php +++ b/app/Models/Institution.php @@ -9,6 +9,11 @@ class Institution extends Model { use HasFactory; + protected $fillable = [ + 'institution', + 'joincode' + ]; + public function User() { return $this->hasMany(User::class); diff --git a/resources/views/institutionnew.blade.php b/resources/views/institutionnew.blade.php index deca85e1..b234dc94 100644 --- a/resources/views/institutionnew.blade.php +++ b/resources/views/institutionnew.blade.php @@ -89,4 +89,54 @@ class="origin-top-right absolute right-0 mt-2 w-48 rounded-md shadow-lg bg-white
+
+
+
+

New institution

+

Fill out this form to allow students to join a new institution that is joining Study Portal

+
+
+
+ @csrf +
+ +
+ +
+
+
+ +
+ +
+
+
+
+
+ + +
+
+

+ By selecting this, you agree to the + Privacy Policy + and + Cookie Policy. +

+
+
+
+
+ +
+
+
+
+
+
+
\ No newline at end of file diff --git a/routes/web.php b/routes/web.php index 51c8c52e..6cf0ec48 100644 --- a/routes/web.php +++ b/routes/web.php @@ -315,6 +315,9 @@ Route::post('/institutions/create', [Institution::class, 'create']) ->middleware(['admin', 'auth', 'verified']) ->name('institutions.create'); +Route::post('/institutions/submit', [Institution::class, 'submit']) + ->middleware(['auth', 'admin', 'verified']) + ->name('institution.submit'); Route::post('/institutions/{joincode}/update', [Institution::class, 'update']) ->middleware(['auth', 'admin', 'verified']) ->name('institution.update'); From 90005a636246b5f53c218dc33e692af649ee34f9 Mon Sep 17 00:00:00 2001 From: Will Date: Wed, 1 Jun 2022 11:16:11 +0100 Subject: [PATCH 21/24] Added delete functionality --- app/Http/Controllers/Institution.php | 12 ++ resources/views/institutionmanage.blade.php | 3 + .../views/requestinstitutiondelete.blade.php | 146 ++++++++++++++++++ routes/web.php | 6 + 4 files changed, 167 insertions(+) create mode 100644 resources/views/requestinstitutiondelete.blade.php diff --git a/app/Http/Controllers/Institution.php b/app/Http/Controllers/Institution.php index 7d1702df..1936f5b4 100644 --- a/app/Http/Controllers/Institution.php +++ b/app/Http/Controllers/Institution.php @@ -81,4 +81,16 @@ public function process($joincode, Request $request) } return view(route('institution.users', $joincode)); } + + public function requestDelete($joincode) + { + return view('requestinstitutiondelete', [ + 'joincode' => $joincode + ]); + } + + public function deletedelete($joincode) + { + return redirect(route('institution.manage')); + } } diff --git a/resources/views/institutionmanage.blade.php b/resources/views/institutionmanage.blade.php index 60557a97..e9952a45 100644 --- a/resources/views/institutionmanage.blade.php +++ b/resources/views/institutionmanage.blade.php @@ -149,6 +149,9 @@ class="origin-top-right absolute right-0 mt-2 w-48 rounded-md shadow-lg bg-white View users + + Delete institution +
diff --git a/resources/views/requestinstitutiondelete.blade.php b/resources/views/requestinstitutiondelete.blade.php new file mode 100644 index 00000000..b2bcdb96 --- /dev/null +++ b/resources/views/requestinstitutiondelete.blade.php @@ -0,0 +1,146 @@ + +
+ + +
+ +
+ + +
+
+
+ +
+
+ + +
+ +
+
+
+
+ +
+
+ +
+ + + +
+
+
+
+ + + +
+
+
\ No newline at end of file diff --git a/routes/web.php b/routes/web.php index 6cf0ec48..64c79ce0 100644 --- a/routes/web.php +++ b/routes/web.php @@ -198,6 +198,9 @@ Route::get('/institutions/{joincode}/add', [Institution::class, 'addUser']) ->middleware(['auth', 'admin', 'verified']) ->name('institutions.add'); +Route::get('/institutions/{joincode}/delete', [Institution::class, 'requestDelete']) + ->middleware(['admin', 'auth', 'verified']) + ->name('institution.request-delete'); // Post routes Route::post('/assignments/delete/{id}', [Assignment::class, 'delete']) @@ -324,6 +327,9 @@ Route::post('/institutions/{joincode}/process', [Institution::class, 'process']) ->middleware(['auth', 'admin', 'verified']) ->name('institution.process'); +Route::post('/institutions/{joincode}/deletenow', [Institution::class, 'deletedelete']) + ->middleware(['auth', 'admin', 'verified']) + ->name('institution.deletedelete'); //API GET ROUTES Route::prefix('api')->group(function () { From 7239775309287000d1607d3b96f9bf4d8df528a7 Mon Sep 17 00:00:00 2001 From: Will Date: Wed, 1 Jun 2022 11:33:30 +0100 Subject: [PATCH 22/24] Added logic for dissociating users from the institutions --- app/Http/Controllers/Institution.php | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/app/Http/Controllers/Institution.php b/app/Http/Controllers/Institution.php index 1936f5b4..321c2df9 100644 --- a/app/Http/Controllers/Institution.php +++ b/app/Http/Controllers/Institution.php @@ -91,6 +91,14 @@ public function requestDelete($joincode) public function deletedelete($joincode) { + $institution = \App\Models\Institution::query()->where('joincode', $joincode)->get('id'); + + foreach (\App\Models\User::query()->where('institution_id', $institution)->get('id') as $u) + { + $u->Instituion->dissociate($u); + $u->save(); + } + return redirect(route('institution.manage')); } } From 069abf0e9a00c716e38fda018b5f3e9e1ec7cb80 Mon Sep 17 00:00:00 2001 From: Will Date: Wed, 1 Jun 2022 11:34:36 +0100 Subject: [PATCH 23/24] Removed unnecessary uses in routes file --- routes/web.php | 2 -- 1 file changed, 2 deletions(-) diff --git a/routes/web.php b/routes/web.php index 64c79ce0..24fa56d7 100644 --- a/routes/web.php +++ b/routes/web.php @@ -18,14 +18,12 @@ use App\Http\Resources\PostCollection; use App\Http\Resources\PostResource; -use App\Http\Resources\UserPostResource; use App\Http\Resources\UserResource; use App\Models\Post; use Illuminate\Foundation\Auth\EmailVerificationRequest; use Illuminate\Support\Facades\Route; use Illuminate\Http\Request; -use Laravel\Socialite\Facades\Socialite; // Normal routes Route::get('/', function () { From 0e9142ea0249237d5181c537e9e0da3fcbac855c Mon Sep 17 00:00:00 2001 From: Will Date: Wed, 1 Jun 2022 12:36:12 +0100 Subject: [PATCH 24/24] Added delete to the institution itself --- app/Http/Controllers/Institution.php | 2 ++ 1 file changed, 2 insertions(+) diff --git a/app/Http/Controllers/Institution.php b/app/Http/Controllers/Institution.php index 321c2df9..90202baa 100644 --- a/app/Http/Controllers/Institution.php +++ b/app/Http/Controllers/Institution.php @@ -99,6 +99,8 @@ public function deletedelete($joincode) $u->save(); } + \App\Models\Institution::query()->where('joincode', $joincode)->delete(); + return redirect(route('institution.manage')); } }