Skip to content

N°9116 - Installing modules in extension folder or production-modules doesn't have the same behavior - #981

Merged
Lenaick merged 3 commits into
developfrom
feature/9116-installing-modules-in-extension-folder-or-production-modules-doesn-t-have-the-same-behavior
Jul 28, 2026
Merged

N°9116 - Installing modules in extension folder or production-modules doesn't have the same behavior#981
Lenaick merged 3 commits into
developfrom
feature/9116-installing-modules-in-extension-folder-or-production-modules-doesn-t-have-the-same-behavior

Conversation

@Lenaick

@Lenaick Lenaick commented Jul 27, 2026

Copy link
Copy Markdown
Contributor

N°9116 - Installing modules in extension folder or production-modules doesn't have the same behavior

@greptile-apps

greptile-apps Bot commented Jul 27, 2026

Copy link
Copy Markdown
Contributor

Greptile Summary

Updates the setup wizard’s handling of extensions with dependency issues.

  • Allows installed, optional, uninstallable extensions with missing dependencies to remain user-selectable.
  • Refines forward-navigation blocking based on installation, selection, uninstallability, and dependency state.
  • Expands unit coverage for the revised extension-selection states.

Confidence Score: 5/5

The PR appears safe to merge.

No blocking failure remains.

Important Files Changed

Filename Overview
setup/wizardsteps/WizStepModulesChoice.php Refines extension choice flags and navigation checks for installed extensions with dependency issues.
tests/php-unit-tests/unitary-tests/setup/WizStepModulesChoiceTest.php Updates and expands unit cases for dependency, installation, mandatory, and uninstallability combinations.

Reviews (2): Last reviewed commit: "N°9116 - Installing modules in extension..." | Re-trigger Greptile

Copilot AI review requested due to automatic review settings July 28, 2026 14:00

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Aligns setup behavior for extensions from local and production module folders when dependencies are missing.

Changes:

  • Refines extension selection flags based on source and uninstallability.
  • Updates forward-navigation blocking rules.
  • Expands flag test scenarios.

Reviewed changes

Copilot reviewed 2 out of 2 changed files in this pull request and generated 1 comment.

File Description
setup/wizardsteps/WizStepModulesChoice.php Updates selection and navigation logic.
tests/php-unit-tests/unitary-tests/setup/WizStepModulesChoiceTest.php Adjusts expected flags and adds scenarios.
Comments suppressed due to low confidence (1)

setup/wizardsteps/WizStepModulesChoice.php:825

  • This changes when the wizard's Next action is blocked, but the updated tests only assert ComputeChoiceFlags. ProviderDisplayOptions checks rendered HTML, and there is no assertion of JSCanMoveForward, so regressions in the new installed/mandatory/uninstallable/dependency combinations will pass. Please cover the allowed-uninstall case, the non-uninstallable/mandatory blocked cases, and the force-uninstall bypass.
			if (!$aFlags['checked'] && $aFlags['installed'] && !$bDisableUninstallCheck && (!$aFlags['uninstallable'] || $aFlags['mandatory'])) {
				// If the user cannot uninstall a mandatory extension, he cannot move forward unless he uses the "force-uninstall" option
				// The same applies if the extension is not uninstallable (i.e. a product extension)
				$this->bCanMoveForward = false;
			} elseif ($aFlags['checked'] && $aFlags['disabled'] && $aFlags['dependency_issue'] && !$bDisableUninstallCheck) {

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

if ($bMissingFromDisk) {
$bDisabled = true;
$bChecked = false;
} elseif ($bDependencyIssue && ($oITopExtension->sSource !== iTopExtension::SOURCE_WIZARD || !$bMandatory)) {
@Lenaick
Lenaick merged commit 1403914 into develop Jul 28, 2026
1 check passed
@Lenaick
Lenaick deleted the feature/9116-installing-modules-in-extension-folder-or-production-modules-doesn-t-have-the-same-behavior branch July 28, 2026 14:40
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

internal Work made by Combodo

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants