Add conflictology map mode and fix graph rendering reliability.
Support conflict types, involvement sizing, and map-type toggles while keeping polar sector layout; improve GraphView init retries and edge matching on network maps. Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
@@ -17,6 +17,7 @@ def node_from_membership(membership):
|
||||
'life_sphere': membership.life_sphere,
|
||||
'network_circle': membership.network_circle,
|
||||
'importance': membership.importance,
|
||||
'conflict_involvement': membership.conflict_involvement,
|
||||
'map_angle': membership.map_angle,
|
||||
'map_radius_ratio': membership.map_radius_ratio,
|
||||
'membership_id': membership.id,
|
||||
@@ -45,11 +46,15 @@ def build_full_graph():
|
||||
|
||||
def build_network_map_graph(map_id=None):
|
||||
if not map_id:
|
||||
default_map = NetworkMap.objects.order_by('id').first()
|
||||
default_map = NetworkMap.objects.select_related('map_type').order_by('id').first()
|
||||
if not default_map:
|
||||
return {'nodes': [], 'edges': []}
|
||||
return {'nodes': [], 'edges': [], 'conflictology': False, 'conflict_subject': ''}
|
||||
map_id = default_map.id
|
||||
|
||||
network_map = NetworkMap.objects.select_related('map_type').filter(pk=map_id).first()
|
||||
if not network_map:
|
||||
return {'nodes': [], 'edges': [], 'conflictology': False, 'conflict_subject': ''}
|
||||
|
||||
memberships = list(
|
||||
NetworkMapMembership.objects.filter(map_id=map_id)
|
||||
.select_related('contact')
|
||||
@@ -63,4 +68,9 @@ def build_network_map_graph(map_id=None):
|
||||
for r in relations
|
||||
if r.source_id in allowed_ids and r.target_id in allowed_ids
|
||||
]
|
||||
return {'nodes': nodes, 'edges': edges}
|
||||
return {
|
||||
'nodes': nodes,
|
||||
'edges': edges,
|
||||
'conflictology': network_map.map_type.conflictology_enabled,
|
||||
'conflict_subject': network_map.conflict_subject or network_map.name,
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user