Merge pull request #109 from danieldupriest/policy-error-handling

Policy error handling implemented
This commit is contained in:
Daniel Dupriest 2019-03-03 01:08:52 -08:00 committed by GitHub
commit 05f29b3584
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
5 changed files with 36 additions and 30 deletions

View file

@ -1,4 +1,4 @@
# Generated by Django 2.1.7 on 2019-03-03 08:55
# Generated by Django 2.1.7 on 2019-03-03 09:06
import datetime
from django.db import migrations, models

View file

@ -1,4 +1,4 @@
# Generated by Django 2.1.7 on 2019-03-03 08:55
# Generated by Django 2.1.7 on 2019-03-03 09:06
from django.conf import settings
from django.db import migrations, models

View file

@ -53,19 +53,22 @@ def get_sections(r_id):
data.update(get_fields(i.id))
# process rules from the policy file if the section is completed
if i.completed and not i.approved:
rules = pol.sections[index].rules
for rule in rules:
try:
named_fields = generate_named_fields_for_section(data['fields'])
result = rule['rule'](data, named_fields)
if not result is None:
info = {
"label": rule['title'],
"rule_break_text": result,
}
data['rule_violations'].append(info)
except Exception as e:
print('Rule "{}" encountered an error. {}'.format(rule['title'], e))
try:
rules = pol.sections[index].rules
for rule in rules:
try:
named_fields = generate_named_fields_for_section(data['fields'])
result = rule['rule'](data, named_fields)
if not result is None:
info = {
"label": rule['title'],
"rule_break_text": result,
}
data['rule_violations'].append(info)
except Exception as e:
print('Rule "{}" encountered an error. {}'.format(rule['title'], e))
except Exception as e:
print('Error accessing policy section {}. Policy file may have changed.'.format(index))
# append section to the array
section_set["sections"].append(data.copy())
@ -345,19 +348,22 @@ def section(request, report_pk, section_pk):
data.update(get_fields(s.id))
# process rules from the policy file if the section is completed
if s.completed and not s.approved:
rules = pol.sections[s.number].rules
for rule in rules:
try:
named_fields = generate_named_fields_for_section(data['fields'])
result = rule['rule'](data, named_fields)
if not result is None:
info = {
"label": rule['title'],
"rule_break_text": result,
}
data['rule_violations'].append(info)
except Exception as e:
print('Rule "{}" encountered an error. {}'.format(rule['title'], e))
try:
rules = pol.sections[s.number].rules
for rule in rules:
try:
named_fields = generate_named_fields_for_section(data['fields'])
result = rule['rule'](data, named_fields)
if not result is None:
info = {
"label": rule['title'],
"rule_break_text": result,
}
data['rule_violations'].append(info)
except Exception as e:
print('Rule "{}" encountered an error. {}'.format(rule['title'], e))
except Exception as e:
print('Error accessing policy section {}. Policy file may have been changed.'.format(s.number))
return JsonResponse(data)
def section_complete(section_pk):

Binary file not shown.

View file

@ -1,4 +1,4 @@
# Generated by Django 2.1.7 on 2019-03-03 08:55
# Generated by Django 2.1.7 on 2019-03-03 09:06
import django.contrib.auth.models
import django.contrib.auth.validators
@ -34,9 +34,9 @@ class Migration(migrations.Migration):
('user_permissions', models.ManyToManyField(blank=True, help_text='Specific permissions for this user.', related_name='user_set', related_query_name='user', to='auth.Permission', verbose_name='user permissions')),
],
options={
'verbose_name_plural': 'users',
'verbose_name': 'user',
'abstract': False,
'verbose_name_plural': 'users',
},
managers=[
('objects', django.contrib.auth.models.UserManager()),