From 58cc002b19e0b31c00e62b515649ba6730b9953c Mon Sep 17 00:00:00 2001
From: Bartłomiej Nitoń <bartomiej@raven.(none)>
Date: Fri, 22 Jan 2016 08:55:07 +0100
Subject: [PATCH] Added new semantic validation rule checking whether there are no hanging meanings in the entry.

---
 semantics/validation.py | 10 ++++++++++
 1 file changed, 10 insertions(+), 0 deletions(-)

diff --git a/semantics/validation.py b/semantics/validation.py
index bd333a5..5351c29 100644
--- a/semantics/validation.py
+++ b/semantics/validation.py
@@ -186,6 +186,10 @@ def validate_lexical_units(lemma_id):
     for lex_unit in lexical_units.all():
         if not examples_reflex_agreed(lex_unit):
             error_msg = u'Semantyka: Znaczenie %s ma podpięte przykłady o niezgodnej zwrotności.' % unicode(lex_unit)
+        elif hanging_meaning(lex_unit):
+            error_msg = u'Semantyka: Znaczenie %s nie jest reprezentowane przez żadną ramę semantyczną.' % unicode(lex_unit)
+        if error_msg:
+            break
     return error_msg
 
 def examples_reflex_agreed(lexical_unit):
@@ -197,3 +201,9 @@ def examples_reflex_agreed(lexical_unit):
                  lex_example.example.arguments.filter(arguments__type__in=reflex_phrase_types()).exists())):
             return False
     return True
+
+def hanging_meaning(lexical_unit):
+    if lexical_unit.luid < 0 and not lexical_unit.actual_frames().exists():
+        return True
+    return False
+    
\ No newline at end of file
--
libgit2 0.22.2