diff --git a/dictionary/ajax_lemma_view.py b/dictionary/ajax_lemma_view.py index f294136..65aa6ab 100644 --- a/dictionary/ajax_lemma_view.py +++ b/dictionary/ajax_lemma_view.py @@ -2496,16 +2496,18 @@ def save_new_frames(request, data, id, examples, lemma_examples): for argument in arg_selection['arguments']: try: arg_obj = jsArgToObj(argument) - argument_objs.append(arg_obj) - if len(nkjp_arg_sel_query.all()) > 0: # Q objectem to zalatwic - nkjp_arg_sel_query = nkjp_arg_sel_query.filter(arguments=arg_obj) + if arg_obj not in argument_objs: + argument_objs.append(arg_obj) + if len(nkjp_arg_sel_query.all()) > 0: # Q objectem to zalatwic + nkjp_arg_sel_query = nkjp_arg_sel_query.filter(arguments=arg_obj) except TypeError: pass - + + nkjp_arg_sel_obj = None if len(nkjp_arg_sel_query.all()) > 0: for nkjp_arg_sel in nkjp_arg_sel_query.all(): - if len(nkjp_arg_sel.arguments.all()) == len(argument_objs): + if len(nkjp_arg_sel.arguments.all()) == len(argument_objs): # zrobic list(set(argument_objs)) nkjp_arg_sel_obj = nkjp_arg_sel break if not nkjp_arg_sel_obj: diff --git a/semantics/management/commands/find_hanging_connections.py b/semantics/management/commands/find_hanging_connections.py new file mode 100644 index 0000000..25a8b02 --- /dev/null +++ b/semantics/management/commands/find_hanging_connections.py @@ -0,0 +1,37 @@ +#-*- coding:utf-8 -*- + +import datetime + +from django.core.management.base import BaseCommand + +from dictionary.models import Lemma + +class Command(BaseCommand): + args = 'none' + help = "" + + def handle(self, **options): + find_hanging_connections() + +def find_hanging_connections(): + lemmas = Lemma.objects.filter(old=False).order_by('entry_obj__name') + for lemma in lemmas: + frames = lemma.entry_obj.actual_frames() + for frame in frames: + for compl in frame.complements.all(): + for real in compl.realizations.all(): + match = False + matching_schemata = lemma.frames.filter(id=real.frame.id).all() + for schema in matching_schemata: + matching_poss = schema.positions.filter(id=real.position.id, + arguments=real.argument) + if matching_poss.exists(): + match = True + break + if not match: + compl_ref = 'frame_%d_comp_%d_' % (frame.id, compl.id) + print '!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!' + print 'lemma: %s\tcomplement: %s\trealization: %s' % (lemma.entry_obj.name, + compl_ref, + unicode(real)) + \ No newline at end of file diff --git a/semantics/management/commands/find_hanging_examples.py b/semantics/management/commands/find_hanging_examples.py new file mode 100644 index 0000000..241844a --- /dev/null +++ b/semantics/management/commands/find_hanging_examples.py @@ -0,0 +1,32 @@ +#-*- coding:utf-8 -*- + +from django.core.management.base import BaseCommand + +from dictionary.models import Lemma +from semantics.models import LexicalUnitExamples + +class Command(BaseCommand): + args = 'none' + help = "" + + def handle(self, **options): + find_hanging_examples() + +def find_hanging_examples(): + lemmas = Lemma.objects.filter(old=False).order_by('entry_obj__name') + for lemma in lemmas: + print_hanging_examples(lemma) + +def print_hanging_examples(lemma): + lex_units = lemma.entry_obj.lexical_units().all() + for lu in lex_units: + lu_examples = LexicalUnitExamples.objects.filter(lexical_unit=lu) + for lu_ex in lu_examples: + example = lu_ex.example + if not lemma.nkjp_examples.filter(id=example.id).exists(): + print '!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!' + print 'lemma: %s\tlu_ex_id: %d\texample: %s\tex_id: %d' % (lemma.entry_obj.name, + lu_ex.id, + example.sentence, + example.id) + \ No newline at end of file