Use API endpoint for requesting package_ids

Use new api endpoint for requesting specific package_ids so we don't have to filter ourselves.

CURA-6990
This commit is contained in:
c.lamboo 2022-06-02 15:19:00 +02:00
parent b015617e13
commit 9c02f6500d
3 changed files with 6 additions and 12 deletions

View file

@ -26,8 +26,7 @@ class InstallMissingPackageDialog(QObject):
self._restart_needed = False self._restart_needed = False
self._package_metadata: List[Dict[str, str]] = packages_metadata self._package_metadata: List[Dict[str, str]] = packages_metadata
self._package_model = MissingPackageList() self._package_model = MissingPackageList(packages_metadata)
self._package_model.setPackageIds(packages_metadata)
def show(self): def show(self):
plugin_path = self._plugin_registry.getPluginPath("Marketplace") plugin_path = self._plugin_registry.getPluginPath("Marketplace")

View file

@ -17,16 +17,10 @@ if TYPE_CHECKING:
catalog = i18nCatalog("cura") catalog = i18nCatalog("cura")
class MissingPackageList(RemotePackageList): class MissingPackageList(RemotePackageList):
def __init__(self, parent: Optional["QObject"] = None) -> None: def __init__(self, packages: List[Dict[str, str]], parent: Optional["QObject"] = None) -> None:
super().__init__(parent) super().__init__(parent)
self._package_metadata: List[Dict[str, str]] = [] self._package_metadata: List[Dict[str, str]] = []
# self.packageTypeFilter = None # This will be our new filter # self.packageTypeFilter = None # This will be our new filter
self._package_type_filter = "material" self._package_type_filter = "material"
self._search_type = "package_ids"
def setPackageIds(self, packages: List[Dict[str, str]]) -> None: self._requested_search_string = ",".join(map(lambda package: package["id"], packages))
self._package_metadata = packages
search_string = ", ".join(map(lambda package: package["id"], packages))
# self.setSearchString(search_string)
self.setSearchString("ABS")

View file

@ -28,6 +28,7 @@ class RemotePackageList(PackageList):
self._package_type_filter = "" self._package_type_filter = ""
self._requested_search_string = "" self._requested_search_string = ""
self._current_search_string = "" self._current_search_string = ""
self._search_type = "search"
self._request_url = self._initialRequestUrl() self._request_url = self._initialRequestUrl()
self._ongoing_requests["get_packages"] = None self._ongoing_requests["get_packages"] = None
self.isLoadingChanged.connect(self._onLoadingChanged) self.isLoadingChanged.connect(self._onLoadingChanged)
@ -100,7 +101,7 @@ class RemotePackageList(PackageList):
if self._package_type_filter != "": if self._package_type_filter != "":
request_url += f"&package_type={self._package_type_filter}" request_url += f"&package_type={self._package_type_filter}"
if self._current_search_string != "": if self._current_search_string != "":
request_url += f"&search={self._current_search_string}" request_url += f"&{self._search_type}={self._current_search_string}"
return request_url return request_url
def _parseResponse(self, reply: "QNetworkReply") -> None: def _parseResponse(self, reply: "QNetworkReply") -> None: