def test_factory_calls(self):

        child_formset = inlineformset_factory(test_models.Building, test_models.Tenant)
        nestedformset_factory(
            test_models.Block,
            test_models.Building,
            nested_formset=child_formset,
        )
    def test_fk_name_for_factory(self):

        fk_name = "block"
        # Should pass because fk_name is valid
        nested_formset = nestedformset_factory(
            test_models.Block, test_models.Building, nested_formset=self.child_formset, fk_name="block"
        )()
        # Fails because address is not fk
        with self.assertRaises(ValueError):
            nested_formset = nestedformset_factory(
                test_models.Block, test_models.Building, nested_formset=self.child_formset, fk_name="address"
            )()
    def setUp(self):

        child_formset = inlineformset_factory(
            test_models.Building,
            test_models.Tenant,
            fields=(
                'name',
                'unit',
            ),
        )
        self.formset_class = nestedformset_factory(
            test_models.Block,
            test_models.Building,
            nested_formset=child_formset,
        )

        self.block = test_models.Block.objects.create()
        self.building = test_models.Building.objects.create(
            block=self.block,
            address='829 S Mulberry St.',
        )
        self.tenant = test_models.Tenant.objects.create(
            building=self.building,
            name='John Doe',
            unit='42',
        )
    def test_factory_returns_formset(self):

        nested_formset = nestedformset_factory(
            test_models.Block, test_models.Building, nested_formset=self.child_formset
        )

        self.assertTrue(issubclass(nested_formset, BaseInlineFormSet))
    def test_exclude_fields_for_factory(self):

        nested_formset = nestedformset_factory(
            test_models.Block, test_models.Building, nested_formset=self.child_formset, exclude=("address",)
        )

        self.assertEqual(tuple(nested_formset.form.base_fields.keys()), ("block",))
Exemple #6
0
    def setUp(self):

        child_formset = inlineformset_factory(
            test_models.Building,
            test_models.Tenant,
            fields=(
                'name',
                'unit',
            ),
        )
        self.formset_class = nestedformset_factory(
            test_models.Block,
            test_models.Building,
            nested_formset=child_formset,
        )

        self.block = test_models.Block.objects.create()
        self.building = test_models.Building.objects.create(
            block=self.block,
            address='829 S Mulberry St.',
        )
        self.tenant = test_models.Tenant.objects.create(
            building=self.building,
            name='John Doe',
            unit='42',
        )
    def test_fk_name_for_factory(self):

        fk_name = 'block'
        # Should pass because fk_name is valid
        nested_formset = nestedformset_factory(
            test_models.Block,
            test_models.Building,
            nested_formset=self.child_formset,
            fk_name='block')()
        # Fails because address is not fk
        with self.assertRaises(ValueError):
            nested_formset = nestedformset_factory(
                test_models.Block,
                test_models.Building,
                nested_formset=self.child_formset,
                fk_name='address')()
    def test_validate_min_for_factory(self):
        # Default is False
        validate_min = True
        nested_formset = nestedformset_factory(
            test_models.Block, test_models.Building, nested_formset=self.child_formset, validate_min=validate_min
        )

        self.assertEqual(validate_min, nested_formset.validate_min)
    def setUp(self):

        child_formset = inlineformset_factory(test_models.Building, test_models.Tenant)
        self.formset_class = nestedformset_factory(
            test_models.Block,
            test_models.Building,
            nested_formset=child_formset,
        )
Exemple #10
0
    def setUp(self):

        child_formset = inlineformset_factory(test_models.Building, test_models.Tenant, fields=("name", "unit"))
        self.formset_class = nestedformset_factory(
            test_models.Block, test_models.Building, nested_formset=child_formset
        )

        self.block = test_models.Block.objects.create()
