diff --git a/semantics/views.py b/semantics/views.py index cb526eb796eec7ad658580e831db402ad58bc9b0..d938271e556cc1dec6ed250a618443a5b8af7894 100644 --- a/semantics/views.py +++ b/semantics/views.py @@ -29,7 +29,7 @@ def frame_confirm_invalid(request, frame_pk): frame = get_object_or_404(Frame.objects.filter(status=choices.FrameStatus.INVALID).select_for_update(), pk=frame_pk) frame.status = choices.FrameStatus.BAD frame.save() - removeSlovalFrameMappingsAndAssigments(frame_pk) + removeSlovalFrameMappingsAndAssigments(frame) http = urllib3.PoolManager() r = http.request('GET', settings.SLOWAL_FRAME_REMOVE_SERVICE_URL + str(frame_pk) + @@ -45,7 +45,7 @@ def frame_reject_invalid(request, frame_pk): frame = get_object_or_404(Frame.objects.filter(status=choices.FrameStatus.INVALID).select_for_update(), pk=frame_pk) frame.status = choices.FrameStatus.NEW frame.save() - removeSlovalFrameMappingsAndAssigments(frame_pk) + removeSlovalFrameMappingsAndAssigments(frame) http = urllib3.PoolManager() r = http.request('GET', settings.SLOWAL_FRAME_REMOVE_SERVICE_URL + str(frame_pk) + @@ -61,7 +61,7 @@ def frame_mark_as_bad(request, frame_pk): frame = get_object_or_404(Frame.objects.filter(status=choices.FrameStatus.NEW).select_for_update(), pk=frame_pk) frame.status = choices.FrameStatus.BAD frame.save() - removeSlovalFrameMappingsAndAssigments(frame_pk) + removeSlovalFrameMappingsAndAssigments(frame) http = urllib3.PoolManager() r = http.request('GET', settings.SLOWAL_FRAME_REMOVE_SERVICE_URL + str(frame_pk) + @@ -70,15 +70,16 @@ def frame_mark_as_bad(request, frame_pk): return {} -def removeSlovalFrameMappingsAndAssigments(frame_pk): +def removeSlovalFrameMappingsAndAssigments(frame): #odpianie z ramy zunifikowanej + frame_pk = frame.pk unified_frame2_slowal_frame_mappings = UnifiedFrame2SlowalFrameMapping.objects.filter(slowal_frame_id=frame_pk) for unified_frame2_slowal_frame_mapping in unified_frame2_slowal_frame_mappings: unified_frame_argument_slowal_frame_mappings = UnifiedFrameArgumentSlowalFrameMapping.objects.filter(unified_frame_mapping=unified_frame2_slowal_frame_mapping) for unified_frame_argument_slowal_frame_mapping in unified_frame_argument_slowal_frame_mappings: unified_frame_argument_slowal_frame_mapping.delete() unified_frame2_slowal_frame_mapping.delete() - Assignment.delete(subject_id=frame_pk) + Assignment.delete(subject=frame) @ajax(login_required=True, method='post') @@ -98,7 +99,7 @@ def frame_confirm_as_not_matching_unified_frame(request, frame_pk): frame = get_object_or_404(Frame.objects.select_for_update(), pk=frame_pk) frame.status = choices.FrameStatus.NEW frame.save() - removeSlovalFrameMappingsAndAssigments(frame_pk) + removeSlovalFrameMappingsAndAssigments(frame) http = urllib3.PoolManager() r = http.request('GET', settings.SLOWAL_FRAME_REMOVE_SERVICE_URL + str(frame_pk) + diff --git a/unifier/views.py b/unifier/views.py index 76f607ed67221fc9667e08ffa0a1d7926832dbea..a37a4c0ff729c2ac750c687e1c60efc2a44eee3d 100644 --- a/unifier/views.py +++ b/unifier/views.py @@ -257,12 +257,13 @@ def get_unified_frames(request): res = {} for unifiedFrame in unified_frames: + user = assignment.user.username if ( + assignment := unifiedFrame.assignments.first()) else None res[unifiedFrame.id] = { 'id': str(unifiedFrame.id), 'title': unifiedFrame.title, 'status': unifiedFrame.status, - 'assignee_username': assignment.user.username if ( - assignment := unifiedFrame.assignments.first()) else None, + 'assignee_username': user, 'hierarchy_exists': unifiedFrame.hasHierarchyElems, } @@ -895,25 +896,29 @@ def frame_assign(request): return JsonResponse({}) -def remove_unified_frame_mappings_and_assigments(unified_frame_id): +def remove_unified_frame_mappings_and_assigments(unified_frame): + unified_frame_id = unified_frame.pk # odpianie z ramy zunifikowanej unified_frame2_slowal_frame_mappings = UnifiedFrame2SlowalFrameMapping.objects.filter( unified_frame_id=unified_frame_id) for unifiedFrame2SlowalFrameMapping in unified_frame2_slowal_frame_mappings: unifiedFrame2SlowalFrameMapping.slowal_frame.status = 'N' unifiedFrame2SlowalFrameMapping.slowal_frame.save() - Assignment.delete(subject_id=unifiedFrame2SlowalFrameMapping.slowal_frame.id) + Assignment.delete(subject=unifiedFrame2SlowalFrameMapping.slowal_frame) unified_frame_argument_slowal_frame_mappings = UnifiedFrameArgumentSlowalFrameMapping.objects.filter( unified_frame_mapping=unifiedFrame2SlowalFrameMapping) unified_frame_argument_slowal_frame_mappings.delete() unifiedFrame2SlowalFrameMapping.delete() - Assignment.delete(subject_id=unified_frame_id) + Assignment.delete(subject=unified_frame) @ajax(login_required=True, method='post') @transaction.atomic def delete_unified_frame(request, unified_frame_id): - remove_unified_frame_mappings_and_assigments(unified_frame_id) + + unified_frame = UnifiedFrame.objects.get(id=unified_frame_id) + + remove_unified_frame_mappings_and_assigments(unified_frame) UnifiedFrameArgument.objects.filter(unified_frame_id=unified_frame_id).delete() slowal_frames = UnifiedFrame2SlowalFrameMapping.objects.filter(unified_frame_id=unified_frame_id).all() @@ -924,7 +929,7 @@ def delete_unified_frame(request, unified_frame_id): r = http.request('GET', settings.SLOWAL_FRAME_REMOVE_SERVICE_URL + slowal_frames_ids + settings.SLOWAL_FRAME_SERVICE_SYSTEM_TYPE_ARG) - UnifiedFrame.objects.get(id=unified_frame_id).delete() + unified_frame.delete() return {} diff --git a/users/models.py b/users/models.py index b7f4cc76c48ee37339d9c733b58aa659e0c33fe8..87ef01968099e45fa24d5269947f10269c023d72 100644 --- a/users/models.py +++ b/users/models.py @@ -25,9 +25,10 @@ class Assignment(models.Model): ) @classmethod - def delete(cls, subject_id): + def delete(cls, subject): Assignment.objects.filter( - subject_id=subject_id, + subject_ct=ContentType.objects.get_for_model(subject), + subject_id=subject.pk, ).delete()