From c101c6cb22fe31fb7bb67101dbe7027ccc0fd5dc Mon Sep 17 00:00:00 2001 From: mmoreram Date: Sun, 3 May 2015 20:22:44 +0200 Subject: [PATCH] Added Bridge for Visithor Bundle * Added initial visithor configuration file * Added visithor test to travis with green result * Added default carrier ranges to cover basic scenario * Fixed routes to make visithor pass * Moved phpunit.xml.dist to the root * Fixed workflow product test --- .travis.yml | 3 +- app/AppKernel.php | 3 + composer.json | 3 +- features/store/category.feature | 1 - features/workflow/product.feature | 2 +- app/phpunit.xml.dist => phpunit.xml.dist | 10 +- .../Currency/CurrencyEuroData.php | 1 - .../Controller/ManufacturerController.php | 2 +- .../Controller/ProductController.php | 2 +- .../Controller/VariantController.php | 2 +- .../Stats/CustomerStatsController.php | 90 -------- .../Resources/views/Customer/edit.html.twig | 10 +- .../VisithorBridgeExtension.php | 81 +++++++ .../Environment/EnvironmentBuilder.php | 105 ++++++++++ .../Resources/config/visithor.yml | 10 + .../VisithorBridgeBundle.php | 39 ++++ .../DataFixtures/ORM/Shipping/Carriers.php | 64 +++++- .../DataFixtures/ORM/Zone/ZoneData.php | 1 + visithor.yml.dist | 197 ++++++++++++++++++ 19 files changed, 514 insertions(+), 112 deletions(-) rename app/phpunit.xml.dist => phpunit.xml.dist (70%) delete mode 100644 src/Elcodi/Admin/UserBundle/Controller/Stats/CustomerStatsController.php create mode 100644 src/Elcodi/Common/VisithorBridgeBundle/DependencyInjection/VisithorBridgeExtension.php create mode 100644 src/Elcodi/Common/VisithorBridgeBundle/Environment/EnvironmentBuilder.php create mode 100644 src/Elcodi/Common/VisithorBridgeBundle/Resources/config/visithor.yml create mode 100644 src/Elcodi/Common/VisithorBridgeBundle/VisithorBridgeBundle.php create mode 100644 visithor.yml.dist diff --git a/.travis.yml b/.travis.yml index 2c73fc07..c2cc23f5 100644 --- a/.travis.yml +++ b/.travis.yml @@ -41,7 +41,8 @@ services: script: - bin/behat -fprogress --tags="~javascript" - - bin/phpunit -c app + - bin/phpunit + - php app/console visithor:go --format=pretty --env=test notifications: email: false diff --git a/app/AppKernel.php b/app/AppKernel.php index 358aea65..38bde7c5 100644 --- a/app/AppKernel.php +++ b/app/AppKernel.php @@ -169,6 +169,9 @@ public function registerBundles() $bundles[] = new Elcodi\Bundle\FixturesBoosterBundle\ElcodiFixturesBoosterBundle(); $bundles[] = new Symfony\Bundle\WebProfilerBundle\WebProfilerBundle(); $bundles[] = new Sensio\Bundle\DistributionBundle\SensioDistributionBundle(); + + $bundles[] = new Visithor\Bundle\VisithorBundle(); + $bundles[] = new Elcodi\Common\VisithorBridgeBundle\VisithorBridgeBundle(); } return $bundles; diff --git a/composer.json b/composer.json index a121366b..4efaf1b9 100644 --- a/composer.json +++ b/composer.json @@ -122,7 +122,8 @@ "phpunit/phpunit": "4.5.0", "mmoreram/php-formatter": "1.0.4", - "fabpot/php-cs-fixer": "1.4.2" + "fabpot/php-cs-fixer": "1.4.2", + "visithor/visithor-bundle": "~0.1, >=0.1.7" }, "scripts": { "post-install-cmd": [ diff --git a/features/store/category.feature b/features/store/category.feature index e990a44b..29e9c508 100644 --- a/features/store/category.feature +++ b/features/store/category.feature @@ -8,7 +8,6 @@ Feature: Store category Given I am on "category/women-shirts/1" Then I should see more than 0 products - @haha Scenario: Category redirection Given I am on "category/women-shirts-false/1" Then I should be on "category/women-shirts/1" \ No newline at end of file diff --git a/features/workflow/product.feature b/features/workflow/product.feature index 9035c214..bd7d405c 100644 --- a/features/workflow/product.feature +++ b/features/workflow/product.feature @@ -18,7 +18,7 @@ Feature: Product engine And I check "elcodi_admin_product_form_type_product_enabled" And I press "submit-save" And I am on "/admin/product/19/variant/new" - And I wait "1" seconds + And I wait "3" seconds And I select "1" from "select-Size" And I select "4" from "select-Color" And I fill in the following: diff --git a/app/phpunit.xml.dist b/phpunit.xml.dist similarity index 70% rename from app/phpunit.xml.dist rename to phpunit.xml.dist index 23378c33..d30652b2 100644 --- a/app/phpunit.xml.dist +++ b/phpunit.xml.dist @@ -11,20 +11,20 @@ processIsolation = "false" stopOnFailure = "false" syntaxCheck = "false" - bootstrap = "bootstrap.php.cache" > + bootstrap = "app/bootstrap.php.cache" > - ../src/Elcodi/*/*Bundle/Tests + src/Elcodi/*/*Bundle/Tests - ../src + src - ../src/Elcodi/*/*Bundle/Resources - ../src/Elcodi/*/*Bundle/Tests + src/Elcodi/*/*Bundle/Resources + src/Elcodi/*/*Bundle/Tests diff --git a/src/Elcodi/Admin/CurrencyBundle/DataFixtures/Currency/CurrencyEuroData.php b/src/Elcodi/Admin/CurrencyBundle/DataFixtures/Currency/CurrencyEuroData.php index 39347635..0c17c1d1 100644 --- a/src/Elcodi/Admin/CurrencyBundle/DataFixtures/Currency/CurrencyEuroData.php +++ b/src/Elcodi/Admin/CurrencyBundle/DataFixtures/Currency/CurrencyEuroData.php @@ -21,7 +21,6 @@ use Elcodi\Bundle\CoreBundle\DataFixtures\ORM\Abstracts\AbstractFixture; use Elcodi\Component\Core\Services\ObjectDirector; -use Elcodi\Component\Currency\Factory\CurrencyFactory; /** * Class CurrencyEuroData diff --git a/src/Elcodi/Admin/ProductBundle/Controller/ManufacturerController.php b/src/Elcodi/Admin/ProductBundle/Controller/ManufacturerController.php index 587f0683..52e69994 100644 --- a/src/Elcodi/Admin/ProductBundle/Controller/ManufacturerController.php +++ b/src/Elcodi/Admin/ProductBundle/Controller/ManufacturerController.php @@ -17,7 +17,6 @@ namespace Elcodi\Admin\ProductBundle\Controller; -use Elcodi\Component\Media\Entity\Interfaces\ImageInterface; use Mmoreram\ControllerExtraBundle\Annotation\Entity as EntityAnnotation; use Mmoreram\ControllerExtraBundle\Annotation\Form as FormAnnotation; use Sensio\Bundle\FrameworkExtraBundle\Configuration\Method; @@ -29,6 +28,7 @@ use Elcodi\Admin\CoreBundle\Controller\Abstracts\AbstractAdminController; use Elcodi\Component\Core\Entity\Interfaces\EnabledInterface; +use Elcodi\Component\Media\Entity\Interfaces\ImageInterface; use Elcodi\Component\Product\Entity\Interfaces\ManufacturerInterface; /** diff --git a/src/Elcodi/Admin/ProductBundle/Controller/ProductController.php b/src/Elcodi/Admin/ProductBundle/Controller/ProductController.php index f3135548..296691be 100644 --- a/src/Elcodi/Admin/ProductBundle/Controller/ProductController.php +++ b/src/Elcodi/Admin/ProductBundle/Controller/ProductController.php @@ -17,7 +17,6 @@ namespace Elcodi\Admin\ProductBundle\Controller; -use Elcodi\Component\Media\Entity\Interfaces\ImageInterface; use Mmoreram\ControllerExtraBundle\Annotation\Entity as EntityAnnotation; use Mmoreram\ControllerExtraBundle\Annotation\Form as FormAnnotation; use Sensio\Bundle\FrameworkExtraBundle\Configuration\Method; @@ -29,6 +28,7 @@ use Elcodi\Admin\CoreBundle\Controller\Abstracts\AbstractAdminController; use Elcodi\Component\Core\Entity\Interfaces\EnabledInterface; +use Elcodi\Component\Media\Entity\Interfaces\ImageInterface; use Elcodi\Component\Product\Entity\Interfaces\ProductInterface; /** diff --git a/src/Elcodi/Admin/ProductBundle/Controller/VariantController.php b/src/Elcodi/Admin/ProductBundle/Controller/VariantController.php index e1930257..0edd82ac 100644 --- a/src/Elcodi/Admin/ProductBundle/Controller/VariantController.php +++ b/src/Elcodi/Admin/ProductBundle/Controller/VariantController.php @@ -17,7 +17,6 @@ namespace Elcodi\Admin\ProductBundle\Controller; -use Elcodi\Component\Media\Entity\Interfaces\ImageInterface; use Mmoreram\ControllerExtraBundle\Annotation\Entity as EntityAnnotation; use Mmoreram\ControllerExtraBundle\Annotation\Form as FormAnnotation; use Sensio\Bundle\FrameworkExtraBundle\Configuration\Method; @@ -31,6 +30,7 @@ use Elcodi\Component\Attribute\Entity\Interfaces\AttributeInterface; use Elcodi\Component\Attribute\Entity\Interfaces\ValueInterface; use Elcodi\Component\Core\Entity\Interfaces\EnabledInterface; +use Elcodi\Component\Media\Entity\Interfaces\ImageInterface; use Elcodi\Component\Product\Entity\Interfaces\ProductInterface; use Elcodi\Component\Product\Entity\Interfaces\VariantInterface; diff --git a/src/Elcodi/Admin/UserBundle/Controller/Stats/CustomerStatsController.php b/src/Elcodi/Admin/UserBundle/Controller/Stats/CustomerStatsController.php deleted file mode 100644 index 4dce77f9..00000000 --- a/src/Elcodi/Admin/UserBundle/Controller/Stats/CustomerStatsController.php +++ /dev/null @@ -1,90 +0,0 @@ - - * @author Aldo Chiecchia - * @author Elcodi Team - */ - -namespace Elcodi\Admin\UserBundle\Controller\Stats; - -use Sensio\Bundle\FrameworkExtraBundle\Configuration\Route; -use Sensio\Bundle\FrameworkExtraBundle\Configuration\Template; - -use Elcodi\Admin\CoreBundle\Controller\Abstracts\AbstractStatsController; - -/** - * Class CustomerStatsController - * - * @Route( - * path = "/customers/stats" - * ) - */ -class CustomerStatsController extends AbstractStatsController -{ - /** - * Get count of all elements - * - * @return mixed - * - * @Route( - * path = "/total", - * name = "admin_customer_stats_total", - * methods = {"GET"} - * ) - * @Template("AdminCoreBundle:Stats:total.html.twig") - */ - public function totalStatsAction() - { - return [ - 'total' => $this->getTotalStats('elcodi.entity.customer.class'), - ]; - } - - /** - * Get last month elements count - * - * @return mixed - * - * @Route( - * path = "/monthly", - * name = "admin_customer_stats_monthly", - * methods = {"GET"} - * ) - * @Template("AdminCoreBundle:Stats:monthly.html.twig") - */ - public function monthlyStatsAction() - { - return [ - 'total' => $this->getMonthlyStats('elcodi.entity.customer.class'), - ]; - } - - /** - * Get today elements count - * - * @return mixed - * - * @Route( - * path = "/daily", - * name = "admin_customer_stats_daily", - * methods = {"GET"} - * ) - * @Template("AdminCoreBundle:Stats:daily.html.twig") - */ - public function dailyStatsAction() - { - return [ - 'total' => $this->getDailyStats('elcodi.entity.customer.class'), - ]; - } -} diff --git a/src/Elcodi/Admin/UserBundle/Resources/views/Customer/edit.html.twig b/src/Elcodi/Admin/UserBundle/Resources/views/Customer/edit.html.twig index 05108c4f..50e02723 100644 --- a/src/Elcodi/Admin/UserBundle/Resources/views/Customer/edit.html.twig +++ b/src/Elcodi/Admin/UserBundle/Resources/views/Customer/edit.html.twig @@ -31,10 +31,12 @@ {% block header_actions %} - - - {{ 'admin.order.from_user'|trans({ '%name%': customer.firstname }) }} - + {% if customer.id %} + + + {{ 'admin.order.from_user'|trans({ '%name%': customer.firstname }) }} + + {% endif %} {% endblock header_actions %} diff --git a/src/Elcodi/Common/VisithorBridgeBundle/DependencyInjection/VisithorBridgeExtension.php b/src/Elcodi/Common/VisithorBridgeBundle/DependencyInjection/VisithorBridgeExtension.php new file mode 100644 index 00000000..370f2d70 --- /dev/null +++ b/src/Elcodi/Common/VisithorBridgeBundle/DependencyInjection/VisithorBridgeExtension.php @@ -0,0 +1,81 @@ + + * @author Aldo Chiecchia + * @author Elcodi Team + */ + +namespace Elcodi\Common\VisithorBridgeBundle\DependencyInjection; + +use Elcodi\Bundle\CoreBundle\DependencyInjection\Abstracts\AbstractExtension; + +/** + * Class VisithorBridgeExtension + */ +class VisithorBridgeExtension extends AbstractExtension +{ + /** + * @var string + * + * Extension name + */ + const EXTENSION_NAME = 'visithor_bridge'; + + /** + * Get the Config file location + * + * @return string Config file location + */ + public function getConfigFilesLocation() + { + return __DIR__ . '/../Resources/config'; + } + + /** + * Config files to load + * + * Each array position can be a simple file name if must be loaded always, + * or an array, with the filename in the first position, and a boolean in + * the second one. + * + * As a parameter, this method receives all loaded configuration, to allow + * setting this boolean value from a configuration value. + * + * return array( + * 'file1.yml', + * 'file2.yml', + * ['file3.yml', $config['my_boolean'], + * ... + * ); + * + * @param array $config Config definitions + * + * @return array Config files + */ + protected function getConfigFiles(array $config) + { + return [ + 'visithor', + ]; + } + + /** + * Returns the extension alias, same value as extension name + * + * @return string The alias + */ + public function getAlias() + { + return self::EXTENSION_NAME; + } +} diff --git a/src/Elcodi/Common/VisithorBridgeBundle/Environment/EnvironmentBuilder.php b/src/Elcodi/Common/VisithorBridgeBundle/Environment/EnvironmentBuilder.php new file mode 100644 index 00000000..83681b75 --- /dev/null +++ b/src/Elcodi/Common/VisithorBridgeBundle/Environment/EnvironmentBuilder.php @@ -0,0 +1,105 @@ + + * @author Aldo Chiecchia + * @author Elcodi Team + */ + +namespace Elcodi\Common\VisithorBridgeBundle\Environment; + +use Symfony\Component\HttpKernel\KernelInterface; +use Visithor\Bundle\Environment\SymfonyEnvironmentBuilder; + +use Elcodi\Component\User\Repository\AdminUserRepository; +use Elcodi\Component\User\Repository\CustomerRepository; + +/** + * Class EnvironmentBuilder + */ +class EnvironmentBuilder extends SymfonyEnvironmentBuilder +{ + /** + * @var CustomerRepository + * + * Customer Repository + */ + protected $customerRepository; + + /** + * @var AdminUserRepository + * + * Admin User Repository + */ + protected $adminUserRepository; + + /** + * Construct + * + * @param CustomerRepository $customerRepository Customer Repository + * @param AdminUserRepository $adminUserRepository Admin User Repository + */ + public function __construct( + CustomerRepository $customerRepository, + AdminUserRepository $adminUserRepository + ) { + $this->customerRepository = $customerRepository; + $this->adminUserRepository = $adminUserRepository; + } + + /** + * Set up environment + * + * @param KernelInterface $kernel Kernel + * + * @return $this Self object + */ + public function setUp(KernelInterface $kernel) + { + parent::setUp($kernel); + + $this + ->executeCommand('doctrine:fixtures:load', [ + '--fixtures' => $kernel + ->getRootDir() . '/../src/Elcodi/Fixtures', + ]) + ->executeCommand('elcodi:templates:load') + ->executeCommand('elcodi:templates:enable', [ + 'template' => 'StoreTemplateBundle', + ]) + ->executeCommand('elcodi:plugins:load') + ->executeCommand('assets:install') + ->executeCommand('assetic:dump'); + } + + /** + * Get authenticated user + * + * @param string $role Role + * + * @return mixed User for authentication + */ + public function getAuthenticationUser($role) + { + return 'ROLE_ADMIN' === $role + ? $this + ->adminUserRepository + ->findOneBy([ + 'email' => 'admin@admin.com', + ]) + : $this + ->customerRepository + ->find([ + 'email' => 'customer@customer.com', + ]); + } +} diff --git a/src/Elcodi/Common/VisithorBridgeBundle/Resources/config/visithor.yml b/src/Elcodi/Common/VisithorBridgeBundle/Resources/config/visithor.yml new file mode 100644 index 00000000..ed22b2d0 --- /dev/null +++ b/src/Elcodi/Common/VisithorBridgeBundle/Resources/config/visithor.yml @@ -0,0 +1,10 @@ +services: + + # + # Visithor Bridge + # + visitor.environment_builder: + class: Elcodi\Common\VisithorBridgeBundle\Environment\EnvironmentBuilder + arguments: + - @elcodi.repository.customer + - @elcodi.repository.admin_user diff --git a/src/Elcodi/Common/VisithorBridgeBundle/VisithorBridgeBundle.php b/src/Elcodi/Common/VisithorBridgeBundle/VisithorBridgeBundle.php new file mode 100644 index 00000000..7a2aad60 --- /dev/null +++ b/src/Elcodi/Common/VisithorBridgeBundle/VisithorBridgeBundle.php @@ -0,0 +1,39 @@ + + * @author Aldo Chiecchia + * @author Elcodi Team + */ + +namespace Elcodi\Common\VisithorBridgeBundle; + +use Symfony\Component\DependencyInjection\Extension\ExtensionInterface; +use Symfony\Component\HttpKernel\Bundle\Bundle; + +use Elcodi\Common\VisithorBridgeBundle\DependencyInjection\VisithorBridgeExtension; + +/** + * Class VisithorBridgeBundle + */ +class VisithorBridgeBundle extends Bundle +{ + /** + * Returns the bundle's container extension. + * + * @return ExtensionInterface The container extension + */ + public function getContainerExtension() + { + return new VisithorBridgeExtension(); + } +} diff --git a/src/Elcodi/Fixtures/DataFixtures/ORM/Shipping/Carriers.php b/src/Elcodi/Fixtures/DataFixtures/ORM/Shipping/Carriers.php index ee19de5a..93bf4411 100644 --- a/src/Elcodi/Fixtures/DataFixtures/ORM/Shipping/Carriers.php +++ b/src/Elcodi/Fixtures/DataFixtures/ORM/Shipping/Carriers.php @@ -22,7 +22,11 @@ use Elcodi\Bundle\CoreBundle\DataFixtures\ORM\Abstracts\AbstractFixture; use Elcodi\Component\Core\Services\ObjectDirector; +use Elcodi\Component\Currency\Entity\Interfaces\CurrencyInterface; +use Elcodi\Component\Currency\Entity\Money; use Elcodi\Component\EntityTranslator\Services\Interfaces\EntityTranslatorInterface; +use Elcodi\Component\Shipping\ElcodiShippingRangeTypes; +use Elcodi\Component\Zone\Entity\Interfaces\ZoneInterface; /** * Class Carriers @@ -37,7 +41,7 @@ class Carriers extends AbstractFixture implements DependentFixtureInterface public function load(ObjectManager $manager) { /** - * @var ObjectDirector $carrierDirector + * @var ObjectDirector $carrierDirector * @var EntityTranslatorInterface $entityTranslator */ $carrierDirector = $this->getDirector('carrier'); @@ -55,22 +59,70 @@ public function load(ObjectManager $manager) $entityTranslator->save($carrier, [ 'en' => [ - 'name' => 'Basic', + 'name' => 'Basic', 'description' => 'Our basic delivery system', ], 'es' => [ - 'name' => 'Básico', + 'name' => 'Básico', 'description' => 'Nuestro sistema de entrega básico', ], 'fr' => [ - 'name' => 'Minimale', + 'name' => 'Minimale', 'description' => 'Notre système de livraison basique', ], 'ca' => [ - 'name' => 'Bàsic', + 'name' => 'Bàsic', 'description' => 'El nostre sistema d\'entrega bàsic', ], ]); + + /** + * @var CurrencyInterface $currencyEuro + * @var ZoneInterface $zoneSpain + */ + $zoneSpain = $this->getReference('zone-spain'); + $currencyEuro = $this->getReference('currency-EUR'); + $shippingRangeDirector = $this->getDirector('shipping_range'); + + $shippingPriceRange1 = $shippingRangeDirector + ->create() + ->setType(ElcodiShippingRangeTypes::TYPE_PRICE) + ->setCarrier($carrier) + ->setName('From 0€ to 10€') + ->setFromZone($zoneSpain) + ->setToZone($zoneSpain) + ->setFromPrice(Money::create(0, $currencyEuro)) + ->setToPrice(Money::create(1000, $currencyEuro)) + ->setPrice(Money::create(900, $currencyEuro)) + ->setEnabled(true); + + $shippingPriceRange2 = $shippingRangeDirector + ->create() + ->setType(ElcodiShippingRangeTypes::TYPE_PRICE) + ->setCarrier($carrier) + ->setName('From 10€ to 20€') + ->setFromZone($zoneSpain) + ->setToZone($zoneSpain) + ->setFromPrice(Money::create(1000, $currencyEuro)) + ->setToPrice(Money::create(2000, $currencyEuro)) + ->setPrice(Money::create(500, $currencyEuro)) + ->setEnabled(true); + + $shippingPriceRange3 = $shippingRangeDirector + ->create() + ->setType(ElcodiShippingRangeTypes::TYPE_PRICE) + ->setCarrier($carrier) + ->setName('Free for up to 20€') + ->setFromZone($zoneSpain) + ->setToZone($zoneSpain) + ->setFromPrice(Money::create(2000, $currencyEuro)) + ->setToPrice(Money::create(999999999, $currencyEuro)) + ->setPrice(Money::create(115, $currencyEuro)) + ->setEnabled(true); + + $shippingRangeDirector->save($shippingPriceRange1); + $shippingRangeDirector->save($shippingPriceRange2); + $shippingRangeDirector->save($shippingPriceRange3); } /** @@ -83,6 +135,8 @@ public function getDependencies() { return [ 'Elcodi\Fixtures\DataFixtures\ORM\Tax\TaxData', + 'Elcodi\Fixtures\DataFixtures\ORM\Currency\CurrencyData', + 'Elcodi\Fixtures\DataFixtures\ORM\Zone\ZoneData', ]; } } diff --git a/src/Elcodi/Fixtures/DataFixtures/ORM/Zone/ZoneData.php b/src/Elcodi/Fixtures/DataFixtures/ORM/Zone/ZoneData.php index f73aa113..ac1732e7 100644 --- a/src/Elcodi/Fixtures/DataFixtures/ORM/Zone/ZoneData.php +++ b/src/Elcodi/Fixtures/DataFixtures/ORM/Zone/ZoneData.php @@ -52,6 +52,7 @@ public function load(ObjectManager $manager) ->setLocations($locations); $zoneCollection->add($zone); + $this->setReference('zone-' . $zoneCode, $zone); $zoneDirector->save($zone); } diff --git a/visithor.yml.dist b/visithor.yml.dist new file mode 100644 index 00000000..429933f5 --- /dev/null +++ b/visithor.yml.dist @@ -0,0 +1,197 @@ +defaults: + verb: GET + +profiles: + admin: + firewall: admin_area + role: ROLE_ADMIN + +urls: + - [[admin_shipping_range_edit_component, {carrierId: 1, id: 1}], 200, {profile: admin}] + # + # Store + # + - [store_homepage, 200] + - [store_categories_nav, 200] + - [[store_category_products_list, {'slug': 'women-shirts', 'id': 1}], 200] + - [[store_category_products_list, {'slug': 'another-name', 'id': 1}], 301] + - [[store_product_view, {'slug': 'ibiza-lips-en', 'id': 1}], 200] + - [[store_product_view, {'slug': 'another-name', 'id': 1}], 301] + - [store_password_recover_sent, 200] + - [store_login, 200] + - [store_user_nav, 200] + - [store_user, 302] + - [store_cart_view, 200] + - [store_cart_nav, 200] + - [store_order_list, 302] + - [store_currency_nav, 200] + - [store_blog_view, 200] + - [[store_blog_post_view, {'slug': 'hola-mundo', 'id': 1}], 200] + - [store_address_list, 302] + - [store_language_nav, 200] + + # + # Admin User + # + - [admin_admin_user_list, 200, {profile: admin}] + - [admin_admin_user_list_component, 200, {profile: admin}] + - [[admin_admin_user_edit, {id: 1}], 200, {profile: admin}] + - [[admin_admin_user_edit_component, {id: 1}], 200, {profile: admin}] + - [admin_admin_user_new, 200, {profile: admin}] + - [admin_admin_user_new_component, 200, {profile: admin}] + + # + # Customer + # + - [admin_customer_list, 200, {profile: admin}] + - [admin_customer_list_component, 200, {profile: admin}] + - [[admin_customer_edit, {id: 1}], 200, {profile: admin}] + - [[admin_customer_edit_component, {id: 1}], 200, {profile: admin}] + - [admin_customer_new, 200, {profile: admin}] + - [admin_customer_new_component, 200, {profile: admin}] + - [[admin_customer_order_list_component, {customerId: 1}], 200, {profile: admin}] + - [[admin_customer_order_list_component, {customerId: 1}], 200, {profile: admin}] + + # + # Security + # + - [admin_password_recover_sent, 200, {profile: admin}] + - [admin_profile_view, 200, {profile: admin}] + + # + # Orders + # + - [admin_order_list, 200, {profile: admin}] + - [admin_order_list_component, 200, {profile: admin}] + + # + # Products + # + - [[admin_product_view, {id:1}], 200, {profile: admin}] + - [admin_product_list, 200, {profile: admin}] + - [admin_product_list_component, 200, {profile: admin}] + - [[admin_product_edit, {id: 1}], 200, {profile: admin}] + - [[admin_product_edit_component, {id: 1}], 200, {profile: admin}] + - [admin_product_new, 200, {profile: admin}] + - [admin_product_new_component, 200, {profile: admin}] + + # + # Product Variants + # + - [[admin_product_variant_list_component, {productId: 1}], 200, {profile: admin}] + - [[admin_product_variant_edit, {productId: 1, id:1}], 200, {profile: admin}] + - [[admin_product_variant_edit_component, {productId: 1, id:1}], 200, {profile: admin}] + - [[admin_product_variant_new, {productId: 1}], 200, {profile: admin}] + - [[admin_product_variant_new_component, {productId: 1}], 200, {profile: admin}] + + # + # Attributes + # + - [admin_attribute_list, 200, {profile: admin}] + - [admin_attribute_new, 200, {profile: admin}] + - [admin_attribute_list_component, 200, {profile: admin}] + - [admin_attribute_new_component, 200, {profile: admin}] + - [[admin_attribute_edit, {id: 1}], 200, {profile: admin}] + + # + # Categories + # + - [admin_category_list, 200, {profile: admin}] + - [admin_category_list_component, 200, {profile: admin}] + - [[admin_category_edit, {id: 1}], 200, {profile: admin}] + - [[admin_category_edit_component, {id: 1}], 200, {profile: admin}] + - [admin_category_new, 200, {profile: admin}] + - [admin_category_new_component, 200, {profile: admin}] + + # + # Manufacturers + # + - [admin_manufacturer_list, 200, {profile: admin}] + - [admin_manufacturer_list_component, 200, {profile: admin}] + - [[admin_manufacturer_edit, {id: 1}], 200, {profile: admin}] + - [[admin_manufacturer_edit_component, {id: 1}], 200, {profile: admin}] + - [admin_manufacturer_new, 200, {profile: admin}] + - [admin_manufacturer_new_component, 200, {profile: admin}] + + # + # Carriers + # + - [admin_carrier_list, 200, {profile: admin}] + - [admin_carrier_list_component, 200, {profile: admin}] + - [[admin_carrier_edit, {id: 1}], 200, {profile: admin}] + - [[admin_carrier_edit_component, {id: 1}], 200, {profile: admin}] + - [admin_carrier_new, 200, {profile: admin}] + - [admin_carrier_new_component, 200, {profile: admin}] + + # + # Currencies + # + - [admin_currency_list_component, 200, {profile: admin}] + - [admin_currency_nav, 200, {profile: admin}] + - [admin_currency_list, 200, {profile: admin}] + + # + # Shipping Ranges + # + - [[admin_shipping_range_list_component, {carrierId: 1}], 200, {profile: admin}] + - [[admin_shipping_range_edit_component, {carrierId: 1, id: 2}], 200, {profile: admin}] + - [[admin_shipping_range_new_component, {carrierId: 1}], 200, {profile: admin}] + - [[admin_shipping_range_edit, {carrierId: 1, id: 2}], 200, {profile: admin}] + - [[admin_shipping_range_new, {carrierId: 1}], 200, {profile: admin}] + + # + # Images + # + - [admin_image_list_component, 200, {profile: admin}] + - [admin_image_list, 200, {profile: admin}] + + # + # Blog, Emails & Pages + # + - [admin_blog_post_list, 200, {profile: admin}] + - [admin_blog_post_list_component, 200, {profile: admin}] + - [[admin_blog_post_edit, {id: 1}], 200, {profile: admin}] + - [[admin_blog_post_edit_component, {id: 1}], 200, {profile: admin}] + - [admin_blog_post_new, 200, {profile: admin}] + - [admin_blog_post_new_component, 200, {profile: admin}] + - [admin_email_list_component, 200, {profile: admin}] + - [admin_page_list_component, 200, {profile: admin}] + - [[admin_page_edit_component, {id: 1}], 200, {profile: admin}] + - [admin_page_new_component, 200, {profile: admin}] + - [[admin_email_edit, {id: 4}], 200, {profile: admin}] + - [admin_email_list, 200, {profile: admin}] + - [admin_page_list, 200, {profile: admin}] + - [[admin_page_edit, {id: 1}], 200, {profile: admin}] + - [admin_page_new, 200, {profile: admin}] + + # + # Metrics & Reports + # + - [admin_metric_panel_today, 200, {profile: admin}] + - [admin_metric_panel_yesterday, 200, {profile: admin}] + - [admin_metric_panel_last_week, 200, {profile: admin}] + - [admin_metric_panel_last_month, 200, {profile: admin}] + - [admin_metric_panel_last_quarter, 200, {profile: admin}] + + - [admin_reports_today, 200, {profile: admin}] + - [admin_reports_yesterday, 200, {profile: admin}] + - [admin_reports_last_week, 200, {profile: admin}] + - [admin_reports_last_month, 200, {profile: admin}] + - [admin_reports_last_quarter, 200, {profile: admin}] + + # + # Languages + # + - [admin_language_list_component, 200, {profile: admin}] + - [admin_language_list, 200, {profile: admin}] + + # + # Miscelania + # + - [admin_configuration_list, 200, {profile: admin}] + - [admin_homepage, 302, {profile: admin}] + - [admin_payment_configuration_list, 200, {profile: admin}] + - [admin_template_list, 200, {profile: admin}] + - [admin_plugin_list, 200, {profile: admin}] + - [admin_store_setup_wizard, 200, {profile: admin}] +