From 8efeabb4271ec733be8e3d69338db520ef9a5663 Mon Sep 17 00:00:00 2001 From: dcz <dcz@ipipan.waw.pl> Date: Fri, 22 Sep 2023 10:09:03 +0200 Subject: [PATCH] All preference adding constraint. --- .../Unification/SelectionalPreference.js | 3 +-- unifier/views.py | 22 ++++++++++++------- 2 files changed, 15 insertions(+), 10 deletions(-) diff --git a/frontend/src/components/unification/Unification/SelectionalPreference.js b/frontend/src/components/unification/Unification/SelectionalPreference.js index b4bab13..4adb459 100644 --- a/frontend/src/components/unification/Unification/SelectionalPreference.js +++ b/frontend/src/components/unification/Unification/SelectionalPreference.js @@ -352,8 +352,7 @@ export default class SelectionalPreference { synset_hierarchy_conflict_alert(response) { const conflict_exists = response.conflict_exists; if (conflict_exists != null) { - alert('Wybrana preferencja selekcyjna nie mogła zostać zapisana ponieważ widnieje już na liście preferencji selekcyjnych: ' + - conflict_exists) + alert(conflict_exists) } else { const conflict_hyponym = response.conflict_hyponym; const conflict_hyperonym = response.conflict_hyperonym; diff --git a/unifier/views.py b/unifier/views.py index a74ab31..c164dbd 100644 --- a/unifier/views.py +++ b/unifier/views.py @@ -88,7 +88,7 @@ def check_sysnet_hierarchy_constraints(synset_preference_ids, unified_frame_argu return {"succ": False, "conflict_hyponym": conflict_hyponym_lu_str, "conflict_hyperonym": conflict_hyperonym_lu_str, - "conflict_exists": conflict_exists_lu_str} + "conflict_exists": "Wybrana preferencja selekcyjna nie mogła zostać zapisana ponieważ widnieje już na liście preferencji selekcyjnych: " + conflict_exists_lu_str} return {"succ": True} @@ -111,16 +111,22 @@ def save_predefined_preference(request): unified_frame_argument = UnifiedFrameArgument.objects.get(unified_frame_id=int(frame_id), id=int(complement_id)) predefined_synset_ids = [] - get_predefined_preference_synsets([PredefinedSelectionalPreference.objects.get(id=predefined_preference_id)], predefined_synset_ids) + pred_sel_pref = PredefinedSelectionalPreference.objects.get(id=predefined_preference_id) + if pred_sel_pref.name == 'ALL' and len(unified_frame_argument.predefined.all()) > 0: + return JsonResponse({"succ": False, "conflict_hyponym": None, + "conflict_hyperonym": None, + "conflict_exists": "Predefiniowana preferencja selekcyjna ALL może być dodana tylko, gdy nie na liście nie widnieją inne preferencje selekcyjne."}) + else: + get_predefined_preference_synsets([pred_sel_pref], predefined_synset_ids) - check_sysnet_hierarchy_constraints_ret = check_sysnet_hierarchy_constraints(predefined_synset_ids, unified_frame_argument) + check_sysnet_hierarchy_constraints_ret = check_sysnet_hierarchy_constraints(predefined_synset_ids, unified_frame_argument) - if check_sysnet_hierarchy_constraints_ret['succ'] is True: - unified_frame_argument.predefined.add(int(predefined_preference_id)) - unified_frame_argument.save() - update_argument_preferences_count(unified_frame_argument) + if check_sysnet_hierarchy_constraints_ret['succ'] is True: + unified_frame_argument.predefined.add(int(predefined_preference_id)) + unified_frame_argument.save() + update_argument_preferences_count(unified_frame_argument) - return JsonResponse(check_sysnet_hierarchy_constraints_ret) + return JsonResponse(check_sysnet_hierarchy_constraints_ret) return JsonResponse({}) -- GitLab