Return is_primary to True if removing a "conflates" relation.

This commit is contained in:
Schuyler Erle 2011-09-01 03:43:06 -07:00
parent 171caadf0d
commit b4909e161c

View File

@ -65,11 +65,11 @@ def search_related_json(request, id):
d = [] d = []
for s in similar_features: for s in similar_features:
time_frame = relates_to = related_by = "" time_frame = relates_to = related_by = ""
if s.time_frame is not None: if s.time_frame is not None:
time_frame = s.time_frame.description time_frame = s.time_frame.description
if s.relationship_type is not None: if s.relationship_type is not None:
if s.feature2_id == s.id: if s.feature2_id == s.id:
relates_to = s.relationship_type relates_to = s.relationship_type
elif s.feature1_id == s.id: elif s.feature1_id == s.id:
related_by = s.relationship_type related_by = s.relationship_type
@ -82,7 +82,7 @@ def search_related_json(request, id):
'time_frame': time_frame, 'time_frame': time_frame,
'is_primary': s.is_primary, 'is_primary': s.is_primary,
'relates_to': relates_to, 'relates_to': relates_to,
'related_by': related_by 'related_by': related_by
}) })
return render_to_json_response(d) return render_to_json_response(d)
@ -120,19 +120,22 @@ def add_relation(request):
feature2 = get_object_or_404_json(Feature, pk=feature2) feature2 = get_object_or_404_json(Feature, pk=feature2)
rel_obj = None rel_obj = None
try: try:
rel_obj = Relationship.objects.get(feature1=feature1, feature2=feature2, relationship_type=relation) rel_obj = Relationship.objects.get(feature1=feature1, feature2=feature2, relationship_type=relation)
except ObjectDoesNotExist: except ObjectDoesNotExist:
rel_obj = Relationship(feature1=feature1, feature2=feature2, relationship_type=relation) rel_obj = Relationship(feature1=feature1, feature2=feature2, relationship_type=relation)
verb = "created" verb = "created"
if relation == "": if relation == "":
if rel_obj.id: if rel_obj.id:
verb = "deleted" verb = "deleted"
rel_obj.delete() rel_obj.delete()
else: if relation == "conflates":
feature2.is_primary = True
feature2.save()
else:
return render_to_json_response({'error': 'relation is already deleted'}) return render_to_json_response({'error': 'relation is already deleted'})
else: else:
rel_obj.save() rel_obj.save()
if relation == "subsumes": if relation == "conflates":
feature2.is_primary = False feature2.is_primary = False
feature2.save() feature2.save()
return render_to_json_response({'success': 'relation %s successfully.' % verb}) return render_to_json_response({'success': 'relation %s successfully.' % verb})