Exemple #11
0
    def get_form_class(self):

        return nestedformset_factory(models.Block,
                                     models.Building,
                                     nested_formset=inlineformset_factory(
                                         models.Building,
                                         models.Tenant,
                                         fields='__all__'))
    def test_min_num_for_factory(self):

        num = 3
        nested_formset = nestedformset_factory(
            test_models.Block, test_models.Building, nested_formset=self.child_formset, min_num=num
        )

        self.assertEqual(num, nested_formset.min_num)
    def test_factory_returns_formset(self):

        nested_formset = nestedformset_factory(
            test_models.Block,
            test_models.Building,
            nested_formset=self.child_formset,
        )

        self.assertTrue(issubclass(nested_formset, BaseInlineFormSet))
Exemple #14
0
    def setUp(self):

        child_formset = inlineformset_factory(test_models.Building, test_models.Tenant, fields=("name", "unit"))
        self.formset_class = nestedformset_factory(
            test_models.Block, test_models.Building, nested_formset=child_formset
        )

        self.block = test_models.Block.objects.create()
        self.building = test_models.Building.objects.create(block=self.block, address="829 S Mulberry St.")
        self.tenant = test_models.Tenant.objects.create(building=self.building, name="John Doe", unit="42")
    def test_min_num_for_factory(self):

        num = 3
        nested_formset = nestedformset_factory(
            test_models.Block,
            test_models.Building,
            nested_formset=self.child_formset,
            min_num=num)

        self.assertEqual(num, nested_formset.min_num)
    def test_validate_min_for_factory(self):
        # Default is False
        validate_min = True
        nested_formset = nestedformset_factory(
            test_models.Block,
            test_models.Building,
            nested_formset=self.child_formset,
            validate_min=validate_min)

        self.assertEqual(validate_min, nested_formset.validate_min)
Exemple #17
0
    def get_form_class(self):

        return nestedformset_factory(
            models.Block,
            models.Building,
            nested_formset=inlineformset_factory(
                models.Building,
                models.Tenant
            )
        )
 def get_form_class(self):
     return nestedformset_factory(
         Restaurant,
         MenuCategory,
         extra=1,
         nested_formset=inlineformset_factory(
             MenuCategory,
             MenuItem,
             fields='__all__',
             widgets={'image_file': forms.FileInput},
             extra=1))
 def get_context_data(self, *args, **kwargs):
     ctx = super(CreateClient, self).get_context_data(*args, **kwargs)
     ctx['formset'] = nestedformset_factory(
         Client,
         Address,
         extra=1,
         nested_formset=inlineformset_factory(Address,
                                              Attachment,
                                              extra=1,
                                              fields='__all__'))
     return ctx
    def test_exclude_fields_for_factory(self):

        nested_formset = nestedformset_factory(
            test_models.Block,
            test_models.Building,
            nested_formset=self.child_formset,
            exclude=('address', ),
        )

        self.assertEqual(
            tuple(nested_formset.form.base_fields.keys()),
            ('block', ),
        )
    def setUp(self):

        child_formset = inlineformset_factory(
            test_models.Building,
            test_models.Tenant,
            fields=(
                'name',
                'unit',
            ),
        )
        self.formset_class = nestedformset_factory(
            test_models.Block,
            test_models.Building,
            nested_formset=child_formset,
        )
    def test_override_fields_for_factory(self):

        nested_formset = nestedformset_factory(
            test_models.Block,
            test_models.Building,
            nested_formset=self.child_formset,
            fields=(
                'block',
            ),
        )

        self.assertEqual(
            tuple(nested_formset.form.base_fields.keys()),
            ('block',),
        )
    def setUp(self):

        child_formset = inlineformset_factory(
            test_models.Building,
            test_models.Tenant,
            fields=(
                'name',
                'unit',
            ),
        )
        self.formset_class = nestedformset_factory(
            test_models.Block,
            test_models.Building,
            nested_formset=child_formset,
        )
Exemple #24
0
 def get_form_class(self):
     return nestedformset_factory(
         Folder,
         File,
         nested_formset=inlineformset_factory(
             File,
             FileRate,
             formset=FileInlineFormset,
             fields=('is_deletable', 'putio_user', 'file', 'rating'),
             extra=0,
             can_delete=False,
         ),
         formset=FolderNestedFormset,
         fields=('putio_id', 'putio_name', 'size', 'folder'),
         extra=0,
         can_delete=True,
     )
