Newer
Older
from django.http import JsonResponse
from common.decorators import ajax_required
from semantics.models import RelationalSelectionalPreference, Frame
from unifier.models import UnifiedFrameArgument, UnifiedRelationalSelectionalPreference, UnifiedFrame, \
UnifiedFrame2SlowalFrameMapping
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
@ajax_required
def save_synset_preference(request):
if request.method == 'POST':
frame_id = request.POST['frame_id']
complement_id = request.POST['complement_id']
synset_preference_id = request.POST['synset_preference_id']
unifiedFrameArgument = UnifiedFrameArgument.objects.get(unified_frame_id=int(frame_id), id=int(complement_id))
unifiedFrameArgument.synsets.add(int(synset_preference_id))
unifiedFrameArgument.save()
return JsonResponse({})
@ajax_required
def save_predefined_preference(request):
if request.method == 'POST':
frame_id = request.POST['frame_id']
complement_id = request.POST['complement_id']
predefined_preference_id = request.POST['predefined_preference_id']
unifiedFrameArgument = UnifiedFrameArgument.objects.get(unified_frame_id=int(frame_id), id=int(complement_id))
unifiedFrameArgument.predefined.add(int(predefined_preference_id))
unifiedFrameArgument.save()
return JsonResponse({})
@ajax_required
def save_relational_selectional_preference(request):
if request.method == 'POST':
frame_id = request.POST['frame_id']
complement_id_from = request.POST['complement_id_from']
complement_id_to = request.POST['complement_id_to']
relation_id = request.POST['relation_id']
unifiedFrameArgument = UnifiedFrameArgument.objects.get(unified_frame_id=int(frame_id), id=int(complement_id_from))
relationalSelectionalPreference = UnifiedRelationalSelectionalPreference(to_id=complement_id_to, relation_id=relation_id)
relationalSelectionalPreference.save()
unifiedFrameArgument.relations.add(relationalSelectionalPreference)
unifiedFrameArgument.save()
return JsonResponse({})
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
@ajax_required
def get_unified_frames(request):
if request.method == 'POST':
errors_dict = dict()
scroller_params = get_scroller_params(request.POST)
unifiedFrame2SlowalFrameMappings = UnifiedFrame2SlowalFrameMapping.objects.all();
res = {}
for mapping in unifiedFrame2SlowalFrameMappings:
res[mapping.unified_frame.id] = res.get(mapping.unified_frame.id, [])
res[mapping.unified_frame.id].append(mapping)
resProcessed = []
for key, value in res.items():
title = value[0].unified_frame.title if value[0].unified_frame.title is not None else '['+value[0].slowal_frame.lexical_units.first().base+']'
resProcessed.append({
'id': str(value[0].unified_frame.id),
'title': title,
'status': value[0].unified_frame.status,
'assignee_username': (
assignment.user.username if (assignment := value[0].slowal_frame.lexical_units.first().assignments.first()) else None
),
})
ret = {
'draw' : scroller_params['draw'],
'recordsTotal': len(resProcessed),
'recordsFiltered': len(resProcessed),
'data': resProcessed
}
return JsonResponse(ret)
return JsonResponse({})
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
# @ajax_required
# def get_unified_frame(request):
# if request.method == 'POST':
# #TODO (*)
# #form = EntryForm(request.POST)
# unified_frame_id = request.POST['unified_frame_id']
# #TODO (*)
# if unified_frame_id.isdigit():# and form.is_valid():
# unified_frame_id = int(unified_frame_id)
# # TODO check that Entry has no import errors
# unifiedFrame = UnifiedFrame.objects.get(id=unified_frame_id)
#
# frame_objects = Frame.objects.filter(arguments__argument_connections__schema_connections__subentry__entry=entry).distinct()
# # filter out frames by frame properties
# if filter_frames:
# frame_objects = get_filtered_objects2(frame_forms, frame_objects)
# if local_frame_form:
# frame_objects = get_filtered_objects(local_frame_form, frame_objects)
# frames = [frame2dict(frame, entry.lexical_units.all()) for frame in frame_objects]
# alternations, realisation_phrases, realisation_descriptions = get_alternations(all_schema_objects, frame_objects)
# examples = get_examples(entry)
# # https://docs.djangoproject.com/en/2.2/topics/http/sessions/#when-sessions-are-saved
# if [entry.name, entry.id] in request.session['last_visited']:
# request.session['last_visited'].remove([entry.name, entry.id])
# request.session['last_visited'].insert(0, (entry.name, entry.id))
# request.session['last_visited'] = request.session['last_visited'][:(MAX_LAST_VISITED + 1)]
# request.session.modified = True
# return JsonResponse({ 'subentries' : subentries, 'frames' : frames, 'alternations' : alternations, 'realisation_phrases' : realisation_phrases, 'realisation_descriptions' : realisation_descriptions, 'examples' : examples, 'last_visited' : request.session['last_visited'] })
# return JsonResponse({})