From 7732999fa5375fd894c5b50d4cc468929f877e77 Mon Sep 17 00:00:00 2001 From: "Timothy J. Warren" Date: Thu, 4 Apr 2024 18:11:51 -0400 Subject: [PATCH] Add brand relationship to sockets, fix some things to work with new Doctrine version --- composer.json | 20 +- composer.lock | 322 +++++++++--------- src/Entity/CameraBase.php | 2 +- src/Entity/LensTrait.php | 4 +- src/Entity/Motherboard.php | 4 +- src/Entity/PreviouslyOwnedCpu.php | 2 +- src/Entity/Socket.php | 17 +- src/Form/BrandCategoryTrait.php | 16 - src/Form/ChipsetType.php | 2 +- src/Form/CpuType.php | 17 +- src/Form/FormHelperTrait.php | 36 ++ src/Form/FpuType.php | 2 +- src/Form/GPUCoreType.php | 2 +- src/Form/GpuType.php | 2 +- src/Form/PreviouslyOwnedCameraType.php | 4 +- src/Form/PreviouslyOwnedCpuType.php | 2 +- src/Form/PreviouslyOwnedGpuType.php | 2 +- src/Form/SocketTypeForm.php | 11 +- src/Migrations/Version20240404181128.php | 36 ++ src/Migrations/Version20240404191927.php | 34 ++ src/Migrations/Version20240404194022.php | 38 +++ src/Migrations/Version20240404194147.php | 186 ++++++++++ .../previouslyownedcamera/edit.html.twig | 2 +- templates/socket/index.html.twig | 6 + templates/socket/show.html.twig | 10 + 25 files changed, 573 insertions(+), 206 deletions(-) delete mode 100644 src/Form/BrandCategoryTrait.php create mode 100644 src/Form/FormHelperTrait.php create mode 100644 src/Migrations/Version20240404181128.php create mode 100644 src/Migrations/Version20240404191927.php create mode 100644 src/Migrations/Version20240404194022.php create mode 100644 src/Migrations/Version20240404194147.php diff --git a/composer.json b/composer.json index 167712e..28f6e2d 100644 --- a/composer.json +++ b/composer.json @@ -4,25 +4,25 @@ "require": { "php": ">=8.2", "composer/package-versions-deprecated": "1.11.99.5", - "doctrine/doctrine-bundle": "^2.8.2", - "doctrine/doctrine-migrations-bundle": "^3.2.2", + "doctrine/doctrine-bundle": "^2.12.0", + "doctrine/doctrine-migrations-bundle": "^3.3.0", "doctrine/orm": "^3.1.1", - "symfony/form": "^7.0.4", - "symfony/maker-bundle": "^1.48", - "symfony/monolog-bundle": "^3.8", - "symfony/security-bundle": "^7.0.5", + "symfony/form": "^7.0.6", + "symfony/maker-bundle": "^1.57", + "symfony/monolog-bundle": "^3.10", + "symfony/security-bundle": "^7.0.6", "symfony/security-csrf": "^7.0.3", "symfony/translation": "^7.0.4", "symfony/twig-bundle": "^7.0.4", - "symfony/validator": "^7.0.5", + "symfony/validator": "^7.0.6", "symfony/yaml": "^7.0.3", - "twig/twig": "^2.12|^3.5" + "twig/twig": "^2.12|^3.8" }, "require-dev": { - "phpunit/phpunit": "^11.0.8", + "phpunit/phpunit": "^11.0.9", "roave/security-advisories": "dev-master", "symfony/dotenv": "^7.0.4", - "symfony/flex": "^2.2.4", + "symfony/flex": "^2.4.5", "symfony/stopwatch": "^7.0.3", "symfony/web-profiler-bundle": "^7.0.4" }, diff --git a/composer.lock b/composer.lock index 0b867e4..853b736 100644 --- a/composer.lock +++ b/composer.lock @@ -4,7 +4,7 @@ "Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies", "This file is @generated automatically" ], - "content-hash": "85806096bd6f8773941231eb16c2ae43", + "content-hash": "b75f34aab27ac42762f29acd2a18f8bd", "packages": [ { "name": "composer/package-versions-deprecated", @@ -1704,16 +1704,16 @@ }, { "name": "symfony/cache", - "version": "v7.0.4", + "version": "v7.0.6", "source": { "type": "git", "url": "https://github.com/symfony/cache.git", - "reference": "fc822951dd360a593224bb2cef90a087d0dff60f" + "reference": "2d0d3f92c74c445410d05374908b03e0a1131e2b" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/cache/zipball/fc822951dd360a593224bb2cef90a087d0dff60f", - "reference": "fc822951dd360a593224bb2cef90a087d0dff60f", + "url": "https://api.github.com/repos/symfony/cache/zipball/2d0d3f92c74c445410d05374908b03e0a1131e2b", + "reference": "2d0d3f92c74c445410d05374908b03e0a1131e2b", "shasum": "" }, "require": { @@ -1780,7 +1780,7 @@ "psr6" ], "support": { - "source": "https://github.com/symfony/cache/tree/v7.0.4" + "source": "https://github.com/symfony/cache/tree/v7.0.6" }, "funding": [ { @@ -1796,20 +1796,20 @@ "type": "tidelift" } ], - "time": "2024-02-22T20:27:20+00:00" + "time": "2024-03-27T19:55:25+00:00" }, { "name": "symfony/cache-contracts", - "version": "v3.4.0", + "version": "v3.4.2", "source": { "type": "git", "url": "https://github.com/symfony/cache-contracts.git", - "reference": "1d74b127da04ffa87aa940abe15446fa89653778" + "reference": "2c9db6509a1b21dad229606897639d3284f54b2a" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/cache-contracts/zipball/1d74b127da04ffa87aa940abe15446fa89653778", - "reference": "1d74b127da04ffa87aa940abe15446fa89653778", + "url": "https://api.github.com/repos/symfony/cache-contracts/zipball/2c9db6509a1b21dad229606897639d3284f54b2a", + "reference": "2c9db6509a1b21dad229606897639d3284f54b2a", "shasum": "" }, "require": { @@ -1856,7 +1856,7 @@ "standards" ], "support": { - "source": "https://github.com/symfony/cache-contracts/tree/v3.4.0" + "source": "https://github.com/symfony/cache-contracts/tree/v3.4.2" }, "funding": [ { @@ -1872,7 +1872,7 @@ "type": "tidelift" } ], - "time": "2023-09-25T12:52:38+00:00" + "time": "2024-01-23T14:51:35+00:00" }, { "name": "symfony/clock", @@ -1950,16 +1950,16 @@ }, { "name": "symfony/config", - "version": "v7.0.4", + "version": "v7.0.6", "source": { "type": "git", "url": "https://github.com/symfony/config.git", - "reference": "44deeba7233f08f383185ffa37dace3b3bc87364" + "reference": "7fc7e18a73ec8125fd95928c0340470d64760deb" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/config/zipball/44deeba7233f08f383185ffa37dace3b3bc87364", - "reference": "44deeba7233f08f383185ffa37dace3b3bc87364", + "url": "https://api.github.com/repos/symfony/config/zipball/7fc7e18a73ec8125fd95928c0340470d64760deb", + "reference": "7fc7e18a73ec8125fd95928c0340470d64760deb", "shasum": "" }, "require": { @@ -2005,7 +2005,7 @@ "description": "Helps you find, load, combine, autofill and validate configuration values of any kind", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/config/tree/v7.0.4" + "source": "https://github.com/symfony/config/tree/v7.0.6" }, "funding": [ { @@ -2021,20 +2021,20 @@ "type": "tidelift" } ], - "time": "2024-02-26T07:52:39+00:00" + "time": "2024-03-27T19:55:25+00:00" }, { "name": "symfony/console", - "version": "v7.0.4", + "version": "v7.0.6", "source": { "type": "git", "url": "https://github.com/symfony/console.git", - "reference": "6b099f3306f7c9c2d2786ed736d0026b2903205f" + "reference": "fde915cd8e7eb99b3d531d3d5c09531429c3f9e5" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/console/zipball/6b099f3306f7c9c2d2786ed736d0026b2903205f", - "reference": "6b099f3306f7c9c2d2786ed736d0026b2903205f", + "url": "https://api.github.com/repos/symfony/console/zipball/fde915cd8e7eb99b3d531d3d5c09531429c3f9e5", + "reference": "fde915cd8e7eb99b3d531d3d5c09531429c3f9e5", "shasum": "" }, "require": { @@ -2098,7 +2098,7 @@ "terminal" ], "support": { - "source": "https://github.com/symfony/console/tree/v7.0.4" + "source": "https://github.com/symfony/console/tree/v7.0.6" }, "funding": [ { @@ -2114,20 +2114,20 @@ "type": "tidelift" } ], - "time": "2024-02-22T20:27:20+00:00" + "time": "2024-04-01T11:04:53+00:00" }, { "name": "symfony/dependency-injection", - "version": "v7.0.4", + "version": "v7.0.6", "source": { "type": "git", "url": "https://github.com/symfony/dependency-injection.git", - "reference": "47f37af245df8457ea63409fc242b3cc825ce5eb" + "reference": "ff57b5c7d518c39eeb4e69dc0d1ec70723a117b9" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/dependency-injection/zipball/47f37af245df8457ea63409fc242b3cc825ce5eb", - "reference": "47f37af245df8457ea63409fc242b3cc825ce5eb", + "url": "https://api.github.com/repos/symfony/dependency-injection/zipball/ff57b5c7d518c39eeb4e69dc0d1ec70723a117b9", + "reference": "ff57b5c7d518c39eeb4e69dc0d1ec70723a117b9", "shasum": "" }, "require": { @@ -2178,7 +2178,7 @@ "description": "Allows you to standardize and centralize the way objects are constructed in your application", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/dependency-injection/tree/v7.0.4" + "source": "https://github.com/symfony/dependency-injection/tree/v7.0.6" }, "funding": [ { @@ -2194,7 +2194,7 @@ "type": "tidelift" } ], - "time": "2024-02-22T20:27:20+00:00" + "time": "2024-03-28T09:20:36+00:00" }, { "name": "symfony/deprecation-contracts", @@ -2265,16 +2265,16 @@ }, { "name": "symfony/doctrine-bridge", - "version": "v7.0.5", + "version": "v7.0.6", "source": { "type": "git", "url": "https://github.com/symfony/doctrine-bridge.git", - "reference": "e3cf34996df541c62acc1bd5f187aacc18a204d2" + "reference": "929527febf8e134eaba620de1f9396da1db0df85" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/doctrine-bridge/zipball/e3cf34996df541c62acc1bd5f187aacc18a204d2", - "reference": "e3cf34996df541c62acc1bd5f187aacc18a204d2", + "url": "https://api.github.com/repos/symfony/doctrine-bridge/zipball/929527febf8e134eaba620de1f9396da1db0df85", + "reference": "929527febf8e134eaba620de1f9396da1db0df85", "shasum": "" }, "require": { @@ -2291,7 +2291,7 @@ "doctrine/orm": "<2.15", "symfony/cache": "<6.4", "symfony/dependency-injection": "<6.4", - "symfony/form": "<6.4", + "symfony/form": "<6.4.6|>=7,<7.0.6", "symfony/http-foundation": "<6.4", "symfony/http-kernel": "<6.4", "symfony/lock": "<6.4", @@ -2312,7 +2312,7 @@ "symfony/dependency-injection": "^6.4|^7.0", "symfony/doctrine-messenger": "^6.4|^7.0", "symfony/expression-language": "^6.4|^7.0", - "symfony/form": "^6.4|^7.0", + "symfony/form": "^6.4.6|^7.0.6", "symfony/http-kernel": "^6.4|^7.0", "symfony/lock": "^6.4|^7.0", "symfony/messenger": "^6.4|^7.0", @@ -2351,7 +2351,7 @@ "description": "Provides integration for Doctrine with various Symfony components", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/doctrine-bridge/tree/v7.0.5" + "source": "https://github.com/symfony/doctrine-bridge/tree/v7.0.6" }, "funding": [ { @@ -2367,20 +2367,20 @@ "type": "tidelift" } ], - "time": "2024-02-27T12:34:35+00:00" + "time": "2024-03-19T09:29:21+00:00" }, { "name": "symfony/error-handler", - "version": "v7.0.4", + "version": "v7.0.6", "source": { "type": "git", "url": "https://github.com/symfony/error-handler.git", - "reference": "677b24759decff69e65b1e9d1471d90f95ced880" + "reference": "46a4cc138f799886d4bd70477c55c699d3e9dfc8" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/error-handler/zipball/677b24759decff69e65b1e9d1471d90f95ced880", - "reference": "677b24759decff69e65b1e9d1471d90f95ced880", + "url": "https://api.github.com/repos/symfony/error-handler/zipball/46a4cc138f799886d4bd70477c55c699d3e9dfc8", + "reference": "46a4cc138f799886d4bd70477c55c699d3e9dfc8", "shasum": "" }, "require": { @@ -2426,7 +2426,7 @@ "description": "Provides tools to manage errors and ease debugging PHP code", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/error-handler/tree/v7.0.4" + "source": "https://github.com/symfony/error-handler/tree/v7.0.6" }, "funding": [ { @@ -2442,7 +2442,7 @@ "type": "tidelift" } ], - "time": "2024-02-22T20:27:20+00:00" + "time": "2024-03-19T11:57:22+00:00" }, { "name": "symfony/event-dispatcher", @@ -2526,16 +2526,16 @@ }, { "name": "symfony/event-dispatcher-contracts", - "version": "v3.4.0", + "version": "v3.4.2", "source": { "type": "git", "url": "https://github.com/symfony/event-dispatcher-contracts.git", - "reference": "a76aed96a42d2b521153fb382d418e30d18b59df" + "reference": "4e64b49bf370ade88e567de29465762e316e4224" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/event-dispatcher-contracts/zipball/a76aed96a42d2b521153fb382d418e30d18b59df", - "reference": "a76aed96a42d2b521153fb382d418e30d18b59df", + "url": "https://api.github.com/repos/symfony/event-dispatcher-contracts/zipball/4e64b49bf370ade88e567de29465762e316e4224", + "reference": "4e64b49bf370ade88e567de29465762e316e4224", "shasum": "" }, "require": { @@ -2582,7 +2582,7 @@ "standards" ], "support": { - "source": "https://github.com/symfony/event-dispatcher-contracts/tree/v3.4.0" + "source": "https://github.com/symfony/event-dispatcher-contracts/tree/v3.4.2" }, "funding": [ { @@ -2598,20 +2598,20 @@ "type": "tidelift" } ], - "time": "2023-05-23T14:45:45+00:00" + "time": "2024-01-23T14:51:35+00:00" }, { "name": "symfony/filesystem", - "version": "v7.0.3", + "version": "v7.0.6", "source": { "type": "git", "url": "https://github.com/symfony/filesystem.git", - "reference": "2890e3a825bc0c0558526c04499c13f83e1b6b12" + "reference": "408105dff4c104454100730bdfd1a9cdd993f04d" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/filesystem/zipball/2890e3a825bc0c0558526c04499c13f83e1b6b12", - "reference": "2890e3a825bc0c0558526c04499c13f83e1b6b12", + "url": "https://api.github.com/repos/symfony/filesystem/zipball/408105dff4c104454100730bdfd1a9cdd993f04d", + "reference": "408105dff4c104454100730bdfd1a9cdd993f04d", "shasum": "" }, "require": { @@ -2645,7 +2645,7 @@ "description": "Provides basic utilities for the filesystem", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/filesystem/tree/v7.0.3" + "source": "https://github.com/symfony/filesystem/tree/v7.0.6" }, "funding": [ { @@ -2661,7 +2661,7 @@ "type": "tidelift" } ], - "time": "2024-01-23T15:02:46+00:00" + "time": "2024-03-21T19:37:36+00:00" }, { "name": "symfony/finder", @@ -2729,16 +2729,16 @@ }, { "name": "symfony/form", - "version": "v7.0.4", + "version": "v7.0.6", "source": { "type": "git", "url": "https://github.com/symfony/form.git", - "reference": "5cfe85c74caf924c7cec2134e169320b464ede84" + "reference": "d5db6599775a563792391d0045decc240e7ebd1e" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/form/zipball/5cfe85c74caf924c7cec2134e169320b464ede84", - "reference": "5cfe85c74caf924c7cec2134e169320b464ede84", + "url": "https://api.github.com/repos/symfony/form/zipball/d5db6599775a563792391d0045decc240e7ebd1e", + "reference": "d5db6599775a563792391d0045decc240e7ebd1e", "shasum": "" }, "require": { @@ -2805,7 +2805,7 @@ "description": "Allows to easily create, process and reuse HTML forms", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/form/tree/v7.0.4" + "source": "https://github.com/symfony/form/tree/v7.0.6" }, "funding": [ { @@ -2821,20 +2821,20 @@ "type": "tidelift" } ], - "time": "2024-02-12T11:15:03+00:00" + "time": "2024-03-28T09:20:36+00:00" }, { "name": "symfony/framework-bundle", - "version": "v7.0.4", + "version": "v7.0.6", "source": { "type": "git", "url": "https://github.com/symfony/framework-bundle.git", - "reference": "b58bcb2f9c32405b8fbaa24a1e38c8a10bad7b21" + "reference": "5ebf6771f92d135c2bdbda7133998feb74713658" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/framework-bundle/zipball/b58bcb2f9c32405b8fbaa24a1e38c8a10bad7b21", - "reference": "b58bcb2f9c32405b8fbaa24a1e38c8a10bad7b21", + "url": "https://api.github.com/repos/symfony/framework-bundle/zipball/5ebf6771f92d135c2bdbda7133998feb74713658", + "reference": "5ebf6771f92d135c2bdbda7133998feb74713658", "shasum": "" }, "require": { @@ -2951,7 +2951,7 @@ "description": "Provides a tight integration between Symfony components and the Symfony full-stack framework", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/framework-bundle/tree/v7.0.4" + "source": "https://github.com/symfony/framework-bundle/tree/v7.0.6" }, "funding": [ { @@ -2967,20 +2967,20 @@ "type": "tidelift" } ], - "time": "2024-02-26T07:52:39+00:00" + "time": "2024-03-27T19:55:25+00:00" }, { "name": "symfony/http-foundation", - "version": "v7.0.4", + "version": "v7.0.6", "source": { "type": "git", "url": "https://github.com/symfony/http-foundation.git", - "reference": "439fdfdd344943254b1ef6278613e79040548045" + "reference": "8789625dcf36e5fbf753014678a1e090f1bc759c" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/http-foundation/zipball/439fdfdd344943254b1ef6278613e79040548045", - "reference": "439fdfdd344943254b1ef6278613e79040548045", + "url": "https://api.github.com/repos/symfony/http-foundation/zipball/8789625dcf36e5fbf753014678a1e090f1bc759c", + "reference": "8789625dcf36e5fbf753014678a1e090f1bc759c", "shasum": "" }, "require": { @@ -3028,7 +3028,7 @@ "description": "Defines an object-oriented layer for the HTTP specification", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/http-foundation/tree/v7.0.4" + "source": "https://github.com/symfony/http-foundation/tree/v7.0.6" }, "funding": [ { @@ -3044,20 +3044,20 @@ "type": "tidelift" } ], - "time": "2024-02-08T19:22:56+00:00" + "time": "2024-03-19T11:46:48+00:00" }, { "name": "symfony/http-kernel", - "version": "v7.0.5", + "version": "v7.0.6", "source": { "type": "git", "url": "https://github.com/symfony/http-kernel.git", - "reference": "37c24ca28f65e3121a68f3dd4daeb36fb1fa2a72" + "reference": "34c872391046d59af804af62d4573b829cfe4824" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/http-kernel/zipball/37c24ca28f65e3121a68f3dd4daeb36fb1fa2a72", - "reference": "37c24ca28f65e3121a68f3dd4daeb36fb1fa2a72", + "url": "https://api.github.com/repos/symfony/http-kernel/zipball/34c872391046d59af804af62d4573b829cfe4824", + "reference": "34c872391046d59af804af62d4573b829cfe4824", "shasum": "" }, "require": { @@ -3140,7 +3140,7 @@ "description": "Provides a structured process for converting a Request into a Response", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/http-kernel/tree/v7.0.5" + "source": "https://github.com/symfony/http-kernel/tree/v7.0.6" }, "funding": [ { @@ -3156,7 +3156,7 @@ "type": "tidelift" } ], - "time": "2024-03-04T21:05:24+00:00" + "time": "2024-04-03T06:12:25+00:00" }, { "name": "symfony/maker-bundle", @@ -4170,16 +4170,16 @@ }, { "name": "symfony/property-access", - "version": "v7.0.4", + "version": "v7.0.6", "source": { "type": "git", "url": "https://github.com/symfony/property-access.git", - "reference": "44e3746d4de8d0961a44ee332c74dd0918266127" + "reference": "1c268ba954ccc5e78cf035b391abb67759e24423" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/property-access/zipball/44e3746d4de8d0961a44ee332c74dd0918266127", - "reference": "44e3746d4de8d0961a44ee332c74dd0918266127", + "url": "https://api.github.com/repos/symfony/property-access/zipball/1c268ba954ccc5e78cf035b391abb67759e24423", + "reference": "1c268ba954ccc5e78cf035b391abb67759e24423", "shasum": "" }, "require": { @@ -4226,7 +4226,7 @@ "reflection" ], "support": { - "source": "https://github.com/symfony/property-access/tree/v7.0.4" + "source": "https://github.com/symfony/property-access/tree/v7.0.6" }, "funding": [ { @@ -4242,20 +4242,20 @@ "type": "tidelift" } ], - "time": "2024-02-16T13:44:10+00:00" + "time": "2024-03-19T11:57:22+00:00" }, { "name": "symfony/property-info", - "version": "v7.0.3", + "version": "v7.0.6", "source": { "type": "git", "url": "https://github.com/symfony/property-info.git", - "reference": "e160f92ea827243abf2dbf36b8460b1377194406" + "reference": "b8844ddce7d53f78b57ec9be59da80fceddf3167" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/property-info/zipball/e160f92ea827243abf2dbf36b8460b1377194406", - "reference": "e160f92ea827243abf2dbf36b8460b1377194406", + "url": "https://api.github.com/repos/symfony/property-info/zipball/b8844ddce7d53f78b57ec9be59da80fceddf3167", + "reference": "b8844ddce7d53f78b57ec9be59da80fceddf3167", "shasum": "" }, "require": { @@ -4309,7 +4309,7 @@ "validator" ], "support": { - "source": "https://github.com/symfony/property-info/tree/v7.0.3" + "source": "https://github.com/symfony/property-info/tree/v7.0.6" }, "funding": [ { @@ -4325,20 +4325,20 @@ "type": "tidelift" } ], - "time": "2024-01-23T15:02:46+00:00" + "time": "2024-03-28T09:20:36+00:00" }, { "name": "symfony/routing", - "version": "v7.0.5", + "version": "v7.0.6", "source": { "type": "git", "url": "https://github.com/symfony/routing.git", - "reference": "ba6bf07d43289c6a4b4591ddb75bc3bc5f069c19" + "reference": "cded64e5bbf9f31786f1055fcc76718fdd77519c" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/routing/zipball/ba6bf07d43289c6a4b4591ddb75bc3bc5f069c19", - "reference": "ba6bf07d43289c6a4b4591ddb75bc3bc5f069c19", + "url": "https://api.github.com/repos/symfony/routing/zipball/cded64e5bbf9f31786f1055fcc76718fdd77519c", + "reference": "cded64e5bbf9f31786f1055fcc76718fdd77519c", "shasum": "" }, "require": { @@ -4390,7 +4390,7 @@ "url" ], "support": { - "source": "https://github.com/symfony/routing/tree/v7.0.5" + "source": "https://github.com/symfony/routing/tree/v7.0.6" }, "funding": [ { @@ -4406,20 +4406,20 @@ "type": "tidelift" } ], - "time": "2024-02-27T12:34:35+00:00" + "time": "2024-03-28T21:02:11+00:00" }, { "name": "symfony/security-bundle", - "version": "v7.0.5", + "version": "v7.0.6", "source": { "type": "git", "url": "https://github.com/symfony/security-bundle.git", - "reference": "5d620bd5493d62d8016b2383d8690fade66163c1" + "reference": "96a9e4eaf76514674d8ffd6127d8ec1204b72e7f" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/security-bundle/zipball/5d620bd5493d62d8016b2383d8690fade66163c1", - "reference": "5d620bd5493d62d8016b2383d8690fade66163c1", + "url": "https://api.github.com/repos/symfony/security-bundle/zipball/96a9e4eaf76514674d8ffd6127d8ec1204b72e7f", + "reference": "96a9e4eaf76514674d8ffd6127d8ec1204b72e7f", "shasum": "" }, "require": { @@ -4501,7 +4501,7 @@ "description": "Provides a tight integration of the Security component into the Symfony full-stack framework", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/security-bundle/tree/v7.0.5" + "source": "https://github.com/symfony/security-bundle/tree/v7.0.6" }, "funding": [ { @@ -4517,7 +4517,7 @@ "type": "tidelift" } ], - "time": "2024-03-02T12:46:12+00:00" + "time": "2024-03-15T12:53:12+00:00" }, { "name": "symfony/security-core", @@ -4760,16 +4760,16 @@ }, { "name": "symfony/service-contracts", - "version": "v3.4.1", + "version": "v3.4.2", "source": { "type": "git", "url": "https://github.com/symfony/service-contracts.git", - "reference": "fe07cbc8d837f60caf7018068e350cc5163681a0" + "reference": "11bbf19a0fb7b36345861e85c5768844c552906e" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/service-contracts/zipball/fe07cbc8d837f60caf7018068e350cc5163681a0", - "reference": "fe07cbc8d837f60caf7018068e350cc5163681a0", + "url": "https://api.github.com/repos/symfony/service-contracts/zipball/11bbf19a0fb7b36345861e85c5768844c552906e", + "reference": "11bbf19a0fb7b36345861e85c5768844c552906e", "shasum": "" }, "require": { @@ -4822,7 +4822,7 @@ "standards" ], "support": { - "source": "https://github.com/symfony/service-contracts/tree/v3.4.1" + "source": "https://github.com/symfony/service-contracts/tree/v3.4.2" }, "funding": [ { @@ -4838,7 +4838,7 @@ "type": "tidelift" } ], - "time": "2023-12-26T14:02:43+00:00" + "time": "2023-12-19T21:51:00+00:00" }, { "name": "symfony/stopwatch", @@ -5084,16 +5084,16 @@ }, { "name": "symfony/translation-contracts", - "version": "v3.4.1", + "version": "v3.4.2", "source": { "type": "git", "url": "https://github.com/symfony/translation-contracts.git", - "reference": "06450585bf65e978026bda220cdebca3f867fde7" + "reference": "43810bdb2ddb5400e5c5e778e27b210a0ca83b6b" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/translation-contracts/zipball/06450585bf65e978026bda220cdebca3f867fde7", - "reference": "06450585bf65e978026bda220cdebca3f867fde7", + "url": "https://api.github.com/repos/symfony/translation-contracts/zipball/43810bdb2ddb5400e5c5e778e27b210a0ca83b6b", + "reference": "43810bdb2ddb5400e5c5e778e27b210a0ca83b6b", "shasum": "" }, "require": { @@ -5142,7 +5142,7 @@ "standards" ], "support": { - "source": "https://github.com/symfony/translation-contracts/tree/v3.4.1" + "source": "https://github.com/symfony/translation-contracts/tree/v3.4.2" }, "funding": [ { @@ -5158,20 +5158,20 @@ "type": "tidelift" } ], - "time": "2023-12-26T14:02:43+00:00" + "time": "2024-01-23T14:51:35+00:00" }, { "name": "symfony/twig-bridge", - "version": "v7.0.4", + "version": "v7.0.6", "source": { "type": "git", "url": "https://github.com/symfony/twig-bridge.git", - "reference": "d16aa4eb5bdaeb6e7407782431dc70530f3b1df5" + "reference": "1d5745dac2e043553177a3b88a76b99c2a2f6c2e" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/twig-bridge/zipball/d16aa4eb5bdaeb6e7407782431dc70530f3b1df5", - "reference": "d16aa4eb5bdaeb6e7407782431dc70530f3b1df5", + "url": "https://api.github.com/repos/symfony/twig-bridge/zipball/1d5745dac2e043553177a3b88a76b99c2a2f6c2e", + "reference": "1d5745dac2e043553177a3b88a76b99c2a2f6c2e", "shasum": "" }, "require": { @@ -5250,7 +5250,7 @@ "description": "Provides integration for Twig with various Symfony components", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/twig-bridge/tree/v7.0.4" + "source": "https://github.com/symfony/twig-bridge/tree/v7.0.6" }, "funding": [ { @@ -5266,7 +5266,7 @@ "type": "tidelift" } ], - "time": "2024-02-15T11:33:06+00:00" + "time": "2024-03-28T21:02:11+00:00" }, { "name": "symfony/twig-bundle", @@ -5354,16 +5354,16 @@ }, { "name": "symfony/validator", - "version": "v7.0.5", + "version": "v7.0.6", "source": { "type": "git", "url": "https://github.com/symfony/validator.git", - "reference": "6a73d479191a0bbbd9ffa3886af6e6ff6e79fb86" + "reference": "a2df2c63b7944a162dee86ab8065f2f91b7d6e36" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/validator/zipball/6a73d479191a0bbbd9ffa3886af6e6ff6e79fb86", - "reference": "6a73d479191a0bbbd9ffa3886af6e6ff6e79fb86", + "url": "https://api.github.com/repos/symfony/validator/zipball/a2df2c63b7944a162dee86ab8065f2f91b7d6e36", + "reference": "a2df2c63b7944a162dee86ab8065f2f91b7d6e36", "shasum": "" }, "require": { @@ -5428,7 +5428,7 @@ "description": "Provides tools to validate values", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/validator/tree/v7.0.5" + "source": "https://github.com/symfony/validator/tree/v7.0.6" }, "funding": [ { @@ -5444,20 +5444,20 @@ "type": "tidelift" } ], - "time": "2024-02-27T12:53:56+00:00" + "time": "2024-03-28T09:20:36+00:00" }, { "name": "symfony/var-dumper", - "version": "v7.0.4", + "version": "v7.0.6", "source": { "type": "git", "url": "https://github.com/symfony/var-dumper.git", - "reference": "e03ad7c1535e623edbb94c22cc42353e488c6670" + "reference": "66d13dc207d5dab6b4f4c2b5460efe1bea29dbfb" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/var-dumper/zipball/e03ad7c1535e623edbb94c22cc42353e488c6670", - "reference": "e03ad7c1535e623edbb94c22cc42353e488c6670", + "url": "https://api.github.com/repos/symfony/var-dumper/zipball/66d13dc207d5dab6b4f4c2b5460efe1bea29dbfb", + "reference": "66d13dc207d5dab6b4f4c2b5460efe1bea29dbfb", "shasum": "" }, "require": { @@ -5511,7 +5511,7 @@ "dump" ], "support": { - "source": "https://github.com/symfony/var-dumper/tree/v7.0.4" + "source": "https://github.com/symfony/var-dumper/tree/v7.0.6" }, "funding": [ { @@ -5527,26 +5527,28 @@ "type": "tidelift" } ], - "time": "2024-02-15T11:33:06+00:00" + "time": "2024-03-19T11:57:22+00:00" }, { "name": "symfony/var-exporter", - "version": "v7.0.4", + "version": "v7.0.6", "source": { "type": "git", "url": "https://github.com/symfony/var-exporter.git", - "reference": "dfb0acb6803eb714f05d97dd4c5abe6d5fa9fe41" + "reference": "c74c568d2a15a1d407cf40d61ea82bc2d521e27b" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/var-exporter/zipball/dfb0acb6803eb714f05d97dd4c5abe6d5fa9fe41", - "reference": "dfb0acb6803eb714f05d97dd4c5abe6d5fa9fe41", + "url": "https://api.github.com/repos/symfony/var-exporter/zipball/c74c568d2a15a1d407cf40d61ea82bc2d521e27b", + "reference": "c74c568d2a15a1d407cf40d61ea82bc2d521e27b", "shasum": "" }, "require": { "php": ">=8.2" }, "require-dev": { + "symfony/property-access": "^6.4|^7.0", + "symfony/serializer": "^6.4|^7.0", "symfony/var-dumper": "^6.4|^7.0" }, "type": "library", @@ -5585,7 +5587,7 @@ "serialize" ], "support": { - "source": "https://github.com/symfony/var-exporter/tree/v7.0.4" + "source": "https://github.com/symfony/var-exporter/tree/v7.0.6" }, "funding": [ { @@ -5601,7 +5603,7 @@ "type": "tidelift" } ], - "time": "2024-02-26T10:35:24+00:00" + "time": "2024-03-20T21:25:22+00:00" }, { "name": "symfony/yaml", @@ -6250,16 +6252,16 @@ }, { "name": "phpunit/phpunit", - "version": "11.0.8", + "version": "11.0.9", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/phpunit.git", - "reference": "48ea58408879a9aad630022186398364051482fc" + "reference": "591bbfe416400385527d5086b346b92c06de404b" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/phpunit/zipball/48ea58408879a9aad630022186398364051482fc", - "reference": "48ea58408879a9aad630022186398364051482fc", + "url": "https://api.github.com/repos/sebastianbergmann/phpunit/zipball/591bbfe416400385527d5086b346b92c06de404b", + "reference": "591bbfe416400385527d5086b346b92c06de404b", "shasum": "" }, "require": { @@ -6330,7 +6332,7 @@ "support": { "issues": "https://github.com/sebastianbergmann/phpunit/issues", "security": "https://github.com/sebastianbergmann/phpunit/security/policy", - "source": "https://github.com/sebastianbergmann/phpunit/tree/11.0.8" + "source": "https://github.com/sebastianbergmann/phpunit/tree/11.0.9" }, "funding": [ { @@ -6346,7 +6348,7 @@ "type": "tidelift" } ], - "time": "2024-03-22T04:21:01+00:00" + "time": "2024-03-28T10:09:42+00:00" }, { "name": "roave/security-advisories", @@ -6354,12 +6356,12 @@ "source": { "type": "git", "url": "https://github.com/Roave/SecurityAdvisories.git", - "reference": "a2c33d8cc3719997b91b628eec3570d725cebf7e" + "reference": "55338196704d6dae11257b34c4f5cdde484dfaa9" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/Roave/SecurityAdvisories/zipball/a2c33d8cc3719997b91b628eec3570d725cebf7e", - "reference": "a2c33d8cc3719997b91b628eec3570d725cebf7e", + "url": "https://api.github.com/repos/Roave/SecurityAdvisories/zipball/55338196704d6dae11257b34c4f5cdde484dfaa9", + "reference": "55338196704d6dae11257b34c4f5cdde484dfaa9", "shasum": "" }, "conflict": { @@ -6375,7 +6377,7 @@ "alterphp/easyadmin-extension-bundle": ">=1.2,<1.2.11|>=1.3,<1.3.1", "amazing/media2click": ">=1,<1.3.3", "amphp/artax": "<1.0.6|>=2,<2.0.6", - "amphp/http": "<1.0.1", + "amphp/http": "<=1.7.2|>=2,<=2.1", "amphp/http-client": ">=4,<4.4", "anchorcms/anchor-cms": "<=0.12.7", "andreapollastri/cipi": "<=3.1.15", @@ -6429,8 +6431,9 @@ "cart2quote/module-quotation": ">=4.1.6,<=4.4.5|>=5,<5.4.4", "cartalyst/sentry": "<=2.1.6", "catfan/medoo": "<1.7.5", + "causal/oidc": "<2.1", "cecil/cecil": "<7.47.1", - "centreon/centreon": "<22.10.0.0-beta1", + "centreon/centreon": "<22.10.15", "cesnet/simplesamlphp-module-proxystatistics": "<3.1", "chriskacerguis/codeigniter-restserver": "<=2.7.1", "civicrm/civicrm-core": ">=4.2,<4.2.9|>=4.3,<4.3.3", @@ -6438,11 +6441,11 @@ "cockpit-hq/cockpit": "<=2.6.3|==2.7", "codeception/codeception": "<3.1.3|>=4,<4.1.22", "codeigniter/framework": "<3.1.9", - "codeigniter4/framework": "<=4.4.2", + "codeigniter4/framework": "<4.4.7", "codeigniter4/shield": "<1.0.0.0-beta8", "codiad/codiad": "<=2.8.4", "composer/composer": "<1.10.27|>=2,<2.2.23|>=2.3,<2.7", - "concrete5/concrete5": "<9.2.7", + "concrete5/concrete5": "<9.2.8", "concrete5/core": "<8.5.8|>=9,<9.1", "contao-components/mediaelement": ">=2.14.2,<2.21.1", "contao/contao": ">=4,<4.4.56|>=4.5,<4.9.40|>=4.10,<4.11.7|>=4.13,<4.13.21|>=5.1,<5.1.4", @@ -6475,7 +6478,7 @@ "doctrine/mongodb-odm": "<1.0.2", "doctrine/mongodb-odm-bundle": "<3.0.1", "doctrine/orm": ">=2,<2.4.8|>=2.5,<2.5.1|>=2.8.3,<2.8.4", - "dolibarr/dolibarr": "<18.0.2", + "dolibarr/dolibarr": "<=19", "dompdf/dompdf": "<2.0.4", "doublethreedigital/guest-entries": "<3.1.2", "drupal/core": ">=6,<6.38|>=7,<7.96|>=8,<10.1.8|>=10.2,<10.2.2", @@ -6537,7 +6540,7 @@ "fooman/tcpdf": "<6.2.22", "forkcms/forkcms": "<5.11.1", "fossar/tcpdf-parser": "<6.2.22", - "francoisjacquet/rosariosis": "<11", + "francoisjacquet/rosariosis": "<=11.5.1", "frappant/frp-form-answers": "<3.1.2|>=4,<4.0.2", "friendsofsymfony/oauth2-php": "<1.3", "friendsofsymfony/rest-bundle": ">=1.2,<1.2.2", @@ -6623,7 +6626,7 @@ "kelvinmo/simplexrd": "<3.1.1", "kevinpapst/kimai2": "<1.16.7", "khodakhah/nodcms": "<=3", - "kimai/kimai": "<2.1", + "kimai/kimai": "<2.13", "kitodo/presentation": "<3.2.3|>=3.3,<3.3.4", "klaviyo/magento2-extension": ">=1,<3", "knplabs/knp-snappy": "<=1.4.2", @@ -6970,6 +6973,7 @@ "userfrosting/userfrosting": ">=0.3.1,<4.6.3", "usmanhalalit/pixie": "<1.0.3|>=2,<2.0.2", "uvdesk/community-skeleton": "<=1.1.1", + "uvdesk/core-framework": "<=1.1.1", "vanilla/safecurl": "<0.9.2", "verot/class.upload.php": "<=2.1.6", "vova07/yii2-fileapi-widget": "<0.1.9", @@ -6989,7 +6993,7 @@ "willdurand/js-translation-bundle": "<2.1.1", "winter/wn-backend-module": "<1.2.4", "winter/wn-system-module": "<1.2.4", - "wintercms/winter": "<1.2.3", + "wintercms/winter": "<=1.2.3", "woocommerce/woocommerce": "<6.6", "wp-cli/wp-cli": ">=0.12,<2.5", "wp-graphql/wp-graphql": "<=1.14.5", @@ -7088,7 +7092,7 @@ "type": "tidelift" } ], - "time": "2024-03-26T22:04:37+00:00" + "time": "2024-04-03T22:04:54+00:00" }, { "name": "sebastian/cli-parser", diff --git a/src/Entity/CameraBase.php b/src/Entity/CameraBase.php index 00af318..a580d87 100644 --- a/src/Entity/CameraBase.php +++ b/src/Entity/CameraBase.php @@ -28,7 +28,7 @@ trait CameraBase { #[ORM\Column(name: 'is_digital', type: 'boolean', nullable: FALSE)] private bool $isDigital; - #[ORM\Column(name: 'crop_factor', type: 'decimal', precision: 10, scale: 0, nullable: FALSE)] + #[ORM\Column(name: 'crop_factor', type: 'string', nullable: FALSE)] private string $cropFactor = '1.0'; #[ORM\Column(name: 'is_working', type: 'boolean', nullable: FALSE)] diff --git a/src/Entity/LensTrait.php b/src/Entity/LensTrait.php index 33e0aec..df33476 100644 --- a/src/Entity/LensTrait.php +++ b/src/Entity/LensTrait.php @@ -43,10 +43,10 @@ trait LensTrait { #[ORM\Column(name: 'mount', type: 'string', length: 40, nullable: TRUE)] private readonly ?string $mount; - #[ORM\Column(name: 'front_filter_size', type: 'decimal', precision: 10, scale: 0, nullable: TRUE)] + #[ORM\Column(name: 'front_filter_size', type: 'string', nullable: TRUE)] private readonly ?string $frontFilterSize; - #[ORM\Column(name: 'rear_filter_size', type: 'decimal', precision: 10, scale: 0, nullable: TRUE)] + #[ORM\Column(name: 'rear_filter_size', type: 'string', nullable: TRUE)] private readonly ?string $rearFilterSize; #[ORM\Column(name: 'is_teleconverter', type: 'boolean', nullable: FALSE)] diff --git a/src/Entity/Motherboard.php b/src/Entity/Motherboard.php index a716cb3..4080eda 100644 --- a/src/Entity/Motherboard.php +++ b/src/Entity/Motherboard.php @@ -53,10 +53,10 @@ class Motherboard { private int $ramSlots; #[ORM\Column(name: 'max_ram', type: 'string', nullable: TRUE)] - private int $ramMaximum; + private ?string $ramMaximum; #[ORM\Column(name: 'max_ram_speed', type: 'string', nullable: TRUE)] - private int $ramMaxSpeed; + private ?string $ramMaxSpeed; // ------------------------------------------------------------------------ // Misc diff --git a/src/Entity/PreviouslyOwnedCpu.php b/src/Entity/PreviouslyOwnedCpu.php index a15f118..1670bde 100644 --- a/src/Entity/PreviouslyOwnedCpu.php +++ b/src/Entity/PreviouslyOwnedCpu.php @@ -20,7 +20,7 @@ class PreviouslyOwnedCpu { /** * @var Collection */ - #[ORM\ManyToMany(targetEntity: Socket::class, inversedBy: 'previously_owned_cpu', fetch: 'LAZY')] + #[ORM\ManyToMany(targetEntity: Socket::class, fetch: 'LAZY')] #[ORM\JoinTable('collection.previously_owned_cpu_socket_link')] #[ORM\JoinColumn('cpu_id', referencedColumnName: 'id')] #[ORM\InverseJoinColumn('socket_id', referencedColumnName: 'id')] diff --git a/src/Entity/Socket.php b/src/Entity/Socket.php index b707ada..757a4d1 100644 --- a/src/Entity/Socket.php +++ b/src/Entity/Socket.php @@ -20,6 +20,11 @@ class Socket implements Stringable { #[ORM\GeneratedValue(strategy: 'IDENTITY')] private int $id; + #[ORM\ManyToOne(targetEntity: Brand::class, fetch: 'EAGER')] + #[ORM\JoinColumn('brand_id', referencedColumnName: 'id', nullable: TRUE)] + #[ORM\OrderBy(['name' => 'asc'])] + private ?Brand $brand; + #[ORM\Column(name: 'name', type: 'string', nullable: FALSE)] private string $name; @@ -44,10 +49,18 @@ class Socket implements Stringable { // ------------------------------------------------------------------------ + public function getLabel(): string + { + $name = (empty($this->otherName)) ? $this->name : "$this->name / $this->otherName"; + + return "{$name} ({$this->type->value} $this->pinCount)"; + } + public function __toString(): string { - $name = (empty($this->otherName)) ? $this->name : "$this->name/$this->otherName"; + $brand = ($this->brand !== null) ? "[{$this->brand->getName()}] " : ""; + $name = $this->getLabel(); - return (string) "{$name} ({$this->type->value} $this->pinCount)"; + return $brand . $name; } } diff --git a/src/Form/BrandCategoryTrait.php b/src/Form/BrandCategoryTrait.php deleted file mode 100644 index b5127f0..0000000 --- a/src/Form/BrandCategoryTrait.php +++ /dev/null @@ -1,16 +0,0 @@ - $e->createQueryBuilder('b') - ->join('b.categories', 'bc') - ->where('bc.name=:name') - ->orderBy('b.name', 'ASC') - ->setParameter('name', $filter); - } -} diff --git a/src/Form/ChipsetType.php b/src/Form/ChipsetType.php index f33a1e3..c4407fb 100644 --- a/src/Form/ChipsetType.php +++ b/src/Form/ChipsetType.php @@ -8,7 +8,7 @@ use Symfony\Component\Form\{AbstractType, FormBuilderInterface}; use Symfony\Component\OptionsResolver\OptionsResolver; class ChipsetType extends AbstractType { - use BrandCategoryTrait; + use FormHelperTrait; public function buildForm(FormBuilderInterface $builder, array $options): void { diff --git a/src/Form/CpuType.php b/src/Form/CpuType.php index 64777cf..af025e6 100644 --- a/src/Form/CpuType.php +++ b/src/Form/CpuType.php @@ -2,7 +2,8 @@ namespace App\Form; -use App\Entity\{Brand, Cpu}; +use App\Entity\ +{Brand, Cpu, Socket}; use App\Enum\CpuArchitecture; use Symfony\Bridge\Doctrine\Form\Type\EntityType; use Symfony\Component\Form\Extension\Core\Type\{EnumType, UrlType}; @@ -11,7 +12,7 @@ use Symfony\Component\OptionsResolver\OptionsResolver; use UnitEnum; class CpuType extends AbstractType { - use BrandCategoryTrait; + use FormHelperTrait; public function buildForm(FormBuilderInterface $builder, array $options): void { @@ -25,7 +26,17 @@ class CpuType extends AbstractType { 'class' => Brand::class, 'query_builder' => self::filterBrands('cpu'), ]) - ->add('sockets') + ->add('sockets', EntityType::class, [ + 'class' => Socket::class, + 'multiple' => true, + 'expanded' => false, + 'query_builder' => self::getSockets(), + 'choice_label' => fn (Socket $socket) => $socket->getLabel(), + 'group_by' => fn (Socket $choice) => $choice->getBrand()?->getName(), + 'attr' => [ + 'rows' => 40, + ], + ]) ->add('productLine') ->add('model') ->add('partNumber') diff --git a/src/Form/FormHelperTrait.php b/src/Form/FormHelperTrait.php new file mode 100644 index 0000000..6576e0f --- /dev/null +++ b/src/Form/FormHelperTrait.php @@ -0,0 +1,36 @@ + $e->createQueryBuilder('b') + ->join('b.categories', 'bc') + ->where('bc.name=:name') + ->orderBy('b.name', 'ASC') + ->setParameter('name', $filter); + } + + public static function getSocketBrands(): callable + { + return static fn (EntityRepository $e) => $e->createQueryBuilder('b') + ->join('b.categories', 'bc') + ->where('bc.name=:name1') + ->orWhere('bc.name=:name2') + ->orderBy('b.name', 'ASC') + ->setParameter('name1', 'cpu') + ->setParameter('name2', 'fpu'); + } + + public static function getSockets(): callable + { + return static fn (EntityRepository $e) => $e->createQueryBuilder('s') + ->leftJoin('s.brand', 'sb') + ->orderBy('sb.name', 'ASC') + ->addOrderBy('s.pinCount', 'ASC') + ->addOrderBy('s.name', 'ASC'); + } +} diff --git a/src/Form/FpuType.php b/src/Form/FpuType.php index 508c513..f0717d8 100644 --- a/src/Form/FpuType.php +++ b/src/Form/FpuType.php @@ -9,7 +9,7 @@ use Symfony\Component\Form\{AbstractType, FormBuilderInterface}; use Symfony\Component\OptionsResolver\OptionsResolver; class FpuType extends AbstractType { - use BrandCategoryTrait; + use FormHelperTrait; public function buildForm(FormBuilderInterface $builder, array $options): void { diff --git a/src/Form/GPUCoreType.php b/src/Form/GPUCoreType.php index 627509c..f7248b0 100644 --- a/src/Form/GPUCoreType.php +++ b/src/Form/GPUCoreType.php @@ -8,7 +8,7 @@ use Symfony\Component\Form\{AbstractType, FormBuilderInterface}; use Symfony\Component\OptionsResolver\OptionsResolver; class GPUCoreType extends AbstractType { - use BrandCategoryTrait; + use FormHelperTrait; public function buildForm(FormBuilderInterface $builder, array $options): void { diff --git a/src/Form/GpuType.php b/src/Form/GpuType.php index d2c3ed3..b22b9ac 100644 --- a/src/Form/GpuType.php +++ b/src/Form/GpuType.php @@ -12,7 +12,7 @@ use Symfony\Component\OptionsResolver\OptionsResolver; use UnitEnum; class GpuType extends AbstractType { - use BrandCategoryTrait; + use FormHelperTrait; public function buildForm(FormBuilderInterface $builder, array $options): void { diff --git a/src/Form/PreviouslyOwnedCameraType.php b/src/Form/PreviouslyOwnedCameraType.php index 4917690..54ac628 100644 --- a/src/Form/PreviouslyOwnedCameraType.php +++ b/src/Form/PreviouslyOwnedCameraType.php @@ -16,6 +16,7 @@ class PreviouslyOwnedCameraType extends AbstractType { { $builder->add('brand') ->add('mount') + ->add('type') ->add('model') ->add('isDigital') ->add('cropFactor') @@ -26,8 +27,7 @@ class PreviouslyOwnedCameraType extends AbstractType { ->add('purchasePrice') ->add('batteryType') ->add('filmFormat') - ->add('received') - ->add('type'); + ->add('received'); } /** diff --git a/src/Form/PreviouslyOwnedCpuType.php b/src/Form/PreviouslyOwnedCpuType.php index b7b7a75..2c15d7c 100644 --- a/src/Form/PreviouslyOwnedCpuType.php +++ b/src/Form/PreviouslyOwnedCpuType.php @@ -12,7 +12,7 @@ use Symfony\Component\OptionsResolver\OptionsResolver; use UnitEnum; class PreviouslyOwnedCpuType extends AbstractType { - use BrandCategoryTrait; + use FormHelperTrait; public function buildForm(FormBuilderInterface $builder, array $options): void { diff --git a/src/Form/PreviouslyOwnedGpuType.php b/src/Form/PreviouslyOwnedGpuType.php index 4ecce0b..4673f17 100644 --- a/src/Form/PreviouslyOwnedGpuType.php +++ b/src/Form/PreviouslyOwnedGpuType.php @@ -13,7 +13,7 @@ use Symfony\Component\OptionsResolver\OptionsResolver; use UnitEnum; class PreviouslyOwnedGpuType extends AbstractType { - use BrandCategoryTrait; + use FormHelperTrait; public function buildForm(FormBuilderInterface $builder, array $options): void { diff --git a/src/Form/SocketTypeForm.php b/src/Form/SocketTypeForm.php index da473c9..41d4597 100644 --- a/src/Form/SocketTypeForm.php +++ b/src/Form/SocketTypeForm.php @@ -2,16 +2,25 @@ namespace App\Form; -use App\Entity\Socket; +use App\Entity\{Brand, Socket}; use App\Enum\SocketType; +use Symfony\Bridge\Doctrine\Form\Type\EntityType; use Symfony\Component\Form\Extension\Core\Type\EnumType; use Symfony\Component\Form\{AbstractType, FormBuilderInterface}; use Symfony\Component\OptionsResolver\OptionsResolver; class SocketTypeForm extends AbstractType { + use FormHelperTrait; + public function buildForm(FormBuilderInterface $builder, array $options): void { $builder + ->add('brand', EntityType::class, [ + 'class' => Brand::class, + 'query_builder' => self::getSocketBrands(), + 'placeholder' => '[Generic]', + 'required' => false, + ]) ->add('name') ->add('otherName') ->add('pinCount') diff --git a/src/Migrations/Version20240404181128.php b/src/Migrations/Version20240404181128.php new file mode 100644 index 0000000..c585ee4 --- /dev/null +++ b/src/Migrations/Version20240404181128.php @@ -0,0 +1,36 @@ +addSql('ALTER TABLE collection.socket ADD brand_id INT DEFAULT NULL'); + $this->addSql('ALTER TABLE collection.socket ADD CONSTRAINT FK_BDDF4BD244F5D008 FOREIGN KEY (brand_id) REFERENCES collection.brand (id) NOT DEFERRABLE INITIALLY IMMEDIATE'); + $this->addSql('CREATE INDEX IDX_BDDF4BD244F5D008 ON collection.socket (brand_id)'); + } + + public function down(Schema $schema): void + { + // this down() migration is auto-generated, please modify it to your needs + $this->addSql('CREATE SCHEMA public'); + $this->addSql('ALTER TABLE collection.socket DROP CONSTRAINT FK_BDDF4BD244F5D008'); + $this->addSql('DROP INDEX IDX_BDDF4BD244F5D008'); + $this->addSql('ALTER TABLE collection.socket DROP brand_id'); + } +} diff --git a/src/Migrations/Version20240404191927.php b/src/Migrations/Version20240404191927.php new file mode 100644 index 0000000..c53312f --- /dev/null +++ b/src/Migrations/Version20240404191927.php @@ -0,0 +1,34 @@ +addSql('ALTER TABLE collection.camera ALTER crop_factor TYPE VARCHAR(255)'); + $this->addSql('ALTER TABLE collection.previously_owned_camera ALTER crop_factor TYPE VARCHAR(255)'); + } + + public function down(Schema $schema): void + { + // this down() migration is auto-generated, please modify it to your needs + $this->addSql('CREATE SCHEMA public'); + $this->addSql('ALTER TABLE collection.previously_owned_camera ALTER crop_factor TYPE NUMERIC(10, 0)'); + $this->addSql('ALTER TABLE collection.camera ALTER crop_factor TYPE NUMERIC(10, 0)'); + } +} diff --git a/src/Migrations/Version20240404194022.php b/src/Migrations/Version20240404194022.php new file mode 100644 index 0000000..d0bcbd6 --- /dev/null +++ b/src/Migrations/Version20240404194022.php @@ -0,0 +1,38 @@ +addSql('ALTER TABLE collection.lenses ALTER front_filter_size TYPE VARCHAR(255)'); + $this->addSql('ALTER TABLE collection.lenses ALTER rear_filter_size TYPE VARCHAR(255)'); + $this->addSql('ALTER TABLE collection.previously_owned_lenses ALTER front_filter_size TYPE VARCHAR(255)'); + $this->addSql('ALTER TABLE collection.previously_owned_lenses ALTER rear_filter_size TYPE VARCHAR(255)'); + } + + public function down(Schema $schema): void + { + // this down() migration is auto-generated, please modify it to your needs + $this->addSql('CREATE SCHEMA public'); + $this->addSql('ALTER TABLE collection.lenses ALTER front_filter_size TYPE NUMERIC(10, 0)'); + $this->addSql('ALTER TABLE collection.lenses ALTER rear_filter_size TYPE NUMERIC(10, 0)'); + $this->addSql('ALTER TABLE collection.previously_owned_lenses ALTER front_filter_size TYPE NUMERIC(10, 0)'); + $this->addSql('ALTER TABLE collection.previously_owned_lenses ALTER rear_filter_size TYPE NUMERIC(10, 0)'); + } +} diff --git a/src/Migrations/Version20240404194147.php b/src/Migrations/Version20240404194147.php new file mode 100644 index 0000000..95a5bc6 --- /dev/null +++ b/src/Migrations/Version20240404194147.php @@ -0,0 +1,186 @@ +addSql('ALTER TABLE collection.brand ALTER id DROP DEFAULT'); + $this->addSql('ALTER TABLE collection.brand ALTER id ADD GENERATED BY DEFAULT AS IDENTITY'); + $this->addSql('ALTER TABLE collection.brand ALTER name TYPE VARCHAR(255)'); + $this->addSql('ALTER TABLE collection.brand_category ALTER category_name TYPE VARCHAR(255)'); + $this->addSql('ALTER TABLE collection.camera ALTER id DROP DEFAULT'); + $this->addSql('ALTER TABLE collection.camera ALTER id ADD GENERATED BY DEFAULT AS IDENTITY'); + $this->addSql('ALTER TABLE collection.camera ALTER battery_type TYPE VARCHAR(255)'); + $this->addSql('ALTER TABLE collection.camera ALTER film_format TYPE VARCHAR(255)'); + $this->addSql('ALTER TABLE collection.camera_type ALTER id DROP DEFAULT'); + $this->addSql('ALTER TABLE collection.camera_type ALTER id ADD GENERATED BY DEFAULT AS IDENTITY'); + $this->addSql('ALTER TABLE collection.chipset ALTER id DROP DEFAULT'); + $this->addSql('ALTER TABLE collection.chipset ALTER id ADD GENERATED BY DEFAULT AS IDENTITY'); + $this->addSql('ALTER TABLE collection.cpu ALTER id DROP DEFAULT'); + $this->addSql('ALTER TABLE collection.cpu ALTER id ADD GENERATED BY DEFAULT AS IDENTITY'); + $this->addSql('ALTER TABLE collection.expansion_slot ALTER id DROP DEFAULT'); + $this->addSql('ALTER TABLE collection.expansion_slot ALTER id ADD GENERATED BY DEFAULT AS IDENTITY'); + $this->addSql('ALTER TABLE collection.film ALTER id DROP DEFAULT'); + $this->addSql('ALTER TABLE collection.film ALTER id ADD GENERATED BY DEFAULT AS IDENTITY'); + $this->addSql('ALTER TABLE collection.film_format ALTER id ADD GENERATED BY DEFAULT AS IDENTITY'); + $this->addSql('ALTER TABLE collection.flash ALTER id DROP DEFAULT'); + $this->addSql('ALTER TABLE collection.flash ALTER id ADD GENERATED BY DEFAULT AS IDENTITY'); + $this->addSql('ALTER TABLE collection.flash ALTER brand TYPE VARCHAR(255)'); + $this->addSql('ALTER TABLE collection.flash ALTER model TYPE VARCHAR(255)'); + $this->addSql('ALTER TABLE collection.flash ALTER ttl_type TYPE VARCHAR(255)'); + $this->addSql('ALTER TABLE collection.flash ALTER p_ttl_type TYPE VARCHAR(255)'); + $this->addSql('ALTER TABLE collection.flash ALTER guide_number TYPE VARCHAR(255)'); + $this->addSql('ALTER TABLE collection.flash ALTER batteries TYPE VARCHAR(255)'); + $this->addSql('ALTER TABLE collection.flash ALTER serial TYPE VARCHAR(255)'); + $this->addSql('ALTER TABLE collection.fpu ALTER id DROP DEFAULT'); + $this->addSql('ALTER TABLE collection.fpu ALTER id ADD GENERATED BY DEFAULT AS IDENTITY'); + $this->addSql('ALTER TABLE collection.gpu ALTER id DROP DEFAULT'); + $this->addSql('ALTER TABLE collection.gpu ALTER id ADD GENERATED BY DEFAULT AS IDENTITY'); + $this->addSql('ALTER TABLE collection.gpu ALTER reference_model_name TYPE VARCHAR(255)'); + $this->addSql('ALTER TABLE collection.gpu ALTER alternate_model_name TYPE VARCHAR(255)'); + $this->addSql('ALTER TABLE collection.gpu ALTER card_key TYPE VARCHAR(255)'); + $this->addSql('ALTER TABLE collection.gpu ALTER link TYPE VARCHAR(255)'); + $this->addSql('ALTER TABLE collection.gpu ALTER bus_interface TYPE VARCHAR(255)'); + $this->addSql('ALTER TABLE collection.gpu ALTER memory_type TYPE VARCHAR(255)'); + $this->addSql('ALTER TABLE collection.gpu ALTER l1_cache TYPE VARCHAR(255)'); + $this->addSql('ALTER TABLE collection.gpu ALTER l2_cache TYPE VARCHAR(255)'); + $this->addSql('ALTER TABLE collection.gpu ALTER direct_x_support TYPE VARCHAR(255)'); + $this->addSql('ALTER TABLE collection.gpu ALTER opengl_support TYPE VARCHAR(255)'); + $this->addSql('ALTER TABLE collection.gpu ALTER opencl_support TYPE VARCHAR(255)'); + $this->addSql('ALTER TABLE collection.gpu ALTER vulkan_support TYPE VARCHAR(255)'); + $this->addSql('ALTER TABLE collection.gpu ALTER shader_model TYPE VARCHAR(255)'); + $this->addSql('ALTER TABLE collection.gpu_core ALTER id DROP DEFAULT'); + $this->addSql('ALTER TABLE collection.gpu_core ALTER id ADD GENERATED BY DEFAULT AS IDENTITY'); + $this->addSql('ALTER TABLE collection.gpu_core ALTER name TYPE VARCHAR(255)'); + $this->addSql('ALTER TABLE collection.gpu_core ALTER variant TYPE VARCHAR(255)'); + $this->addSql('ALTER TABLE collection.gpu_core ALTER generation_name TYPE VARCHAR(255)'); + $this->addSql('ALTER TABLE collection.gpu_core ALTER architecture TYPE VARCHAR(255)'); + $this->addSql('ALTER TABLE collection.gpu_core ALTER architecture_link TYPE VARCHAR(255)'); + $this->addSql('ALTER TABLE collection.gpu_core ALTER generation_link TYPE VARCHAR(255)'); + $this->addSql('ALTER TABLE collection.lenses ALTER id DROP DEFAULT'); + $this->addSql('ALTER TABLE collection.lenses ALTER id ADD GENERATED BY DEFAULT AS IDENTITY'); + $this->addSql('ALTER TABLE collection.motherboard ALTER id DROP DEFAULT'); + $this->addSql('ALTER TABLE collection.motherboard ALTER id ADD GENERATED BY DEFAULT AS IDENTITY'); + $this->addSql('ALTER TABLE collection.previously_owned_camera ALTER id DROP DEFAULT'); + $this->addSql('ALTER TABLE collection.previously_owned_camera ALTER id ADD GENERATED BY DEFAULT AS IDENTITY'); + $this->addSql('ALTER TABLE collection.previously_owned_camera ALTER battery_type TYPE VARCHAR(255)'); + $this->addSql('ALTER TABLE collection.previously_owned_camera ALTER film_format TYPE VARCHAR(255)'); + $this->addSql('ALTER TABLE collection.previously_owned_cpu ALTER id DROP DEFAULT'); + $this->addSql('ALTER TABLE collection.previously_owned_cpu ALTER id ADD GENERATED BY DEFAULT AS IDENTITY'); + $this->addSql('ALTER TABLE collection.previously_owned_flash ALTER id DROP DEFAULT'); + $this->addSql('ALTER TABLE collection.previously_owned_flash ALTER id ADD GENERATED BY DEFAULT AS IDENTITY'); + $this->addSql('ALTER TABLE collection.previously_owned_flash ALTER brand TYPE VARCHAR(255)'); + $this->addSql('ALTER TABLE collection.previously_owned_flash ALTER model TYPE VARCHAR(255)'); + $this->addSql('ALTER TABLE collection.previously_owned_flash ALTER ttl_type TYPE VARCHAR(255)'); + $this->addSql('ALTER TABLE collection.previously_owned_flash ALTER p_ttl_type TYPE VARCHAR(255)'); + $this->addSql('ALTER TABLE collection.previously_owned_flash ALTER guide_number TYPE VARCHAR(255)'); + $this->addSql('ALTER TABLE collection.previously_owned_flash ALTER batteries TYPE VARCHAR(255)'); + $this->addSql('ALTER TABLE collection.previously_owned_flash ALTER serial TYPE VARCHAR(255)'); + $this->addSql('ALTER TABLE collection.previously_owned_gpu ALTER id DROP DEFAULT'); + $this->addSql('ALTER TABLE collection.previously_owned_gpu ALTER id ADD GENERATED BY DEFAULT AS IDENTITY'); + $this->addSql('ALTER TABLE collection.previously_owned_lenses ALTER id DROP DEFAULT'); + $this->addSql('ALTER TABLE collection.previously_owned_lenses ALTER id ADD GENERATED BY DEFAULT AS IDENTITY'); + $this->addSql('ALTER TABLE collection.socket ALTER id DROP DEFAULT'); + $this->addSql('ALTER TABLE collection.socket ALTER id ADD GENERATED BY DEFAULT AS IDENTITY'); + } + + public function down(Schema $schema): void + { + // this down() migration is auto-generated, please modify it to your needs + $this->addSql('CREATE SCHEMA public'); + $this->addSql('ALTER TABLE collection.previously_owned_cpu ALTER id SET DEFAULT collection.previously_owned_cpu_id_seq'); + $this->addSql('ALTER TABLE collection.previously_owned_cpu ALTER id DROP IDENTITY'); + $this->addSql('ALTER TABLE collection.socket ALTER id SET DEFAULT collection.socket_id_seq'); + $this->addSql('ALTER TABLE collection.socket ALTER id DROP IDENTITY'); + $this->addSql('ALTER TABLE collection.film ALTER id SET DEFAULT collection.film_id_seq'); + $this->addSql('ALTER TABLE collection.film ALTER id DROP IDENTITY'); + $this->addSql('ALTER TABLE collection.flash ALTER id SET DEFAULT collection.flash_id_seq'); + $this->addSql('ALTER TABLE collection.flash ALTER id DROP IDENTITY'); + $this->addSql('ALTER TABLE collection.flash ALTER brand TYPE VARCHAR'); + $this->addSql('ALTER TABLE collection.flash ALTER model TYPE VARCHAR'); + $this->addSql('ALTER TABLE collection.flash ALTER ttl_type TYPE VARCHAR'); + $this->addSql('ALTER TABLE collection.flash ALTER p_ttl_type TYPE VARCHAR'); + $this->addSql('ALTER TABLE collection.flash ALTER guide_number TYPE VARCHAR'); + $this->addSql('ALTER TABLE collection.flash ALTER batteries TYPE VARCHAR'); + $this->addSql('ALTER TABLE collection.flash ALTER serial TYPE VARCHAR'); + $this->addSql('ALTER TABLE collection.lenses ALTER id SET DEFAULT collection.lenses_id_seq'); + $this->addSql('ALTER TABLE collection.lenses ALTER id DROP IDENTITY'); + $this->addSql('ALTER TABLE collection.expansion_slot ALTER id SET DEFAULT collection.expansion_slot_id_seq'); + $this->addSql('ALTER TABLE collection.expansion_slot ALTER id DROP IDENTITY'); + $this->addSql('ALTER TABLE collection.gpu ALTER id SET DEFAULT collection.gpu_id_seq'); + $this->addSql('ALTER TABLE collection.gpu ALTER id DROP IDENTITY'); + $this->addSql('ALTER TABLE collection.gpu ALTER reference_model_name TYPE VARCHAR'); + $this->addSql('ALTER TABLE collection.gpu ALTER alternate_model_name TYPE VARCHAR'); + $this->addSql('ALTER TABLE collection.gpu ALTER card_key TYPE VARCHAR'); + $this->addSql('ALTER TABLE collection.gpu ALTER bus_interface TYPE VARCHAR'); + $this->addSql('ALTER TABLE collection.gpu ALTER memory_type TYPE VARCHAR'); + $this->addSql('ALTER TABLE collection.gpu ALTER l1_cache TYPE VARCHAR'); + $this->addSql('ALTER TABLE collection.gpu ALTER l2_cache TYPE VARCHAR'); + $this->addSql('ALTER TABLE collection.gpu ALTER direct_x_support TYPE VARCHAR'); + $this->addSql('ALTER TABLE collection.gpu ALTER opengl_support TYPE VARCHAR'); + $this->addSql('ALTER TABLE collection.gpu ALTER opencl_support TYPE VARCHAR'); + $this->addSql('ALTER TABLE collection.gpu ALTER vulkan_support TYPE VARCHAR'); + $this->addSql('ALTER TABLE collection.gpu ALTER shader_model TYPE VARCHAR'); + $this->addSql('ALTER TABLE collection.gpu ALTER link TYPE VARCHAR'); + $this->addSql('ALTER TABLE collection.previously_owned_camera ALTER id SET DEFAULT collection.previously_owned_camera_id_seq'); + $this->addSql('ALTER TABLE collection.previously_owned_camera ALTER id DROP IDENTITY'); + $this->addSql('ALTER TABLE collection.previously_owned_camera ALTER battery_type TYPE VARCHAR'); + $this->addSql('ALTER TABLE collection.previously_owned_camera ALTER film_format TYPE VARCHAR'); + $this->addSql('ALTER TABLE collection.cpu ALTER id SET DEFAULT collection.cpu_id_seq'); + $this->addSql('ALTER TABLE collection.cpu ALTER id DROP IDENTITY'); + $this->addSql('ALTER TABLE collection.fpu ALTER id SET DEFAULT collection.fpu_id_seq'); + $this->addSql('ALTER TABLE collection.fpu ALTER id DROP IDENTITY'); + $this->addSql('ALTER TABLE collection.previously_owned_gpu ALTER id SET DEFAULT collection.previously_owned_gpu_id_seq'); + $this->addSql('ALTER TABLE collection.previously_owned_gpu ALTER id DROP IDENTITY'); + $this->addSql('ALTER TABLE collection.brand ALTER id SET DEFAULT collection.brand_id_seq'); + $this->addSql('ALTER TABLE collection.brand ALTER id DROP IDENTITY'); + $this->addSql('ALTER TABLE collection.brand ALTER name TYPE VARCHAR'); + $this->addSql('ALTER TABLE collection.camera_type ALTER id SET DEFAULT collection.camera_type_id_seq'); + $this->addSql('ALTER TABLE collection.camera_type ALTER id DROP IDENTITY'); + $this->addSql('ALTER TABLE collection.camera ALTER id SET DEFAULT collection.camera_id_seq'); + $this->addSql('ALTER TABLE collection.camera ALTER id DROP IDENTITY'); + $this->addSql('ALTER TABLE collection.camera ALTER battery_type TYPE VARCHAR'); + $this->addSql('ALTER TABLE collection.camera ALTER film_format TYPE VARCHAR'); + $this->addSql('ALTER TABLE collection.brand_category ALTER category_name TYPE VARCHAR'); + $this->addSql('ALTER TABLE collection.previously_owned_lenses ALTER id SET DEFAULT collection.previously_owned_lenses_id_seq'); + $this->addSql('ALTER TABLE collection.previously_owned_lenses ALTER id DROP IDENTITY'); + $this->addSql('ALTER TABLE collection.chipset ALTER id SET DEFAULT collection.chipset_id_seq'); + $this->addSql('ALTER TABLE collection.chipset ALTER id DROP IDENTITY'); + $this->addSql('ALTER TABLE collection.film_format ALTER id DROP IDENTITY'); + $this->addSql('ALTER TABLE collection.motherboard ALTER id SET DEFAULT collection.motherboard_id_seq'); + $this->addSql('ALTER TABLE collection.motherboard ALTER id DROP IDENTITY'); + $this->addSql('ALTER TABLE collection.previously_owned_flash ALTER id SET DEFAULT collection.previously_owned_flash_id_seq'); + $this->addSql('ALTER TABLE collection.previously_owned_flash ALTER id DROP IDENTITY'); + $this->addSql('ALTER TABLE collection.previously_owned_flash ALTER brand TYPE VARCHAR'); + $this->addSql('ALTER TABLE collection.previously_owned_flash ALTER model TYPE VARCHAR'); + $this->addSql('ALTER TABLE collection.previously_owned_flash ALTER ttl_type TYPE VARCHAR'); + $this->addSql('ALTER TABLE collection.previously_owned_flash ALTER p_ttl_type TYPE VARCHAR'); + $this->addSql('ALTER TABLE collection.previously_owned_flash ALTER guide_number TYPE VARCHAR'); + $this->addSql('ALTER TABLE collection.previously_owned_flash ALTER batteries TYPE VARCHAR'); + $this->addSql('ALTER TABLE collection.previously_owned_flash ALTER serial TYPE VARCHAR'); + $this->addSql('ALTER TABLE collection.gpu_core ALTER id SET DEFAULT collection.gpu_core_id_seq'); + $this->addSql('ALTER TABLE collection.gpu_core ALTER id DROP IDENTITY'); + $this->addSql('ALTER TABLE collection.gpu_core ALTER name TYPE VARCHAR'); + $this->addSql('ALTER TABLE collection.gpu_core ALTER variant TYPE VARCHAR'); + $this->addSql('ALTER TABLE collection.gpu_core ALTER generation_name TYPE VARCHAR'); + $this->addSql('ALTER TABLE collection.gpu_core ALTER generation_link TYPE VARCHAR'); + $this->addSql('ALTER TABLE collection.gpu_core ALTER architecture TYPE VARCHAR'); + $this->addSql('ALTER TABLE collection.gpu_core ALTER architecture_link TYPE VARCHAR'); + } +} diff --git a/templates/previouslyownedcamera/edit.html.twig b/templates/previouslyownedcamera/edit.html.twig index 9892819..a3d1ed9 100644 --- a/templates/previouslyownedcamera/edit.html.twig +++ b/templates/previouslyownedcamera/edit.html.twig @@ -5,7 +5,7 @@ {% endblock %} {% block form %} -

Edit Camera

+

Edit Previously Owned Camera

    diff --git a/templates/socket/index.html.twig b/templates/socket/index.html.twig index d9db568..fad246f 100644 --- a/templates/socket/index.html.twig +++ b/templates/socket/index.html.twig @@ -18,6 +18,7 @@   Id + Brand Name OtherName PinCount @@ -39,6 +40,11 @@
{{ socket.id }} + + {% if socket.brand %} + {{ socket.brand.name }} + {% endif %} + {{ socket.name }} {{ socket.otherName }} {{ socket.pinCount }} diff --git a/templates/socket/show.html.twig b/templates/socket/show.html.twig index 5d1b7be..4600d20 100644 --- a/templates/socket/show.html.twig +++ b/templates/socket/show.html.twig @@ -33,6 +33,16 @@ Id {{ socket.id }} + + Brand + + {% if socket.brand %} + {{ socket.brand.name }} + {% else %} + [Generic] + {% endif %} + + Name {{ socket.name }}