From d7fea438761eb2f1ee9db7b018410e9c827819ac Mon Sep 17 00:00:00 2001
From: sandeepsajan0 <sandeepsajan0@gmail.com>
Date: Tue, 26 Apr 2022 15:26:27 +0530
Subject: [PATCH] Set max number restrictions on file field block

---
 hypha/apply/funds/admin_views.py | 6 ++++++
 hypha/apply/funds/blocks.py      | 5 +++++
 2 files changed, 11 insertions(+)

diff --git a/hypha/apply/funds/admin_views.py b/hypha/apply/funds/admin_views.py
index 4b3dbef36..609921359 100644
--- a/hypha/apply/funds/admin_views.py
+++ b/hypha/apply/funds/admin_views.py
@@ -108,6 +108,12 @@ class CreateApplicationFormView(CreateView):
 
 class EditApplicationFormView(EditView):
 
+    def get_form(self):
+        form = super(EditApplicationFormView, self).get_form()
+        single_file_count = sum(1 for block in self.get_instance().form_fields.raw_data if block['type'] == 'file')
+        form.fields['form_fields'].block.meta.block_counts = {'file': {'min_num': 0, 'max_num': single_file_count}}
+        return form
+
     def form_invalid(self, form):
         show_admin_form_error_messages(self.request, form)
         return self.render_to_response(self.get_context_data(form=form))
diff --git a/hypha/apply/funds/blocks.py b/hypha/apply/funds/blocks.py
index 9a458e415..b0cd5e227 100644
--- a/hypha/apply/funds/blocks.py
+++ b/hypha/apply/funds/blocks.py
@@ -194,6 +194,11 @@ class ApplicationCustomFormFieldsBlock(CustomFormFieldsBlock, FormFieldsBlock):
     required_blocks = ApplicationMustIncludeFieldBlock.__subclasses__()
     single_blocks = ApplicationSingleIncludeFieldBlock.__subclasses__()
 
+    class Meta:
+        block_counts = {
+            'file': {'min_num': 0, 'max_num': 0},
+        }
+
 
 REQUIRED_BLOCK_NAMES = [block.name for block in ApplicationMustIncludeFieldBlock.__subclasses__()]
 
-- 
GitLab