...
+Aktuálne spolupracujeme s {{ data?.length }} firmami.
+ +...
Aktuálne spolupracujeme s {{ data?.length }} firmami.
+ +...
+ \ No newline at end of file From 00f5bd495c8b477a7f611b3fd759e9ece0cad806 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Veronika=20Feh=C3=A9rv=C3=ADziov=C3=A1?= <128744051+VeronikaFeherviziova@users.noreply.github.com> Date: Fri, 31 Oct 2025 20:08:26 +0100 Subject: [PATCH 017/205] fix: incorrect start and end date range --- backend/database/factories/InternshipFactory.php | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/backend/database/factories/InternshipFactory.php b/backend/database/factories/InternshipFactory.php index d1d9015..8981b71 100644 --- a/backend/database/factories/InternshipFactory.php +++ b/backend/database/factories/InternshipFactory.php @@ -16,11 +16,14 @@ class InternshipFactory extends Factory */ public function definition(): array { + $start = fake()->dateTime(); + $end = (clone $start)->modify('+' . fake()->numberBetween(150, 160) . ' hours'); + return [ 'user_id' => 0, 'company_id' => 0, - 'start' => fake()->dateTime(), - 'end' => fake()->dateTime("+30 days"), + 'start' => $start, + 'end' => $end, 'year_of_study' => fake()->randomElement([1, 2, 3, 4, 5]), 'semester' => fake()->randomElement(["WINTER", "SUMMER"]), 'position_description' => fake()->jobTitle(), From 1057a8250cbe5912b7c6c57bd93df1583822c9f9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Veronika=20Feh=C3=A9rv=C3=ADziov=C3=A1?= <128744051+VeronikaFeherviziova@users.noreply.github.com> Date: Fri, 31 Oct 2025 20:08:58 +0100 Subject: [PATCH 018/205] fix: make time always zero in start and end date-time --- backend/database/factories/InternshipFactory.php | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/backend/database/factories/InternshipFactory.php b/backend/database/factories/InternshipFactory.php index 8981b71..33837de 100644 --- a/backend/database/factories/InternshipFactory.php +++ b/backend/database/factories/InternshipFactory.php @@ -16,8 +16,8 @@ class InternshipFactory extends Factory */ public function definition(): array { - $start = fake()->dateTime(); - $end = (clone $start)->modify('+' . fake()->numberBetween(150, 160) . ' hours'); + $start = fake()->dateTime()->setTime(0, 0, 0, 0); + $end = (clone $start)->modify('+' . fake()->numberBetween(150, 160) . ' hours')->setTime(0, 0, 0, 0); return [ 'user_id' => 0, From 1683155ae33cec5066b6e4700dfab1f825db0c51 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Veronika=20Feh=C3=A9rv=C3=ADziov=C3=A1?= <128744051+VeronikaFeherviziova@users.noreply.github.com> Date: Fri, 31 Oct 2025 20:32:16 +0100 Subject: [PATCH 019/205] refactor: change API endpoint for getting student's personal internships --- backend/app/Http/Controllers/InternshipController.php | 2 +- backend/routes/api.php | 1 + frontend/app/pages/dashboard/student/index.vue | 2 +- 3 files changed, 3 insertions(+), 2 deletions(-) diff --git a/backend/app/Http/Controllers/InternshipController.php b/backend/app/Http/Controllers/InternshipController.php index 5d2a680..4677cd1 100644 --- a/backend/app/Http/Controllers/InternshipController.php +++ b/backend/app/Http/Controllers/InternshipController.php @@ -10,7 +10,7 @@ use Illuminate\Http\Request; class InternshipController extends Controller { - public function all() + public function all_student() { $internships = Internship::where('user_id', auth()->id())->get()->makeHidden(['created_at', 'updated_at']); diff --git a/backend/routes/api.php b/backend/routes/api.php index 392241f..48ec91f 100644 --- a/backend/routes/api.php +++ b/backend/routes/api.php @@ -26,6 +26,7 @@ Route::post('/password-reset', [RegisteredUserController::class, 'reset_password Route::prefix('/internships')->group(function () { Route::get("/", [InternshipController::class, 'all'])->name("api.internships"); + Route::get("/my", [InternshipController::class, 'all_student'])->name("api.internships.student"); Route::middleware("auth:sanctum")->group(function () { Route::put("/new", [InternshipController::class, 'store'])->name("api.internships.create"); diff --git a/frontend/app/pages/dashboard/student/index.vue b/frontend/app/pages/dashboard/student/index.vue index 00b72e2..6536057 100644 --- a/frontend/app/pages/dashboard/student/index.vue +++ b/frontend/app/pages/dashboard/student/index.vue @@ -25,7 +25,7 @@ const headers = [ ]; const user = useSanctumUser...
+...
+{{ prettyInternshipStatus(data?.status.status!) }}
Poznámka: {{ data?.status.note }}
Posledná zmena: {{ data?.status.changed }}, {{ data?.status.modified_by.name }}
+{{ prettyInternshipStatus(data?.status.status!) }}
@@ -82,12 +82,12 @@ const { data, error, refresh } = await useSanctumFetch...
- \ No newline at end of file +Aktuálne evidujeme {{ students?.length || 0 }} študentov.
+ ++ Naozaj chcete vymazať študenta {{ student?.name }}? +
++ Táto akcia vymaže aj všetky súvisiace dáta (praxe, statusy, atď.) a nie je možné ju + vrátiť späť. +
+ + ++ Naozaj chcete vymazať študenta {{ studentToDelete?.name }}? +
++ Táto akcia vymaže aj všetky súvisiace dáta (praxe, statusy, atď.) a nie je možné ju + vrátiť späť. +
+ + +...
-...
++ Nahrajte podpísanú zmluvu (povinné pri stave Schválená) a výkaz (nepovinné). +
+ ++ Pre každého študenta si môžete výkaz otvoriť/stiahnuť, prípadne ho + nahrať za študenta a následne ho potvrdiť alebo + zamietnuť. +
+ +- Pre každého študenta si môžete výkaz otvoriť/stiahnuť, prípadne ho - nahrať za študenta a následne ho potvrdiť alebo - zamietnuť. -
- -+ Pre každého študenta si môžete výkaz otvoriť/stiahnuť, prípadne ho + nahrať za študenta a následne ho potvrdiť alebo + zamietnuť. +
+ +- Nahrajte podpísanú zmluvu (povinné pri stave Schválená) a výkaz (nepovinné). -
++ Naozaj chcete vymazať firmu {{ company?.name }}? +
++ Táto akcia vymaže aj kontaktnú osobu (EMPLOYER), všetky praxe a statusy spojené s touto firmou a + nie je možné ju vrátiť späť. +
+ + ++ Naozaj chcete vymazať firmu {{ companyToDelete?.name }}? +
++ Táto akcia vymaže aj kontaktnú osobu (EMPLOYER), všetky praxe a statusy spojené s touto firmou a + nie je možné ju vrátiť späť. +
+ + +{{ prettyInternshipStatus(data?.status.status!) }}
+Poznámka: {{ data?.status.note }}
+Posledná zmena: {{ data?.status.changed }}, {{ data?.status.modified_by.name }}
+ +{{ prettyInternshipStatus(data?.status.status!) }}
+Poznámka: {{ data?.status.note }}
+Posledná zmena: {{ data?.status.changed }}, {{ data?.status.modified_by.name }}
+ +- Pre každého študenta si môžete výkaz otvoriť/stiahnuť, prípadne ho - nahrať za študenta a následne ho potvrdiť alebo - zamietnuť. -
+{{ user?.company_data?.name || user?.name }}
+Vážená/ý {{ $name }},
+úspešne ste aktivovali váš účet!
+s pozdravom
+Systém ISOP UKF
+@include("parts.footer") \ No newline at end of file diff --git a/backend/resources/views/mail/registration/completed.blade.php b/backend/resources/views/mail/registration/completed.blade.php index a712bc7..b35e6f6 100644 --- a/backend/resources/views/mail/registration/completed.blade.php +++ b/backend/resources/views/mail/registration/completed.blade.php @@ -3,7 +3,12 @@vaša registrácia do systému ISOP UKF prebehla úspešne!
Vaše heslo je: {{ $password }}
+Aktivujte účet pomocou nasledujúceho linku:
++ {{ config('app.frontend_url') }}/account/activation/{{ $activation_token }} +
Váš účet bol úspešne aktivovaný! Prihláste sa
{{ user?.first_name }} {{ user?.last_name }}
-Váš účet bol úspešne aktivovaný! Prihláste sa
Aktuálne spolupracujeme s {{ data?.length }} firmami.
@@ -135,9 +134,7 @@ const deleteCompany = async () => { -Aktuálne evidujeme {{ students?.length || 0 }} študentov.
@@ -117,8 +116,7 @@ const deleteStudent = async () => { -Aktuálne spolupracujeme s {{ data?.length }} firmami.
diff --git a/frontend/app/pages/dashboard/student/index.vue b/frontend/app/pages/dashboard/student/index.vue index b4f36f9..adeb061 100644 --- a/frontend/app/pages/dashboard/student/index.vue +++ b/frontend/app/pages/dashboard/student/index.vue @@ -54,8 +54,7 @@ const { data, error } = await useSanctumFetchVážená/ý {{ $studentName }},
+stav vašej praxe vo firme {{ $companyName }} bola aktualizovaná zo stavu "{{ $oldStatus }}" na + "{{ $newStatus }}".
+Zmenu vykonal {{ $changedByName }}.
+Poznámka: {{ $note }}.
+ +s pozdravom
+Systém ISOP UKF
+@include("parts.footer") \ No newline at end of file diff --git a/frontend/app/components/InternshipStatusEditor.vue b/frontend/app/components/InternshipStatusEditor.vue index 2d594fd..a975be5 100644 --- a/frontend/app/components/InternshipStatusEditor.vue +++ b/frontend/app/components/InternshipStatusEditor.vue @@ -61,6 +61,9 @@ async function submit() {Váš účet bol úspešne aktivovaný! Prihláste sa
{{ prettyInternshipStatus(data?.status.status!) }}
-Poznámka: {{ data?.status.note }}
-Posledná zmena: {{ data?.status.changed }}, {{ data?.status.modified_by.name }}
+{{ prettyInternshipStatus(data?.status.status!) }}
+Poznámka: {{ data?.status.note }}
+Posledná zmena: {{ data?.status.changed }}, {{ data?.status.modified_by.name }}
-| Meno a priezvisko: | +Meno a priezvisko: | {{ $student->name }} |