Skip to content
Snippets Groups Projects
Commit 36e19aca authored by Carlos Vega's avatar Carlos Vega
Browse files

create list of changes and then make them with a provenance for each change

parent b653cfea
No related branches found
No related tags found
1 merge request!249More provenance #328
Pipeline #25522 passed
......@@ -218,40 +218,41 @@ class RedcapConnector(object):
smasch_appointment.visit.is_finished = True
smasch_appointment.visit.save()
if visit.virus is not None or visit.virus_inconclusive:
changes = None
if visit.visit_number == 1 and subject.virus_test_1 != visit.virus:
subject.virus_test_1 = visit.virus
subject.virus_test_1_updated = datetime.datetime.now()
subject.save()
changes = [('virus_test_1', visit.virus), ('virus_test_1_updated', datetime.datetime.now())]
if visit.visit_number == 2 and subject.virus_test_2 != visit.virus:
subject.virus_test_2 = visit.virus
subject.virus_test_2_updated = datetime.datetime.now()
subject.save()
changes = [('virus_test_2', visit.virus), ('virus_test_2_updated', datetime.datetime.now())]
if visit.visit_number == 3 and subject.virus_test_3 != visit.virus:
subject.virus_test_3 = visit.virus
subject.virus_test_3_updated = datetime.datetime.now()
subject.save()
changes = [('virus_test_3', visit.virus), ('virus_test_3_updated', datetime.datetime.now())]
if visit.visit_number == 4 and subject.virus_test_4 != visit.virus:
subject.virus_test_4 = visit.virus
subject.virus_test_4_updated = datetime.datetime.now()
subject.save()
changes = [('virus_test_4', visit.virus), ('virus_test_4_updated', datetime.datetime.now())]
if visit.visit_number == 5 and subject.virus_test_5 != visit.virus:
subject.virus_test_5 = visit.virus
subject.virus_test_5_updated = datetime.datetime.now()
subject.save()
changes = [('virus_test_5', visit.virus), ('virus_test_5_updated', datetime.datetime.now())]
if visit.visit_number == 1 and subject.virus_test_1_updated is None and visit.virus_inconclusive:
subject.virus_test_1_updated = datetime.datetime.now()
subject.save()
changes = [('virus_test_1_updated', datetime.datetime.now())]
if visit.visit_number == 2 and subject.virus_test_2_updated is None and visit.virus_inconclusive:
subject.virus_test_2_updated = datetime.datetime.now()
subject.save()
changes = [('virus_test_2_updated', datetime.datetime.now())]
if visit.visit_number == 3 and subject.virus_test_3_updated is None and visit.virus_inconclusive:
subject.virus_test_3_updated = datetime.datetime.now()
subject.save()
changes = [('virus_test_3_updated', datetime.datetime.now())]
if visit.visit_number == 4 and subject.virus_test_4_updated is None and visit.virus_inconclusive:
subject.virus_test_4_updated = datetime.datetime.now()
subject.save()
changes = [('virus_test_4_updated', datetime.datetime.now())]
if visit.visit_number == 5 and subject.virus_test_5_updated is None and visit.virus_inconclusive:
subject.virus_test_5_updated = datetime.datetime.now()
changes = [('virus_test_5_updated', datetime.datetime.now())]
#
if changes is not None:
for field, new_value in changes:
old_value = getattr(subject, field)
description = u'{} changed from "{}" to "{}"'.format(field, old_value, new_value)
p = Provenance(modified_table=StudySubject._meta.db_table,
modified_table_id=subject.id,
modification_author=self.importer_user,
previous_value=old_value,
new_value=new_value,
modification_description=description,
modified_field=field)
setattr(subject, field, new_value)
p.save()
subject.save()
return result
......
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