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