6cd30cb2f076610cff220d4dcc20f5c5d44f7bc0 kent Sat Aug 31 18:24:50 2019 -0700 Updating to v 0.4. See version.txt for details. Should be a pure python commit except for version.txt. diff --git src/hca/hcat/mysite/hcat/models.py src/hca/hcat/mysite/hcat/models.py index 5932861..148767c 100644 --- src/hca/hcat/mysite/hcat/models.py +++ src/hca/hcat/mysite/hcat/models.py @@ -97,31 +97,31 @@ verbose_name = 'Wrangler project state' class OrganPart(models.Model): short_name = models.CharField(max_length=50, unique=True) description = models.CharField(max_length=250) projects = models.ManyToManyField("Project", blank=True, through="project_organ_part") comments = models.ManyToManyField(Comment, blank=True); def __str__(self): return self.short_name class Meta: verbose_name = 'Wrangler organ part' class Organ(models.Model): short_name = models.CharField(max_length=50, unique=True) description = models.CharField(max_length=250) - projects = models.ManyToManyField("Project", blank=True, through="project_organ", related_name='projects_organ_relationship') + #projects = models.ManyToManyField("Project", blank=True, through="project_organ", related_name='projects_organ_relationship') comments = models.ManyToManyField(Comment, blank=True); def __str__(self): return self.short_name class Meta: verbose_name = 'Wrangler organ' class Disease(models.Model): short_name = models.CharField(max_length=50, unique=True) description = models.CharField(max_length=250) comments = models.ManyToManyField(Comment, blank=True); projects = models.ManyToManyField("Project", blank=True, through="project_disease", related_name='projects_diseases_relationship') def __str__(self): return self.short_name class Meta: verbose_name = 'Wrangler disease' @@ -163,64 +163,80 @@ return self.short_name class Meta: verbose_name = 'Wrangler assay type' class Publication(models.Model): short_name = models.CharField(max_length=50, unique=True) title = models.CharField(max_length=250, blank=True) pmid = models.CharField(max_length=16) doi = models.CharField(max_length=32) comments = models.ManyToManyField(Comment, blank=True); def __str__(self): return self.short_name class Meta: verbose_name = 'Wrangler publication' -class ProjectOrigin(models.Model): +class EffortType(models.Model): short_name = models.CharField(max_length=50, unique=True) description = models.CharField(max_length=255) comments = models.ManyToManyField(Comment, blank=True); def __str__(self): return self.short_name class Meta: - verbose_name = 'Wrangler project origin' + verbose_name = 'Wrangler effort type' class Project(models.Model): short_name = models.CharField(max_length=80) - state = models.ForeignKey(ProjectState, blank=True, null=True, default=None, on_delete=models.SET_NULL) + cur_state = models.ForeignKey(ProjectState, blank=True, null=True, default=None, on_delete=models.SET_NULL, related_name="cur_state") + state_reached = models.ForeignKey(ProjectState, blank=True, null=True, default=None, on_delete=models.SET_NULL, related_name="state_reached") stars = models.IntegerField(blank=True,validators=[MinValueValidator(1),MaxValueValidator(5)], default=3) wrangler1 = models.ForeignKey(Contributor, blank=True, null=True, default=None, on_delete=models.SET_NULL, related_name="wrangler1") wrangler2 = models.ForeignKey(Contributor, blank=True, null=True, default=None, on_delete=models.SET_NULL, related_name="wrangler2") contacts = models.ManyToManyField(Contributor, blank=True, related_name="projcontacts") + first_contact_date = models.DateField(blank=True, null=True, default=None) + last_contact_date = models.DateField(blank=True, null=True, default=None) responders = models.ManyToManyField(Contributor, blank=True, related_name="projresponders") + first_response_date = models.DateField(blank=True, null=True, default=None) + last_response_date = models.DateField(blank=True, null=True, default=None) questionnaire = models.FileField(upload_to="uploads/project", blank=True, null=True, default=None) + questionnaire_date = models.DateField(blank=True, null=True, default=None) tAndC = models.FileField(upload_to="uploads/project", blank=True, null=True, default=None) + tAndC_date = models.DateField(blank=True, null=True, default=None) sheet_template = models.FileField(upload_to="uploads/project", blank=True, null=True, default=None) + sheet_template_date = models.DateField(blank=True, null=True, default=None) sheet_from_lab = models.FileField(upload_to="uploads/project", blank=True, null=True, default=None) + sheet_from_lab_date = models.DateField(blank=True, null=True, default=None) sheet_curated = models.FileField(upload_to="uploads/project", blank=True, null=True, default=None) + sheet_curated_date = models.DateField(blank=True, null=True, default=None) sheet_validated = models.FileField(upload_to="uploads/project", blank=True, null=True, default=None) - metadataExcel = models.FileField(upload_to="uploads/project", blank=True, null=True, default=None) + sheet_validated_date = models.DateField(blank=True, null=True, default=None) staging_area = models.URLField(blank=True, null=True) + staging_area_date = models.DateField(blank=True, null=True, default=None) + submit_date = models.DateField(blank=True, null=True, default=None) + submit_comments = models.ManyToManyField(Comment, blank=True, related_name="submit_comments"); + cloud_date = models.DateField(blank=True, null=True, default=None) + pipeline_date = models.DateField(blank=True, null=True, default=None) + orange_date = models.DateField(blank=True, null=True, default=None) title = models.CharField(max_length=120) description = models.TextField() labs = models.ManyToManyField(Lab, blank=True) organ = models.ManyToManyField(Organ, blank=True) organ_part = models.ManyToManyField(OrganPart, blank=True) disease = models.ManyToManyField(Disease, blank=True) sample_type = models.ManyToManyField(SampleType, blank=True) consent = models.ForeignKey(Consent, blank=True, null=True, default=None, on_delete=models.SET_NULL) - origin = models.ForeignKey(ProjectOrigin, blank=True, null=True, default=None, on_delete=models.SET_NULL) + effort = models.ForeignKey(EffortType, blank=True, null=True, default=None, on_delete=models.SET_NULL) origin_name = models.CharField(max_length=200, blank=True) assay_type = models.ManyToManyField(AssayType, blank=True) assay_tech = models.ManyToManyField(AssayTech, blank=True) cells_expected = models.IntegerField(blank=True, default=0) publications = models.ManyToManyField(Publication, blank=True) contributors = models.ManyToManyField(Contributor) species = models.ManyToManyField(Species, blank=True) grants = models.ManyToManyField("Grant", blank=True, through="grant_funded_projects") comments = models.ManyToManyField(Comment, blank=True) files = models.ManyToManyField(File, blank=True) urls = models.ManyToManyField(Url, blank=True) def __str__(self): return self.short_name class Funder(models.Model):