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">&times;</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">&times;</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