Fix the slug generation issue on translations

This commit is contained in:
Paweł Jędrzejewski 2015-12-10 23:55:57 +01:00
parent d7c3eac67b
commit 64b444fe7c
7 changed files with 57 additions and 52 deletions

View file

@ -11,6 +11,18 @@
namespace Sylius\Bundle\AddressingBundle\DependencyInjection;
use Sylius\Bundle\AddressingBundle\Form\Type\AddressType;
use Sylius\Bundle\AddressingBundle\Form\Type\CountryChoiceType;
use Sylius\Bundle\AddressingBundle\Form\Type\CountryType;
use Sylius\Bundle\AddressingBundle\Form\Type\ProvinceChoiceType;
use Sylius\Bundle\AddressingBundle\Form\Type\ProvinceType;
use Sylius\Bundle\AddressingBundle\Form\Type\ZoneMemberCountryType;
use Sylius\Bundle\AddressingBundle\Form\Type\ZoneMemberProvinceType;
use Sylius\Bundle\AddressingBundle\Form\Type\ZoneMemberType;
use Sylius\Bundle\AddressingBundle\Form\Type\ZoneMemberZoneType;
use Sylius\Bundle\AddressingBundle\Form\Type\ZoneType;
use Sylius\Bundle\ResourceBundle\Controller\ResourceController;
use Sylius\Bundle\ResourceBundle\Form\Type\ResourceChoiceType;
use Sylius\Bundle\ResourceBundle\SyliusResourceBundle;
use Sylius\Component\Addressing\Model\Address;
use Sylius\Component\Addressing\Model\AddressInterface;
@ -21,24 +33,14 @@ use Sylius\Component\Addressing\Model\ProvinceInterface;
use Sylius\Component\Addressing\Model\Zone;
use Sylius\Component\Addressing\Model\ZoneInterface;
use Sylius\Component\Addressing\Model\ZoneMember;
use Sylius\Component\Addressing\Model\ZoneMemberInterface;
use Sylius\Component\Addressing\Model\ZoneMemberCountry;
use Sylius\Component\Addressing\Model\ZoneMemberInterface;
use Sylius\Component\Addressing\Model\ZoneMemberProvince;
use Sylius\Component\Addressing\Model\ZoneMemberZone;
use Sylius\Component\Resource\Factory\Factory;
use Symfony\Component\Config\Definition\Builder\ArrayNodeDefinition;
use Symfony\Component\Config\Definition\Builder\TreeBuilder;
use Symfony\Component\Config\Definition\ConfigurationInterface;
use Sylius\Component\Resource\Factory\Factory;
use Sylius\Bundle\ResourceBundle\Form\Type\ResourceChoiceType;
use Sylius\Bundle\AddressingBundle\Form\Type\AddressType;
use Sylius\Bundle\AddressingBundle\Form\Type\CountryType;
use Sylius\Bundle\AddressingBundle\Form\Type\ProvinceType;
use Sylius\Bundle\AddressingBundle\Form\Type\ZoneType;
use Sylius\Bundle\AddressingBundle\Form\Type\ZoneMemberType;
use Sylius\Bundle\AddressingBundle\Form\Type\ZoneMemberCountryType;
use Sylius\Bundle\AddressingBundle\Form\Type\ZoneMemberProvinceType;
use Sylius\Bundle\AddressingBundle\Form\Type\ZoneMemberZoneType;
use Sylius\Bundle\ResourceBundle\Controller\ResourceController;
/**
* This class contains the configuration information for the bundle.
@ -98,7 +100,6 @@ class Configuration implements ConfigurationInterface
->addDefaultsIfNotSet()
->children()
->scalarNode('default')->defaultValue(AddressType::class)->cannotBeEmpty()->end()
->scalarNode('choice')->defaultValue(ResourceChoiceType::class)->cannotBeEmpty()->end()
->end()
->end()
->end()
@ -129,7 +130,7 @@ class Configuration implements ConfigurationInterface
->addDefaultsIfNotSet()
->children()
->scalarNode('default')->defaultValue(CountryType::class)->cannotBeEmpty()->end()
->scalarNode('choice')->defaultValue(ResourceChoiceType::class)->cannotBeEmpty()->end()
->scalarNode('choice')->defaultValue(CountryChoiceType::class)->cannotBeEmpty()->end()
->end()
->end()
->end()
@ -160,7 +161,7 @@ class Configuration implements ConfigurationInterface
->addDefaultsIfNotSet()
->children()
->scalarNode('default')->defaultValue(ProvinceType::class)->cannotBeEmpty()->end()
->scalarNode('choice')->defaultValue(ResourceChoiceType::class)->cannotBeEmpty()->end()
->scalarNode('choice')->defaultValue(ProvinceChoiceType::class)->cannotBeEmpty()->end()
->end()
->end()
->end()
@ -309,7 +310,6 @@ class Configuration implements ConfigurationInterface
->addDefaultsIfNotSet()
->children()
->scalarNode('default')->defaultValue(ZoneMemberZoneType::class)->cannotBeEmpty()->end()
->scalarNode('choice')->defaultValue(ResourceChoiceType::class)->cannotBeEmpty()->end()
->end()
->end()
->end()

View file

@ -11,12 +11,13 @@
namespace Sylius\Bundle\ChannelBundle\DependencyInjection;
use Sylius\Bundle\ResourceBundle\SyliusResourceBundle;
use Sylius\Component\Resource\Factory\Factory;
use Sylius\Bundle\ResourceBundle\Controller\ResourceController;
use Sylius\Bundle\ChannelBundle\Form\Type\ChannelType;
use Sylius\Bundle\ResourceBundle\Controller\ResourceController;
use Sylius\Bundle\ResourceBundle\Form\Type\ResourceChoiceType;
use Sylius\Bundle\ResourceBundle\SyliusResourceBundle;
use Sylius\Component\Channel\Model\Channel;
use Sylius\Component\Channel\Model\ChannelInterface;
use Sylius\Component\Resource\Factory\Factory;
use Symfony\Component\Config\Definition\Builder\ArrayNodeDefinition;
use Symfony\Component\Config\Definition\Builder\TreeBuilder;
use Symfony\Component\Config\Definition\ConfigurationInterface;
@ -75,6 +76,7 @@ class Configuration implements ConfigurationInterface
->addDefaultsIfNotSet()
->children()
->scalarNode('default')->defaultValue(ChannelType::class)->cannotBeEmpty()->end()
->scalarNode('choice')->defaultValue(ResourceChoiceType::class)->cannotBeEmpty()->end()
->end()
->end()
->end()

View file

@ -728,7 +728,7 @@ sylius_rbac:
shipping_manager:
name: Shipping Manager
description: Shipping Department people
permissions: [sylius.shipp/ing]
permissions: [sylius.shipping]
security_roles: [ROLE_ADMINISTRATION_ACCESS]
content_editor:
name: Content Editor

View file

@ -11,12 +11,12 @@
namespace Sylius\Bundle\ReportBundle\DependencyInjection;
use Sylius\Bundle\ResourceBundle\SyliusResourceBundle;
use Sylius\Component\Resource\Factory\Factory;
use Sylius\Bundle\ResourceBundle\Controller\ResourceController;
use Sylius\Bundle\ReportBundle\Controller\ReportController;
use Sylius\Bundle\ReportBundle\Form\Type\ReportType;
use Sylius\Bundle\ResourceBundle\SyliusResourceBundle;
use Sylius\Component\Report\Model\Report;
use Sylius\Component\Report\Model\ReportInterface;
use Sylius\Component\Resource\Factory\Factory;
use Symfony\Component\Config\Definition\Builder\ArrayNodeDefinition;
use Symfony\Component\Config\Definition\Builder\TreeBuilder;
use Symfony\Component\Config\Definition\ConfigurationInterface;
@ -69,7 +69,7 @@ class Configuration implements ConfigurationInterface
->children()
->scalarNode('model')->defaultValue(Report::class)->cannotBeEmpty()->end()
->scalarNode('interface')->defaultValue(ReportInterface::class)->cannotBeEmpty()->end()
->scalarNode('controller')->defaultValue(ResourceController::class)->cannotBeEmpty()->end()
->scalarNode('controller')->defaultValue(ReportController::class)->cannotBeEmpty()->end()
->scalarNode('repository')->cannotBeEmpty()->end()
->scalarNode('factory')->defaultValue(Factory::class)->end()
->arrayNode('form')

View file

@ -73,8 +73,8 @@ abstract class AbstractDatabaseDriver implements DatabaseDriverInterface
$translatableRepositoryInterface = 'Sylius\Component\Translation\Repository\TranslatableResourceRepositoryInterface';
if (interface_exists($translatableRepositoryInterface) && $reflection->implementsInterface($translatableRepositoryInterface)) {
if (isset($parameters['fields'])) {
$repositoryDefinition->addMethodCall('setTranslatableFields', array($parameters['fields']));
if (isset($parameters['translation']['fields'])) {
$repositoryDefinition->addMethodCall('setTranslatableFields', array($parameters['translation']['fields']));
}
}

View file

@ -26,16 +26,14 @@ class LoadORMMetadataSubscriber implements EventSubscriber
/**
* @var array
*/
protected $classes;
protected $resources;
/**
* Constructor
*
* @param array $resources
*/
public function __construct($resources)
{
$this->classes = $resources;
$this->resources = $resources;
}
/**
@ -67,24 +65,29 @@ class LoadORMMetadataSubscriber implements EventSubscriber
private function process(ClassMetadataInfo $metadata)
{
foreach ($this->classes as $application => $resources) {
foreach ($resources as $resource => $parameters) {
foreach ($parameters as $parameter => $classes) {
if (isset($classes['model']) && $classes['model'] === $metadata->getName()) {
foreach ($this->resources as $application => $resources) {
foreach ($resources as $resource => $resourceParameters) {
$classes = $resourceParameters['classes'];
if (isset($classes['model']) && $classes['model'] === $metadata->getName()) {
$metadata->isMappedSuperclass = false;
if (isset($classes['repository'])) {
$metadata->setCustomRepositoryClass($classes['repository']);
}
}
if (isset($resourceParameters['translation'])) {
$translationClasses = $resourceParameters['translation']['classes'];
if (isset($translationClasses['model']) && $translationClasses['model'] === $metadata->getName()) {
$metadata->isMappedSuperclass = false;
if (isset($classes['repository'])) {
$metadata->setCustomRepositoryClass($classes['repository']);
}
} else if (isset($classes['translation']['model'])
&& $classes['translation']['model'] === $metadata->getName()
) {
$metadata->isMappedSuperclass = false;
if (isset($classes['translation']['repository'])) {
$metadata->setCustomRepositoryClass($classes['translation']['repository']);
if (isset($translationClasses['repository'])) {
$metadata->setCustomRepositoryClass($translationClasses['repository']);
}
}
}
}
}

View file

@ -129,12 +129,12 @@ class Configuration implements ConfigurationInterface
->end()
->end()
->end()
->arrayNode('fields')
->prototype('scalar')->end()
->defaultValue(array('name'))
->end()
->end()
->end()
->arrayNode('fields')
->prototype('scalar')->end()
->defaultValue(array('name'))
->end()
->end()
->end()
->arrayNode('taxon')
@ -193,12 +193,12 @@ class Configuration implements ConfigurationInterface
->end()
->end()
->end()
->arrayNode('fields')
->prototype('scalar')->end()
->defaultValue(array('name', 'slug', 'permalink', 'description'))
->end()
->end()
->end()
->arrayNode('fields')
->prototype('scalar')->end()
->defaultValue(array('name', 'slug', 'permalink', 'description'))
->end()
->end()
->end()
->end()