Get rid of legacy region property within demand

Only use new way but provide compatibility.
This commit is contained in:
Daniel Siepmann 2022-07-12 09:50:34 +02:00
parent 605ad9f9ae
commit 2abc84d1ae
3 changed files with 33 additions and 14 deletions

View file

@ -41,12 +41,6 @@ class DateDemand
*/ */
protected $categoryCombination = ''; protected $categoryCombination = '';
/**
* @var string
* Legacy, superceeded by regions which allows multi select / filter.
*/
protected $region = '';
/** /**
* @var int[] * @var int[]
*/ */
@ -109,7 +103,7 @@ class DateDemand
$instance->setSearchword($submittedValues['searchword'] ?? ''); $instance->setSearchword($submittedValues['searchword'] ?? '');
$instance->setSynonyms($settings['synonyms'] ?? []); $instance->setSynonyms($settings['synonyms'] ?? []);
$instance->setRegion($submittedValues['region'] ?? ''); $instance->setRegions(GeneralUtility::intExplode(',', $submittedValues['region'] ?? '', true));
if (isset($submittedValues['regions']) && is_array($submittedValues['regions'])) { if (isset($submittedValues['regions']) && is_array($submittedValues['regions'])) {
$instance->setRegions($submittedValues['regions']); $instance->setRegions($submittedValues['regions']);
} }
@ -231,12 +225,7 @@ class DateDemand
public function getRegion(): string public function getRegion(): string
{ {
return $this->region; return implode(',', $this->regions);
}
public function setRegion(string $region): void
{
$this->region = $region;
} }
/** /**

View file

@ -22,6 +22,7 @@ namespace Wrm\Events\Domain\Model\Dto;
*/ */
use TYPO3\CMS\Core\TypoScript\TypoScriptService; use TYPO3\CMS\Core\TypoScript\TypoScriptService;
use TYPO3\CMS\Core\Utility\GeneralUtility;
use TYPO3\CMS\Frontend\ContentObject\ContentObjectRenderer; use TYPO3\CMS\Frontend\ContentObject\ContentObjectRenderer;
class DateDemandFactory class DateDemandFactory
@ -59,7 +60,7 @@ class DateDemandFactory
} }
} }
$demand->setRegion((string)$settings['region']); $demand->setRegions(GeneralUtility::intExplode(',', (string)$settings['region'], true));
$demand->setCategories((string)$settings['categories']); $demand->setCategories((string)$settings['categories']);
$categoryCombination = (int)$settings['categoryCombination'] === 1 ? 'or' : 'and'; $categoryCombination = (int)$settings['categoryCombination'] === 1 ? 'or' : 'and';
$demand->setCategoryCombination($categoryCombination); $demand->setCategoryCombination($categoryCombination);

View file

@ -126,6 +126,31 @@ class DateDemandTest extends TestCase
); );
} }
/**
* @test
*/
public function regionIsSetByRequest(): void
{
$result = DateDemand::createFromRequestValues(
[
'region' => '10',
],
[
]
);
self::assertSame(
[
10,
],
$result->getRegions()
);
self::assertSame(
'10',
$result->getRegion()
);
}
/** /**
* @test * @test
*/ */
@ -148,6 +173,10 @@ class DateDemandTest extends TestCase
], ],
$result->getRegions() $result->getRegions()
); );
self::assertSame(
'10,20',
$result->getRegion()
);
} }
/** /**