From 7a31be9858da20b50fea73a875a70e44da851d48 Mon Sep 17 00:00:00 2001 From: Piotr Gawron <piotr.gawron@uni.lu> Date: Thu, 9 Mar 2017 13:47:22 +0100 Subject: [PATCH] when finishing visit of dead person no follow up visit wil be added --- smash/web/models.py | 16 +++++------ smash/web/tests/test_model_visit.py | 42 +++++++++++++++++++++++++++++ 2 files changed, 48 insertions(+), 10 deletions(-) create mode 100644 smash/web/tests/test_model_visit.py diff --git a/smash/web/models.py b/smash/web/models.py index f6ee5abf..2fef2427 100644 --- a/smash/web/models.py +++ b/smash/web/models.py @@ -237,18 +237,14 @@ class Visit(models.Model): self.is_finished = True self.save() - visit_started = self.datetime_end + if (not self.subject.dead) and (not self.subject.resigned): + visit_started = self.datetime_begin - appointments = Appointment.objects.filter(visit=self) + time_to_next_visit = datetime.timedelta(days=365) + if self.subject.type== Subject.SUBJECT_TYPE_CHOICES_CONTROL: + time_to_next_visit = datetime.timedelta(days=365*3+366) - for appointment in appointments: - visit_started = min(visit_started,appointment.datetime_when) - - time_to_next_visit = datetime.timedelta(days=365) - if self.subject.type== Subject.SUBJECT_TYPE_CHOICES_CONTROL: - time_to_next_visit = datetime.timedelta(days=365*3+366) - - Visit.objects.create( + Visit.objects.create( subject = self.subject, datetime_begin = visit_started+time_to_next_visit, datetime_end = visit_started+time_to_next_visit+datetime.timedelta(days=93) diff --git a/smash/web/tests/test_model_visit.py b/smash/web/tests/test_model_visit.py new file mode 100644 index 00000000..670d2734 --- /dev/null +++ b/smash/web/tests/test_model_visit.py @@ -0,0 +1,42 @@ +from django.contrib.auth.models import User +from django.test import TestCase, RequestFactory +from django.urls import reverse + +from web.views import * + +from web.models import * + +from web.tests.functions import * + +class VisitModelTests(TestCase): + + def test_mark_as_finished(self): + subject = create_subject() + visit = create_visit(subject) + + visit.mark_as_finished() + + visit_count = Visit.objects.filter(subject=subject).count() + self.assertEquals(2, visit_count) + + def test_mark_as_finished_2(self): + subject = create_subject() + visit = create_visit(subject) + subject.dead=True + subject.save() + + visit.mark_as_finished() + + visit_count = Visit.objects.filter(subject=subject).count() + self.assertEquals(1, visit_count) + + def test_mark_as_finished_3(self): + subject = create_subject() + visit = create_visit(subject) + subject.resigned=True + subject.save() + + visit.mark_as_finished() + + visit_count = Visit.objects.filter(subject=subject).count() + self.assertEquals(1, visit_count) -- GitLab