Commit a131fa354e677d862229d59f693d6fcd5f61ed9e
1 parent
28b936b4
Added additional examples validation during semantics validation.
Showing
2 changed files
with
26 additions
and
0 deletions
dictionary/ajax_lemma_view.py
... | ... | @@ -43,6 +43,7 @@ from dictionary.validation import find_similar_frames, get_all_test_missing_fram |
43 | 43 | get_wrong_aspect_frames, validate_B_frames, get_deriv_miss_frames_message, \ |
44 | 44 | validate_phraseology_binded_frames, validate_rule_5, \ |
45 | 45 | validate_examples_and_mark_errors, validate_schemas_and_mark_errors, \ |
46 | + validate_schemata_for_semantics_and_mark_errors, \ | |
46 | 47 | get_missing_aspects_msg, validate_same_positions_schemata |
47 | 48 | |
48 | 49 | from semantics.models import LexicalUnitExamples |
... | ... | @@ -2387,10 +2388,12 @@ def validate_new_frames(request, data, id, examples, lemma_examples, |
2387 | 2388 | |
2388 | 2389 | status_need_validation = False |
2389 | 2390 | status_need_examples_check = False |
2391 | + status_need_semantic_check = False | |
2390 | 2392 | try: |
2391 | 2393 | status_obj = Lemma_Status.objects.get(id=status_id) |
2392 | 2394 | status_need_validation = status_obj.validate |
2393 | 2395 | status_need_examples_check = status_obj.check_examples |
2396 | + status_need_semantic_check = status_obj.check_semantics | |
2394 | 2397 | except Lemma_Status.DoesNotExist: |
2395 | 2398 | status_obj = None |
2396 | 2399 | |
... | ... | @@ -2402,6 +2405,8 @@ def validate_new_frames(request, data, id, examples, lemma_examples, |
2402 | 2405 | serialized_frames, error = validate_examples_and_mark_errors(old_object, status_obj, selected_frame_id) |
2403 | 2406 | elif status_need_validation or not status_obj: |
2404 | 2407 | serialized_frames, error = validate_schemas_and_mark_errors(old_object, status_obj, selected_frame_id) |
2408 | + elif status_need_semantic_check: | |
2409 | + serialized_frames, error = validate_schemata_for_semantics_and_mark_errors(old_object, status_obj, selected_frame_id) | |
2405 | 2410 | |
2406 | 2411 | if error: |
2407 | 2412 | return {'id' : '', |
... | ... |
dictionary/validation.py
... | ... | @@ -480,6 +480,27 @@ def are_examples_approved(lemma, schema, serialized_schema): |
480 | 480 | error = True |
481 | 481 | return error |
482 | 482 | |
483 | +################### schemata validation for semantic statuses ########## | |
484 | +def validate_schemata_for_semantics_and_mark_errors(lemma, status, selected_schema_id): | |
485 | + error = False | |
486 | + serialized_schemata = [] | |
487 | + for schema_obj in lemma.frames.all(): | |
488 | + serialized_schema = frameObjToSerializableDict(lemma, schema_obj, True) | |
489 | + if selected_schema_id and schema_obj.id != selected_schema_id: | |
490 | + serialized_schemata.append(serialized_schema) | |
491 | + continue | |
492 | + if check_schema_for_semantics_and_mark_errors(lemma, status, schema_obj, serialized_schema): | |
493 | + error = True | |
494 | + serialized_schemata.append(serialized_schema) | |
495 | + return serialized_schemata, error | |
496 | + | |
497 | +def check_schema_for_semantics_and_mark_errors(lemma, status, schema, serialized_schema): | |
498 | + error = False | |
499 | + # WALIDACJA 34: Pod schematem z refl nie mogą być przykłady niepodpięte pod refl | |
500 | + if check_and_mark_examples_must_use_refl_rule(lemma, schema, serialized_schema): | |
501 | + error = True | |
502 | + return error | |
503 | + | |
483 | 504 | ###################### schemas validation ############################## |
484 | 505 | def validate_schemas_and_mark_errors(lemma, status, selected_frame_id): |
485 | 506 | error = False |
... | ... |