From 15ffa5646b205a439e6027800c10111af2ff54c4 Mon Sep 17 00:00:00 2001 From: Diatrex Date: Fri, 9 Oct 2020 16:34:40 +0300 Subject: [PATCH] #2220 points module --- .../resources/assets/css/profile.scss | 6 + .../resources/lang/en/field.php | 3 + .../resources/views/profile/detail.twig | 4 +- .../Profile/Profile/ProfileFormBuilder.php | 1 + .../Profile/Profile/ProfileFormHandler.php | 1 + .../src/Seed/UsersFieldsSeeder.php | 323 +++++++++--------- 6 files changed, 180 insertions(+), 158 deletions(-) diff --git a/addons/default/visiosoft/profile-module/resources/assets/css/profile.scss b/addons/default/visiosoft/profile-module/resources/assets/css/profile.scss index ea9072a56..73cf95b77 100644 --- a/addons/default/visiosoft/profile-module/resources/assets/css/profile.scss +++ b/addons/default/visiosoft/profile-module/resources/assets/css/profile.scss @@ -114,4 +114,10 @@ } } } + + #nav-details { + .birthday-field .input-group-addon { + display: none; + } + } } \ No newline at end of file diff --git a/addons/default/visiosoft/profile-module/resources/lang/en/field.php b/addons/default/visiosoft/profile-module/resources/lang/en/field.php index df06bb419..452193750 100644 --- a/addons/default/visiosoft/profile-module/resources/lang/en/field.php +++ b/addons/default/visiosoft/profile-module/resources/lang/en/field.php @@ -55,6 +55,9 @@ return [ 'register_type' => [ 'name' => 'Register Type' ], + 'birthday' => [ + 'name' => 'Birthday' + ], 'identification_number' => [ 'name' => 'Identification Number' ], diff --git a/addons/default/visiosoft/profile-module/resources/views/profile/detail.twig b/addons/default/visiosoft/profile-module/resources/views/profile/detail.twig index 64ab4f27d..98720ce82 100644 --- a/addons/default/visiosoft/profile-module/resources/views/profile/detail.twig +++ b/addons/default/visiosoft/profile-module/resources/views/profile/detail.twig @@ -151,7 +151,9 @@
- + {{ profileForm.fields.register_type.input|raw }}
diff --git a/addons/default/visiosoft/profile-module/src/Profile/Profile/ProfileFormBuilder.php b/addons/default/visiosoft/profile-module/src/Profile/Profile/ProfileFormBuilder.php index 44b7e584a..a64e538b5 100644 --- a/addons/default/visiosoft/profile-module/src/Profile/Profile/ProfileFormBuilder.php +++ b/addons/default/visiosoft/profile-module/src/Profile/Profile/ProfileFormBuilder.php @@ -13,6 +13,7 @@ class ProfileFormBuilder extends FormBuilder 'office_phone', 'land_phone', 'identification_number', + 'birthday', 'register_type' ]; diff --git a/addons/default/visiosoft/profile-module/src/Profile/Profile/ProfileFormHandler.php b/addons/default/visiosoft/profile-module/src/Profile/Profile/ProfileFormHandler.php index f1f0d45b7..3a5b2a9bf 100644 --- a/addons/default/visiosoft/profile-module/src/Profile/Profile/ProfileFormHandler.php +++ b/addons/default/visiosoft/profile-module/src/Profile/Profile/ProfileFormHandler.php @@ -21,6 +21,7 @@ class ProfileFormHandler 'office_phone' => $builder->getPostValue('office_phone'), 'land_phone' => $builder->getPostValue('land_phone'), 'identification_number' => $builder->getPostValue('identification_number'), + 'birthday' => $builder->getPostValue('birthday'), 'register_type' => $builder->getPostValue('register_type'), ]; diff --git a/addons/default/visiosoft/profile-module/src/Seed/UsersFieldsSeeder.php b/addons/default/visiosoft/profile-module/src/Seed/UsersFieldsSeeder.php index ede3c3c13..d4315d3ac 100644 --- a/addons/default/visiosoft/profile-module/src/Seed/UsersFieldsSeeder.php +++ b/addons/default/visiosoft/profile-module/src/Seed/UsersFieldsSeeder.php @@ -3,11 +3,9 @@ use Anomaly\Streams\Platform\Assignment\AssignmentModelTranslation; use Anomaly\Streams\Platform\Assignment\Contract\AssignmentRepositoryInterface; use Anomaly\Streams\Platform\Database\Seeder\Seeder; -use Anomaly\Streams\Platform\Entry\EntryTranslationsModel; use Anomaly\Streams\Platform\Field\Contract\FieldRepositoryInterface; use Anomaly\Streams\Platform\Field\FieldModelTranslation; use Anomaly\Streams\Platform\Stream\Contract\StreamRepositoryInterface; -use Anomaly\Streams\Platform\Stream\StreamModelTranslation; use Visiosoft\LocationModule\Country\CountryModel; class UsersFieldsSeeder extends Seeder @@ -28,166 +26,177 @@ class UsersFieldsSeeder extends Seeder AssignmentModelTranslation $assignmentModelTranslation ) { - $namespace = 'users'; - $locked = 0; - $stream = $streamRepository->findBySlugAndNamespace('users', 'users'); + if ($this->command->confirm('This command will remove the old custom fields from the users table! Are you sure you want to continue?')) { + $namespace = 'users'; + $locked = 0; + $stream = $streamRepository->findBySlugAndNamespace('users', 'users'); - $customFields = [ - 0 => [ - 'name' => 'File', - 'slug' => 'file', - 'type' => 'visiosoft.field_type.singlefile', - 'config' => [ - 'folders' => ["images"], - 'mode' => 'upload', - ] - ], - 1 => [ - 'name' => 'Country', - 'slug' => 'country', - 'type' => 'anomaly.field_type.relationship', - 'config' => [ - 'related' => CountryModel::class, - "default_value" => 0, + $customFields = [ + 0 => [ + 'name' => 'File', + 'slug' => 'file', + 'type' => 'visiosoft.field_type.singlefile', + 'config' => [ + 'folders' => ["images"], + 'mode' => 'upload', + ] ], - ], - 2 => [ - 'name' => 'City', - 'slug' => 'city', - 'type' => 'anomaly.field_type.select', - "config" => [ - "options" => [], - ] - ], - 3 => [ - 'name' => 'District', - 'slug' => 'district', - 'type' => 'anomaly.field_type.select', - "config" => [ - "options" => [], - ] - ], - 4 => [ - 'name' => 'Neighborhood', - 'slug' => 'neighborhood', - 'type' => 'anomaly.field_type.select', - "config" => [ - "options" => [], - ] - ], - 5 => [ - 'name' => 'Village', - 'slug' => 'village', - 'type' => 'anomaly.field_type.select', - "config" => [ - "options" => [], - ] - ], - 6 => [ - 'name' => 'Gsm Phone', - 'slug' => 'gsm_phone', - 'type' => 'anomaly.field_type.text', - ], - 7 => [ - 'name' => 'Land Phone', - 'slug' => 'land_phone', - 'type' => 'anomaly.field_type.text', - ], - 8 => [ - 'name' => 'Office Phone', - 'slug' => 'office_phone', - 'type' => 'anomaly.field_type.text', - ], - 9 => [ - 'name' => 'Register Type', - 'slug' => 'register_type', - 'type' => 'anomaly.field_type.select', - "config" => [ - "options" => [ - '1' => trans('visiosoft.module.profile::field.individual.name'), - '2' => trans('visiosoft.module.profile::field.corporate.name') + 1 => [ + 'name' => 'Country', + 'slug' => 'country', + 'type' => 'anomaly.field_type.relationship', + 'config' => [ + 'related' => CountryModel::class, + "default_value" => 0, ], - ] - ], - 10 => [ - 'name' => 'Identification Number', - 'slug' => 'identification_number', - 'type' => 'anomaly.field_type.text', - ], - 11 => [ - 'name' => 'Notified New Updates', - 'slug' => 'notified_new_updates', - 'type' => 'anomaly.field_type.select', - 'config' => [ - 'default_value' => 1, - 'options' => [0 => 'Active', 1 => 'Passive'], - 'separator' => ':', - ] - ], - 12 => [ - 'name' => 'Notified About Ads', - 'slug' => 'notified_about_ads', - 'type' => 'anomaly.field_type.select', - 'config' => [ - 'default_value' => 1, - 'options' => [0 => 'Active', 1 => 'Passive'], - 'separator' => ':', - ] - ], - 13 => [ - 'name' => 'Receive Messages Email', - 'slug' => 'receive_messages_email', - 'type' => 'anomaly.field_type.select', - 'config' => [ - 'default_value' => 1, - 'options' => [0 => 'Active', 1 => 'Passive'], - 'separator' => ':', - ] - ], - ]; - - foreach ($customFields as $customField) { - $fields = $fieldRepository - ->newQuery() - ->where('slug', $customField['slug']) - ->where('namespace', $namespace) - ->get(); - - if ($fields) { - foreach ($fields as $field) { - $fieldModelTranslation->newQuery()->where('field_id', $field->id)->delete(); - - $assignment = $assignmentRepository - ->newQuery() - ->where('stream_id', $stream->id) - ->where('field_id', $field->id) - ->first(); - if ($assignment) { - $assignmentModelTranslation->newQuery()->where('assignment_id', $assignment->id)->delete(); - $assignment->delete(); - } - - $field->delete(); - } - } - - $data = [ - 'name' => $customField['name'], - 'namespace' => $namespace, - 'slug' => $customField['slug'], - 'type' => $customField['type'], - 'locked' => $locked + ], + 2 => [ + 'name' => 'City', + 'slug' => 'city', + 'type' => 'anomaly.field_type.select', + "config" => [ + "options" => [], + ] + ], + 3 => [ + 'name' => 'District', + 'slug' => 'district', + 'type' => 'anomaly.field_type.select', + "config" => [ + "options" => [], + ] + ], + 4 => [ + 'name' => 'Neighborhood', + 'slug' => 'neighborhood', + 'type' => 'anomaly.field_type.select', + "config" => [ + "options" => [], + ] + ], + 5 => [ + 'name' => 'Village', + 'slug' => 'village', + 'type' => 'anomaly.field_type.select', + "config" => [ + "options" => [], + ] + ], + 6 => [ + 'name' => 'Gsm Phone', + 'slug' => 'gsm_phone', + 'type' => 'anomaly.field_type.text', + ], + 7 => [ + 'name' => 'Land Phone', + 'slug' => 'land_phone', + 'type' => 'anomaly.field_type.text', + ], + 8 => [ + 'name' => 'Office Phone', + 'slug' => 'office_phone', + 'type' => 'anomaly.field_type.text', + ], + 9 => [ + 'name' => 'Register Type', + 'slug' => 'register_type', + 'type' => 'anomaly.field_type.select', + "config" => [ + "options" => [ + '1' => trans('visiosoft.module.profile::field.individual.name'), + '2' => trans('visiosoft.module.profile::field.corporate.name') + ], + ] + ], + 10 => [ + 'name' => 'Identification Number', + 'slug' => 'identification_number', + 'type' => 'anomaly.field_type.text', + ], + 11 => [ + 'name' => 'Notified New Updates', + 'slug' => 'notified_new_updates', + 'type' => 'anomaly.field_type.select', + 'config' => [ + 'default_value' => 1, + 'options' => [0 => 'Active', 1 => 'Passive'], + 'separator' => ':', + ] + ], + 12 => [ + 'name' => 'Notified About Ads', + 'slug' => 'notified_about_ads', + 'type' => 'anomaly.field_type.select', + 'config' => [ + 'default_value' => 1, + 'options' => [0 => 'Active', 1 => 'Passive'], + 'separator' => ':', + ] + ], + 13 => [ + 'name' => 'Receive Messages Email', + 'slug' => 'receive_messages_email', + 'type' => 'anomaly.field_type.select', + 'config' => [ + 'default_value' => 1, + 'options' => [0 => 'Active', 1 => 'Passive'], + 'separator' => ':', + ] + ], + 14 => [ + 'name' => 'Birthday', + 'slug' => 'birthday', + 'type' => 'anomaly.field_type.datetime', + 'config' => [ + "mode" => "date", + "picker" => true, + ] + ], ]; - if (isset($customField['config'])) { - $data['config'] = $customField['config']; + + foreach ($customFields as $customField) { + $fields = $fieldRepository + ->newQuery() + ->where('slug', $customField['slug']) + ->where('namespace', $namespace) + ->get(); + + if ($fields) { + foreach ($fields as $field) { + $fieldModelTranslation->newQuery()->where('field_id', $field->id)->delete(); + + $assignment = $assignmentRepository + ->newQuery() + ->where('stream_id', $stream->id) + ->where('field_id', $field->id) + ->first(); + if ($assignment) { + $assignmentModelTranslation->newQuery()->where('assignment_id', $assignment->id)->delete(); + $assignment->delete(); + } + + $field->delete(); + } + } + + $data = [ + 'name' => $customField['name'], + 'namespace' => $namespace, + 'slug' => $customField['slug'], + 'type' => $customField['type'], + 'locked' => $locked + ]; + if (isset($customField['config'])) { + $data['config'] = $customField['config']; + } + + $field = $fieldRepository->create($data); + + $assignmentRepository->create([ + 'stream_id' => $stream->id, + 'field_id' => $field->id + ]); } - - $field = $fieldRepository->create($data); - - $assignmentRepository->create([ - 'stream_id' => $stream->id, - 'field_id' => $field->id - ]); } } }