From 7816de6be6344539563931e439cfa59a3b11d237 Mon Sep 17 00:00:00 2001
From: Fredrik Jonsson <frjo@xdeb.org>
Date: Thu, 4 Apr 2019 22:17:37 +0200
Subject: [PATCH] Allow current review forms with out the visability field to
 work.

---
 opentech/apply/review/forms.py  | 9 +++++++--
 opentech/apply/review/models.py | 3 ---
 2 files changed, 7 insertions(+), 5 deletions(-)

diff --git a/opentech/apply/review/forms.py b/opentech/apply/review/forms.py
index 4f02da2ca..fba3b158d 100644
--- a/opentech/apply/review/forms.py
+++ b/opentech/apply/review/forms.py
@@ -6,7 +6,7 @@ from opentech.apply.review.options import NA
 from opentech.apply.stream_forms.forms import StreamBaseForm
 
 from .models import Review, ReviewOpinion
-from .options import OPINION_CHOICES
+from .options import OPINION_CHOICES, PRIVATE
 
 
 class MixedMetaClass(type(StreamBaseForm), type(forms.ModelForm)):
@@ -66,7 +66,12 @@ class ReviewModelForm(StreamBaseForm, forms.ModelForm, metaclass=MixedMetaClass)
         self.instance.score = self.calculate_score(self.cleaned_data)
         self.instance.recommendation = int(self.cleaned_data[self.instance.recommendation_field.id])
         self.instance.is_draft = self.draft_button_name in self.data
-        self.instance.visibility = self.cleaned_data[self.instance.visibility_field.id]
+        # Old review forms do not have the requred visability field.
+        # This will set visibility to PRIVATE by default.
+        try:
+            self.instance.visibility = self.cleaned_data[self.instance.visibility_field.id]
+        except AttributeError:
+            self.instance.visibility = PRIVATE
 
         self.instance.form_data = self.cleaned_data['form_data']
 
diff --git a/opentech/apply/review/models.py b/opentech/apply/review/models.py
index 7d6afded1..c8ea72569 100644
--- a/opentech/apply/review/models.py
+++ b/opentech/apply/review/models.py
@@ -117,9 +117,6 @@ class ReviewQuerySet(models.QuerySet):
     def opinions(self):
         return ReviewOpinion.objects.filter(review__id__in=self.values_list('id'))
 
-    def visible_to(self, user):
-        return self.filter(visibility__in=self.model.visibility_for(user))
-
 
 class Review(ReviewFormFieldsMixin, BaseStreamForm, AccessFormData, models.Model):
     submission = models.ForeignKey('funds.ApplicationSubmission', on_delete=models.CASCADE, related_name='reviews')
-- 
GitLab