From f7e76d7066fffa075f5e717a2e68c71b47684652 Mon Sep 17 00:00:00 2001
From: bniton <bartek.niton@gmail.com>
Date: Tue, 24 Oct 2017 14:24:25 +0200
Subject: [PATCH] Semantic validation of used schemata bugfix.

---
 semantics/validation.py | 12 +++++++++++-
 1 file changed, 11 insertions(+), 1 deletion(-)

diff --git a/semantics/validation.py b/semantics/validation.py
index 73e5309..5eee7d8 100644
--- a/semantics/validation.py
+++ b/semantics/validation.py
@@ -237,10 +237,20 @@ def lemma_always_pinned(frame):
 def validate_schemas(lemma_id):
     error_msg = ''
     lemma = Lemma.objects.get(id=lemma_id, old=False)
-    if not all_schemas_used(lemma):
+    if missing_schemata_opinions(lemma):
+        error_msg = u'Nie wszystkie schematy mają wybrane oceny.'
+    elif not all_schemas_used(lemma):
         error_msg = u'Semantyka nie wykorzystuje wszystkich poprawnych schematów walencyjnych.'
     return error_msg
 
+def missing_schemata_opinions(lemma):
+    schemata = lemma.frames
+    for schema in schemata.all():
+        schema_opinion = lemma.frame_opinions.filter(frame=schema)
+        if not schema_opinion.exists():
+            return True
+    return False
+
 def all_schemas_used(lemma):
     frames = lemma.entry_obj.visible_frames()
     schemas = lemma.frames
--
libgit2 0.22.2