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