Merge pull request #28 from ARUP-CAS/relation-fix

Fix polymorphic relations not creating in some cases
This commit is contained in:
2026-03-19 09:36:37 +01:00
committed by GitHub
+10 -2
View File
@@ -516,17 +516,25 @@ def load_amcr_data(canvas, bb, filters=None, typ_dat="akce", komponenty="false")
# --- RELATIONSHIP MANAGEMENT --- # --- RELATIONSHIP MANAGEMENT ---
# Set up automatic links between spatial layers and the component table # Set up automatic links between spatial layers and the component table
if komponenty == "true": if komponenty == "true":
parent_layers_ids = [vl_poly.id(), vl_line.id(), vl_point.id()] parent_layers_ids = []
if feats_p:
parent_layers_ids.append(vl_poly.id())
if feats_l:
parent_layers_ids.append(vl_line.id())
if feats_pt:
parent_layers_ids.append(vl_point.id())
rel_manager = proj.relationManager() rel_manager = proj.relationManager()
rel = QgsPolymorphicRelation() rel = QgsPolymorphicRelation()
rel.setId(f"rel_komponenty_{archeologicky_zaznam}") # rel.setId(f"rel_komponenty_{archeologicky_zaznam}")
rel.setName("Komponenty") rel.setName("Komponenty")
rel.setReferencingLayer(vl_komponenty.id()) rel.setReferencingLayer(vl_komponenty.id())
rel.setReferencedLayerExpression("@layer_id") rel.setReferencedLayerExpression("@layer_id")
rel.setReferencedLayerField("vrstva") rel.setReferencedLayerField("vrstva")
rel.setReferencedLayerIds(parent_layers_ids) rel.setReferencedLayerIds(parent_layers_ids)
rel.addFieldPair("dj_id", "Dokumentační jednotka") rel.addFieldPair("dj_id", "Dokumentační jednotka")
rel.generateId()
if rel.isValid(): if rel.isValid():
rel_manager.addPolymorphicRelation(rel) rel_manager.addPolymorphicRelation(rel)