#33447: min_num on formsets should not just be added to extra, again
-------------------------------------+-------------------------------------
               Reporter:  typonaut   |          Owner:  nobody
                   Type:  New        |         Status:  new
  feature                            |
              Component:  Forms      |        Version:  3.2
               Severity:  Normal     |       Keywords:
           Triage Stage:             |  inlineformset_factory min_num extra
  Unreviewed                         |      Has patch:  0
    Needs documentation:  0          |    Needs tests:  0
Patch needs improvement:  0          |  Easy pickings:  0
                  UI/UX:  1          |
-------------------------------------+-------------------------------------
 I have read #22628 and #27679.

 I can see that the documentation says that if you have `min_num = 1` and
 `extra = 1` then you will get two blank inline forms in a new form.

 I am flagging this as a new feature, although I think it is really a bug.

 When using `forms.models.inlineformset_factory` `min_num` and `extra`
 input parameters are available. Logically `min_num` is really a validation
 parameter where `extra` is a utility/UI parameter. I believe that given
 this logic, with a new form and `min_num = 1` and `extra = 1` then there
 should only be one inline form displayed, rather than two as currently
 happens.

 I would propose to add an additional input parameter to control this
 bahaviour and account for any backward compatibility issues:
 `min_num_minimise` as a boolean.

 {{{
 forms.models.inlineformset_factory(…
                   extra=1,
                   min_num=1,
                   min_num_minimise=True
                   )
 }}}

 This would render one inline form on a new form, where:

 {{{
 forms.models.inlineformset_factory(…
                   extra=1,
                   min_num=1,
                   min_num_minimise=False,
                   )
 }}}

 Would maintain the current behaviour – with the default being
 `min_num_minimise=False`.

 I believe that the current implementation is more than a little confusing
 from a UI perspective. While it is possible to code around this
 implementation and test for at least `min_num` forms, that is quite a lot
 of work and more prone to break with updates.

-- 
Ticket URL: <https://code.djangoproject.com/ticket/33447>
Django <https://code.djangoproject.com/>
The Web framework for perfectionists with deadlines.

-- 
You received this message because you are subscribed to the Google Groups 
"Django updates" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To view this discussion on the web visit 
https://groups.google.com/d/msgid/django-updates/051.73cf964a27c5d1799ff6ca6fdd126b3b%40djangoproject.com.

Reply via email to