Skip to content
Snippets Groups Projects
inconsistent_subject.py 2.42 KiB
Newer Older
# coding=utf-8
import logging
from django.db import models

logger = logging.getLogger(__name__)


class InconsistentField(models.Model):
    name = models.CharField(max_length=255,
                            verbose_name='Field name',
                            null=False,
                            blank=False
                            )
    smash_value = models.CharField(max_length=255,
                                   verbose_name='Smash value'
                                   )
    redcap_value = models.CharField(max_length=255,
                                    verbose_name='RED Cap value'
                                    )
    inconsistent_subject = models.ForeignKey("web.InconsistentSubject",
                                             verbose_name='Invalid fields',
                                             )

    @staticmethod
    def create(name, smash_value, redcap_value):
        result = InconsistentField()
        result.name = name
        result.smash_value = smash_value
        if result.smash_value is None:
            result.smash_value = "[None]"
        result.redcap_value = redcap_value
        if result.redcap_value is None:
            result.redcap_value = "[None]"
        return result

    def __str__(self):
        return self.name + ": " + self.smash_value + "; RED Cap: " + self.redcap_value

    def __unicode__(self):
        return self.name + ": " + self.smash_value + "; RED Cap: " + self.redcap_value


class InconsistentSubject(models.Model):
    class Meta:
        app_label = 'web'

    subject = models.ForeignKey("web.StudySubject",
                                verbose_name='Subject',
                                null=True,
                                blank=True
                                )

    redcap_url = models.CharField(max_length=255,
                                  verbose_name='URL to RED Cap subject',
                                  null=True,
                                  blank=True
                                  )

    @staticmethod
    def create(smash_subject, url=None, fields=None):
        if fields is None:
            fields = []
        result = InconsistentSubject()
        result.subject = smash_subject
        result.redcap_url = url
        result.fields = fields
        return result

    def __str__(self):
        return "Subject: " + str(self.subject)

    def __unicode__(self):
        return "Subject: " + unicode(self.subject)