From 081f1a1c858dc88ac1cd17deb64385af2e81a710 Mon Sep 17 00:00:00 2001 From: f4ilji Date: Tue, 3 Dec 2024 22:36:36 +0500 Subject: [PATCH] Changes --- app/Console/Commands/TransferUsers.php | 31 ++++++++ app/Filament/Resources/UserResource.php | 62 +++++++++------ .../Controllers/ClientFacultyController.php | 4 +- app/Jobs/ImportUsers.php | 77 +++++++++++++++++++ vite.config.js | 3 - 5 files changed, 148 insertions(+), 29 deletions(-) create mode 100644 app/Console/Commands/TransferUsers.php create mode 100644 app/Jobs/ImportUsers.php diff --git a/app/Console/Commands/TransferUsers.php b/app/Console/Commands/TransferUsers.php new file mode 100644 index 0000000..be907fc --- /dev/null +++ b/app/Console/Commands/TransferUsers.php @@ -0,0 +1,31 @@ +schema([ - Forms\Components\TextInput::make('name') - ->required() - ->maxLength(255) - ->live(onBlur: true), - Forms\Components\TextInput::make('email') - ->email() - ->required() - ->maxLength(255), - Forms\Components\DateTimePicker::make('email_verified_at'), + Section::make()->schema([ + Forms\Components\Grid::make()->schema([ + Forms\Components\TextInput::make('name') + ->label('ФИО') + ->required() + ->maxLength(255) + ->live(onBlur: true), + Forms\Components\TextInput::make('email') + ->label('Email') + ->email() + ->required() + ->unique(ignoreRecord: true) + ->maxLength(255), + Forms\Components\DateTimePicker::make('email_verified_at')->label('Почта подтверждена'), - Forms\Components\TextInput::make('password') - ->password() - ->required(fn (string $context): bool => $context === 'create') - ->dehydrated(fn ($state) => filled($state)) - ->maxLength(255), + Forms\Components\TextInput::make('password') + ->label('Пароль') + ->password() + ->default(Str::password(15)) + ->required(fn (string $context): bool => $context === 'create') + ->dehydrated(fn ($state) => filled($state)) + ->maxLength(255), + Forms\Components\Select::make('roles') + ->label('Роль') + ->relationship('roles', 'name') + ->multiple() + ->preload() + ->searchable(), - Forms\Components\Select::make('roles') - ->relationship('roles', 'name') - ->multiple() - ->preload() - ->searchable(), + Forms\Components\Select::make('permissions') + ->label('Разрешения') + ->relationship('permissions', 'name') + ->multiple() + ->preload() + ->searchable() + ]), - Forms\Components\Select::make('permissions') - ->relationship('permissions', 'name') - ->multiple() - ->preload() - ->searchable() + + + ]), ]); } diff --git a/app/Http/Controllers/ClientFacultyController.php b/app/Http/Controllers/ClientFacultyController.php index e7f966d..0265c5f 100644 --- a/app/Http/Controllers/ClientFacultyController.php +++ b/app/Http/Controllers/ClientFacultyController.php @@ -20,8 +20,8 @@ class ClientFacultyController extends Controller public function show(string $slug) { $faculties = FacultyResource::collection(Faculty::query()->where('is_active', true)->get()); - $faculty = new FullFacultyResource(Faculty::where('slug', $slug)->where('is_active', true)->with(['departments.faculty', 'workers.userDetail'])->first()); - $seo = $faculty->seo; + $faculty = new FullFacultyResource(Faculty::where('slug', $slug)->where('is_active', true)->with(['departments.faculty', 'workers.userDetail'])->firstOrFail()); + $seo = $faculty->seo ?? null; return Inertia::render('Client/Faculties/Show', compact('faculty', 'faculties', 'seo')); } } diff --git a/app/Jobs/ImportUsers.php b/app/Jobs/ImportUsers.php new file mode 100644 index 0000000..1d7202d --- /dev/null +++ b/app/Jobs/ImportUsers.php @@ -0,0 +1,77 @@ +object(); + foreach ($response as $user) { + $userDetail = $user->user_detail; + unset($user->user_detail); + $user = User::create([ + 'name' => $user->name, + 'slug' => $user->slug, + 'email' => $user->email, + 'email_verified_at' => $user->email_verified_at, + 'password' => $user->password, + 'two_factor_secret' => $user->two_factor_secret, + 'two_factor_recovery_codes' => $user->two_factor_recovery_codes, + 'two_factor_confirmed_at' => $user->two_factor_confirmed_at, + 'remember_token' => $user->remember_token, + 'created_at' => $user->created_at, + 'updated_at' => $user->updated_at, + ]); + $user->userDetail()->create([ + 'user_id' => $user->id, + 'is_only_worker' => $userDetail->is_only_worker, + 'photo' => $userDetail->photo, + 'academicTitle' => $userDetail->academicTitle, + 'AcademicDegree' => $userDetail->AcademicDegree, + 'education' => $userDetail->education, + 'awards' => $userDetail->awards, + 'professDisciplines' => $userDetail->professDisciplines, + 'professionalRetraining' => $userDetail->professionalRetraining, + 'professionalDevelopment' => $userDetail->professionalDevelopment, + 'workExperience' => $userDetail->workExperience, + 'attendedConferences' => $userDetail->attendedConferences, + 'participationScienceProjects' => $userDetail->participationScienceProjects, + 'publications' => $userDetail->publications, + 'contactEmail' => $userDetail->contactEmail, + 'contactPhone' => $userDetail->contactPhone, + 'search_data' => $userDetail->search_data, + 'other' => $userDetail->other, + 'created_at' => $userDetail->created_at, + 'updated_at' => $userDetail->updated_at, + ]); + } + } catch (\Exception $e) { + Log::error('Error fetching posts: ' . $e->getMessage()); + } + } +} diff --git a/vite.config.js b/vite.config.js index eba15c5..7377fa0 100644 --- a/vite.config.js +++ b/vite.config.js @@ -9,9 +9,6 @@ export default defineConfig({ plugins: [ laravel({ input: 'resources/js/app.js', - content: [ - "./vendor/vormkracht10/filament-2fa/resources/**.*.blade.php", - ], ssr: 'resources/js/ssr.js', refresh: true, }),