From da53181a5060acd54d07a899e8633e3126a9ede8 Mon Sep 17 00:00:00 2001 From: dcz <dcz@ipipan.waw.pl> Date: Fri, 13 Jan 2023 17:06:04 +0100 Subject: [PATCH] Additional fitlers for unified frames --- entries/forms.py | 22 ++++++++++++++++------ entries/static/entries/js/forms.js | 4 ++-- entries/templates/entries_base.html | 8 ++++---- shellvalier/settings.py | 1 + syntax/management/commands/import_tei.py | 4 ++-- unifier/models.py | 4 ++-- unifier/views.py | 10 ++++++---- 7 files changed, 33 insertions(+), 20 deletions(-) diff --git a/entries/forms.py b/entries/forms.py index 0ae5f8f..7cc5e72 100644 --- a/entries/forms.py +++ b/entries/forms.py @@ -27,6 +27,7 @@ from semantics.models import ( ) from meanings.models import Synset, LexicalUnit +from unifier.choices import UnifiedFrameStatus from unifier.models import UnifiedFrame, UnifiedFrameArgument from .form_fields.generic_fields import ( @@ -139,6 +140,8 @@ class EntryForm(QueryForm): self.make_field('pos'), self.make_field('phraseology'), self.make_field('status'), + self.make_field('frequency_1M'), + self.make_field('frequency_300M'), ] schema_components = [ @@ -207,6 +210,14 @@ class EntryForm(QueryForm): label=_('Liczba ram'), lookup='frames_count', ) + frequency_1M = RangeFilter( + label=_('Frekwencja w korpusie 1M'), + lookup='frequency_1M', + ) + frequency_300M = RangeFilter( + label=_('Frekwencja w korpusie 300M'), + lookup='frequency_300M', + ) phrase_type = PhraseTypeFilter( queryset=PhraseTypeModel.objects.filter(main_phrase_types__positions__schemata__isnull=False).distinct(), #help_text=_('Typ frazy wystÄ™pujÄ…cy w haÅ›le.'), @@ -612,13 +623,12 @@ class UnifiedFrameFormFactory(FormFactory): field_makers = ( ( - 'opinion', + 'status', lambda: ModelMultipleChoiceFilter( - label=_('Opinia'), - queryset=FrameOpinion.objects.exclude(key='unk').filter(frame__isnull=False).distinct(), - key='key', - human_values=polish_strings.FRAME_OPINION(), - lookup='opinion', + label=_('Status'), + queryset=UnifiedFrame.objects.distinct(), + key='status', + lookup='status', ), None, ), ( diff --git a/entries/static/entries/js/forms.js b/entries/static/entries/js/forms.js index cacca0d..3ea85fd 100644 --- a/entries/static/entries/js/forms.js +++ b/entries/static/entries/js/forms.js @@ -493,7 +493,7 @@ function initialize_local_form(selector, url) { } function initialize_frames_form() { - initialize_local_form($('#frame-filters'), '/' + lang + '/entries/send_frames_form/'); + initialize_local_form($('#frame-filters-local'), '/' + lang + '/entries/send_frames_form/'); } function initialize_unified_frames_form() { @@ -503,7 +503,7 @@ function initialize_unified_frames_form() { function initialize_schemata_form() { - initialize_local_form($('#schema-filters'), '/' + lang + '/entries/send_schemata_form/'); + initialize_local_form($('#schema-filters-local'), '/' + lang + '/entries/send_schemata_form/'); /*var schemata_form = $('#schema-filters').find('form'); diff --git a/entries/templates/entries_base.html b/entries/templates/entries_base.html index 546dee8..19bdd4f 100644 --- a/entries/templates/entries_base.html +++ b/entries/templates/entries_base.html @@ -102,11 +102,11 @@ </div> </div> -<div class="modal fade" id="frame-filters" tabindex="-1" role="dialog" aria-labelledby="frame-filtersLabel" aria-hidden="true"> +<div class="modal fade" id="frame-filters-local" tabindex="-1" role="dialog" aria-labelledby="frame-filters-localLabel" aria-hidden="true"> <div class="modal-dialog modal-xl" role="document"> <div class="modal-content"> <div class="modal-header"> - <h5 class="modal-title" id="frame-filtersLabel">{% trans "Filtrowanie ram" %}</h5> + <h5 class="modal-title" id="frame-filters-localLabel">{% trans "Filtrowanie ram" %}</h5> <button type="button" class="close" data-dismiss="modal" aria-label="Close"> <span aria-hidden="true">×</span> </button> @@ -134,11 +134,11 @@ </div> </div> -<div class="modal fade" id="schema-filters" tabindex="-1" role="dialog" aria-labelledby="schema-filtersLabel" aria-hidden="true"> +<div class="modal fade" id="schema-filters-local" tabindex="-1" role="dialog" aria-labelledby="schema-filters-localLabel" aria-hidden="true"> <div class="modal-dialog modal-xl" role="document"> <div class="modal-content"> <div class="modal-header"> - <h5 class="modal-title" id="schema-filtersLabel">{% trans "Filtrowanie schematów" %}</h5> + <h5 class="modal-title" id="schema-filters-localLabel">{% trans "Filtrowanie schematów" %}</h5> <button type="button" class="close" data-dismiss="modal" aria-label="Close"> <span aria-hidden="true">×</span> </button> diff --git a/shellvalier/settings.py b/shellvalier/settings.py index 50aba11..d127d89 100644 --- a/shellvalier/settings.py +++ b/shellvalier/settings.py @@ -164,6 +164,7 @@ STATIC_URL = f'/static/' DJANGO_VITE_ASSETS_PATH = os.path.join(BASE_DIR, 'frontend', 'dist') DJANGO_VITE_DEV_MODE = DEBUG DJANGO_VITE_STATIC_URL = "/" +DJANGO_VITE_DEV_SERVER_HOST = get_environment('SERVER_HOST_NAME', default="localhost") DJANGO_VITE_DEV_SERVER_PORT = 8010 STATICFILES_DIRS = [ diff --git a/syntax/management/commands/import_tei.py b/syntax/management/commands/import_tei.py index 4b92b1e..908cfdf 100644 --- a/syntax/management/commands/import_tei.py +++ b/syntax/management/commands/import_tei.py @@ -35,8 +35,8 @@ def import_tei(): #xml_file = os.path.join(BASE_DIR, 'data', 'walenty', 'walenty_20200926_smaller.xml') #xml_file = os.path.join(BASE_DIR, 'data', 'walenty', 'walenty_20210913_smaller.xml') - xml_file = os.path.join(BASE_DIR, 'data', 'walenty', 'walenty_20210913_smallest.xml') - #xml_file = os.path.join(BASE_DIR, 'data', 'walenty', 'walenty_20210913.xml') + # xml_file = os.path.join(BASE_DIR, 'data', 'walenty', 'walenty_20210913_smallest.xml') + xml_file = os.path.join(BASE_DIR, 'data', 'walenty', 'walenty_20210913.xml') xml_path = os.path.join(os.path.dirname(os.path.abspath(__file__)), xml_file) diff --git a/unifier/models.py b/unifier/models.py index a15ba60..6700041 100644 --- a/unifier/models.py +++ b/unifier/models.py @@ -34,10 +34,10 @@ class UnifiedFrame(models.Model): objects = models.Manager.from_queryset(UnifiedFrameQueryset)() def sorted_arguments(self): # TODO: zaimplementowac wlasciwe sortowanie - return UnifiedFrameArgument.objects.filter(frame=self) + return UnifiedFrameArgument.objects.filter(unified_frame=self) def __str__(self): - return '%s: %s' % (self.opinion, ' + '.join([str(arg) for arg in self.sorted_arguments()])) + return '%s: %s' % (self.status, ' + '.join([str(arg) for arg in self.sorted_arguments()])) @transaction.atomic def extract_frames_to( diff --git a/unifier/views.py b/unifier/views.py index 9a12996..51a14be 100644 --- a/unifier/views.py +++ b/unifier/views.py @@ -83,12 +83,14 @@ def get_unified_frames(request): restrict_to_user = request.GET.get('restrict_to_user') errors_dict = dict() - forms = collect_forms(request.session['unified_frame_form'], errors_dict) - res = {} - # unifiedFrames = UnifiedFrame.objects.all(); + if request.session['unified_frame_form']: + forms = collect_forms(request.session['unified_frame_form'], errors_dict) + unifiedFrames = get_filtered_objects(forms).filter() + else: + unifiedFrames = UnifiedFrame.objects.all(); - unifiedFrames = get_filtered_objects(forms).filter() + res = {} for unifiedFrame in unifiedFrames: res[unifiedFrame.id] = { -- GitLab