fix version specific repre info in loader

This commit is contained in:
Jakub Trllo 2022-08-23 16:38:45 +02:00
parent 4062bf56f3
commit fce4e6e3d8

View file

@ -272,7 +272,7 @@ class SubsetsModel(TreeModel, BaseRepresentationModel):
# update availability on active site when version changes # update availability on active site when version changes
if self.sync_server.enabled and version_doc: if self.sync_server.enabled and version_doc:
repre_info = list( repres_info = list(
self.sync_server.get_repre_info_for_versions( self.sync_server.get_repre_info_for_versions(
project_name, project_name,
[version_doc["_id"]], [version_doc["_id"]],
@ -280,9 +280,9 @@ class SubsetsModel(TreeModel, BaseRepresentationModel):
self.remote_site self.remote_site
) )
) )
if repre_info: if repres_info:
version_doc["data"].update( version_doc["data"].update(
self._get_repre_dict(repre_info[0])) self._get_repre_dict(repres_info[0]))
self.set_version(index, version_doc) self.set_version(index, version_doc)
@ -474,29 +474,34 @@ class SubsetsModel(TreeModel, BaseRepresentationModel):
last_versions_by_subset_id[subset_id] = hero_version last_versions_by_subset_id[subset_id] = hero_version
repre_info = {} repre_info_by_version_id = {}
if self.sync_server.enabled: if self.sync_server.enabled:
version_ids = set() versions_by_id = {}
for _subset_id, doc in last_versions_by_subset_id.items(): for _subset_id, doc in last_versions_by_subset_id.items():
version_ids.add(doc["_id"]) versions_by_id[doc["_id"]] = doc
repres = self.sync_server.get_repre_info_for_versions( repres_info = self.sync_server.get_repre_info_for_versions(
project_name, project_name,
list(version_ids), self.active_site, self.remote_site list(versions_by_id.keys()),
self.active_site,
self.remote_site
) )
for repre in repres: for repre_info in repres_info:
if self._doc_fetching_stop: if self._doc_fetching_stop:
return return
version_id = repre_info["_id"]
doc = versions_by_id[version_id]
doc["active_provider"] = self.active_provider doc["active_provider"] = self.active_provider
doc["remote_provider"] = self.remote_provider doc["remote_provider"] = self.remote_provider
repre_info[repre["_id"]] = repre repre_info_by_version_id[version_id] = repre_info
self._doc_payload = { self._doc_payload = {
"asset_docs_by_id": asset_docs_by_id, "asset_docs_by_id": asset_docs_by_id,
"subset_docs_by_id": subset_docs_by_id, "subset_docs_by_id": subset_docs_by_id,
"subset_families": subset_families, "subset_families": subset_families,
"last_versions_by_subset_id": last_versions_by_subset_id, "last_versions_by_subset_id": last_versions_by_subset_id,
"repre_info_by_version_id": repre_info "repre_info_by_version_id": repre_info_by_version_id
} }
self.doc_fetched.emit() self.doc_fetched.emit()