From 7211e57d53f4c3827ddaf1f09a78d71797dfb77f Mon Sep 17 00:00:00 2001 From: Tomasz Bartosiak <tomasz.bartosiak@mozart.ipipan.waw.pl> Date: Tue, 19 Jan 2016 15:54:42 +0100 Subject: [PATCH] Wyświetlanie lokacji dodanej jednostki leksykalnej --- semantics/static/js/semantics_frames.js | 4 ++++ semantics/static/js/semantics_lexical_units.js | 21 +++++++++++++++++++-- semantics/static/js/semantics_view.js | 4 ++++ semantics/templates/semantics.html | 2 ++ semantics/views.py | 26 +++++++++++++++++++++----- 5 files changed, 50 insertions(+), 7 deletions(-) diff --git a/semantics/static/js/semantics_frames.js b/semantics/static/js/semantics_frames.js index 87183cd..852b0dc 100644 --- a/semantics/static/js/semantics_frames.js +++ b/semantics/static/js/semantics_frames.js @@ -64,6 +64,10 @@ function displayFrames(){ u += '\n'; } u += lexical_units[lid].definition; + if (lexical_units[lid].definition != '') { + u += '\n'; + } + u += lexical_units[lid].location; u +='"> '; u += lexical_units[lid].base + '-' + lexical_units[lid].sense; u += '</strong>'; diff --git a/semantics/static/js/semantics_lexical_units.js b/semantics/static/js/semantics_lexical_units.js index 266e504..70fccd3 100644 --- a/semantics/static/js/semantics_lexical_units.js +++ b/semantics/static/js/semantics_lexical_units.js @@ -34,7 +34,7 @@ function createLexicalUnit(refl, glossa, relation, to) { refl_text = ""; } - var lu = {base: base + refl_text, glossa: "" + glossa, definition: "", id: free_luid, luid: -1, refl: refl, glossa: glossa, pos: "czasownik", sense: free_sense, relation: relation, to: to}; + var lu = {base: base + refl_text, glossa: "" + glossa, definition: "", id: free_luid, luid: -1, refl: refl, glossa: glossa, pos: "czasownik", sense: free_sense, relation: relation, to: to, location: ""}; var operation = {operation: 'add_unit', unit:lu}; lexical_units.push(lu); lexical_unit_examples[free_luid] = [] @@ -88,6 +88,15 @@ function setGlossa(luid, glossa) { units_operations.push({operation: 'set_glossa', unit: luid, value: lexical_units[i].glossa}); } +function getLocation(luid) { + if (isPLWNUnit(luid)){ + var lu = lexical_units[indexOfId(lexical_units, luid)]; + return lu.location; + } else { + return ""; + } +} + // save all changes to meanings (lexical units) function saveMeanings() { $.ajax({ @@ -119,7 +128,15 @@ function getMeanings() { var i; for (i = 0; i < lexical_units.length; i++) { - display += "<input type = \"radio\" name = \"meaning\" value = \"" + lexical_units[i].id + "\">" + lexical_units[i].base + "-" + lexical_units[i].sense + " <i>" + lexical_units[i].definition + "</i><br><div id=\"glossa_" + lexical_units[i].id + "\">" + lexical_units[i].glossa + "</div>"; + display += "<input type = \"radio\" name = \"meaning\" value = \"" + lexical_units[i].id + "\">" + lexical_units[i].base + "-" + lexical_units[i].sense + "<div id=\"glossa_" + lexical_units[i].id + "\">" + " <i>" + lexical_units[i].definition + "</i>"; + if (lexical_units[i].definition != "") { + display += "<br>"; + } + display += lexical_units[i].glossa + if (lexical_units[i].glossa != "") { + display += "<br>"; + } + display += lexical_units[i].location + "</div>"; } return display; diff --git a/semantics/static/js/semantics_view.js b/semantics/static/js/semantics_view.js index e127e3d..96c212a 100644 --- a/semantics/static/js/semantics_view.js +++ b/semantics/static/js/semantics_view.js @@ -767,6 +767,7 @@ function frameClick(clicked_id) { $('#assign_role').attr('disabled', "True"); $('#add_preference').attr('disabled', "True"); $('#delete').attr('disabled', "True"); + $('#multi_lus').attr('disabled', "True"); $('#change_lus').attr('disabled', "True"); $('#change_opinion').attr('disabled', "True"); } else { @@ -778,6 +779,7 @@ function frameClick(clicked_id) { $('#assign_role').attr('disabled', "True"); $('#add_preference').attr('disabled', "True"); $('#delete').removeAttr('disabled'); + $('#multi_lus').removeAttr('disabled'); $('#change_lus').removeAttr('disabled'); $('#change_opinion').removeAttr('disabled'); } @@ -795,6 +797,7 @@ function frameClick(clicked_id) { $('#assign_role').attr('disabled', "True"); $('#add_preference').attr('disabled', "True"); $('#delete').attr('disabled', "True"); + $('#multi_lus').attr('disabled', "True"); $('#change_lus').attr('disabled', "True"); $('#change_opinion').attr('disabled', "True"); } else { @@ -812,6 +815,7 @@ function frameClick(clicked_id) { $('#assign_role').removeAttr('disabled'); $('#add_preference').removeAttr('disabled'); $('#delete').removeAttr('disabled'); + $('#multi_lus').removeAttr('disabled'); $('#change_lus').removeAttr('disabled'); $('#change_opinion').removeAttr('disabled'); } diff --git a/semantics/templates/semantics.html b/semantics/templates/semantics.html index d08fd2b..cbdcf8c 100644 --- a/semantics/templates/semantics.html +++ b/semantics/templates/semantics.html @@ -99,6 +99,8 @@ <button type="button" onclick="createFrame()" id="create_frame">Nowa rama</button> <button type="button" onclick="removeFromFrame()" id="delete" disabled="True">Usuń</button> <br/> + <button type="button" onclick="changeLexicalUnits()" id="multi_lus" disabled="True">Jednostki wielowyrazowe</button> + <br/> <button type="button" onclick="changeLexicalUnits()" id="change_lus" disabled="True">Zmień jednostki</button> <button type="button" onclick="changeOpinion()" id="change_opinion" disabled="True">Ustaw ocenę</button> <br/> diff --git a/semantics/views.py b/semantics/views.py index 69eca1f..e3b578e 100644 --- a/semantics/views.py +++ b/semantics/views.py @@ -3,7 +3,9 @@ from semantics.models import SemanticRole, SemanticFrame, Complement, \ LexicalUnit, FrameRankings, SemanticRolesDisplay, \ LexicalUnitExamples, SelectivePreferenceRelations, \ - GeneralSelectivePreference, FrameOpinion + GeneralSelectivePreference, FrameOpinion, Synset + +from wordnet.models import Hypernymy, Synonymy from dictionary.models import Frame_Char_Model, Lemma, Lemma_Status, \ sort_arguments, sort_positions @@ -72,7 +74,8 @@ def reorder_history(frames_list): def ajax_frames(request, lemma_id): lemma = Lemma.objects.get(id=lemma_id, old=False) - lexical_units = LexicalUnit.objects.filter(Q(base__startswith=lemma.entry + u' ')|Q(base__contains=u' '+lemma.entry+u' ')|Q(base__endswith=u' '+lemma.entry)|Q(base=lemma.entry)).order_by('sense') + lexical_units = LexicalUnit.objects.filter(Q(base=lemma.entry, pos="czasownik")|Q(base=lemma.entry+u' się', pos="czasownik")).order_by('sense') +# lexical_units = LexicalUnit.objects.filter(Q(base__startswith=lemma.entry + u' ')|Q(base__contains=u' '+lemma.entry+u' ')|Q(base__endswith=u' '+lemma.entry)|Q(base=lemma.entry)).order_by('sense') alternations = {} frames_dict = {} @@ -205,16 +208,29 @@ def ajax_frames(request, lemma_id): @ajax(method='get', encode_result=False) def ajax_units(request, lemma_id): lemma = Lemma.objects.get(id=lemma_id, old=False) -# lexical_units = LexicalUnit.objects.filter(Q(base = lemma.entry, pos="czasownik")|Q(base = lemma.entry + u' się', pos="czasownik")).order_by('base', 'sense') - lexical_units = LexicalUnit.objects.filter(Q(base__startswith=lemma.entry + u' ', pos="czasownik")|Q(base__contains=u' '+lemma.entry+u' ', pos="czasownik")|Q(base__endswith=u' '+lemma.entry, pos="czasownik")|Q(base=lemma.entry, pos="czasownik")).order_by('base', 'sense') + lexical_units = LexicalUnit.objects.filter(Q(base = lemma.entry, pos="czasownik")|Q(base = lemma.entry + u' się', pos="czasownik")).order_by('base', 'sense') +# lexical_units = LexicalUnit.objects.filter(Q(base__startswith=lemma.entry + u' ', pos="czasownik")|Q(base__contains=u' '+lemma.entry+u' ', pos="czasownik")|Q(base__endswith=u' '+lemma.entry, pos="czasownik")|Q(base=lemma.entry, pos="czasownik")).order_by('base', 'sense') context = { - 'lexical_units': [{"id": lu.id, "luid": lu.luid, "base": lu.base, "sense": lu.sense, "pos": lu.pos, "glossa": lu.glossa, "definition": lu.definition} for lu in lexical_units], + 'lexical_units': [{"id": lu.id, "luid": lu.luid, "base": lu.base, "sense": lu.sense, "pos": lu.pos, "glossa": lu.glossa, "definition": lu.definition, "location": location(lu)} for lu in lexical_units], 'informations': {'base': lemma.entry, 'sense': max(['A'] + [chr(ord(lu.sense) + 1) for lu in lexical_units.filter(luid=-1)])}, # TODO: 2 different free senses for with/whthout 'się' } return context +def location(lexical_unit): + if lexical_unit.synset is None: + return "" + if lexical_unit.luid >= 0: + return "" + where = Synonymy.objects.filter(parent=lexical_unit.synset) + if len(where) > 0: + return "synonim " + unicode(where[0].child) + where = Hypernymy.objects.filter(parent=lexical_unit.synset) + if len(where) > 0: + return "hiponim " + unicode(where[0].child) + return "nieznana lokacja w Słowosieci" + @ajax(method='get') def ajax_predefined_preferences(request): predefined = [] -- libgit2 0.22.2