From a3267d12400ef62622da8ece6176c33ce64f877e Mon Sep 17 00:00:00 2001 From: Shrikrishna Singh <krishnasingh.ss30@gmail.com> Date: Wed, 1 Jul 2020 17:40:25 +0530 Subject: [PATCH] Check if all submissions has same type while creating batch determinations --- hypha/apply/determinations/models.py | 4 +++- hypha/apply/determinations/views.py | 13 +++++++++++++ hypha/apply/review/forms.py | 1 + 3 files changed, 17 insertions(+), 1 deletion(-) diff --git a/hypha/apply/determinations/models.py b/hypha/apply/determinations/models.py index 1fb235507..0e2dfe966 100644 --- a/hypha/apply/determinations/models.py +++ b/hypha/apply/determinations/models.py @@ -142,7 +142,9 @@ class Determination(DeterminationFormFieldsMixin, AccessFormData, models.Model): group = 0 data.setdefault(group, {'title': None, 'questions': list()}) for field in self.form_fields: - if issubclass(field.block.__class__, DeterminationMustIncludeFieldBlock): + if issubclass( + field.block.__class__, DeterminationMustIncludeFieldBlock + ) or isinstance(field.block, SendNoticeBlock): continue try: value = self.form_data[field.id] diff --git a/hypha/apply/determinations/views.py b/hypha/apply/determinations/views.py index 824df2f76..15029846a 100644 --- a/hypha/apply/determinations/views.py +++ b/hypha/apply/determinations/views.py @@ -140,8 +140,21 @@ class BatchDeterminationCreateView(BaseStreamForm, CreateView): kwargs.pop('instance') return kwargs + def check_all_submissions_are_of_same_type(self, submissions): + return len(set( + [ + submission.is_determination_form_attached + for submission in submissions + ] + )) == 1 + def get_form_class(self): submissions = self.get_submissions() + if not self.check_all_submissions_are_of_same_type(submissions): + raise ValueError( + "All selected submissions excpects determination forms attached" + " - please contact admin" + ) if not submissions[0].is_determination_form_attached: return get_form_for_stages(submissions) form_fields = self.get_form_fields() diff --git a/hypha/apply/review/forms.py b/hypha/apply/review/forms.py index 1e7dc2db3..76b636818 100644 --- a/hypha/apply/review/forms.py +++ b/hypha/apply/review/forms.py @@ -42,6 +42,7 @@ class ReviewModelForm(StreamBaseForm, forms.ModelForm, metaclass=MixedMetaClass) initial[key] = value super().__init__(*args, initial=initial, instance=instance, **kwargs) + for field in self._meta.widgets: self.fields[field].disabled = True -- GitLab