/** * {@inheritdoc} */ public function getData() { $data = parent::getData(); foreach ($this->attributeRepository->getList() as $attributeCode => $attributeData) { foreach ($data['items'] as &$item) { if (isset($item[$attributeCode]) && !empty($attributeData[AttributeMetadataInterface::OPTIONS])) { $item[$attributeCode] = explode(',', $item[$attributeCode]); } } } return $data; }
/** * {@inheritdoc} */ public function prepare() { $this->columnSortOrder = $this->getDefaultSortOrder(); foreach ($this->attributeRepository->getList() as $newAttributeCode => $attributeData) { if (isset($this->components[$newAttributeCode])) { $this->updateColumn($attributeData, $newAttributeCode); } elseif (!$attributeData[AttributeMetadata::BACKEND_TYPE] != 'static' && $attributeData[AttributeMetadata::IS_USED_IN_GRID]) { $this->addColumn($attributeData, $newAttributeCode); } } $this->updateActionColumnSortOrder(); parent::prepare(); }
public function testGetList() { $attributeCode = 'attribute_code'; $billingPrefix = 'billing_'; $this->customerMetadata->expects($this->once())->method('getAllAttributesMetadata')->willReturn([]); $this->addressMetadata->expects($this->once())->method('getAllAttributesMetadata')->willReturn([$this->attribute]); $this->addressMetadataManagement->expects($this->once())->method('canBeFilterableInGrid')->with($this->attribute)->willReturn(true); $this->addressMetadataManagement->expects($this->once())->method('canBeSearchableInGrid')->with($this->attribute)->willReturn(true); $this->attribute->expects($this->atLeastOnce())->method('getAttributeCode')->willReturn($attributeCode); $this->attribute->expects($this->once())->method('getFrontendInput')->willReturn('frontend-input'); $this->attribute->expects($this->once())->method('getFrontendLabel')->willReturn('frontend-label'); $this->attribute->expects($this->once())->method('getBackendType')->willReturn('backend-type'); $this->attribute->expects($this->once())->method('getOptions')->willReturn([$this->option]); $this->attribute->expects($this->once())->method('getIsUsedInGrid')->willReturn(true); $this->attribute->expects($this->once())->method('getIsVisibleInGrid')->willReturn(true); $this->attribute->expects($this->once())->method('getValidationRules')->willReturn([]); $this->attribute->expects($this->once())->method('isRequired')->willReturn(false); $this->option->expects($this->once())->method('getLabel')->willReturn('Label'); $this->option->expects($this->once())->method('getValue')->willReturn('Value'); $this->attributeFilter->expects($this->once())->method('filter')->willReturnArgument(0); $this->assertEquals([$billingPrefix . $attributeCode => ['attribute_code' => 'billing_attribute_code', 'frontend_input' => 'frontend-input', 'frontend_label' => 'frontend-label', 'backend_type' => 'backend-type', 'options' => [['label' => 'Label', 'value' => 'Value']], 'is_used_in_grid' => true, 'is_visible_in_grid' => true, 'is_filterable_in_grid' => true, 'is_searchable_in_grid' => true, 'validation_rules' => [], 'required' => false, 'entity_type_code' => 'customer_address']], $this->component->getList()); }