Skip to content
Snippets Groups Projects
Commit 159b1354 authored by Megan Henning's avatar Megan Henning
Browse files

Fix loop for session temp validation

parent 37e0d00d
No related branches found
No related tags found
No related merge requests found
......@@ -211,7 +211,7 @@ class SessionStorage(ContainerStorage):
project = ContainerStorage('projects', use_object_id=True).get_container(session['project'])
session.update(payload)
payload['satisfies_template'] = hierarchy.is_session_compliant(session, json.loads(project.get('template')))
return super(SessionStorage, self).update_el(_id, payload, recursive, r_payload, replace_metadata)
return super(SessionStorage, self).update_el(_id, payload, recursive=recursive, r_payload=r_payload, replace_metadata=r_payload)
def recalc_session_compliance(self, session_id, session=None, template=None):
"""
......
......@@ -138,31 +138,34 @@ def is_session_compliant(session, template):
validator = Draft4Validator(req.get('schema'))
min_count = req.get('minimum')
count = 0
while count < min_count:
for a in acquisitions:
try:
validator.validate(a)
except ValidationError:
continue
else:
count += 1
for a in acquisitions:
try:
validator.validate(a)
except ValidationError:
continue
else:
count += 1
if count >= min_count:
break
if count < min_count:
return False
if f_requirements:
acquisitions = config.db.acquisitions.find({'session': session['_id']})
files = [f for a in acquisitions for f in a.get('files', [])]
for req in f_requirements:
validator = Draft4Validator(req.get('schema'))
min_count = req.get('minimum')
count = 0
while count < min_count:
for f in files:
try:
validator.validate(f)
except ValidationError as err:
continue
else:
count += 1
for f in files:
try:
validator.validate(a)
except ValidationError:
continue
else:
count += 1
if count >= min_count:
break
if count < min_count:
return False
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment