From 30f5d3cd4bdae8f7bcbb5d0a99dccb60f0babd5c Mon Sep 17 00:00:00 2001 From: Carlos Vega <carlos.vega@uni.lu> Date: Tue, 17 Nov 2020 11:39:01 +0100 Subject: [PATCH] fixed relationship between study and privacy notice --- smash/web/models/privacy_notice.py | 17 ++++++++++------- smash/web/models/study.py | 2 +- 2 files changed, 11 insertions(+), 8 deletions(-) diff --git a/smash/web/models/privacy_notice.py b/smash/web/models/privacy_notice.py index cd394874..93697514 100644 --- a/smash/web/models/privacy_notice.py +++ b/smash/web/models/privacy_notice.py @@ -2,16 +2,19 @@ import datetime from django.db import models +from web.templatetags.filters import basename class PrivacyNotice(models.Model): + name = models.CharField(max_length=255, verbose_name='Name') created_at = models.DateTimeField(auto_now_add=True, verbose_name='Created at') updated_at = models.DateTimeField(auto_now=True, verbose_name='Updated at') - #the same privacy notice can be in multiple studies, one to many - study = models.ForeignKey("web.Study", - verbose_name='Study', - editable=True, - null=True, on_delete=models.CASCADE #check cascade - ) document = models.FileField(upload_to='privacy_notices/', verbose_name='Study Privacy Notice file', - null=False, editable=True) \ No newline at end of file + null=False, editable=True) + + def __str__(self): + return f'{self.name} ({basename(self.document.url)})' + + @property + def all_studies(self): + return self.studies.all() diff --git a/smash/web/models/study.py b/smash/web/models/study.py index 7d70815b..05e8706d 100644 --- a/smash/web/models/study.py +++ b/smash/web/models/study.py @@ -97,7 +97,7 @@ class Study(models.Model): study_privacy_notice = models.ForeignKey("web.PrivacyNotice", verbose_name='Study Privacy Note', editable=True, blank=True, - null=True, on_delete=models.CASCADE, #check cascade ondelete + null=True, on_delete=models.SET_NULL, related_name='studies' ) -- GitLab