Commit f7e76d7066fffa075f5e717a2e68c71b47684652
1 parent
66c280ba
Semantic validation of used schemata bugfix.
Showing
1 changed file
with
11 additions
and
1 deletions
semantics/validation.py
| @@ -237,10 +237,20 @@ def lemma_always_pinned(frame): | @@ -237,10 +237,20 @@ def lemma_always_pinned(frame): | ||
| 237 | def validate_schemas(lemma_id): | 237 | def validate_schemas(lemma_id): |
| 238 | error_msg = '' | 238 | error_msg = '' |
| 239 | lemma = Lemma.objects.get(id=lemma_id, old=False) | 239 | lemma = Lemma.objects.get(id=lemma_id, old=False) |
| 240 | - if not all_schemas_used(lemma): | 240 | + if missing_schemata_opinions(lemma): |
| 241 | + error_msg = u'Nie wszystkie schematy mają wybrane oceny.' | ||
| 242 | + elif not all_schemas_used(lemma): | ||
| 241 | error_msg = u'Semantyka nie wykorzystuje wszystkich poprawnych schematów walencyjnych.' | 243 | error_msg = u'Semantyka nie wykorzystuje wszystkich poprawnych schematów walencyjnych.' |
| 242 | return error_msg | 244 | return error_msg |
| 243 | 245 | ||
| 246 | +def missing_schemata_opinions(lemma): | ||
| 247 | + schemata = lemma.frames | ||
| 248 | + for schema in schemata.all(): | ||
| 249 | + schema_opinion = lemma.frame_opinions.filter(frame=schema) | ||
| 250 | + if not schema_opinion.exists(): | ||
| 251 | + return True | ||
| 252 | + return False | ||
| 253 | + | ||
| 244 | def all_schemas_used(lemma): | 254 | def all_schemas_used(lemma): |
| 245 | frames = lemma.entry_obj.visible_frames() | 255 | frames = lemma.entry_obj.visible_frames() |
| 246 | schemas = lemma.frames | 256 | schemas = lemma.frames |