From 7b6c5c210c658f570e2c05e56325a101ccfd1340 Mon Sep 17 00:00:00 2001 From: panabonic Date: Mon, 14 Aug 2023 10:56:06 +0300 Subject: [PATCH] registry filters update registry categories sorting work beginning --- app/Models/Registries/Category.php | 3 ++- app/Services/Filters/Registries/EntryFilters.php | 4 ++-- .../2023_06_21_195321_create_registry_categories_table.php | 1 + database/seeders/Objects/FieldsTableSeeder.php | 3 ++- 4 files changed, 7 insertions(+), 4 deletions(-) diff --git a/app/Models/Registries/Category.php b/app/Models/Registries/Category.php index f1d0640..698e292 100644 --- a/app/Models/Registries/Category.php +++ b/app/Models/Registries/Category.php @@ -21,7 +21,8 @@ class Category extends Model { 'uuid', 'registry_id', 'parent_id', - 'name' + 'name', + 'ord' ]; protected $hidden = [ diff --git a/app/Services/Filters/Registries/EntryFilters.php b/app/Services/Filters/Registries/EntryFilters.php index c6c79b9..25db78b 100644 --- a/app/Services/Filters/Registries/EntryFilters.php +++ b/app/Services/Filters/Registries/EntryFilters.php @@ -70,7 +70,7 @@ class EntryFilters extends FiltersService { public function objectFields(Collection $filters): array { return fractal(Field::query()->whereHas('groups.objectType', function($query) use($filters) { $query->whereIn('uuid', $filters->get('types') ?? []); - })->whereIn('type', [FieldType::RELATION, FieldType::DATE, FieldType::STRING])->get(), new FieldTransformer($filters->all(), $this))->toArray(); + })->whereIn('type', [FieldType::RELATION, FieldType::DATE])->get(), new FieldTransformer($filters->all(), $this))->toArray(); } @@ -94,7 +94,7 @@ class EntryFilters extends FiltersService { public function applyNativeFilter(Builder $query, $prop, $value) { if ($value) { - if ($prop === 'search') $this->applySearchFilter($query, $value, ['name', 'number']); + if ($prop === 'search') $this->applySearchFilter($query, $value, ['name', 'number', ['objects.stringValues' => ['value']], ['objects.textValues' => ['value']]]); elseif ($prop === 'registry') $this->applyRelationFilter($query, 'registry', $value); elseif ($prop === 'state') $query->byStates($value); } diff --git a/database/migrations/2023_06_21_195321_create_registry_categories_table.php b/database/migrations/2023_06_21_195321_create_registry_categories_table.php index 7150a00..cebd002 100644 --- a/database/migrations/2023_06_21_195321_create_registry_categories_table.php +++ b/database/migrations/2023_06_21_195321_create_registry_categories_table.php @@ -19,6 +19,7 @@ class CreateRegistryCategoriesTable extends Migration $table->integer('registry_id')->index()->nullable(); $table->integer('parent_id')->index()->default(0); $table->string('name')->index()->nullable(); + $table->integer('ord')->index()->default(0); $table->timestamps(); $table->softDeletes(); }); diff --git a/database/seeders/Objects/FieldsTableSeeder.php b/database/seeders/Objects/FieldsTableSeeder.php index eda6507..f8bcef4 100644 --- a/database/seeders/Objects/FieldsTableSeeder.php +++ b/database/seeders/Objects/FieldsTableSeeder.php @@ -166,7 +166,6 @@ class FieldsTableSeeder extends Seeder { 'activities' => [ 'title' => 'Объект сертификации', 'type' => FieldType::RELATION, - 'required' => true, 'multiple' => true, 'params' => [ 'related' => DictionaryItem::class, 'transformer' => DictionaryItemTransformer::class, @@ -357,6 +356,8 @@ class FieldsTableSeeder extends Seeder { public function run() { collect($this->fields)->each(function($data, $name) { + $data['required'] = $data['required'] ?? 0; + $data['multiple'] = $data['multiple'] ?? 0; $field = Field::firstOrCreate(['name' => $name]); $field->update($data); });