diff --git a/.github/workflows/continuous-integration.yml b/.github/workflows/continuous-integration.yml index 16370820b8..9f751ebeee 100644 --- a/.github/workflows/continuous-integration.yml +++ b/.github/workflows/continuous-integration.yml @@ -20,7 +20,7 @@ jobs: name: "Generate CI matrix" uses: "glpi-project/plugin-ci-workflows/.github/workflows/generate-ci-matrix.yml@v1" with: - glpi-version: "11.0.x" + glpi-version: "12.0.x" ci: name: "GLPI ${{ matrix.glpi-version }} - php:${{ matrix.php-version }} - ${{ matrix.db-image }}" needs: "generate-ci-matrix" diff --git a/CHANGELOG.md b/CHANGELOG.md index 9ee8a97de3..a677c5171a 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -7,6 +7,10 @@ and this project adheres to [Semantic Versioning](http://semver.org/). ## [UNRELEASED] +### Added + +- GLPI 12 compatibility + ### Fixed - Fix `Take item delivery` and `Cancel reception` action for `Software License` diff --git a/Makefile b/Makefile new file mode 100644 index 0000000000..ef1bed5ac8 --- /dev/null +++ b/Makefile @@ -0,0 +1 @@ +include ../../PluginsMakefile.mk diff --git a/ajax/billactions.php b/ajax/billactions.php index 1287c21992..225d2960c2 100644 --- a/ajax/billactions.php +++ b/ajax/billactions.php @@ -28,7 +28,7 @@ * ------------------------------------------------------------------------- */ -Session::checkRight("plugin_order_bill", READ); +Session::checkRight(PluginOrderBill::$rightname, READ); header("Content-Type: text/html; charset=UTF-8"); diff --git a/ajax/dropdownReference.php b/ajax/dropdownReference.php index 33595b0aff..a0bea7b6d9 100644 --- a/ajax/dropdownReference.php +++ b/ajax/dropdownReference.php @@ -33,7 +33,7 @@ include_once(__DIR__ . "/../../../inc/includes.php"); -Session::checkRight("plugin_order_reference", READ); +Session::checkRight(PluginOrderReference::$rightname, READ); // Make a select box for references if (isset($_POST["itemtype"])) { diff --git a/ajax/dropdownSupplier.php b/ajax/dropdownSupplier.php index 43d524dc40..2b142d7507 100644 --- a/ajax/dropdownSupplier.php +++ b/ajax/dropdownSupplier.php @@ -35,7 +35,7 @@ Html::header_nocache(); } -Session::checkRight("contact_enterprise", READ); +Session::checkRight(Contact::$rightname, READ); // Make a select box if (isset($_POST["suppliers_id"])) { diff --git a/composer.json b/composer.json index 263a787aae..0a45531210 100644 --- a/composer.json +++ b/composer.json @@ -4,9 +4,6 @@ "php": ">=8.2", "sboden/odtphp": "^3.2" }, - "require-dev": { - "glpi-project/tools": "^0.8" - }, "config": { "optimize-autoloader": true, "platform": { diff --git a/composer.lock b/composer.lock index 7295f72ee9..5af9ec3850 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": "2bde386e0433e43036c970ecd142d686", + "content-hash": "9983e2a4f2c2e3a6e4da04c757167a2d", "packages": [ { "name": "sboden/odtphp", @@ -61,879 +61,7 @@ "time": "2025-07-24T20:26:09+00:00" } ], - "packages-dev": [ - { - "name": "glpi-project/tools", - "version": "0.8.3", - "source": { - "type": "git", - "url": "https://github.com/glpi-project/tools.git", - "reference": "8ea2a7d4702a858f4b0360ba7d4f1841a5e77026" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/glpi-project/tools/zipball/8ea2a7d4702a858f4b0360ba7d4f1841a5e77026", - "reference": "8ea2a7d4702a858f4b0360ba7d4f1841a5e77026", - "shasum": "" - }, - "require": { - "symfony/console": "^5.4 || ^6.0", - "twig/twig": "^3.3" - }, - "require-dev": { - "nikic/php-parser": "^4.13", - "phpstan/phpstan-src": "^1.10" - }, - "bin": [ - "bin/extract-locales", - "bin/licence-headers-check", - "tools/plugin-release" - ], - "type": "library", - "autoload": { - "psr-4": { - "GlpiProject\\Tools\\": "src/" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "GPL-3.0-or-later" - ], - "authors": [ - { - "name": "Teclib'", - "email": "glpi@teclib.com", - "homepage": "http://teclib-group.com" - } - ], - "description": "Various tools for GLPI and its plugins", - "keywords": [ - "glpi", - "plugins", - "tools" - ], - "support": { - "issues": "https://github.com/glpi-project/tools/issues", - "source": "https://github.com/glpi-project/tools" - }, - "time": "2025-10-14T10:26:06+00:00" - }, - { - "name": "psr/container", - "version": "2.0.2", - "source": { - "type": "git", - "url": "https://github.com/php-fig/container.git", - "reference": "c71ecc56dfe541dbd90c5360474fbc405f8d5963" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/php-fig/container/zipball/c71ecc56dfe541dbd90c5360474fbc405f8d5963", - "reference": "c71ecc56dfe541dbd90c5360474fbc405f8d5963", - "shasum": "" - }, - "require": { - "php": ">=7.4.0" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "2.0.x-dev" - } - }, - "autoload": { - "psr-4": { - "Psr\\Container\\": "src/" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "PHP-FIG", - "homepage": "https://www.php-fig.org/" - } - ], - "description": "Common Container Interface (PHP FIG PSR-11)", - "homepage": "https://github.com/php-fig/container", - "keywords": [ - "PSR-11", - "container", - "container-interface", - "container-interop", - "psr" - ], - "support": { - "issues": "https://github.com/php-fig/container/issues", - "source": "https://github.com/php-fig/container/tree/2.0.2" - }, - "time": "2021-11-05T16:47:00+00:00" - }, - { - "name": "symfony/console", - "version": "v6.4.43", - "source": { - "type": "git", - "url": "https://github.com/symfony/console.git", - "reference": "3b643aa587acbc42f967a429af088a56ed8f046d" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/symfony/console/zipball/3b643aa587acbc42f967a429af088a56ed8f046d", - "reference": "3b643aa587acbc42f967a429af088a56ed8f046d", - "shasum": "" - }, - "require": { - "php": ">=8.1", - "symfony/deprecation-contracts": "^2.5|^3", - "symfony/polyfill-mbstring": "~1.0", - "symfony/service-contracts": "^2.5|^3", - "symfony/string": "^5.4|^6.0|^7.0" - }, - "conflict": { - "symfony/dependency-injection": "<5.4", - "symfony/dotenv": "<5.4", - "symfony/event-dispatcher": "<5.4", - "symfony/lock": "<5.4", - "symfony/process": "<5.4" - }, - "provide": { - "psr/log-implementation": "1.0|2.0|3.0" - }, - "require-dev": { - "psr/log": "^1|^2|^3", - "symfony/config": "^5.4|^6.0|^7.0", - "symfony/dependency-injection": "^5.4|^6.0|^7.0", - "symfony/event-dispatcher": "^5.4|^6.0|^7.0", - "symfony/http-foundation": "^6.4|^7.0", - "symfony/http-kernel": "^6.4|^7.0", - "symfony/lock": "^5.4|^6.0|^7.0", - "symfony/messenger": "^5.4|^6.0|^7.0", - "symfony/process": "^5.4|^6.0|^7.0", - "symfony/stopwatch": "^5.4|^6.0|^7.0", - "symfony/var-dumper": "^5.4|^6.0|^7.0" - }, - "type": "library", - "autoload": { - "psr-4": { - "Symfony\\Component\\Console\\": "" - }, - "exclude-from-classmap": [ - "/Tests/" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Fabien Potencier", - "email": "fabien@symfony.com" - }, - { - "name": "Symfony Community", - "homepage": "https://symfony.com/contributors" - } - ], - "description": "Eases the creation of beautiful and testable command line interfaces", - "homepage": "https://symfony.com", - "keywords": [ - "cli", - "command-line", - "console", - "terminal" - ], - "support": { - "source": "https://github.com/symfony/console/tree/v6.4.43" - }, - "funding": [ - { - "url": "https://symfony.com/sponsor", - "type": "custom" - }, - { - "url": "https://github.com/fabpot", - "type": "github" - }, - { - "url": "https://github.com/nicolas-grekas", - "type": "github" - }, - { - "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", - "type": "tidelift" - } - ], - "time": "2026-07-26T14:44:19+00:00" - }, - { - "name": "symfony/deprecation-contracts", - "version": "v3.7.1", - "source": { - "type": "git", - "url": "https://github.com/symfony/deprecation-contracts.git", - "reference": "f3202fa1b5097b0af062dc978b32ecf63404e31d" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/symfony/deprecation-contracts/zipball/f3202fa1b5097b0af062dc978b32ecf63404e31d", - "reference": "f3202fa1b5097b0af062dc978b32ecf63404e31d", - "shasum": "" - }, - "require": { - "php": ">=8.1" - }, - "type": "library", - "extra": { - "thanks": { - "url": "https://github.com/symfony/contracts", - "name": "symfony/contracts" - }, - "branch-alias": { - "dev-main": "3.7-dev" - } - }, - "autoload": { - "files": [ - "function.php" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Nicolas Grekas", - "email": "p@tchwork.com" - }, - { - "name": "Symfony Community", - "homepage": "https://symfony.com/contributors" - } - ], - "description": "A generic function and convention to trigger deprecation notices", - "homepage": "https://symfony.com", - "support": { - "source": "https://github.com/symfony/deprecation-contracts/tree/v3.7.1" - }, - "funding": [ - { - "url": "https://symfony.com/sponsor", - "type": "custom" - }, - { - "url": "https://github.com/fabpot", - "type": "github" - }, - { - "url": "https://github.com/nicolas-grekas", - "type": "github" - }, - { - "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", - "type": "tidelift" - } - ], - "time": "2026-06-05T06:23:12+00:00" - }, - { - "name": "symfony/polyfill-ctype", - "version": "v1.37.0", - "source": { - "type": "git", - "url": "https://github.com/symfony/polyfill-ctype.git", - "reference": "141046a8f9477948ff284fa65be2095baafb94f2" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-ctype/zipball/141046a8f9477948ff284fa65be2095baafb94f2", - "reference": "141046a8f9477948ff284fa65be2095baafb94f2", - "shasum": "" - }, - "require": { - "php": ">=7.2" - }, - "provide": { - "ext-ctype": "*" - }, - "suggest": { - "ext-ctype": "For best performance" - }, - "type": "library", - "extra": { - "thanks": { - "url": "https://github.com/symfony/polyfill", - "name": "symfony/polyfill" - } - }, - "autoload": { - "files": [ - "bootstrap.php" - ], - "psr-4": { - "Symfony\\Polyfill\\Ctype\\": "" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Gert de Pagter", - "email": "BackEndTea@gmail.com" - }, - { - "name": "Symfony Community", - "homepage": "https://symfony.com/contributors" - } - ], - "description": "Symfony polyfill for ctype functions", - "homepage": "https://symfony.com", - "keywords": [ - "compatibility", - "ctype", - "polyfill", - "portable" - ], - "support": { - "source": "https://github.com/symfony/polyfill-ctype/tree/v1.37.0" - }, - "funding": [ - { - "url": "https://symfony.com/sponsor", - "type": "custom" - }, - { - "url": "https://github.com/fabpot", - "type": "github" - }, - { - "url": "https://github.com/nicolas-grekas", - "type": "github" - }, - { - "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", - "type": "tidelift" - } - ], - "time": "2026-04-10T16:19:22+00:00" - }, - { - "name": "symfony/polyfill-intl-grapheme", - "version": "v1.41.0", - "source": { - "type": "git", - "url": "https://github.com/symfony/polyfill-intl-grapheme.git", - "reference": "bb899c1db0aa8127dc3afe8cda4a67eb24915f8d" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-intl-grapheme/zipball/bb899c1db0aa8127dc3afe8cda4a67eb24915f8d", - "reference": "bb899c1db0aa8127dc3afe8cda4a67eb24915f8d", - "shasum": "" - }, - "require": { - "php": ">=7.2" - }, - "suggest": { - "ext-intl": "For best performance" - }, - "type": "library", - "extra": { - "thanks": { - "url": "https://github.com/symfony/polyfill", - "name": "symfony/polyfill" - } - }, - "autoload": { - "files": [ - "bootstrap.php" - ], - "psr-4": { - "Symfony\\Polyfill\\Intl\\Grapheme\\": "" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Nicolas Grekas", - "email": "p@tchwork.com" - }, - { - "name": "Symfony Community", - "homepage": "https://symfony.com/contributors" - } - ], - "description": "Symfony polyfill for intl's grapheme_* functions", - "homepage": "https://symfony.com", - "keywords": [ - "compatibility", - "grapheme", - "intl", - "polyfill", - "portable", - "shim" - ], - "support": { - "source": "https://github.com/symfony/polyfill-intl-grapheme/tree/v1.41.0" - }, - "funding": [ - { - "url": "https://symfony.com/sponsor", - "type": "custom" - }, - { - "url": "https://github.com/fabpot", - "type": "github" - }, - { - "url": "https://github.com/nicolas-grekas", - "type": "github" - }, - { - "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", - "type": "tidelift" - } - ], - "time": "2026-07-28T08:25:59+00:00" - }, - { - "name": "symfony/polyfill-intl-normalizer", - "version": "v1.38.0", - "source": { - "type": "git", - "url": "https://github.com/symfony/polyfill-intl-normalizer.git", - "reference": "2d446c214bdbe5b71bde5011b060a05fece3ae6b" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-intl-normalizer/zipball/2d446c214bdbe5b71bde5011b060a05fece3ae6b", - "reference": "2d446c214bdbe5b71bde5011b060a05fece3ae6b", - "shasum": "" - }, - "require": { - "php": ">=7.2" - }, - "suggest": { - "ext-intl": "For best performance" - }, - "type": "library", - "extra": { - "thanks": { - "url": "https://github.com/symfony/polyfill", - "name": "symfony/polyfill" - } - }, - "autoload": { - "files": [ - "bootstrap.php" - ], - "psr-4": { - "Symfony\\Polyfill\\Intl\\Normalizer\\": "" - }, - "classmap": [ - "Resources/stubs" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Nicolas Grekas", - "email": "p@tchwork.com" - }, - { - "name": "Symfony Community", - "homepage": "https://symfony.com/contributors" - } - ], - "description": "Symfony polyfill for intl's Normalizer class and related functions", - "homepage": "https://symfony.com", - "keywords": [ - "compatibility", - "intl", - "normalizer", - "polyfill", - "portable", - "shim" - ], - "support": { - "source": "https://github.com/symfony/polyfill-intl-normalizer/tree/v1.38.0" - }, - "funding": [ - { - "url": "https://symfony.com/sponsor", - "type": "custom" - }, - { - "url": "https://github.com/fabpot", - "type": "github" - }, - { - "url": "https://github.com/nicolas-grekas", - "type": "github" - }, - { - "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", - "type": "tidelift" - } - ], - "time": "2026-05-25T13:48:31+00:00" - }, - { - "name": "symfony/polyfill-mbstring", - "version": "v1.38.2", - "source": { - "type": "git", - "url": "https://github.com/symfony/polyfill-mbstring.git", - "reference": "d3d318bad5e7a1bfbd026009c8bfb8d8f99ae6b6" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-mbstring/zipball/d3d318bad5e7a1bfbd026009c8bfb8d8f99ae6b6", - "reference": "d3d318bad5e7a1bfbd026009c8bfb8d8f99ae6b6", - "shasum": "" - }, - "require": { - "ext-iconv": "*", - "php": ">=7.2" - }, - "provide": { - "ext-mbstring": "*" - }, - "suggest": { - "ext-mbstring": "For best performance" - }, - "type": "library", - "extra": { - "thanks": { - "url": "https://github.com/symfony/polyfill", - "name": "symfony/polyfill" - } - }, - "autoload": { - "files": [ - "bootstrap.php" - ], - "psr-4": { - "Symfony\\Polyfill\\Mbstring\\": "" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Nicolas Grekas", - "email": "p@tchwork.com" - }, - { - "name": "Symfony Community", - "homepage": "https://symfony.com/contributors" - } - ], - "description": "Symfony polyfill for the Mbstring extension", - "homepage": "https://symfony.com", - "keywords": [ - "compatibility", - "mbstring", - "polyfill", - "portable", - "shim" - ], - "support": { - "source": "https://github.com/symfony/polyfill-mbstring/tree/v1.38.2" - }, - "funding": [ - { - "url": "https://symfony.com/sponsor", - "type": "custom" - }, - { - "url": "https://github.com/fabpot", - "type": "github" - }, - { - "url": "https://github.com/nicolas-grekas", - "type": "github" - }, - { - "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", - "type": "tidelift" - } - ], - "time": "2026-05-27T06:59:30+00:00" - }, - { - "name": "symfony/service-contracts", - "version": "v3.7.1", - "source": { - "type": "git", - "url": "https://github.com/symfony/service-contracts.git", - "reference": "c0a284bab1ed8aa0417e3d69250ab437739563a0" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/symfony/service-contracts/zipball/c0a284bab1ed8aa0417e3d69250ab437739563a0", - "reference": "c0a284bab1ed8aa0417e3d69250ab437739563a0", - "shasum": "" - }, - "require": { - "php": ">=8.1", - "psr/container": "^1.1|^2.0", - "symfony/deprecation-contracts": "^2.5|^3" - }, - "conflict": { - "ext-psr": "<1.1|>=2" - }, - "type": "library", - "extra": { - "thanks": { - "url": "https://github.com/symfony/contracts", - "name": "symfony/contracts" - }, - "branch-alias": { - "dev-main": "3.7-dev" - } - }, - "autoload": { - "psr-4": { - "Symfony\\Contracts\\Service\\": "" - }, - "exclude-from-classmap": [ - "/Test/" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Nicolas Grekas", - "email": "p@tchwork.com" - }, - { - "name": "Symfony Community", - "homepage": "https://symfony.com/contributors" - } - ], - "description": "Generic abstractions related to writing services", - "homepage": "https://symfony.com", - "keywords": [ - "abstractions", - "contracts", - "decoupling", - "interfaces", - "interoperability", - "standards" - ], - "support": { - "source": "https://github.com/symfony/service-contracts/tree/v3.7.1" - }, - "funding": [ - { - "url": "https://symfony.com/sponsor", - "type": "custom" - }, - { - "url": "https://github.com/fabpot", - "type": "github" - }, - { - "url": "https://github.com/nicolas-grekas", - "type": "github" - }, - { - "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", - "type": "tidelift" - } - ], - "time": "2026-06-16T09:55:08+00:00" - }, - { - "name": "symfony/string", - "version": "v7.4.15", - "source": { - "type": "git", - "url": "https://github.com/symfony/string.git", - "reference": "e394af32256bf9e7bf80849d95e589167c10097b" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/symfony/string/zipball/e394af32256bf9e7bf80849d95e589167c10097b", - "reference": "e394af32256bf9e7bf80849d95e589167c10097b", - "shasum": "" - }, - "require": { - "php": ">=8.2", - "symfony/deprecation-contracts": "^2.5|^3.0", - "symfony/polyfill-ctype": "~1.8", - "symfony/polyfill-intl-grapheme": "~1.33", - "symfony/polyfill-intl-normalizer": "~1.0", - "symfony/polyfill-mbstring": "~1.0" - }, - "conflict": { - "symfony/translation-contracts": "<2.5" - }, - "require-dev": { - "symfony/emoji": "^7.1|^8.0", - "symfony/http-client": "^6.4|^7.0|^8.0", - "symfony/intl": "^6.4|^7.0|^8.0", - "symfony/translation-contracts": "^2.5|^3.0", - "symfony/var-exporter": "^6.4|^7.0|^8.0" - }, - "type": "library", - "autoload": { - "files": [ - "Resources/functions.php" - ], - "psr-4": { - "Symfony\\Component\\String\\": "" - }, - "exclude-from-classmap": [ - "/Tests/" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Nicolas Grekas", - "email": "p@tchwork.com" - }, - { - "name": "Symfony Community", - "homepage": "https://symfony.com/contributors" - } - ], - "description": "Provides an object-oriented API to strings and deals with bytes, UTF-8 code points and grapheme clusters in a unified way", - "homepage": "https://symfony.com", - "keywords": [ - "grapheme", - "i18n", - "string", - "unicode", - "utf-8", - "utf8" - ], - "support": { - "source": "https://github.com/symfony/string/tree/v7.4.15" - }, - "funding": [ - { - "url": "https://symfony.com/sponsor", - "type": "custom" - }, - { - "url": "https://github.com/fabpot", - "type": "github" - }, - { - "url": "https://github.com/nicolas-grekas", - "type": "github" - }, - { - "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", - "type": "tidelift" - } - ], - "time": "2026-07-28T07:33:02+00:00" - }, - { - "name": "twig/twig", - "version": "v3.28.0", - "source": { - "type": "git", - "url": "https://github.com/twigphp/Twig.git", - "reference": "597c12ed286fb9d1701a36684ce6e0cbe28ebc8b" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/twigphp/Twig/zipball/597c12ed286fb9d1701a36684ce6e0cbe28ebc8b", - "reference": "597c12ed286fb9d1701a36684ce6e0cbe28ebc8b", - "shasum": "" - }, - "require": { - "php": ">=8.1.0", - "symfony/deprecation-contracts": "^2.5|^3", - "symfony/polyfill-ctype": "^1.8", - "symfony/polyfill-mbstring": "^1.3" - }, - "require-dev": { - "php-cs-fixer/shim": "^3.0@stable", - "phpstan/phpstan": "^2.0@stable", - "psr/container": "^1.0|^2.0", - "symfony/phpunit-bridge": "^5.4.9|^6.4|^7.0" - }, - "type": "library", - "autoload": { - "files": [ - "src/Resources/core.php", - "src/Resources/debug.php", - "src/Resources/escaper.php", - "src/Resources/string_loader.php" - ], - "psr-4": { - "Twig\\": "src/" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "BSD-3-Clause" - ], - "authors": [ - { - "name": "Fabien Potencier", - "email": "fabien@symfony.com", - "homepage": "http://fabien.potencier.org", - "role": "Lead Developer" - }, - { - "name": "Twig Team", - "role": "Contributors" - }, - { - "name": "Armin Ronacher", - "email": "armin.ronacher@active-4.com", - "role": "Project Founder" - } - ], - "description": "Twig, the flexible, fast, and secure template language for PHP", - "homepage": "https://twig.symfony.com", - "keywords": [ - "templating" - ], - "support": { - "issues": "https://github.com/twigphp/Twig/issues", - "source": "https://github.com/twigphp/Twig/tree/v3.28.0" - }, - "funding": [ - { - "url": "https://github.com/fabpot", - "type": "github" - }, - { - "url": "https://tidelift.com/funding/github/packagist/twig/twig", - "type": "tidelift" - } - ], - "time": "2026-07-03T20:44:34+00:00" - } - ], + "packages-dev": [], "aliases": [], "minimum-stability": "stable", "stability-flags": {}, diff --git a/front/bill.form.php b/front/bill.form.php index 8bb949881b..fade990cf4 100644 --- a/front/bill.form.php +++ b/front/bill.form.php @@ -93,7 +93,7 @@ Html::back(); } -Session::checkRight("plugin_order_bill", READ); +Session::checkRight(PluginOrderBill::$rightname, READ); Html::header(PluginOrderBill::getTypeName(), $_SERVER['PHP_SELF'], "management", "PluginOrderMenu", "bill"); if (isset($_REQUEST['id'])) { diff --git a/front/bill.php b/front/bill.php index a3b0c2b8cc..813a90c93e 100644 --- a/front/bill.php +++ b/front/bill.php @@ -28,7 +28,7 @@ * ------------------------------------------------------------------------- */ -Session::checkRight("plugin_order_bill", READ); +Session::checkRight(PluginOrderBill::$rightname, READ); Html::header(PluginOrderBill::getTypeName(), $_SERVER['PHP_SELF'], "management", "PluginOrderMenu", "bill"); diff --git a/front/config.form.php b/front/config.form.php index 78faf46627..0607409ba2 100644 --- a/front/config.form.php +++ b/front/config.form.php @@ -40,7 +40,7 @@ } else { Html::header(__s("Orders", "order"), $_SERVER['PHP_SELF'], "management", "PluginOrderMenu", "order"); - Session::checkRight("config", UPDATE); + Session::checkRight(Config::$rightname, UPDATE); $config->showForm(1); Html::footer(); diff --git a/front/order.php b/front/order.php index 8711a2b1aa..0a1eb07b0e 100644 --- a/front/order.php +++ b/front/order.php @@ -42,7 +42,7 @@ "order", ); -if (PluginOrderOrder::canView() || Session::haveRight("config", UPDATE)) { +if (PluginOrderOrder::canView() || Session::haveRight(Config::$rightname, UPDATE)) { Search::show("PluginOrderOrder"); } else { echo "


isInstalled('order') && $plugin->isActivated('order') && Session::haveRight("plugin_order_order", READ) && in_array($itemtype, PluginOrderOrder_Item::getClasses(true))) { + if ( + $plugin->isInstalled('order') + && $plugin->isActivated('order') + && Session::haveRight(PluginOrderOrder::$rightname, READ) + && in_array($itemtype, PluginOrderOrder_Item::getClasses(true)) + ) { $sopt[3160]['table'] = 'glpi_plugin_order_orders'; $sopt[3160]['field'] = 'name'; $sopt[3160]['linkfield'] = ''; diff --git a/inc/accountsection.class.php b/inc/accountsection.class.php index dde22de35c..a7c4e74500 100644 --- a/inc/accountsection.class.php +++ b/inc/accountsection.class.php @@ -32,7 +32,7 @@ class PluginOrderAccountsection extends CommonDropdown { - public static $rightname = 'plugin_order_order'; + public static string $rightname = 'plugin_order_order'; public static function getTypeName($nb = 0) { diff --git a/inc/analyticnature.class.php b/inc/analyticnature.class.php index 57dec6e214..b991120fa9 100644 --- a/inc/analyticnature.class.php +++ b/inc/analyticnature.class.php @@ -32,7 +32,7 @@ class PluginOrderAnalyticnature extends CommonDropdown { - public static $rightname = 'plugin_order_order'; + public static string $rightname = 'plugin_order_order'; public static function getTypeName($nb = 0) { diff --git a/inc/bill.class.php b/inc/bill.class.php index 773f982e62..c0239ba5c4 100644 --- a/inc/bill.class.php +++ b/inc/bill.class.php @@ -32,9 +32,9 @@ class PluginOrderBill extends CommonDropdown { - public static $rightname = 'plugin_order_bill'; + public static string $rightname = 'plugin_order_bill'; - public $dohistory = true; + public bool $dohistory = true; public $first_level_menu = "plugins"; diff --git a/inc/billstate.class.php b/inc/billstate.class.php index 14b09fa49d..4be48cadff 100644 --- a/inc/billstate.class.php +++ b/inc/billstate.class.php @@ -36,7 +36,7 @@ class PluginOrderBillState extends CommonDropdown public const PAID = 1; - public static $rightname = 'plugin_order_bill'; + public static string $rightname = 'plugin_order_bill'; public static function getTypeName($nb = 0) diff --git a/inc/billtype.class.php b/inc/billtype.class.php index 93dc5f2e62..7a4baf2130 100644 --- a/inc/billtype.class.php +++ b/inc/billtype.class.php @@ -32,7 +32,7 @@ class PluginOrderBillType extends CommonDropdown { - public static $rightname = 'plugin_order_bill'; + public static string $rightname = 'plugin_order_bill'; public static function getTypeName($nb = 0) diff --git a/inc/config.class.php b/inc/config.class.php index 8e170183e9..5e53cfab48 100644 --- a/inc/config.class.php +++ b/inc/config.class.php @@ -32,7 +32,7 @@ class PluginOrderConfig extends CommonDBTM { - public static $rightname = 'config'; + public static string $rightname = 'config'; public const CONFIG_NEVER = 0; @@ -53,13 +53,13 @@ public function __construct() public static function canView(): bool { - return Session::haveRight('config', READ); + return Session::haveRight(Config::$rightname, READ); } public static function canCreate(): bool { - return Session::haveRight('config', UPDATE); + return Session::haveRight(Config::$rightname, UPDATE); } diff --git a/inc/link.class.php b/inc/link.class.php index e66b6a16d9..35185be4b2 100644 --- a/inc/link.class.php +++ b/inc/link.class.php @@ -33,15 +33,15 @@ class PluginOrderLink extends CommonDBChild { - public static $rightname = 'plugin_order_order'; + public static string $rightname = 'plugin_order_order'; - public $dohistory = true; + public bool $dohistory = true; - public static $itemtype = 'PluginOrderOrder'; + public static string $itemtype = 'PluginOrderOrder'; - public static $items_id = 'plugin_order_orders_id'; + public static string $items_id = 'plugin_order_orders_id'; - public static $checkParentRights = self::DONT_CHECK_ITEM_RIGHTS; + public static int $checkParentRights = self::DONT_CHECK_ITEM_RIGHTS; public static function getTypeName($nb = 0) @@ -639,7 +639,7 @@ public static function processMassiveActionsForOneItemtype( // For consumables and cartridges, createLinkWithItem creates a new item // (glpi_consumables/glpi_cartridges) for each selected detail line; // therefore, multiple items can be linked to the same reference item at once - $allow_multiple_link = isset($ma->POST['add_items']) && $ma->POST['add_items'] !== [] && array_reduce( + $allow_multiple_link = $ma->POST['add_items'] !== [] && array_reduce( $ma->POST['add_items'], fn($carry, $data) => $carry && in_array( $data['itemtype'] ?? '', @@ -1446,7 +1446,7 @@ public function getTabNameForItem(CommonGLPI $item, $withtemplate = 0) if ( $item instanceof PluginOrderOrder && $item->checkIfDetailExists($item->getID(), true) - && Session::haveRight('plugin_order_order', READ) + && Session::haveRight(PluginOrderOrder::$rightname, READ) ) { return self::createTabEntry( _sn("Associated item", "Associated items", 2), @@ -1515,7 +1515,7 @@ public static function copyDocuments($itemtype, $items_id, $orders_id, $entity) 'sha1sum' => $document->fields['sha1sum'], ], ); - if (empty($found_docs)) { + if ($found_docs === []) { $tmpdoc = $document->fields; $tmpdoc['entities_id'] = $entity; unset($tmpdoc['id']); diff --git a/inc/order.class.php b/inc/order.class.php index 15f6e1be35..341f98c2cf 100644 --- a/inc/order.class.php +++ b/inc/order.class.php @@ -40,17 +40,17 @@ class PluginOrderOrder extends CommonDBTM { use Clonable; - public static $rightname = 'plugin_order_order'; + public static string $rightname = 'plugin_order_order'; public $is_template = true; - public $dohistory = true; + public bool $dohistory = true; protected $usenotepadrights = true; - protected $usenotepad = true; + protected bool $usenotepad = true; - public static $forward_entity_to = [ + public static array $forward_entity_to = [ "PluginOrderOrder_Item", "PluginOrderOrder_Supplier", "PluginOrderSurveySupplier", @@ -108,37 +108,37 @@ public function getState() public static function canCancel() { - return Session::haveRight("plugin_order_order", self::RIGHT_CANCEL); + return Session::haveRight(self::$rightname, self::RIGHT_CANCEL); } public static function canUndo() { - return Session::haveRight("plugin_order_order", self::RIGHT_UNDO_VALIDATION); + return Session::haveRight(self::$rightname, self::RIGHT_UNDO_VALIDATION); } public static function canValidate() { - return Session::haveRight("plugin_order_order", self::RIGHT_VALIDATION); + return Session::haveRight(self::$rightname, self::RIGHT_VALIDATION); } public static function canGenerateWithoutValidation() { - return Session::haveRight("plugin_order_order", self::RIGHT_GENERATEODT_WITHOUT_VALIDATION); + return Session::haveRight(self::$rightname, self::RIGHT_GENERATEODT_WITHOUT_VALIDATION); } public static function canGenerate() { - return Session::haveRight("plugin_order_order", self::RIGHT_GENERATEODT); + return Session::haveRight(self::$rightname, self::RIGHT_GENERATEODT); } public static function canDeliver() { - return Session::haveRight("plugin_order_order", self::RIGHT_DELIVERY); + return Session::haveRight(self::$rightname, self::RIGHT_DELIVERY); } @@ -635,7 +635,7 @@ public function getTabNameForItem(CommonGLPI $item, $withtemplate = 0) $ong = []; $config = PluginOrderConfig::getConfig(); if ( - Session::haveRightsOr("plugin_order_order", [ + Session::haveRightsOr(self::$rightname, [ self::RIGHT_VALIDATION, self::RIGHT_CANCEL, self::RIGHT_UNDO_VALIDATION, @@ -754,14 +754,12 @@ public function post_addItem() 'itemtype' => $this->getType(), ], ); - if (!empty($docs)) { - foreach ($docs as $doc) { - $docitem->add([ - 'documents_id' => $doc["documents_id"], - 'itemtype' => $this->getType(), - 'items_id' => $this->fields['id'], - ]); - } + foreach ($docs as $doc) { + $docitem->add([ + 'documents_id' => $doc["documents_id"], + 'itemtype' => $this->getType(), + 'items_id' => $this->fields['id'], + ]); } } } @@ -2571,7 +2569,7 @@ public function getSpecificMassiveActions($checkitem = null) $isadmin = static::canUpdate(); $actions = parent::getSpecificMassiveActions($checkitem); - if ($isadmin && (Session::haveRight('transfer', READ) && Session::isMultiEntitiesMode())) { + if ($isadmin && (Session::haveRight(Transfer::$rightname, READ) && Session::isMultiEntitiesMode())) { $actions['PluginOrderOrder:transfert'] = __s('Transfer'); } diff --git a/inc/order_item.class.php b/inc/order_item.class.php index 596a1131d1..7ebf696fdc 100644 --- a/inc/order_item.class.php +++ b/inc/order_item.class.php @@ -36,24 +36,24 @@ class PluginOrderOrder_Item extends CommonDBRelation // phpcs:ignore { - public static $rightname = 'plugin_order_order'; + public static string $rightname = 'plugin_order_order'; - public $dohistory = true; + public bool $dohistory = true; // From CommonDBRelation - public static $itemtype_1 = "PluginOrderOrder"; + public static ?string $itemtype_1 = "PluginOrderOrder"; - public static $items_id_1 = 'plugin_order_orders_id'; + public static ?string $items_id_1 = 'plugin_order_orders_id'; - public static $checkItem_1_Rights = self::DONT_CHECK_ITEM_RIGHTS; + public static int $checkItem_1_Rights = self::DONT_CHECK_ITEM_RIGHTS; - public static $itemtype_2 = 'itemtype'; + public static ?string $itemtype_2 = 'itemtype'; - public static $items_id_2 = 'items_id'; + public static ?string $items_id_2 = 'items_id'; - public static $checkItem_2_Rights = self::DONT_CHECK_ITEM_RIGHTS; + public static int $checkItem_2_Rights = self::DONT_CHECK_ITEM_RIGHTS; - public static $check_entity_coherency = false; + public static bool $check_entity_coherency = false; //TODO better right and entity menber (ex Computer_Item) @@ -1434,11 +1434,11 @@ public function showPluginFromItems($itemtype, $ID) 'items_id' => $ID, ], ); - if (!empty($result)) { + if ($result !== []) { $link = array_shift($result); $reference = new PluginOrderReference(); $reference->getFromDB($link['plugin_order_references_id']); - if (Session::haveRight('plugin_order_reference', READ)) { + if (Session::haveRight(PluginOrderReference::$rightname, READ)) { $twig_option['reference_link'] = $reference->getLink(); } diff --git a/inc/order_supplier.class.php b/inc/order_supplier.class.php index a0c8c5fb1e..c585c3d0cf 100644 --- a/inc/order_supplier.class.php +++ b/inc/order_supplier.class.php @@ -32,13 +32,13 @@ class PluginOrderOrder_Supplier extends CommonDBChild // phpcs:ignore { - public static $rightname = 'plugin_order_order'; + public static string $rightname = 'plugin_order_order'; - public static $itemtype = 'PluginOrderOrder'; + public static string $itemtype = 'PluginOrderOrder'; - public static $items_id = 'plugin_order_orders_id'; + public static string $items_id = 'plugin_order_orders_id'; - public $dohistory = true; + public bool $dohistory = true; public static function getTypeName($nb = 0) diff --git a/inc/orderpayment.class.php b/inc/orderpayment.class.php index de87bbdaa9..9f1e01cf93 100644 --- a/inc/orderpayment.class.php +++ b/inc/orderpayment.class.php @@ -33,7 +33,7 @@ // Class for a Dropdown class PluginOrderOrderPayment extends CommonDropdown { - public static $rightname = 'plugin_order_order'; //'plugin_order_order'; + public static string $rightname = 'plugin_order_order'; //'plugin_order_order'; public static function getTypeName($nb = 0) { diff --git a/inc/orderstate.class.php b/inc/orderstate.class.php index 8f39b80338..3a6633e68c 100644 --- a/inc/orderstate.class.php +++ b/inc/orderstate.class.php @@ -47,7 +47,7 @@ class PluginOrderOrderState extends CommonDropdown public const PAID = 7; - public static $rightname = 'plugin_order_order'; + public static string $rightname = 'plugin_order_order'; public static function getTypeName($nb = 0) diff --git a/inc/ordertax.class.php b/inc/ordertax.class.php index ca8a167e91..d826f37421 100644 --- a/inc/ordertax.class.php +++ b/inc/ordertax.class.php @@ -33,7 +33,7 @@ // Class for a Dropdown class PluginOrderOrderTax extends CommonDropdown { - public static $rightname = 'plugin_order_order'; + public static string $rightname = 'plugin_order_order'; public static function getTypeName($nb = 0) diff --git a/inc/ordertype.class.php b/inc/ordertype.class.php index f484a20040..b270d3c645 100644 --- a/inc/ordertype.class.php +++ b/inc/ordertype.class.php @@ -33,7 +33,7 @@ // Class for a Dropdown class PluginOrderOrdertype extends CommonDropdown { - public static $rightname = 'plugin_order_order'; + public static string $rightname = 'plugin_order_order'; public static function getTypeName($nb = 0) diff --git a/inc/other.class.php b/inc/other.class.php index 20e0682e53..27e316650c 100644 --- a/inc/other.class.php +++ b/inc/other.class.php @@ -32,7 +32,7 @@ class PluginOrderOther extends CommonDBTM { - public static $rightname = 'plugin_order_order'; + public static string $rightname = 'plugin_order_order'; public static function getTypeName($nb = 0) diff --git a/inc/othertype.class.php b/inc/othertype.class.php index 71879d0774..d9d5cb0efa 100644 --- a/inc/othertype.class.php +++ b/inc/othertype.class.php @@ -32,7 +32,7 @@ class PluginOrderOthertype extends CommonDropdown { - public static $rightname = 'plugin_order_order'; + public static string $rightname = 'plugin_order_order'; public static function getTypeName($nb = 0) diff --git a/inc/preference.class.php b/inc/preference.class.php index 413127177c..d0273d4fb7 100644 --- a/inc/preference.class.php +++ b/inc/preference.class.php @@ -65,7 +65,7 @@ public function addDefaultPreference($users_id) public static function checkPreferenceValue($field, $users_id = 0) { $data = getAllDataFromTable(self::getTable(), ['users_id' => $users_id]); - if (!empty($data)) { + if ($data !== []) { $first = array_pop($data); return $first[$field]; } else { diff --git a/inc/profile.class.php b/inc/profile.class.php index c39ddf708f..f2dfed0203 100644 --- a/inc/profile.class.php +++ b/inc/profile.class.php @@ -32,7 +32,7 @@ class PluginOrderProfile extends CommonDBTM { - public static $rightname = 'profile'; + public static string $rightname = 'profile'; public static function createFirstAccess($ID) diff --git a/inc/reception.class.php b/inc/reception.class.php index 70fed233f0..74c4516f25 100644 --- a/inc/reception.class.php +++ b/inc/reception.class.php @@ -32,15 +32,15 @@ class PluginOrderReception extends CommonDBChild { - public static $rightname = 'plugin_order_order'; + public static string $rightname = 'plugin_order_order'; - public $dohistory = true; + public bool $dohistory = true; - public static $itemtype = 'PluginOrderOrder'; + public static string $itemtype = 'PluginOrderOrder'; - public static $items_id = 'plugin_order_orders_id'; + public static string $items_id = 'plugin_order_orders_id'; - public static $checkParentRights = self::DONT_CHECK_ITEM_RIGHTS; + public static int $checkParentRights = self::DONT_CHECK_ITEM_RIGHTS; public static function getTable($classname = null) @@ -61,14 +61,14 @@ public static function getIcon() public function canUpdateItem(): bool { - return Session::haveRight('plugin_order_order', PluginOrderOrder::RIGHT_DELIVERY); + return Session::haveRight(PluginOrderOrder::$rightname, PluginOrderOrder::RIGHT_DELIVERY); } public function canViewItem(): bool { - return Session::haveRight('plugin_order_order', PluginOrderOrder::RIGHT_DELIVERY) - && Session::haveRight('plugin_order_order', READ); + return Session::haveRight(PluginOrderOrder::$rightname, PluginOrderOrder::RIGHT_DELIVERY) + && Session::haveRight(PluginOrderOrder::$rightname, READ); } @@ -272,12 +272,12 @@ public function showForm($ID, $options = []) echo "" . __s("Bill", "order") . ""; echo ""; - if (Session::haveRight("plugin_order_bill", UPDATE)) { + if (Session::haveRight(PluginOrderBill::$rightname, UPDATE)) { PluginOrderBill::Dropdown([ 'name' => "plugin_order_bills_id", 'value' => $this->fields["plugin_order_bills_id"], ]); - } elseif (Session::haveRight("plugin_order_bill", READ)) { + } elseif (Session::haveRight(PluginOrderBill::$rightname, READ)) { echo Dropdown::getDropdownName( "glpi_plugin_order_bills", $this->fields["plugin_order_bills_id"], diff --git a/inc/reference.class.php b/inc/reference.class.php index 36e101151d..b832b1ca03 100644 --- a/inc/reference.class.php +++ b/inc/reference.class.php @@ -59,11 +59,11 @@ */ class PluginOrderReference extends CommonDBTM { - public static $rightname = 'plugin_order_reference'; //'plugin_order_reference'; //TODO : A développer + public static string $rightname = 'plugin_order_reference'; //'plugin_order_reference'; //TODO : A développer - public $dohistory = true; + public bool $dohistory = true; - public static $forward_entity_to = ['PluginOrderReference_Supplier']; + public static array $forward_entity_to = ['PluginOrderReference_Supplier']; public static function getTypeName($nb = 0) @@ -1029,7 +1029,7 @@ public function getSpecificMassiveActions($checkitem = null) if ($isadmin) { if ( - Session::haveRight('transfer', READ) + Session::haveRight(Transfer::$rightname, READ) && Session::isMultiEntitiesMode() ) { $actions['PluginOrderReference:transfert'] = __s('Transfer'); diff --git a/inc/reference_supplier.class.php b/inc/reference_supplier.class.php index bdb4ac5156..5f6edb04cc 100644 --- a/inc/reference_supplier.class.php +++ b/inc/reference_supplier.class.php @@ -32,13 +32,13 @@ class PluginOrderReference_Supplier extends CommonDBChild // phpcs:ignore { - public static $rightname = 'plugin_order_reference'; + public static string $rightname = 'plugin_order_reference'; - public static $itemtype = 'PluginOrderReference'; + public static string $itemtype = 'PluginOrderReference'; - public static $items_id = 'plugin_order_references_id'; + public static string $items_id = 'plugin_order_references_id'; - public $dohistory = true; + public bool $dohistory = true; public static function getTypeName($nb = 0) diff --git a/inc/referencefree.class.php b/inc/referencefree.class.php index 860d53d75b..ffcc9198b1 100644 --- a/inc/referencefree.class.php +++ b/inc/referencefree.class.php @@ -32,9 +32,9 @@ class PluginOrderReferenceFree extends CommonDBTM { - public static $rightname = 'plugin_order_reference'; + public static string $rightname = 'plugin_order_reference'; - public $dohistory = true; + public bool $dohistory = true; public static function getTypeName($nb = 0) { diff --git a/inc/surveysupplier.class.php b/inc/surveysupplier.class.php index 306af52697..2f21193d40 100644 --- a/inc/surveysupplier.class.php +++ b/inc/surveysupplier.class.php @@ -32,11 +32,11 @@ class PluginOrderSurveySupplier extends CommonDBChild { - public static $rightname = 'plugin_order_order'; + public static string $rightname = 'plugin_order_order'; - public static $itemtype = 'PluginOrderOrder'; + public static string $itemtype = 'PluginOrderOrder'; - public static $items_id = 'plugin_order_orders_id'; + public static string $items_id = 'plugin_order_orders_id'; public static function getTypeName($nb = 0) @@ -175,8 +175,6 @@ public static function showGlobalNotation($suppliers_id) $survey = new self(); $survey_table = $survey->getTable(); - getEntitiesRestrictRequest(" AND ", "orders", "entities_id", '', true); - $criteria = [ 'SELECT' => [ 'orders.id', diff --git a/setup.php b/setup.php index 7768b99afc..a2b78815c0 100644 --- a/setup.php +++ b/setup.php @@ -35,9 +35,9 @@ define('PLUGIN_ORDER_VERSION', '2.12.9'); // Minimal GLPI version, inclusive -define("PLUGIN_ORDER_MIN_GLPI", "11.0.0"); +define("PLUGIN_ORDER_MIN_GLPI", "12.0.0"); // Maximum GLPI version, exclusive -define("PLUGIN_ORDER_MAX_GLPI", "11.0.99"); +define("PLUGIN_ORDER_MAX_GLPI", "12.0.99"); if (!defined('PLUGIN_ORDER_DIR')) { define("PLUGIN_ORDER_DIR", Plugin::getPhpDir('order')); @@ -200,7 +200,7 @@ function plugin_init_order() $PLUGIN_HOOKS['add_css']['order'][] = 'css/order.css'; /* link to the config page in plugins menu */ - if (Session::haveRight("config", UPDATE)) { + if (Session::haveRight(Config::$rightname, UPDATE)) { $PLUGIN_HOOKS['config_page']['order'] = 'front/config.form.php'; } diff --git a/templates/order_getitems.html.twig b/templates/order_getitems.html.twig index 5c8ab6d274..517bc6dd5d 100644 --- a/templates/order_getitems.html.twig +++ b/templates/order_getitems.html.twig @@ -60,7 +60,6 @@ {% if form_action is defined %}
- {% endif %} {% if hidden_fields is defined %}