diff --git a/hypha/apply/funds/admin_views.py b/hypha/apply/funds/admin_views.py index 4b3dbef3650eb7b58a612508130b72e61790350d..60992135939ec368a4e853ee646eb32f5f1a4dcd 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 9a458e415908b0fe07f4c0828bcc218958078569..b0cd5e227d497760879c58ce59c902e8c07490f7 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__()]