Exemple #25
0
def formset_view(request):
    TabFormSet = nestedformset_factory(Parent,
                                       Tab,
                                       form=TabForm,
                                       extra=3,
                                       nested_formset=inlineformset_factory(
                                           Tab,
                                           SubList,
                                           form=SubListForm,
                                           extra=5))

    tabs = TabFormSet()

    context = {
        "tabs": tabs,
    }

    if tabs.is_valid():
        pass

    return render(request, 'formset.html', context)
    def get_success_url(self):
        return reverse('blocks-list')


class ListBlocksView(ListView):
    model = models.Block


class CreateBlockView(BlockView, CreateView):
    pass


NestedBlockForm = nestedformset_factory(
    models.Block,
    models.Building,
    nested_formset=inlineformset_factory(
        models.Building,
        models.Tenant
    )
)


BlockForm = inlineformset_factory(models.Block, models.Building)


class EditBuildingsView(BlockView, UpdateView):
    template_name = 'blocks/building_form.html'
    form_class = NestedBlockForm


class EditBuildingsDynamicView(BlockView, UpdateView):
    template_name = 'blocks/building_form_dynamic.html'
Exemple #27
0

class BaseSaleQuestionaryQuestionFormset(FormKwargsNestedFormsetMixin):
    def clean(self):
        if self.is_bound and (self.total_form_count() - len(self.deleted_forms)) == 0:
            raise forms.ValidationError(u'Заполните список вопросов!')
        super(BaseSaleQuestionaryQuestionFormset, self).clean()


SaleQuestionaryQuestionFormset = nestedformset_factory(
    Questionary, QuestionaryQuestion,
    formset=BaseSaleQuestionaryQuestionFormset,
    nested_formset=SaleQuestionaryAnswerFormset,
    form=QuestionaryQuestionForm,
    fields=('text', 'question_type',),
    widgets={
        'text': forms.Textarea(attrs={'class': 'form-control', 'rows': '2', 'placeholder': 'введите текст вопроса'}),
        'question_type': forms.RadioSelect()
    },
    can_delete=True,
    extra=0
)


class SaleQuestionaryUpdateForm(SaleQuestionaryCreateForm, BlockedModelFormMixin):
    def __init__(self, *args, **kwargs):
        super(SaleQuestionaryUpdateForm, self).__init__(*args, **kwargs)
        self.question_formset = SaleQuestionaryQuestionFormset(
            instance=self.instance, data=self.data or None, form_kwargs={'blocked': self.blocked})

    def save(self, commit=True):
        return reverse('blocks-list')


class ListBlocksView(ListView):
    model = models.Block


class CreateBlockView(BlockView, CreateView):
    pass


NestedBlockFormSet = nestedformset_factory(
    models.Block,
    models.Building,
    nested_formset=inlineformset_factory(
        models.Building,
        models.Tenant,
        fields='__all__'
    )
)


BlockFormSet = inlineformset_factory(models.Block, models.Building, fields='__all__')


class EditBuildingsView(BlockView, UpdateView):
    template_name = 'blocks/building_form.html'
    form_class = NestedBlockFormSet


class EditBuildingsDynamicView(BlockView, UpdateView):
Exemple #29
0
                                  required=False)

    class Meta:
        model = Answer
        fields = ['text', 'is_right']


QuestionAnswersFormset = nestedformset_factory(
    Test,
    Question,
    form=QuestionForm,
    nested_formset=inlineformset_factory(
        Question,
        Answer,
        form=AnswerForm,
        max_num=4,
        min_num=4,
        validate_min=True,
        extra=0,
    ),
    extra=0,
    min_num=5,
    validate_min=True,
)


class AnswerProcessForm(forms.Form):
    def __init__(self, *args, **kwargs):
        super().__init__(*args, **kwargs)
        if kwargs.get('initial'):
            choices = kwargs['initial']['choices']