diff --git a/plugins/Toolbox/src/CloudSync/DiscrepanciesPresenter.py b/plugins/Toolbox/src/CloudSync/DiscrepanciesPresenter.py index f6b5622aad..78587117a0 100644 --- a/plugins/Toolbox/src/CloudSync/DiscrepanciesPresenter.py +++ b/plugins/Toolbox/src/CloudSync/DiscrepanciesPresenter.py @@ -36,5 +36,7 @@ class DiscrepanciesPresenter(QObject): def _onConfirmClicked(self, model: SubscribedPackagesModel) -> None: # For now, all compatible packages presented to the user should be installed. # Later, we might remove items for which the user unselected the package + if model.getIncompatiblePackages(): + self._package_manager.dismissAllIncompatiblePackages(model.getIncompatiblePackages()) model.setItems(model.getCompatiblePackages()) - self.packageMutations.emit(model) + self.packageMutations.emit(model) # #### proveri sho e ova??? diff --git a/plugins/Toolbox/src/CloudSync/SubscribedPackagesModel.py b/plugins/Toolbox/src/CloudSync/SubscribedPackagesModel.py index fd5eae254d..dc684a11a7 100644 --- a/plugins/Toolbox/src/CloudSync/SubscribedPackagesModel.py +++ b/plugins/Toolbox/src/CloudSync/SubscribedPackagesModel.py @@ -50,9 +50,12 @@ class SubscribedPackagesModel(ListModel): def getCompatiblePackages(self) -> List[Dict[str, Any]]: return [package for package in self._items if package["is_compatible"]] - def initialize(self, json_data: List[Dict[str, Any]]) -> None: + def getIncompatiblePackages(self) -> List[str]: + return [package["package_id"] for package in self._items if not package["is_compatible"]] + + def initialize(self, subscribed_packages_payload: List[Dict[str, Any]]) -> None: self._items.clear() - for item in json_data: + for item in subscribed_packages_payload: if item["package_id"] not in self._discrepancies: continue package = {