Skip to content
Snippets Groups Projects

Feature/import data pdp

Merged Carlos Vega requested to merge feature/import_data_pdp into master
All threads resolved!
Files
5
@@ -5,6 +5,8 @@ from django.db import models
from web.models import VoucherType, Appointment, Location, Visit
from web.models.constants import BOOL_CHOICES, SUBJECT_TYPE_CHOICES, FILE_STORAGE
from django.db.models.signals import post_save
from django.dispatch import receiver
logger = logging.getLogger(__name__)
@@ -32,6 +34,11 @@ class StudySubject(models.Model):
self.finish_all_visits()
self.finish_all_appointments()
def mark_as_excluded(self):
self.excluded = True
self.finish_all_visits()
self.finish_all_appointments()
subject = models.ForeignKey("web.Subject",
verbose_name='Subject',
editable=False,
@@ -161,6 +168,15 @@ class StudySubject(models.Model):
blank=True,
verbose_name='Resign reason'
)
excluded = models.BooleanField(
verbose_name='Excluded',
default=False,
editable=True
)
exclude_reason = models.TextField(max_length=2000,
blank=True,
verbose_name='Exclude reason'
)
def sort_matched_screening_first(self, pattern, reverse=False):
parts = self.screening_number.split(';')
@@ -195,3 +211,11 @@ class StudySubject(models.Model):
def __unicode__(self):
return "%s %s" % (self.subject.first_name, self.subject.last_name)
#SIGNALS
@receiver(post_save, sender=StudySubject)
def set_as_resigned_or_excluded(sender, instance, **kwargs):
if instance.excluded:
instance.mark_as_excluded()
if instance.resigned:
instance.mark_as_resigned()
\ No newline at end of file
Loading