registry filters update

registry categories sorting work beginning
master
Константин 2023-08-14 10:56:06 +03:00
parent d2049d4105
commit 7b6c5c210c
4 changed files with 7 additions and 4 deletions

View File

@ -21,7 +21,8 @@ class Category extends Model {
'uuid', 'uuid',
'registry_id', 'registry_id',
'parent_id', 'parent_id',
'name' 'name',
'ord'
]; ];
protected $hidden = [ protected $hidden = [

View File

@ -70,7 +70,7 @@ class EntryFilters extends FiltersService {
public function objectFields(Collection $filters): array { public function objectFields(Collection $filters): array {
return fractal(Field::query()->whereHas('groups.objectType', function($query) use($filters) { return fractal(Field::query()->whereHas('groups.objectType', function($query) use($filters) {
$query->whereIn('uuid', $filters->get('types') ?? []); $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) { public function applyNativeFilter(Builder $query, $prop, $value) {
if ($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 === 'registry') $this->applyRelationFilter($query, 'registry', $value);
elseif ($prop === 'state') $query->byStates($value); elseif ($prop === 'state') $query->byStates($value);
} }

View File

@ -19,6 +19,7 @@ class CreateRegistryCategoriesTable extends Migration
$table->integer('registry_id')->index()->nullable(); $table->integer('registry_id')->index()->nullable();
$table->integer('parent_id')->index()->default(0); $table->integer('parent_id')->index()->default(0);
$table->string('name')->index()->nullable(); $table->string('name')->index()->nullable();
$table->integer('ord')->index()->default(0);
$table->timestamps(); $table->timestamps();
$table->softDeletes(); $table->softDeletes();
}); });

View File

@ -166,7 +166,6 @@ class FieldsTableSeeder extends Seeder {
'activities' => [ 'activities' => [
'title' => 'Объект сертификации', 'title' => 'Объект сертификации',
'type' => FieldType::RELATION, 'type' => FieldType::RELATION,
'required' => true,
'multiple' => true, 'multiple' => true,
'params' => [ 'params' => [
'related' => DictionaryItem::class, 'transformer' => DictionaryItemTransformer::class, 'related' => DictionaryItem::class, 'transformer' => DictionaryItemTransformer::class,
@ -357,6 +356,8 @@ class FieldsTableSeeder extends Seeder {
public function run() { public function run() {
collect($this->fields)->each(function($data, $name) { collect($this->fields)->each(function($data, $name) {
$data['required'] = $data['required'] ?? 0;
$data['multiple'] = $data['multiple'] ?? 0;
$field = Field::firstOrCreate(['name' => $name]); $field = Field::firstOrCreate(['name' => $name]);
$field->update($data); $field->update($data);
}); });