Hallo Mario
Der Code von GS ist ziemlich kondensiert. Das
kann man so schreiben, aber ist nicht wirklich Anfängerfreundlich.
Um die GUIDs der Elemente auf einer eigenen Zeile zu haben, musst du die Funktion "GetConflictMessage" durch die hier ersetzen:
def GetConflictMessage(elementIDPropertyValue, elementIds):
elem_str = ("\n".join(map(str, sorted(elementIds, key=lambda id: id.guid))))
return f"{conflictMessageParts[0]} {len(elementIds)} {conflictMessageParts[1]} '{elementIDPropertyValue}' {conflictMessageParts[2]}" + elem_str
Pass auf die korrekte Indentation auf! Python mag es nicht, wenn man Leerzeichen und Tabulatoren mixt.
############################################
Was ich hier gemacht hab, ist den letzten Teil der Konfliktmessage aus dem return abzuschneiden und in eine eigene Variable zu überführen.
Gleich schon mal einiges an Übersichtlichkeit gewonnen!
"elem_str" bekommt folgendes assigned:
(Von innen nach außen)
Sortiere die elementIds, nach ID (nicht dass das aus meiner Sicht nötig wäre, aber GS hatte das im Beispiel so drin), dann mappe jedes Item der Liste (momentan noch vom Typ "ElementID") in einen String. (Eine genaue
Erklärung von map.)
Das gibt uns einen Iterator zurück, sodass wir in dieser Liste endlich jedes Item (nun vom Typ String! Das ist wichtig, sonst klappt es nicht -> dafür war "map" wichtig) mit einem Umbruch joinen können.
Bisschen Vodoo, aber man kommt da rein
🙂